Category Archives: Geek Stuff

iPhone is the Reason I Wish I Knew C++

I knew not knowing the good old traditional c/c++ language would come back and haunt me one day.

The demand for iPhone developers exceeds the supply and I don’t see that changing anytime soon. The going rate for iPhone developers, at least the developers I know and trust, is $125/hour and up. I have some friends who are booked out at $200/hour for the next few months, although $125/hour seems to be the going rate in my network. At that rate, a full-time contract iPhone developer costs $5,000/week and it may take four to six weeks for an application to be developed. Sometimes it will take less and sometimes it will take more. Add to development the other costs – project management, design, QA, and marketing, to name a few. It’s not uncommon to spend $30,000 and up on an iPhone development project. iPhone applications are not cheap.

In this particular case, money is not necessarily the thing I am after, it’s really the excitement and possibility of working on a product I love and use everyday…

Tough Questions

A typical conversation with Bryan, my three-year-old….

Me: Bryan, Look. It’s raining.
Bryan: Why is it raining?
Me: Because there’s too much water in the cloud. And when there’s too much water in the cloud, water drops fall and becomes rain.
Bryan: Why is there too much water in the cloud?
Me: Because water evaporates into the air and eventually end up in the cloud.
Bryan: What is “evaporate”?
Me: ….
Bryan: Why is water falling from the sky? Is there a big hole in the sky?
Me: …. Um, no.
Bryan: Is the sky hard (as opposed to soft)?
I need to visit some science 101 sites for kids….

SVN Mania

Versions app

I’ve been meaning to set up Subversion for source control on my various projects. After having worked in an environment with tight source controls for almost half of a year, I’ve gotten used to the convenience and peace of mind of having a source control in place. So today I took the plunge and got svn to work with a SVN client, Versions, along with my favorite lightweight code editor Coda, on my MacBook Pro.

Life is good.

CitiMobile, CitiSuck

Firethorn released a pretty cool iPhone app today that allows mobile banking (check balances, transfer funds… etc). But Citibank is simply not ready for this roll out.

First the website on CitiMobile was buggy. Then I found out they don’t service the iPhone. I wonder how much longer I can take their crap before going with BoA or another tech savvy bank in terms of customer-facing applications…

Why am I still banking with them anyway?!

Update: Citibank has been rolling out incremental updates to the app. Unfortunately it still sucks and is not very intuitive when it comes to mobile UI. Some companies just don’t get it.

The Curse of Speed

As I am going through the thousands of shots I’ve made in the past few weeks, I realized that the Nikon D300 has made my post production process a nightmare — not because it generated any lesser quality files or colors, but rather the sheer volume of shots I’ve made by taking advantage of its relatively huge buffer — six burst shots a second for a few seconds, and do it abundantly throughout the day — I ended up with hundreds of similar-looking shots I have to go through and decide which ones I want to keep (being as indecisive as I can be)…

Fuji S5 (and previous generation S3 and S2) owners have a saying that “it’s not the number of shots you can make, it’s the quality of shots you capture that matter” And this trip has certainly made that philosophy sink in that much more.

When the D300 and D3 came out, I asked myself if I’d upgrade to them had money not been an issue. Though the D300 is a really solid camera, I now no longer believe the D300 being an upgrade because I just like the files that my Fuji generates more (the film-looking grain, excellent white balance, incredible handling with high ISO… etc). I’ll probably get another Fuji if they ever made a full frame camera. Until then, my next move would probably to get another S5 so I don’t need to swap lenses as often on the field or during sessions.

Strange Week

Please bear with me as I go through a series of events that may or may not have anything to do with each other — all in one post. I still think an entry per story/event is still the best way to approach blogging. But time seems to keep running out on me these days, hence the “mega posts”…

So I finally got to meet Sebastian in person after having read and left messages on each other’s blog for seemingly eons (in blogsphere time, that is). We had a series of very interesting and only-if-we-had-time type of conversations over dinner in San Francisco. How I enjoy intelligent conversations…

On my new “job”, one reason I took the job was so that I could finally jump into Flash and Flex full time. But all that hope is all but gone now. Due to the relative shortage of qualifying candidates the company needs to develop the project using Flash/Flex, they’ve decided to switch strategy to meet the internal deadlines using JSP, CSS, Javascript, Ajax with a dash of Flash. It’s good and bad news all rolled into one. On one hand, I am glad they made the call because this means my existing skills in CSS and Ajax would make the development process a lot more rapid. But I am also disappointed that I won’t be leveraging the project to further develop my Flash/Flex skills. But I guess this is all good considering the baby girl is arriving anytime this week now… Lack of sleep makes learning new things an impossible task.

Also, given my relatively unique combination of skills and experience in interaction design and programming, it seems like both the design and tech teams are trying to leverage my strengths to their own advantage in all-but-invisible company politics. OH Crud…

Then came Thursday morning — just another normal working day for me. But that morning almost became a traumatic day for me as I, along with dozens of other Caltrain passengers, witnessed someone almost got run over by the very Caltrain I was supposed to catch for work. Luckily the train missed him by about 1/3 of a step, ending up clipping him on his right temple (at which spot blood seemingly came pouring out nano seconds later). The train would’ve crushed him if only he’d accidentally stepped into the track 1/10 of a second earlier….

The blow knocked him almost unconscious. Unable to stand straight, he almost fell towards the track, which would have been fatal. Fortunately a couple of cyclists were close enough to drag him away from the train, which was just about to come to a complete stop. Everyone was shocked and froze as if nobody believed this was happening — me included. I called 911 and was told by the dispatcher that a flood of calls also came in at the same time about the same incident.

The fire fighters were the first there at the scene along with its own medic unit. Then the police came one after another (3 on motorcycles with 2 others in 2 separate cars). The ambulance, of all services, came the last — looooooooong after the fire fighters arrived. Caltrain also dispatched a supervisor almost immediately, arriving after the ambulance.

It was a shocking experience that reminded me of the collapsing of the NYC Twin Towers on 9-11, of which I also witnessed as the towers crumbled…

I learned a few useful things having watched the entire event unfolding: (a) Fire fighters are awesome. If anything, they need more funding, not to be cut back! They were the first responders and the very last to leave besides the Caltrain supervisors. (b) Police weren’t really all that helpful except to be there to “investigate” what happened. They showed no urgency nor sympathy towards the person who was injured (as I saw a couple of them were even smiling and laughing as they rode away on their motorcycles — the little respect I had left for the cops was diminished that much more). (c) Look both ways when crossing the road, train track, whatever… (d) Humanity usually shows its best side at the worst of times. (e) Life is fragile. That very well could’ve been me.

Then came Sunday. Grace scheduled two photo sessions for me almost back to back. Now I have around 5,000 photos (along with ones from Missouri) to post process in the coming weeks… And the baby is coming…. and the looming deadlines of the new job… Oh, life…

Survived First Day of Work. Tired.

So I survived my first full day of work after years of freelancing since I left my last job. Though I spent most of the time reading the Internal documentation on the projects, I still felt like I over used my brain for the entire day.

One thing about returning to a full-time job is that I am not working alone anymore. And I get asked questions from time to time, which also helps sharpening my mind a little more. Being able to bounce ideas off of other is an important learning process, especially since I’ve hit a certain plateau in terms of programming techniques. I needed to be with other programmers and artists to move to the next level.

Another advantage is I am forced to walk to take public transit (which is slightly cheaper than driving to work). I have to walk 15 minutes to and from the Caltrain station, which is just like when I lived in NYC. This will definitely help reduce some of that fatherly fat around my belly.

So the week will progress on with meetings after meetings in handing off workload to me to start implementation. Good times.

Full Time Employment Again (Almost)

After almost four years of freelancing and eating Bryan’s food scraps, I finally caved in and signed a short-term contract with a local startup as a Flash developer. Since the company is in this super stealth mode, I don’t want to reveal too much about what it is. But I sure look forward to learning some enterprise-level skills after having worked almost entirely independently for a few years.

Actionscript has come a long way with v3.0. But I was surprised how fast I picked it up with my first Flash project a while back considering how much I hated Flash. It’s going to be interesting to see how I will be using it in an almost entirely Object Oriented environment using Model, View, Controller concepts — both of these things I actually wrote on my white board earlier this year as my new year resolutions for 2008…

I will probably hop on the “full time” train once I have checked out the potential of the project. I am definitely not going to repeat the same mistakes when I was a full time employee last.

Ah, life.