Sunday, January 27, 2008


I've noticed that the bird population on campus seems to be on the decline. I can hardly find any herons, and Bill the stork-billed kingfisher is missing. The common kingfisher is also nowhere to be seen. Either they've flown away, or it's simply too hot outside for the birds.

It's been a while since I managed to spot any interesting birds. Today however, I managed to take a few photos of the grey wagtail which I see very rarely. Here she is, flitting around on the pipe railing behind my office.



Saturday, January 26, 2008

Vintage Campus Cat


The cat is a classy animal. Sometimes only a fancy, artsy sepia-toned photo can do them justice. This cat sits under a shady tree on campus, cooperating fully with me while I took its photo with my camera on a tripod. The sepia effect was added later in Photoshop.

Friday, January 25, 2008

Photoshop Hero


The job at work sometimes requires me to be a Photoshop Hero. Since I have no formal training in graphics design, my only source of guidance is the interwebs which gives me tutorials such as You Suck At Photoshop, and the fact that I've been playing with raster image editing programs for 20 years (I feel old - and I still suck at it). Someday, when I feel worthy, I should get myself one of those t-shirts.

Monday, January 21, 2008

Scouting For Breakfast

In the clear blue sky of morning, this Brahminy kite circles overhead looking for breakfast. The Brahminy kite is one of the most ubiquitous raptors here. It usually lives near water, and eats a variety of things. These pretty brown and white birds are a common sight in the sky.

The local birdwatching guys know that these kites nest every year on the hills inside campus. They've actually seen the nests, though they reported that they didn't find any last year.

These shots was taken from a balcony with maximum zoom (432 mm on the Sony H2).



Sunday, January 20, 2008



If you haven't seen this movie yet and you intend to, stop reading right now. Major spoilers lie ahead. You have been warned.

People have described Cloverfield as Blair Witch meets Godzilla, though that description doesn't really do it justice. Imagine a monster attack told through the eyes of one of the panicking people in the street, who happens to have a camcorder with him. The movie is made to look like amateur camcorder footage, complete with shaky movements, obvious autofocus glitches, jump cuts and old footage accidentally taped over. For the most part, this storytelling technique works very well. We get to feel the characters' panic, we strain to get a glimpse of the monster, and we don't know anything the characters don't. The shaky camera movements did get a bit distracting sometimes, but most of the time it helps the narrative (Michael Bay take note, use shaky camera effect only when it is appropriate to do so).

The monster itself is a giant dinosaur-arthropod-godzilla-cthulu-thing from the deep, which also carries with it parasitic man-sized bugs which are nasty and vicious. We don't really get any explanation of what it is, where it came from or if it was even stopped in the end, and that was probably the best storytelling choice the producers made. It doesn't matter where it came from, or what it was. The audience has seen this kind of thing before a million times in a bunch of different bad movies, and thus can fill in the details using the tropes they've already seen. The monster in this one behaves exactly like a good movie monster is expected to behave. It levels buildings, eats people, and is impervious to whatever the military throws at it. The parasites are reminiscent of the facehuggers from Alien, or perhaps the bugs from Starship Troopers. The focus of the movie isn't the monster, but how the characters deal with the emergency and panic.

I have few gripes about this movie. The only gripe I have about this movie is that while the storytelling technique is very novel for this kind of movie, it lacks the punch that it should have had due to the fact that Blair Witch hit pop culture first, and the deliberately amateur-looking camcorder style has been endlessly imitated in parodies. Nevertheless, it is very refreshing that a monster movie was made with a different take on things, rather than the boring CGI-fests with cartoon creatures that take the center stage and eclipse everything else.

Friday, January 18, 2008

Random Git Links

This week I've been trying to get my head around Git (and Guilt), and using source code management for hacking. I've yet to get a comfortable workflow with these tools. Here are some Git links for you, for those interested:
  1. Kernel hacker's guide to Git.
  2. A video of Linus talking about Git at Google (also available as a downloadable .avi file).
  3. A video of Randal Schwartz on Git.
All these links are a bit old, and the videos are long but informative.

Sunday, January 13, 2008

A Single Bird

I went to the lake today looking for feathered flying things, only to get this one photo of a bird on a wire.
I got photos of other things, like buildings and monitor lizards, but I'll save that for another post.

Saturday, January 12, 2008

The Official HVF Announcement

Jeff Sipek has been writing an operating system thingy for zArch called HVF, which has been announced to the world today.

From: Josef 'Jeff' Sipek [email blocked]
Subject: [HVF] [ANNOUNCE] HVF v0.11
Date: Fri, 11 Jan 2008 12:36:36 -0800 (PST)

Hello all!

I would like to announce the first public release of HVF - an open source OS
for the zArchitecture written in C.

Currently, the OS does very little. It consists of:

- simple process scheduler
- console layer (currently supports only one 3215 device)
- page allocator
- slab allocator (to provide a libc-like malloc())

Once the system is IPLed, it outputs some information to the console, and
then continues to idle. While this is not much there is enough code that it
lends itself to (aside from my goal with it - see below):

- being used as a basis for experimenting with zArch
- being used as the beginning of a toy OS

Since I do not have access to a zSeries and therefore I had to resort to
developing and testing on Hercules. It is possible that there are issues
that need fixing to get things running smoothly on the real thing.

The ultimate goal is to have a VM/370-like OS that runs on the zArchtecture
- to allow Linux and other modern OSes to run concurrently on a single
machine. Here are few of the goals on the TODO list:

- nucleus should be all 64-bit (minus the arch mode switching code)
- mostly in C
- support multiple users
- use SIE to virtualize the hardware (S/390 and zArch modes)
- give something to the mainframe hobbyist community to play with :)

Note that this is all for the hypervisor - I'd like to have a CMS-like OS as
well, but that's secondary. (In a couple of days, I'm actually planning to
post a list of ideas for the guest OS to the HVF mailing list - see below.)

You can find the released source code in a tarball at:

I use Git[1] as the version control system. You can browse the history, as
well as obtain the source at:

Feel free to grab a copy of the source code, build it (see
Documentation/building.txt in the source tree), IPL it, tweak it, and submit
patches :)

I have also set up a mailing list as a place to discuss design, comment on
code, etc.:

Currently, the list gets commit messages whenever something changes in the
repository but I'm hoping that once people join it'll be more interesting

Then there is the IRC channel where you can catch me pretty much all the

server: (the OFTC network)
channel: #hvf

And finally, I have decided to use GPLv2 as the license of choice for the
code. The major advantage of doing so is the ability to borrow code (with
proper citation of the borrowing) from other GPLv2 projects - namely Linux.
The extent of the borrowing is restricted to basic building blocks - e.g.,
atomic variable types, locking primitives, but not much more beyond that.

Josef 'Jeff' Sipek.

HVF mailing list

Using GMail On A Linux System

Let's say you want to have a functioning email system where you can use exim (or postfix or sendmail...) to deliver your emails and fetchmail or something equivalent to retrieve it, with procmail to sort your mail into neat little mailboxes and mutt as your MUA. It shouldn't be too hard, right? After all, lots of folks have a setup like this. Now let's say you want to subscribe to a high-volume mailing list, like LKML. You'll need an email service that is:
  1. Reliable
  2. Has a lot of storage space
  3. Has a domain that's free of spammers and other kinds of abusive people
  4. Supports POP3 and SMTP
I could use my CS account, but then it's neither reliable nor has a lot of storage space. I could use my ISP's email, but it fails the first three criteria. Therefore, using GMail is my only remaining option.

Setting up fetchmail to get emails from your GMail inbox isn't hard, and there are numerous guides on the internet on how this can be done. I found this guide to work for me. The following is a cliff notes step by step procedure of what to do (I put my certs into ~/.certs instead of the system-wide /etc/ssl/certs):

$ mkdir ~/.certs

$ cd ~/.certs

$ wget -O Equifax_Secure_Certificate_Authority.pem

$ chmod 644 Equifax_Secure_Certificate_Authority.pem

$ openssl x509 -in Equifax_Secure_Certificate_Authority.pem -fingerprint -subject -issuer -serial -hash -noout

$ c_rehash .

Now, assuming that you've enabled POP3 in your GMail account preferences already, you can use the following .fetchmailrc example to grab your email:

# Set some defaults
defaults protocol pop3,
timeout 300,
mda "procmail -f-"

# Get mail from Gmail
user 'gmailusername' there with password 'topsekrit' is localusername here
ssl sslcertck sslcertpath /home/localusername/.certs

Change gmailusername, the password, the certs directory (/home/localusername/.certs) and localusername to values that make sense for your system. The nokeep option removes email from the server, so you might want to change that to keep if you like GMail to retain the messages (I don't know if that option works correctly with GMail, though).

Next you'll need a .procmailrc. Mine is relatively unsophisticated (everything goes inside the inbox):


# All mail goes to Inbox

For setting up exim4 for mail delivery via gmail, this guide at the Debian wiki gives a solution that works pretty well.

Finally, you might want to automatically retrieve email via a cron job (this does it every 15 minutes):

$ (crontab -l 2> /dev/null | echo '0,15,30,45 * * * * fetchmail') | crontab -

Sunday, January 6, 2008

Kingfishers In Focus

The following picture of the common kingfisher is one of my first shots with the tripod. It's a bit nicer than my handheld shots, but not by much. I can't get close enough to the birds clumsily carrying a large tripod. This is a good time to get a telephoto lens attachment.

This is his favourite branch.

I like how this one of the white-throated kingfisher turned out. I didn't use a tripod, but hid inside my car and took the picture . Usually I get a blurry bird with everything else in focus, but this time I have my subject in focus (with a blurry everything else).

Saturday, January 5, 2008

Malaysians In Space

The first Malaysian in space visited our university today, and I got to attend the event. Here are the photos I took of Dr. Sheikh Muszaphar Shukor the astronaut. He's the guy in the blue jumpsuit with the Malaysian flag emblazoned on it.



Friday, January 4, 2008

My Own Little IBM Mainframe

After Jeff insisted that I try out the Hercules zSeries emulator, I downloaded it and installed Linux on it with the help of his tutorial on how to install Debian on Hercules. It took all day, but now I have a spiffy little emulated mainframe to play around with.

$ uname -a
Linux manwe 2.6.18-5-s390 #1 SMP Sat Dec 22 21:05:05 UTC 2007 s390 GNU/Linux

It's really dead simple to do, if you follow the instructions correctly. My host system is Debian Etch, and I'm running it on a Core 2 Duo machine with 2 gigabytes of RAM. It's relatively snappy, despite being an emulated system. Currently it's running a 31-bit kernel, but you can also run a 64-bit one as well.

Thursday, January 3, 2008

Verifying A CD Burned From An ISO Image

After you've burned an ISO image to CD (instructions on how to this can be found in a previous blog entry), you may want to verify that the data was written to CD correctly.

First you need to find out how many 2048-sized blocks the ISO file takes up. Simply divide the size of the file by 2048. For example, for the Debian Etch DVD disc 1, the resulting number is 2294149.

Then, you find the md5sum of the CD or DVD inside your drive (in the following example, /dev/dvd):

$ dd if=/dev/dvd bs=2048 count=2294149 | md5sum

If the resulting md5sum matches the one of the original ISO file, the write was successful.

A more detailed guide on verifying burned CD data can be found here.

Tuesday, January 1, 2008

Flying Cars

A complaint I make every year since we entered the 21st century is the utter lack of flying cars in the new millennium. This year I made the same gripe, but now I take it back. The recent Rose Bowl Parade has proved me wrong. Honda had a flying car float, which looks inspired by the flying DeLorean from the Back To The Future movies, but strangely uses the Transformers noise. You can see the pictures at Autoblog, or videos here and here. Thanks to my friend Sillystix for alerting me to this.