Vincent Cheung

Vincent Cheung's Blog

« Newer Posts Home Older Posts »

Tuesday, February 01, 2005

OS X Address Book and iCal

Over the Christmas break, I converted my address book into the OS X address book, because 1, it's built-into OS X, 2, it's nice looking, 3, I figured it'd be easy to export it to other programs cuz Apple tends to stick to standards. It functions a lot better than the Palm software I was using. Too bad my palm pilot's battery life stinks and can't sync with PoBo (no serial cable), otherwise, I'd put my address book on it.

Sometime in like October, I started using iCal (built-in OS X calendar program) and it's great. Uses standardized calendar format as well. I also post my calendar online so I can view it anywhere and so can Helen. I've been quite diligent in keeping it updated. I like how I can have different categories (personal, research, school, birthdays, holidays). But it's dumb that it can't import the birthdays from the address book....


I finally discovered the real need for RAM. PoBo (my laptop) kept thrashing cuz it only had 256 MB of RAM. Got Brendan to get me an extra 512 MB for a total of 768 MB and now I'm good :). It never had enough RAM (Firefox and Thunderbird are hogs, Matlab is an elephant, OS X just naturally needs lots of RAM). Also upgraded my home computer to 768 MB.

Definitely with OS X, you need at least 512 MB of RAM, and the more the merrier - it actually uses extra RAM that you have.

CVPR 2005

Not quite official yet, but the reviews came back on my CVPR (IEEE Computer Vision and Pattern Recognition) 2005 paper got 3 very good reviews (all "definitely accept"s). Joint work with Nebojsa Jojic and Brendan Frey. Rebuttal period ended just a day or two ago and the final word is given at the end of February or so. It's in San Diego in June.

I've got a distributed computing system going, which is allowing me to run "stuff" on bigger and more video sequences. Getting quite good improvements in speed. All in Java and use object serialization to transfer work and results around. Made a fancy GUI for the client. Fixed some issues with installation on the client by using an "executable jar" that relaunches itself with particular parameters, i.e. server mode ("-server") and increase maximum heap size ("-Xmx512"). Floats are faster than doubles, but lose precision that I need (in particular for cumulative sums - you try adding 31x360x240 numbers together). I do however, use floats to transmist data back and forth to save bandwidth and memory - requiring upwards of a couple hundred megs of memory to run the client. I went through a phase of improving the basic client-server component of the system - occasional pings to keep the connection alive (the built-in keep alive only sends a signal every 2 hours or so, but home computer would lose connection after about half an hour), simultaneous transfer of results back to the server and work on the next work unit, stop thread to allow the server to stop the client, improved scheduling - try and approximate based on the previous client work time when the next work will be finished and assign clients accordingly, processing of results in the background, authorization of client upon connection, and more.

I tried to get it so that during object serialization, the class definition was also sent, but I ran into some problems and it got messy....Had problems with typecasting, though I could get around those by not assuming the sent work was a subclass of DistributedClientWork. Another bigger thing was that if the client work needed access to a class that wasn't on the client, then it'd be troublesome to also send those class definitions (plus need to use dynamic class loading, etc., which makes it harder to extend the distributed system by others).

New Software

I've been almost exclusively using my PowerBook since Christmas, cuz I've been at Helen's most of the time and that was all I had in Winnipeg. In terms of new software, this list will be basically only Mac OS X stuff:

1) Adium - awesome IM client (multiple MSN Messenger accounts, ICQ, etc., plus, the best part, is that it shows everybody's picture beside their name!, a few downers - poor handling of adding contacts, difficult to invite third/fourth/etc. parties to a conversation, can't play messenger games)

2) Quicksilver - basically a launcher (ctrl-space, then type in like "Word" and press enter and Word will open or "Saf" and Safari will open!, also other cool things, like controlling iTunes using just keyboard without iTunes having focus)

3) VideoLan (VLC) - video player that plays just about anything without any codecs (downside, doesn't play uncompressed avi's that I make from Matlab)

4) Cyberduck - pretty good (and clean) (S)FTP client

I'm not quite a switcher, but I do very much enjoy working on a Mac. I've become quite accustomed to it, though many of the programs I use are the same as those on Windows (Firefox, Thunderbird, iTunes, MS remote desktop client, SmartCVS, Office, JVM, VLC, Azureus, Matlab). Nice how I can ssh into the cluster directly from terminal rather than having to use a specific ssh terminal program.


CVS (Concurrent Versions System, is absolutely amazing! Totally changes the way I program. Keeps track of my changes across multiple computers much better (laptop, home, school). Keeps my changes together so I can remember what I did and when.

It's a little cumbersome at first and requires a bit of a learning curve, but it's definitely worth it. The client I use is SmartCVS ( Great little program. It's multiplatform as it's made in Java. Includes SSH connectivity.

The servers at school (alpha, maxwell, iplgrp, psi) all have the CVS server already, so the hardest part has already been done. There are some sites online that host CVS servers (sourceforge, freepository), but it's better to have a private server (faster, private), plus, it gives me full control over it.
« Newer Posts Home Older Posts »