Open Source Conference in Guangzhou Next Week

J Aaron Farr on Fri, 16 May 2008

Next week will be the third annual open source conference hosted by the China Open Source Promotion Union (the text encoding of that website is messed up at the moment). Same as last year, the event will be held in Guangzhou and feature local and foreign open source experts. A schedule is up online, but I don’t know where the registration form is. Last year registration included a fairly small fee, which I imagine you could pay directly at the Shangri La hotel.

I’ll be speaking this year, so hopefully I’ll see some of you, assuming I can renew my China visa (new rules, not cool).

Deciding About AppEngine

J Aaron Farr on Tue, 29 Apr 2008

In preparation for a training course I’m running next week, I spent the night learning and deploying my first Google AppEngine site. This is a reincarnation of Decide For Me replacing the Rails version which replaced the original PHP version.

The real intent of this admittedly simple web site is to provide an admittedly simple, but not overtly trival, web application which can be ported to other programming languages and web frameworks with relative ease. The goal then is to first learn and ultimately compare different web frameworks and languages on something slightly more complex than Hello World but not quite a pet shop. A competent web programmer should be able to port the whole application in a day or two, even if addressing completely new technology. With expertise on your side, implementing it in your favorite framework should take an afternoon.

At the moment, I have the Google AppEngine code available in subversion along with a dated and somewhat poor Rails implementation (it was one of my first forays). I don’t make any claims about the quality of code yet. I’m more interested in the learning process and the release early elements of this endeavour. Though I do hope to clean up the code over time, or find gracious volunteers to correct my mistakes.

Ideally, I’d like to do one port a month, but with my current schedule, even that is a bit aggressive. In any case, with each one port, I’ll try to also capture thoughts on what I learned. With that in mind, I’ll hopefully have a full report on Google AppEngine sometime next week. In the meantime, my first impressions are sketched out below:

Google AppEngine

I haven’t done any serious Python programming in years and even then I was never very skilled at Python, so I had to learn a bit about the language in addition to AppEngine. From start to finish, the project took around 12 hours, including going through the AppEngine tutorial and a brief detour into the Django tutorial.

Having only used Rails for webapps for a while now (two, three years?), going back to a framework with less magic was both refreshing and awkward. Refreshing in that there wasn’t any magic that needed to be learned, so I picked everything up quickly. Awkward in that one becomes quite used to the conventions in Rails and forgets about a lot of the little busy work that goes on in web programming. Of course, my decide-for-me application is intentionally simple, so this overhead is slight.

A lot as been said about the AppEngine datastore. I personally don’t like ORMs all that much. They’re prefect example of a leaky abstraction if you ask me. But in the case of AppEngine, we aren’t dealing with hiding a relational database behind the scenes, so the datastore model feels much more natural. There are some pieces that feel missing if you’re used to the relational style like JOIN queries or even an OR in your conditional WHERE statements. But I found I didn’t miss them much and by the end of the project I was starting to feel like I was getting the hang of the API.

Debugging was sometimes less than ideal, but that had more to do with my poor Python skills than AppEngine. Deployment was a breaze. Scarily simple.

All in all, I’m happy with the result. I want to try another using Django and stretch things a bit more. There are certainly issues due to limited python libraries and no background jobs. But I’m impressed enough to seriously consider using AppEngine for larger projects in the future.

RIA Training in Hong Kong

J Aaron Farr on Sun, 27 Apr 2008

Next week, William Taysom and I will be in Hong Kong running a three-day training course on Rich Internet Applications—from AJAX to Flex & AIR. The course is hosted at the Hong Kong Productivity Council. Topics include:

  • Javascript and Actionscript fundementals
  • AJAX for forms and widgets
  • AJAX libraries including Prototype and JQuery
  • Adobe Flex (using both the SDK and Flex Builder)
  • Adobe AIR
  • Mash-ups (examples using Google Maps)
  • and more

There are still a few seats left, so register quickly.

ApacheCon Europe Photos and Slides

J Aaron Farr on Wed, 16 Apr 2008

ApacheCon Europe slides are now being featured on the front page of SlideShare. The official site for the slides is still the ApacheCon wiki. If you presented at the conference and haven’t uploaded or linked your slides yet, please do so (and ifyou have trouble, let me know.

Also plenty of photos are now up on Flickr including my own set. I didn’t take nearly as many photos this year. Then again, I wasn’t out in the city as much either.

Life Without a Cell Phone

J Aaron Farr on Wed, 16 Apr 2008

I haven’t had a cellphone for a year now.

It’s a crazy admission. Something I actually avoided telling people for a while because it seemed so… so… crazy. When I tell someone in Hong Kong, a modern city with a mobile phone subscriber rate above 100%, that I don’t have a mobile number, they give me that “I don’t know if I believe you or not” look.

I did give up my Treo, the one I had for years, when I moved to China. No sense in taking a CDMA phone around the globe. When we landed in Beijing, I bought a Motorola Pebl because it was reasonably priced and I knew no smartphone could satisfy me. The Pebl worked great for a few months until it was lost (probably stolen actually) in a subway.

But by the time the phone was stolen, we had already moved to Hong Kong and I wasn’t traveling around nearly as much. I was rarely without my laptop, so if I was out in the city and needed to make a call, I could usually jump onto a PCCW wifi hotspot and use Skype. And I’ve relied on Skype almost exclusively for a year now.

A year ago I would have never believed that I’d be living without a cellphone while my wife Jenny dutifully carries her with her each day. Yet here I am. And honestly, it’s not that bad. Sometimes I even relish my disconnected moments (heretical, I know).

But one of the biggest reasons I haven’t bought a new phone is that I haven’t found a phone I’m interested in purchasing. The Treo was a great phone. Not perfect, but reasonably functional. But over the years, Palm has dropped the ball (wow, that’s an understatement) and I never want a phone that I have to reboot (I’m looking at you Windows Mobile). I’ve been tempted by some of the Symbian phones, particularly the Nokia 95 or even an internet tablet like the Nokia N800. Even more than a smartphone, I’ve often pined for a decent e-book reader, particularly one that can handle PDFs. So my ultimate device could function as phone, email client, web browser, pdf/ebook reader and music player all with, of course, exceptional battery life. See? I’ll never have a phone again.

One device that has come close is the iPhone. I’ve been tempted time and again to purchase one, but I refuse to rely on a device that I must hack in order to use. Even the perfect device is not worth complete lock-in, which is the iPhone’s devil’s pact. And if provider lock-in wasn’t bad enough, there’s system lock-in as well. The SDK license is draconian (see 1, 2, 3, and 4 for just a few commentaries on this). I find it astounding that the iPhone has received as much developer support as it has. “Russell Beattie,“http://www.russellbeattie.com/blog/my-comment-on-yet-another-oreilly-iphone-post commenting on O’Reilly Radar a few days ago, put it very well:

I completely understand that you guys have an iPhone Hacks book to hawk, but honestly, your continued promotion of developing for the iPhone using unofficial APIs is harming other TRULY OPEN projects more worthy of finite developer time like Maemo, OpenMoko or even Android.

Instead of encouraging your readers to break the law (the DMCA however loathsome covers the sort of stuff you have to do to get code running on the iPhone), I wish you’d recognize that Apple doesn’t deserve this sort of attention from you or developers. Apple has decided to keep their device – however cool and interesting – to themselves and sandboxed developers out of doing innovative things. That’s their choice, and they should suffer the consequences of it.

So I’m much more likely to hold out until a decent Android or OpenMoko based phone is ready. In the meantime, I suppose I’ll just have to enjoy the silence.

Making Sense of Open Source Licenses

J Aaron Farr on Thu, 10 Apr 2008

Here are the slides for the talk I gave today at ApacheCon Europe:

The idea was to provide a basic overview of open source licenses, discussing on the philosophy of each license family and the business and community implications of various licenses. This relationship between license and community is one I don’t think is well understood, though it’s not difficult.

All in all, the conference is going great and Amsterdam is a awesome city. Looking forward to enjoying the last two days of the conference.

plants