The Old Blog Archive, 2005-2009

Archive for December, 2006

Annual Report of the OpenVanilla Fund-Raising Campaign

The annual report of the OpenVanilla Fund-Raising Campaign in 2006 has already been compiled, available in Chinese at (gpg signed document, UTF-8 encoding).

ObjectiveFlickr 0.9.2 (Ruby) in Sync with the New “farm id” Requirement

Also posted in Flickr API Group.

The Ruby version of the ObjectiveFlickr library has been updated. Version 0.9.2 includes support for Flickr’s new “farm id”, now required for newly uploaded photos since the format’s announcement.

Your old code will work without any change. If you also use this library’s helper functions that help you handle the photo information (a hash that stores photo id, server id, “secret”, and the newly-added farm id), there should be no problem working with new photos too.

Other minor changes include some refactoring and deprecations that should lead to cleaner code and style. Documentation is also updated. Please refer to its release notes for details.

To install ObjectiveFlickr, simply use “gem install objectiveflickr” for the latest version. The Ruby version is hosted at

The Objective-C version (hosted separately at will be updated shortly. I’m refactoring part of its code so it may take another few days.

High Way Service Areas

Some high way service areas in Taiwan have free wireless access now. They have already been 24/7 with convenient stores and gas stations, and now they have free wireless access.

It’s hard to write about transits probably because that’s what they are. Travel literature is more about places like cities, towns, countrysides, or about sceneary, people in history, art objects, or events. Transportation means or transits are part of the travel, but they are more like the backdrop. It’s harder to imagine a trip solely consisting of airport or train station hopping (not that there ain’t people who do that, it’s just more fringe). We go viaJFK to NYC. If we go to JFK, it’s because we’re heading elsewhere. There was once I put my instant messenger nickname as “SFO-NRT mm/dd1-dd2″ and a friend of mine asked if I was doing an airport-hopping trip. He took things too literally.

Transits can be what the Japanese call “ma,” or in-betweenness. Transits are not associated with memory and are not worth being written or noted exactly because that’s what they’re for. A trip overflown with self-boasting photos or captured memory (how apropos that phrase is) is like being on an all-you-can-eat spree, resulting in too much. Transits are there to give people a breathing space, a nothingness in-between the two stops, the two meaningful meanings (or the meanings-that-I-intend-it-to-be). They are there to be tasteless.

Still, I like the fact they have free wireless access here. Being connected on the road is a different thing. One is at the same time cut off from the beingness of stops themselves but still gets the access. Scribbling or doddling in such ambience is like working in a newly-remade partition. And anyway it’s a memoryless area. Things simply feel, to bear their own very properties, transient.

ObjectiveFlickr 0.9.1 (Ruby): Some Minor Update

ObjectiveFlickr 0.9.1 is released. This is a minor update. For details, please refer to the ObjectiveFlickr blog article.

ObjectiveFlickr 0.9.0 Released in Both Objective-C and Ruby

I’m happy to announce that ObjectiveFlickr Library 0.9.0 is released, available in two languages: Objective-C and Ruby.

The Objective-C version is the continuation of my work on the Flickr API framework, first released in September. Version 0.9.0 includes documentation, sample code, and the pre-built ObjectiveFlickr.framework which can be placed into your own Cocoa app. I’m planning to add unit tests and synchronous calls in the near future.

The reason I’ve created a Ruby version is that I need an ultra-lightweight Flickr library for my web applications. Since Flickr now provides return data in JSON, there is really no reason we need a myriad of Ruby classes (one for photos, one for groups, one for users, … and so on) that encapsulate different types of Flickr data. I’ve packaged the library into a gem so with just a one-liner ("gem install objectiveflickr") you’re all set.

The Objective-C version is hosted at Google Code, whereas the Ruby version is hosted at RubyForge. I also keep a blog that tracks its growth and progress (I hope).

I’m eager to learn if ObjectiveFlickr can help you better, so feel free to comment or drop me a line. Thank you!

On Bookkeeping

Some people I know are working on things like group calendars, group to-do’s, or group task tracking system. One common theme (use case actually) in those applications, and one that you also find in big boy apps like Google Calendar, is that you can “dump” things quickly. In Google Calednar you can click on any day and type “15:00 Meet-up with Taipei.js people” and Google knows you want to set up a calendar item beginning from 15:00 that day. Keyboard is still the fastest input device, and by allowing people to “dump” their thoughts, to-do or calendar items, you’re giving your users a big favor.

Now I wonder if we should really have something like that in bookkeeping. Done wite the days when we row-and-column Excel spreadsheets. In a messy situation such as when travelling aboard with an unfamiliar currency, something we just want to “dump” the expense record we have, and let the system do the rest of the calculation (and slip keeping). For example, “200 Yen a can of tea at Narita Airport” and “USD 20 subway prepaid card at the exit of JFK Airport”, then the service should be able to tell you that you spent 60 NTD at Narita and 660 NTD at JFK, using that day’s rates.

Of course by its nature a bookkeeping service needs to work both online and offline. Sync, security and multiple report-generation options are needed. If the service can keep track with daily currency rates or even your portfolio, so much the better.