Sunday, February 14, 2010

Day 0

Maybe as part of new-year resolution or just being caught in the iPhone frenzy, I decide to make myself familiar with programming on smart phone devices. Being a veteran computer programmer, I have a decade and half experience under my belt. However I have not done anything on cell phone devices (neither smart nor not-so-smart ones). So I set off on this journey to write a little (hopefully useful) program running on one of the smart phones on the market (iPhone or/and Android phone) and blog my experience along the way. In the process, I hope I can have some ones on the Internet find it worthwhile to read for gaining some technical knowledge or even finding some entertainment value out of this blog. At the very least, blogging provides me the incentive to keep myself going on this project, knowingly there might be someone waiting to see it through as eager as I am – no matter that how illusionary the existence of that someone might be J.

A few words on the format of this blog: it is similar to that of a typical travel log. Each post represents a write-up of events that take place on a “day” of this imaginary field trip. The “day” is, of cause, figurative and has no relationship to the real calendar days. I have a day job that takes most of my waking hours during the week – contractually and thankfully (in the middle of deep recession) so. I have to spend my evening hours or weekends to work on this project. Each post may span a few calendar days or more. But it is very much in my own interest and eagerness to get it done in a timely fashion.

As in any project, there exists obstacle (technical and non-technical) that seems insurmountable initially, testing my knowledge and will, and requires time to search/research, learn/unlearn to get around or get over the hurdle. I am sure I will come across some of that on this endeavor as well. I will document my setback and despondency with as much willingness as I do on success and felicity, in the hope of soliciting help from the greater viewing community of the Internet.

Now, before I set my foot out of the door, let me clarify the destination of the trip further. As fuzzy as it is now, I want it to be as challenge as it can be. There is no fun to document a trip to the neighborhood pharmacy. Is there? I want to climb a mountain on an exotic continent I have never set my foot on before and getting to its peak is venturous even for the locals. Technically speaking, the final product has to have a “kernel” component that alters/enhances some basic functionalities of the device. I will not declare victory if I just manage to get a dummy hello world program running. Those are for juniors and rookies. I want get deeper into the smart phone technology and come out claiming an expert on it. Further more, phone is a communication device first and foremost (well, a lot of people use it as a game console). I want to uncover the inner working of digital communication on those platforms. TCP/IP is my cup of tea for quite a while. Maybe I should take a sip at that first. Anyway, I will have better idea once I reach the continent, see with more clarity after I get inside the mountain…

I quoted the word kernel above. It is because the very concept of kernel v.s. user space in regular operating system might not be applicable here. I have no idea how iPhone OS looks like, at this moment. If it is a strip-down version of Mac OS, the same way Android is related to regular desktop Linux, the concept still applies. There are a lot of embedded devices running one space OS, by the way.

There is some money I have to spend on this learning expedition – I came to realize. But it should not be much (< $500 by my estimation). For now, I don’t even own a smartphone. But that expense can be postponed as I can work on a simulator - a software-based virtual phone on my laptop computer. I don’t think it has interface to receive/transmit cellular signals unless I have to install some special device to enable that. Or maybe the simulator becomes so advanced, it can simulate that as well.

As you can see, there are a lot of questions than answers at this moment. Enough introduction and self-motivation. Today is the first day of Chinese New Year of tiger (Feb. 14, 2010) – a good day to start to fulfill a New Year resolution after it was missed from the Gregorian one. Let the journey begin.

No comments:

Post a Comment