Second impressions with PhoneGap

I’m now a registered iPhone App Developer! After the usual waiting, emailing, phoning, and faxing that I won’t bore you with because blogs all over the world are full of people ranting about Apple’s registration process, I now have my developer key. (Personally, I don’t see what people are complaining about…it wasn’t all that painful.)
So now that I’ve written two iPhone applications, the first thing I wanted to do was load them on the phone and see how they actually behaved on real hardware. The results were, lets just say, less than thrilling. While they ran and did everything I would have expected of them, there are strange inconsistencies between the rendering of WebKit on the phone vs the desktop.
Managing sites with Git and intelligent post-update hooks
I’ve recently begun drinking the koolaid of Git, and damn it’s tasty! The things I can do with git that I couldn’t have done before (or would have been difficult to do) makes me excited about it. In fact, the one feature that I thought was a drawback — the no-one-true-server nature of it — is actually its strongest selling point.
See, the way I’ve taken to doing my development now is I create two “remote” repositories. First is “origin” which points to a repository managed by Gitosis. Second is a “live” repository that points at a working directory on my production server. That working directory is where my live site actually runs in.
First impressions with PhoneGap
A few months ago I had the opportunity to meet with the crew developing PhoneGap down at their headquarters (Nitobi, down in Gastown district of Vancouver). It’s only a few blocks away from where I work, but the horrible downpour of rain made me think twice about going (hey, it is Vancouver after all). Next time I’ll bring my laptop with me, but it gave me an introduction to what they’re looking for help with, and where they’re taking PhoneGap.
Why, oh why did I ever leave California?
I love living in Canada, and I especially like living in Vancouver. I wouldn’t trade it for anything. I have a lovely wife, a great job, a wonderful city…what more could I ask for? Oh right, that’s it…warm weather! I’m not meant for frozen water falling from the sky, or bundling up into so many layers that I feel like an onion (or a parfait).
I don’t like the cold. I especially don’t like it when my office building thinks it’s still June. I felt warmer waiting in the snow for my bus this morning than I do right now at my desk.
Harder, Better, Faster, Stronger
On the train ride to work today I was listening to “Daft Punk” on my iPhone while reading my blogs, my usual morning activity. And as my mind wandered, the song “Harder, Better, Faster, Stronger” came on; it’s one of my favourites, as I’m an avid electronic music fan. But since I was reading Ajaxian and several other software industry business blogs at the time, the song seemed strangely appropriate. Everyone is trying to find ways of working harder, developing better software, releasing to market faster, and having a much stronger market position (honestly, this is what was running through my head). This made me think more about what I do to fulfill those 4 business goals, so well voiced by Daft Punk.
Mootools Fx.Index v1.0
At work I needed to perform an animation on a sprite-based image (e.g. one large image containing multiple stages within an animation, pre-rendered). Since there was no easy way within Mootools to iterate over an array of class names, I created one. I called it “Fx.Index”, but if you have a better name for it, please leave me a comment.
Fx.Index = Fx.Base.extend({
initialize: function(el, css_classes, options) {
this.element = $(el);
this.css_classes = css_classes;
this.parent(options);
this.previous_index = null;
},
increase: function() {
var index = this.now.toInt();
if (this.previous_index == index)
return;
this.previous_index = index;
var klass = this.css_classes[index];
if ($chk(this.options.classBase))
klass += " " + this.options.classBase;
this.element.className = klass;
}
});This code is taken straight from our product, which uses Mootools 1.11. So I’ll post an update once I port it to Mootools 1.2, at which point I’ll submit it to be added in the not-yet-created plugin directory.
GM Bailout PR fumble
Apparently buying a GM car 8 years ago entitles me to recieve a wonderful little email from GM about the proposed bailout. It seems they’re trying to stem the flood of people abandoning them in the wake of the US bailout.
Dear Michael Nachbaur,
You made the right choice when you put your confidence in General Motors, and we appreciate your past support. I want to assure you that we are making our best vehicles ever, and we have exciting plans for the future. But we need your help now. Simply put, we need you to join us to let Congress know that a bridge loan to help U.S. automakers also helps strengthen the U.S. economy and preserve millions of American jobs.
How do you name your business?
Yesterday at the Elephant & Castle Pub I was talking with a friend who’s decided to finally take the leap and move into doing business as a free agent. He’s filing all the business applications, getting consulting jobs (he already has 2 long-term gigs lined up), and is going through the motions of becoming his own business entity. All that’s left is a name.
Web businesses aren’t bound by the same requirements of conventional businesses to have a relevant name, but we have different problems. Do we pick a name from a bag of industry buzzwords, and sound like we’re the company from Office Space? Do we create a name that accurately reflects what you do as a business, and sound like a group of pocket-protector-wearing dweebs? Or do you go to an extreme and invent a unique name that means absolutely nothing, and gives the customer no inkling of whether or not you’re a business or a toilet scrubber? That last one feels like the DotCom days all over again, and while it may have worked then, I doubt it would lend much credibility these days.
Mootools 1.2 rocks
I’m developing an Ajax web application in Mootools. Two actually, if you consider the work I do with my day job. At work we’re using the older 1.11 version of Mootools, but in the interest of helping this great project, I’m doing my spare-time development using version 1.2.
Mootools 1.2 makes it a lot more obvious how to extend and create your own subclasses of existing objects. Instead of writing all my fancy UI components as a series of functions within my page’s class object, I can create separate objects to handle individual features and call out when I need to. The workflow and API is much cleaner and is far more consistent.
Getting started
I haven’t had anything resembling a blog in years, and while I have had quite a lot to say in the past, I felt as if no one would really care one way or the other. This impression has changed recently, since I’m once again working in an office environment, and my interactions with co-workers shows that I do have some bits of wisdom rattling around in my brain that’s worthwhile sharing.