03 Jun 2007

TagEncoder 1.1 Released

tagencoder is a mp3 tag converter that converts chinese, korean or japanese mp3s to unicode tags that are compatible with itunes.

for a while i have been using a private version that fixes many bugs and is also universal. finally i thought i should roll a release, so here it is, TagEncoder 1.1.

... Read More

03 Jun 2007

EyeTunes 1.3 Update Fixes PersistentID Support

for non-mac-developers, they can stop reading here and skip to the next post.

iTunes 7.2 broke persistentID support in my EyeTunes.framework. after some emergency coding and some great contributions from Andy Kim, i've released EyeTunes 1.3 which has a whole slew of new goodies such as memory leak fixes, persistentID support, proper iTunes versioning support and most importantly, a cleaned up include structure to remove circular dependencies in the includes.

... Read More

30 May 2007

microsoft surface

microsoft just announced that they are going to commercially release a smart surface product called "surface". it consists of a 30" lcd screen one an acrylic surface that is a multi-touch surface. no idea about price except that it will start to appear in hotels and cafes.

Ms Sc Collab Map App

the best thing about it, in my opinion, is the ability to detect devices. i'm pretty sure it has nothing to do with rfid or anything, it is just that the touch screen is calibrated to detect a device surface and then connects to it via wifi or bluetooth to establish it's identity. at least that is what i think, i don't know how they would identify multiple devices though?

Picture 3-1

... Read More

26 May 2007

format partition as fat16 on mac osx

just in case i forget, in order to partition a disk with a FAT16 partition:

diskutil partitionDisk /Volumes/NDS 1 MBRFormat "MS-DOS FAT16" "NDS" 1000M

that is:

* /Volumes/NDS: the mount point to partition, could also be /dev/disk1
* 1: the number of partitions
* MBRFormat: the partition format, MBR is the usual default for removable storage
* "MS-DOS FAT16": partition type
* "NDS": partition name
* 1000M: 1000 megabytes (size of the partition, if it is the last, it will span to the end of the drive)

... Read More

26 May 2007

why should i trust an apollo app?

i wanted to check out some of the digg content entries, but this caused me to abandon it when i saw this warning dialog:


so why would i trust an application that does some sort of visualisation of digg data to allow unrestricted system access. it is not that i don't trust the author's honesty, or digg's vetting process. but the warning dialog should be sounding alarm bells immediately why i should be installing it. maybe i'm just paranoid, but i'll happily live in my restricted browser-with-flash-and-java world, thanks.

... Read More

25 May 2007

linux firefox font size woes

i've been putting up with some annoying font size problems with firefox in linux for a while. and finally it annoyed me enough to go figure out what was wrong. i use gnome as my desktop and everything on the desktop has a consistent font size in the menu bar, except for firefox.

so digging around, it turns out the the dpi detection on my version of firefox ( on gentoo is broken. so if i manually set it to the correct dpi (you can get it from xdpyinfo) by typing "about:config" in the address bar and looking up "dpi":

then everything becomes happy again:

... Read More

21 May 2007

the battle of algiers

watched an old film over the weekend called "The Battle of Algiers". it is a portrayal of the battle of independence for algeria against their french colonialists. despite being filmed in the 1966, it is a very poignant and memorable movie about the struggles with both carrying out guerilla warfare and defending against such attacks.

the movie illustrates how the motivation of a small, ill-equiped but dedicated terrorist can carry out their attacks and the brutal response by the french which only does more to infuroriate the previously agnostic bystanders. a good dose of torture by the french to "extract information" and the inhumane attack on civilian targets draws stirring parallels with the situation in iraq.

one of the most memorable quotes in the movie is when the leader of the resistance tells his underling on how to win a revolution:

Acts of violence don't win wars. Neither wars nor revolutions. Terrorism is useful as a start. But then, the people themselves must act. That's the rationale behind this strike: to mobilize all Algerians, to assess our strength.

watch the trailer on their official website. it was nominated for an oscar in 1967 AND 1969, although the trailer really doesn't do it justice.

Battle Of Algiers

... Read More

18 May 2007

welcome 30" display visitors!

just got access to the new google analytics and was goofing about looking at who is visiting this site. apparently, there have been 182 visits from people using 30" displays (2560x1920):


... Read More

16 May 2007

what is the fuss?

this blog post claims that mister wong (a german & chinese social bookmarking site) is "offensive" to asians? huh? just like askjeeves was offensive to british people? unlikely.

Logo V2
being chinese, i don't find it offensive at all. but neither do i find it runny funny. why would mister wong be more of a master of my bookmarks than say, mr. smith, or mr. bloggs, or mr. nakamura? it's just an arbitrary name that is supposed represent a, according to this interview, "somewhat more multicolored and an emotional figure created." if that is the case, then yeah, it did stir up some emotion, didn't it?

... Read More

11 May 2007

summary of python interfaces to amazon s3

after i carelessly ran an idle amazon ec2 instance for a month doing nothing, and then geting charged US$40 for the privilege by amazon, i swore off playing with it again for a while.

recently, i've been looking at mass online storage and the ways you can access it, i came across a couple of interesting "deals" like $3/month for 20GB on amazon s3, 140GB for $10/month on dreamhost and $49/year for 25GB on bingodisk.

those deals seem pretty good, dreamhost offers all sorts of ways to get your data on to there, such as rsync over ssh, sftp or webdav, bingodisk offers only webdav and amazon s3 uses it's own buckets/keys system over their HTTP based API.

amazon s3 is the most attractive since you use what you need and can quit any time. bingo disk comes second on price and unlimited bandwidth. dreamhost is good if you really do need 140GB, but right now, i can't think of why i would want to. plus, how long would it take for me to upload 140GB over my 1.5Mbit upstream? (ans: over 3 years.) but if i only use 20GB, then it doesn't make much sense to pay more than the other plans.

hence, i was thinking of giving amazon s3 a try. there are a growing number of cool tools available such as s3 browser and jungle disk. s3 browser is just a very simple mac only app for you to add and remove objects from the s3 storage system. jungle disk is a local webdav proxy that exposes your s3 bucket as a webdav share. it works on linux, mac and windows. pretty neat in my opinion.

other thing i wanted to know was what the support is for python tools. turns out there are a couple of them so i thought it would be interesting to list them all out:

Amazon S3 Library for REST in Python

this is the official python implementation of their S3 protocol from amazon. pretty simple and straightforward, does the trick. link.

Python Amazon

this is an unofficial implementation of the protocol for both the S3 and SQS service. has epydocs although they're not that much more useful than looking straight at the code. link.


this is a wrapper around the amazon official library to make it more "pythonic". however, on first glance i didn't find it much better than the amazon official implementation. instead you use simple basic python setattr, getattr rather than the explicit methods in the S3 module. maybe some prefer this over the amazon one. link.


this is a fuse-python module that exposes the s3 buckets as a filesystem using the fuse module/library. that means it should in theory work on macfuse and vanilla-fuse on linux. link.

finally, worth a mention is s3sync which is in ruby but basically does file syncing for you like rsync. except it doesn't do incremental backups, but keeps track of what has changed and what has not by setting metadata on the objects in your s3 buckets. pretty neat.

well, after all that poking around, i still haven't made a decision on what to use for my offsite backups yet, but s3 seems to be winning out over struggling with webdav. mac's implementation of webdav (via bingodisk) does leave quite a bit to be desired.

... Read More