All posts by Nighthawk

GeoMaping software Mobile & Desktop

A short post about geomapping software; that I’ve encountered (on one way or another). The list is partial, and not the fullest current list of products of that sort, that you might find.

A list of Comparison of geographic information systems software on wikipedia.

Earth mapping:

Earth mapping software, that is being used mostly with GPS component to navigate:

  • Waze – Social mapping app, Mobile app (iOS/Android/Win8)
  • MapQuest – Mobile app
  • iGo NAVNGO – Can be found as a Mobile app for cellular devices (using iOS/Android/Win Mobile). Or as installed using a proprietary device.

Star systems and galaxy mapping / astronomy apps:


As a programmer I managed to play a little with the abilities of KML (Keyhole markup lanaguage) — I first encountered it when I had a list of locations which needed to be marked upon GeoLocations… I used it with the GoogleEarth engine.

Basically KML enables you to add layer of information, which can be presented in various ways upon the GeoPresentaion of an area. You can add markers/pictures/geometric objects/path to mark roads — etc’.

Due to the fact that KML is a very well defined structure, I ported the KML I created to a iGO NAVNGO system — that could read the KML file as well..

Geek Thoughts; From Theory to Practice:

Sketchy burst of thoughts… Today I continued thinking of the issue of — when a theory can be transformed to practice. This, as always happens lead me to think about narrow/broader points of observations…

Here is a hypothetical scenario (Beginning with student view of a system):

Assuming you are a chemist, who know all the theory and formulas of chemical studies. You are fronted with a toxic compound for the human body. And by using a specific reaction, according to all your theories and calculations, it produce drinkable water.

  • On what stage you trust enough your calculations and drink the water?

Of course, such a scenario would be addressed somehow equally by many scientists. And would mean testing the matter on lab creatures, overtime, yet, how much time to define a certain scenario? week/month/years/decade or more?

First similar scenario that I can take from existing culture is the talk about, for example, genetically engineered products, which has its own pros and cons, supporters and deniers.

Unlike math or the computers science, which have a very defined rules. When dealing with nature, as much as we would like to make it understandable – it isn’t a closed system, and anything we use may have reactions with other material we use, it might be as part of the reaction, or even as a tool to boarder the reaction within it – such as a glass container – it is another matter assessing the reactions between the reaction to its container overtime.

As I see it, every situation or observation got both so called “good” and “bad” sides. Yet, when talking about the scenario that I’ve described you should look both inside the box and outside of it…

What do I mean by “inside the box and outside of it”?

Because everything can be viewed in many ways, this should be viewed in a perspective of time as well… History as we define it…

This raises even more puzzling issues, for example: (Taken from the vision of scifi stories) Can a time traveler view each scenario in different times the same, without considering the whole system in a certain state? What knowledge should be added to our time traveler – in order for him/her – view the proper state of the system that he/she traveled into?

  • Would there be a need for courses in the university surrounding all the known sciences?
  • Or would there be need for knowledge of the culture/history the society that the traveler just stepped into?
  • Or even does the system he entered follow the known physics knowledge we know?
  • What are the relations between the home system and the entered system?
  • Would even entering the system, will change it in some way?

As far as we know it, when looking on the cosmos – we a little dot somewhere in the galaxy. Yet, what is, our third rock from the sun, function in the system?

Are we so Pretentious or, on the other hand, so ambitious — to even think that our little rock could produce something – that will – eventually make a change in our galaxy or other galaxies in the cosmos? (When looking at the perspective over time?)

Would our actions:

  1. Expand an existing system?
  2. Collapse an existing system?
  3. Or won’t make any change at all and balance itself?

Podcasts RSS: Aggregating Video/Audio/Podcasts

I thought for a couple of days what to write about, due to the fact that nothing much kept me busy… Though, I came to a conclusion that I’ll write about what did keep me going on all these days.

For the past dozen years, I’ve been hearing many different daily Podcasts…

So what is a Podcast?

A Podcast, is basically a media file (can be audio or video) which is being attached to a RSS (Really Simple Syndication). The RSS with the combination of the media file, makes it a very power full technology. That because different Feeds are being updated daily or weekly.

The programs that manage the different feeds (Podcasts Apps; such as Apple Podcasts app [on iOS] or Samsung KiesCast app [on android]), you listen to — know 🙂 but their definition whether it is a new item, or an old one… Thus notify you for the new ones.

History of RSS…

The RSS first was invented for Text news… News Feeds, were common, yet, attaching a video/audio file to it was a latter invention.

More about Audio Podcasts:

There are some more features which were added to the Feed,. and can be supply attached to the RSS Feed it self, or to the media file which attached to it.

Meta Tags:

Take for example the Meta Tags.

When adding an item for a feed, it includes a text which describe the current item (of course these additions should be supplied in such a way that the miscellaneous Podcasts apps aggregators would know where to look for that data).  Due to the fact the the RSS was derived from XML (Extensible Markup Language) files — which is a structured text file, with different variables with in it — It can contain many different Meta Tags.

In addition misc meta tags can be attached to the media file itself. For example a .mp3/.m4a audio files contain a structure that define the file meta tags. And their meta tags can include many different known, or user defined tags. Such as; Track Name, Year Published, Author, Lyrics, Picture Thumbnail — Icon of the track, and so on.

Different Sources of RSS Podcasts:

Today any news organization which respect itself got a team that compile a hourly/daily/weekly podcast. After all, all you need to create a podcast — it the knowledge how to construct the basic feed, and some hardware such as microphone and a recording application… And of course some content to talk about whether it’ll be global news/ Tech news/ Expert news/ Art news/ or any area which interest you.

My personal daily news:

I’ve been listening, as I mentioned, for the past dozen years to news via different podcasts apps, and being fed news from different sources. This of course is a routine change from the past — instead of  gazing on a TV screen — I am now free, to hear news — what ever — when even — and where ever — I like.

What Ever; Pick from the billion of podcasts sources online.

Where ever; I can hear news while doing the daily arrangements around the house — when doing the dishes, or any other tasks.

When Ever; Feeds by different sources are usually kept at least for a week and on many cases for years back on different sources. So even if I missed something, or if I would like to listen to new content to me — I can search it years back on the source WebSite.

Or for short the podcasts WWW 🙂

Samsung – AllShare – Mobile Media Casting

I checked the option to connect and share media on (in my case) a samsung smart tv. Code named, by samsung, AllShare.

Basically there are two options:

  1. Option A – Send the data itself (Media files: Video/Audio/Pictures) to the Samsung smart TV: Using Samsung SmartShare.
  2. Option B – Project the screen from a mobile device to the samsung tv (or any other HDMI enabled device), using a MicroUSB to HDMI connector. Mobile High-Definition Link (MHL).

When talking about option A, I found that the following options:

  1. the samsung android system – got an update of samsung link (as they call it), it enables when viewing a video/listening to audio/viewing pictures — from the specific app — you can use the smart share option, discover the smasung v on your local LAN and send the media to the SmartTV to be presented
  2. Another option which, in my case use the same technology, is the flipps previously named iMediaShare mobile application. This application got all the smartshare options in the application. And you use the sharing from the application itself. In addition they added option to share facebook, or channels that they maintain.
  3. There were more apps that are smartshare enabled apps, yet, these weren’t covered here.

The option B requires that you’ll purchase a MicroUSB to HDMI connector. Using the MHL technology (Mobile High-Definition Link), And:

  1. Connect the device to the power using the original powersupply and microusb cable that came with the mobile device.
  2. Connect the device to the SmartTV with the HDMI input connector
  3. Connect the device to the mobile device

Now you’ll need to goto the android settings/More Settings/AllShare Cast – and enable the option (after detecting the connected TV). This option just project the display content, no matter what is presented, and display it on SmartTV.

RAD Delphi/CPP XE5 was released

Before I could even start some apps on beta7/beta8 — the official release of XE5 came out.

The most “in the face” feature is the very impressive integration of the RAD XE5 to the different environments (Win8/iOS/Android). It enables the developer to seamlessly connect the mobile device  or emulator that the app would be compiled on. And run the application.

I didn’t yet, dig enough into the twiks of each system. Of course each platform and device got its own sensors with-which you can program an app to.

All programming for the mobile EcoSystems, is being done using the FireMonkey FMX. Which is an OO environment. And if you check the source code of the FMX, you’d find a FMX.Platform.{PlatformType}.pas that is functioning as an encapsulation of the ecosystem basic function.  the {PlatformType} is one of the following by default: IOS, Win, Mac, Android.

Platform.IOS:

The integration to the iOS got a procedure where you automagicly sync the current XCode headers to be used by the DCCARM on the RAD OOP environemnt. This procedure is being done once, and could be repeated when a new version of the iOS is out.

All code-signing, and device deployment for the iOS is being done using the existing Mac XCode environemnt (when dealing with key-chain codes, and provisioning profiles — this is a procedure every Apple developer know, and is well documented in Developer.Apple site.)

Platform.Android:

As for the android platform, because of the fact that it is an open source OS. Embarcadero decided to ship the RAD environment with a deployment of the android SDK/NDK. So emulation and use of tools is being done using them.

When connecting a new android device the RAD automatically detect it and can compile code to the device itself.

 

Samsung Android basic techie managment

I started, as probably many techies, to learn some information about the samsung android mobile basic procedures. I won’t get into the eternal mambo-jumbo about what is better iOS or Android…. Yet, I will write some details about what was my learning curve in the android EcoSystem.

How deep can it goes?

Well, although I am a programmer, and rad some code on both iOS/Android. These systems are composed of many seperate parts — which each got its own purpose. The type of handling I am doing is better linked with system administrators, when talking about linux systems. Yet, programmers, that program for this environment probably know all the twiks and issues with the environment as well.

My android crashing bug:

It seems that although I bought my device from a store after updating my device via samsung KIES. It caused the device too boot, load the samsung logo, and get stuck on it.

When this took place on the first time, I just sent it to the store and they fixed it: Yet, I wasn’t about to do that after the second time it appeared… Again same symptom. I decided that this time, I will fix the problem by my own, no matter what! It would save time and effort * connecting the mobile distributor for fixing it, and * I would learn some tech geeky thingies on the way.

I do not know whether all mobile phones got the same bootloader, yet, Samsung, in their phones, introduced the following (mostly) text based menus:

  1. An Android Recovery mode In this mode, you can run some
            • wipes of the user data & Cache directories [Although I did run this, it didn’t make any of the matter better, it just got stuck again as I described]
            • run an OTA (On The Air) update [which didn’t work for me].
            • load an image from external/internal SD Card.
  2. A Download mode this mode, was made to load images using ODIN (a loader application that runs both on the mobile, and on the computer it is connected to)

ROM/Firmware:

So Initially there is a way to load a new image. Now I need to learn about the ROM/Firmware images.The android devices are virtually an open based linux system. And a ROM/Firmware is the basic files required to run properly an android OS.

The rom includes stuff like:

  • Kernel
  • GUI
  • Core functions
  • etc

Described in details on the following URL.

There are sites that explain what composes a ROM name (things like the date it was built, the CSC – the country code that it is assigned to, and more), yet, no matter what search I made, I didn’t find the proper ROM/Firmware.

There are basically two types of ROM/Firmware:

  1. A stock ROM – the ROM as it was released from the mobile manufacture, without any modifications to it.
  2. A custom ROM – The name sais it all, a custom made ROM. It can be that the kernel functions got modified or more visually details were modified — as launch Icons, Widgets, etc.

I found a proper Stock ROM of Android Jelly Bean version for my device. The only problem is that it wasn’t the same CSC, which means that I wouldn’t be able to be updated from the Local Samsung Services / or using KIES Firmware Update, with new versions of the Firmware (this is as far as I’ve gathered).

APNS – Apple Push Notification Server

I’ve updated my code on the iOS client of the “Apple Push Notification Server”. With its companion the Server side. This version of code was written in Delphi, for windows desktop environment — and I’ve enhanced it a bit. Had to understand the thingies with the signing and all the procedure.
If you are in the progress of building one yourself here are my notes on the subject:

  • Make sure you are consistent with the type of app you are developing. Basically there are two kinds: Development & Production (Distribution). What ever you choose note the following assignments:
  1. Code sign your APNS with the proper type (DEV/PRO)
  2. Assign the server to be connected to the proper gateway:
    A. gateway.sandbox.push.apple.com:2195 – for DEV
    B. gateway.push.apple.com:2195 – for PRO
  3. Make sure your type is consistent to the client side (DEV/PRO) – The type of kind will produce a different value for the client APN Token when registration the client on the server side.

I’ve created a NotificationPanel for my windows desktop machine. Yet, it isn’t as fancy as the Apple/Google ones. But it inform me on different messages that I’ve connected it to. I’ve registered it as a COM AutomationObject, so it could be used in Microsoft VBA scripts, or similar applications.

One of the features of that code is the ability to send a message via my APNS registered server.

I am still trying to figure out, why not all of the messages being sent via the APNS reach the client side. I do not know where it actually fails [Client or Server side].

In addition there is the issue with the APNS feedback system (feedback.push.apple.com:2196) which I didn’t manage to verify its function. My version of code, for it, doesn’t seems to receive and feedbacks — whether messages has been sent properly or not, and if not — what is the exact reason.

Delphi XE5 beta6 testing for Windows/Android/iOS/MacOSX

I started checking the new XE5 beta 6. It is, as being a beta, a little unstable, yet from first testing I would highlight the following:

  1. Very good – Integration with the iOS & android SDK/NDK
  2. Very good and ease of deploying applications (to the android at least – that’s what I first checked).
  3. Ran bunch of demo applications which were under …/FiremonkeyMobile path. About 10 demos, 2 worked perfectly… yet all the other halted the compilation/deployment – due to reasons that I didn’t check deep enough… After tweeking some of the none working on the android platform, I managed to run most of them.
  4. I ran all through, all the availables Firemonkey sample demos, that are supplied when installing the XE — and modified them for use on mobile devices. Seems that about 30% could run without a problem – on mobile — yet the rest required a more enhanced modification of the code.
  5. In addition, I’ve modified a code that was originally was written using XE4, for compilation to iOS devices. It made use of the datasnap and the binding of data to a TListView. Slight modification of it made it useable on the android platform as well… here is a sample tast
  6. On my ToDo.list are:
    • Create a demo app that uses SQLite on android…. With a big DB about 1mil records 1gb sized.
    • Checking the ability of local Mobile DB, such as the SQLite on iOS, and the deployment process of SQLite DB on android.
    • See how a deployment of DataSnap on the android works, (done that, seems that all that was required is to set in the android uses/options ‘the internet connection’ to on the app security switches)
    • Reintroduction of the ability to display a 3d object such as .3ds file. With proper setting of the meshes on it.

Web Global Campus – Lean and Study Sites – MOOC

MOOC – Massive Open Online Courses

Since I’ve studied in collage — I was looking for sites on the web, in which I could study and learn on my personal time. Presented in the following list are learning sites ordered by the timeline which they were introduced to me:

  1. Khan Academy – I tend to renew and learn new things from this site, where lectures are being thought, as if you were given a personal lesson. And almost all lectures are pinpointed, and though in clips of 10~12 minutes.
  2. Coursera – The lectures in coursera usually require you to know the subject which is being lectured, and they pinpoint on subjects that derive from the thought subject.
  3. OpenStudy – OpenStudy is the best place to ask questions about any thought subject and receive the support in a global community campuses.

Almost every university, and collage in my country got a site of its own. And most of them got plenty of lectures that were loaded to the web.

Though, when the studies are formal, as within these universities and collages:

  • Length: Lectures tend to be longer and lengthy so that they fit a semester.
  • Language: Another thing is that they usually presented in the country language.

I found wikipedia.org as a very good resource, that sums up a subject. With many focused resources for a subject (history, links and examples about any thought area).

Another related link is a BBC Podcast about Massive Open Online Courses from their documentaries series. Which was released on 2014-04-29.

Contacts thoughts

Prefix:
I’ve been managing my contacts list, for ever – it seems, or at least since I managed to create one, and save it in a certain form.
And been thinking whether to put some effort into creating an application for the process of Syncing/Merging duplication etc’.

Online market status:
The online market got, already, plenty of tools in which each app offer certain kind of functions (more or less).
Yet, having the ability to manage that from a delphi source code — could be found useful in many cases.

Present situation as It seems to me:
At present the default desktop apps, offer an import/export procedure.
Yet, for example, it doesn’t always manage the binary pictures properly,. Or does in a faulty way the process of merging.

Various software contact structures:
1. Ms outlook
2. Ms outlook express
3. Ms Windows contacts .CONTACT
4. Apple iOS/OSX contact structure
5. Incredimail contacts
6. Csv plain structure
7. .VCF structure

Various Web contact structures:
1. Ms live outlook
2. FaceBook contacts
3. Google gmail (including android apps for that)
4. Google gplus contacts (including android apps for that)
5. Yahoo email