Technition input on a simple install that went sour

Today I spent almost all day trying to figure out how to install the iTunes on a stubborn windows machine that would not install properly the Apple (loaded) ITunes.

To make a long story short, I came up with the following:

  • Concerning ITunes, (or any other applications that might change the initial state of the machine, with putting values into registry or registering drivers, of one kind or another) make sure you create a system restore point before making any changes to the system. This will enable you to always restore the system — to a state where everything was “clean” before any of installations you are about to preform.
  • The current Apple ITunes has a problem, where it doesn’t register (perfectly on all systems) the IPod/IPad/IPhone… I had to digg into the web in order to see all the comments from other users, where they complained about the same issue. Some of the complains resulted with good ideas of how to solve the issue. Yet, none of them helped on my case.
  • Apple Packed the Current ITunes installation with a variety of different software packages — each has its own roll… Yet, When an error occurs, sometimes, it would be best to separate this big ITunes package into its components — and install only the required component when needed. Below is the list of the current components in ITunes.
  1. AppleApplicationSupport.msi
  2. AppleMobileDeviceSupport64.msi – The drivers and software components that does the connection between ITunes and your devices.
  3. AppleSoftwareUpdate.msi
  4. Bonjour64.msi
  5. iTunes64.msi – The Main ITunes Application

BTW: I’ve separated the file iTunes64Setup.exe using the excellent WinRAR from RAR Labs.

On my case I had to run a couple of times the AppleMobileDeviceSupport64.msi in order to install the drivers (due to the fact that they were registered properly).

BTW:
You can extract each .msi install file, using the following command:
msiexec /a {filename} TARGETDIR=c:\theinstalldirectorysource

  • On today’s tries when installing ITunes — I learned that whenever a major application is being installed faulty — It would be best to enter the windows safemode. And install the software on a  trusted environment (without interference or antiviruses or firewalls definitions).

 

Surrealism and computing

I got  thought running in my mind, about different meaning, or lets say, interpretation of context/stories/text or media — whether it be pictures/movies/sound/audio/video data. Quick googling of the subject resulted, for example,  with these two links:

Multiple Meanings Pictures
Optical Illusions – Double Meanings

Thing is that programming an application that would process a picture… Isn’t that of a small task… Even when thinking of that — it seems a hard process doing.. Thinking and digging even more on the subject — may result with enlightenment on ones life perspective — itself.

We might find out that, on the first place a dogma took its course, as a fact of natural selection. Meaning — was used for one reason or another — and doesn’t even mean what we think it meant, on its initial state.

Surrealism art, usually presents this dilemma. A picture might mean multiple meanings — and processing it can isn’t that straight forward. Surrealist painters painted a picture that might:

  • As said, Mean multiple meanings
  • Seek digging under the current social fabric

Moreover, programming which should be a pinpointed solution and a formula that should be mathematical ‘known’ formula — like 1+1=2 — we might find ourselves programming an application that resulted with an array of possibilities — some that we didn’t even think should or could take place from the input we gave it.

Leading computing into an exotic area — that would combine art and computing. And like a magic solution, could answer and lead to multiple paths down the road.

A little about API & wrappers

API – Application interface
Best way to describe an API, is an interface of a wrapper of some source code. This enables interaction with your code via any third party that would like to use the functionality of what you have programmed.

This enables any third party to treat your code, as a blackbox. Putting some input variables in and getting out from your blackbox a result of a sort.

Of course this result can be visual, or any other data output, that you will later process. On occasions it can be just enabling an activation of a method or a procedure in the wrapper.

Programming language based API
Programming view point, a lot was and would be written. Different language syntax were introduced. And they can be a post for another discussion.

I’ll just note, that the best was to see the wrappers in use cases, is within the Object Orient Programming — whether it be OOP (Object Oriented Pascal), or CPP (C Plus Plus) and Java. Where structures and objects using different procedures/methods/properties was defined. Wrapping source code objects in a defined structures.

The way of structured Object programming that was well defined, was shifted onto different source codes that function as a blackboxed application. When programming the actual code, in different places from within the application different calls are made to existing object and interfacing with them.

Same goes when a service/application requires interaction with the code, yet not within the same source code, but as an external interaction to the objects, data and services of the application.

These requirements resulted with many different products and syntax definitions that could be encountered on many different areas of computing. Here are my notes on these definitions of API.

Winamp API – My First spark of a great code and application design by NULLSOFT
My first encounter of a great API was with the WinAMP media player from NULLSOFT. They designed their application in such a way that any given part of the application could be interacted by any third party — while they enabled the following interface interaction:

  • Input files — Enabling the player to recognize many additional file types, not always the ones that were defined by default.
  • Output Devices – Enabling third party to define new output devices, so that the application will support addition ones other than the default Stero types
  • Filters – Enable different audio filters to be defined,

And so on. They defined the application in such way that the interaction included elements such as a skin style for the GUI of the application, something that until then hasn’t been done in such way.

Microsoft API definitions – By chronological releases
Microsoft initiated a set of wrappers when they found the need to do so, and saw the demand from third party developers. Way back on the early days, when there was the MSDOS, and the first Windows — the definition of wrappers was only in its first stages. In the coming years they defined various types of API wrappers for applications. Here is a short list of some that were defined:

This is a vast area, that was defined by Microsoft — and produced many great subproducts., The introduction of the DDE and COM/DCOM, enabled companies to wrap their product as a defined product, and market it to be used by software developers.

The DCOM, enabled the wrappers to be put on a remote machine and launch their task from that machine. Using a Client/Server programming abilities. Yet, all interface to a DCOM object is, mostly, as if it is a standard COM automation object.

As for the developers they had — when interacting from their code — to the blackboxes — to know the basic structure and method of assigning and mapping their application, with the blackboxes they got. Unifying this ability — produced a vast market that could use different ideas.

Google API
As I see the software market, google initiated a set of API for their products (which were mostly web based) as they learned from the existing companies and tech history.

Google viewed the market from a software developer view point. This enabled them to define the API and different interfaces in a way that will be easy for other software engineers to interact with.

On their developers site, you can find many different API to their product. Due to the fact that they became a huge and dominated company in the market, the list of API is parallel to their products services (search engine, mapping, cloud, office products [documents, spreadsheets, presentations], translate engine, social plus services — the list just getting larger as the time goes on).

Google web orientation, required a definition of the interaction with the different services to be done via the web itself. If the beginning of the API definition was done locally, on a single machine — as interaction better one local application to another local application, that ran on a single computer. –> the definition of the google services was shifted to a web based alike connection between each application. As different application ran on different machines, connected by the internet –> done, usually, as client/server based applications.

The web interaction, required a definition of some sort of structure of when passing parameters to process/or receive — This produced a variety of structures on different layers — as structured data elements (such as XML – Extensible Markup Language, or descended that enhanced it — such as KML – Keyhole Markup Language for mapping services for example) — or different definition  of structured language on the transport layer — (such as communication using JSON JavaScript Object Notation – data structures)…

 

Mobile and cross platform API

When mobiles came to existence, many possibilities and enhancements were introduced.

Today, when any application is written — people who know the market and programming will try to cover the following on their first, or later, releases of the application:

  • A desktop machine application (Whether it be a linux, windows or mac machines)
  • A mobile application (Whether it be an Android, Windows, iOS, or other platforms)
  • A web based application (A web based access to the data or services one provides)

There are many examples of such applications from different companies, that offer their services cross platform on all the above points I’ve mentioned. Again the best place to view such cross platform services, is on google products. Yet examples can be found on many other pinpointed services, such as the services of a Cloud Drive (you can check DropBox, OneDrive, GDrive, and others). Or other services such as EverNote.

A good company will expose their services to an existing ISO defined API, or a unique proprietary API. Again this varies on the company and upon their knowledge that they must produce such a feature so that coders will  act as a leverage to boost their product and services.

The new RAD Delphi XE6 was released

Note, this blog states the obvious.

Again I find myself in the process of waiting/reinstalling the new versions of the miscellaneous components — the I’ve bought. Each company got its own pace of releasing their updated set of components to their subscribers.

Some of them, got a hand of the beta testing of the RAD Delphi, and start to modify their components code, even before the official release of the development environment.

On other cases such as the Delphi Jedi Component Set — The  process seems to be a work in progress all the time. Due to the fact that it is defined as an opensource project. So many bugs, and improvements are being fixed, and added/modified almost everyday.

Yet, nowadays, that there is the Web, and all the social networks such as twitter/linkedin/facebook and so on — It seems that the wealth and variety of the set of libraries I come to find each and everyday, are much  more than what I thought there would be.

So It is good to get updated with many new tools, and utilities. You can call me a compulsive sourcecode collector. And due to the fact that I like the most the OOP with Pascal — I find everyday, new ways of coding in the same language that I happen to grow up with.

I didn’t had the chance yet, to cover all the different modifications that were added to the RAD Delphi XE6 —  itself… Though, I ran a couple of sample demo codes. I’ll be at this in the coming days.

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).

Just another WordPress site