-
Language Mavens vs Tool Mavens
Oliver Steele writes an excellent article on language mavens vs tool mavens, or: do you use Emacs/Vim+insert obscure language of your choice here vs do you use a mainstream language such as C#/Java with an excellent supporting IDE, such as Visual Studio or Eclipse? (Or maybe you use a mainstream language without any sort of IDE, in which case you’re doing yourself a great disservice.) Two quotes I liked from the article:
Why canít one be a language maven and a tool maven? Itís hard. One reason is that developers have limited time, especially for learning new skills. You can use any given block of time to master language features, or to master development tools … in fact, the most powerful languages may initially have the least powerful tool support. The reason for this is that the language developer, like the language adopter, has to make a choice: whether to dedicate limited development resources towards language features, or towards tool support.
Kudos to the Lambda community for finding the article.
-
On Language Evolution
Patrick Logan writes an insightful blog entry about problems with ‘rigid’ languages:
I am not sure why Python is changing or needs to. But the core language is more limited than Lisp or Smalltalk in the sense that it is “C”-like and distinguishes significantly between function calls, operators, and control structures … A more uniform language would not have as many of these backward-compatibility issues. This is the main issue I have with Python… it’s syntax is OK, but not great for extension.
This is also one issue that I have with Haskell (its syntax and semantics aren’t quite malleable enough for some embedding of domain-specific languages), but I’ll save that rant for a rainy day.
-
Geeky T-Shirt or Wot?

-
fork: Resource temporarily unavailable
If you’re seeing the above error on Mac OS X, see pdm’s Mac OS X hint for the quick fix. For a more thorough explanation, check out John Bellardo’s page about the fork and vfork problem in Darwin. John’s page also has a neat kernel extension that somewhat fixes the bug, but it didn’t work for me with Panther (10.3.5), and I was after a really simple fix.
Update: If you’re running Mac OS X 10.4 Tiger, there’s a much easier solution that involves (you guessed it) editing a launchd configuration file.
-
For the price of one ink cartridge
-
New York, Sunday to Tuesday
Conrad, Felicity and I took an Amtrak train from Boston to New York without any dramas, which is nearly always a good thing when you’re travelling. One nice thing about taking the train (apart from missing the ten-hour airport queues and security checkpoints) is that you get to see all the gorgeous scenery along the way. Since it’s autumn in the USA right now, I got some very picturesque scenery of gorgeous brown and yellow tree leaves. I unfortunately didn’t see any autumn-like scenery in Boston, since the city’s a bit too warm for the browning leaves, so all the nice autumnness is out in the countryside. Mmm, soothing scenery good.
We unloaded at Penn(sylvania) Station in New York City on 34th Street: I was planning to catch a taxi to my hotel (on 77th and Broadway), but since Flea is a native New Yorker and knows the subway lines pretty well, navigating the subway to the hotel was simple with her help. I’m really impressed by New York’s subway system: trains tend to be very much on time, there are subway stops very frequently (at least in Manhattan), there are lots of signs posted up everywhere telling you what platform you’re on and what platforms you can transfer to, transferring is really simple, and the trains are fast. (Express trains actually run on a completely separate line rather than sharing a line with slower trains; what a concept! :-) It looks like the designers of the subway managed to make it cope with the population increase very well: in the few times that we’ve caught the subway in rush hour, the trains weren’t all that full, and trains came once every two or three minutes. If only Sydney had a subway system to match New York’s!
As for the actual conference that we’re attending here, that’s been great so far. Conrad and I gave a demo and a poster session (short paper) on Tuesday, and both of them went well: we had over a dozen people talk to us in the demo session, of which a few seemed genuinely interested in the work we’re doing, and around ten people visit us in the poster session. I also managed to finish off an initial implementation of what hand-wavingness we were discussing in our short paper about 10 minutes before the poster session started, which ruled. Flying by the seat of your pants is always fun. There were some very cool other posters and demos around, too, including a very cool one on graphing relationships between various sorts of music and musicians (which was admittedly mostly very cool because it was graphing relationships between bands I like, such as DJ Shadow and Faithless …). There was even one poster was on algorithms for maintaining consistent global state for online multiplayer games; buggered if I know what that has to do with multimedia, but it was appropriately awesome, nevertheless.
Columbia University, where the conference is being hosted, is gorgeous. I promise I’ll put some photos up in my gallery soon, but for the time being, I can try to summarise it as: renaissance-like, neo-classical, generally pearl-white coloured, peaceful, inspiring feel. Like Cambridge, MIT and Harvard, it makes me wish I was five years younger and doing an undergraduate degree again. :) (Though New York isn’t quite as much of a meat market as Boston is. Very important factor, you know.)
Anyhoo, now that all our demos and presentations for the conference are over, we can wind down a bit and relax: attend the conference (and/or satisfy my shopping fix) during the day, and head to the clubs and pubs at night. We did go out to two cool pubs on Sunday (Fez and some-other-name-I-can’t-remember) since it was K’s birthday that day, but I’m sure I’ll be dragged out to be sufficiently intoxicated later in the week too. Yay, work bit over, time to play!
-
Ghost in the Shell: Standalone Complex
I’ve seen Volumes 1 and 2 now, and it’s looking like it’s going to be a really good anime series. It’s rather difficult to compare it to the quintessential Cowboy Bebop series since I haven’t got to the ending yet (and Bebop went from great to awesome after seeing its memorable ending), but the episodes so far seem to set up a very, very promising storyline indeed.
Aside from that, the theme song (“Inner Universe”) by Yoko Kanno just absolutely rips. Her soundtrack for Cowboy Bebop showed that she’s a genius, and her consistent, continued awesomeness in the soundtrack for Standalone Complex shows she’s a true prodigy. Arguably one of the best musicians of this entire century, in my totally overrated opinion.
-
Boston, Part the Second
You’ll all be glad (I hope) to know that our presentation at the MIT Media Lab went quite well. We spoke with some of the folks there, including Ted Selker (inventor of the beloved (?) red-nosed pointing device popular on the IBM Thinkpad and Toshiba laptops), Henry Lieberman and Barry Vercoe (inventor of Csound), and gave a presentation to around 10 people which went quite smoothly. I definitely felt humbled at MIT: they have a lot of smart people there, who do a lot of rather smart things. Whether the media lab is part of the smart group, I’ll reserve judgement on that and leave that decision for the Internet rumour-mongers ;).
Since that was the major task for the week all over, I’ve have had two pretty cruisy days on Friday and Saturday: both days involved beer, learning a bit about baseball, exploring Boston, and chatting to Monty. On Friday lunch (neé breakfast), Monty took us to an awesome little Chinese restaurant named Mary’s, famous for their Dun Dun Noodles, which were apparently so beloved by the Boston community that they somewhat regularly pack them into dry ice containers for their customers to take on plane flights to other cities. (True story. No coincidence that Mary’s carries the Annals of Improbable Research magazine, I’m sure.) On the rest of Friday, Conrad and I visited the MIT Coop campus store, which, in America, is pronounced “Kupe”. As in, the things which chickens go cluck clik in. Riiight. We also visited the Harvard Coop book store (since we were too manly and/or stupid to find the actual Harvard Coop campus store), which disappointingly did not have any Luis Royo nor BattleTech books in stock. After that, we met up with Monty at home for some Tex-Mex flava dinner, where I had a Corona, a Tequila shot and another beer later on. It was all good until I was wiped out at eleven o’clock, and decided to hit the hay early. (I’m sure the Tequila had absolutely nothing to do with that, too.)
Today, Conrad went to the GNOME Summit at MIT, so I’ll let him tell you about that. I instead went to the Lord of the Rings exhibition at the Museum of Science, only to find out that the first ticket available was for 5:15pm. That turned out to be pretty good timing, since I also wanted to visit the Cambridgeside Galleria shopping mall and, err, do a bit of window shopping. Of course, window shopping turned into non-window shopping since I found a Brookstone store there, as well a Best Buy. All I can say is: I am now the owner of Ghost in the Shell: Standalone Complex, Volumes 1 and 2, special editions. Awesome.
After non-window shopping, I visited the Museum of Science again to attend the Lord of the Rings Exhibition. In a nutshell, it was fantastic. You get to see all the costumes, armour, weapons, models, and behind-the-scenes techniques behind the film, for every character from goblins to Frodo. It would be worth going to just to see the incredible amount of love and care put into the costumes: the painstaking amount of work done by Three Foot Six Studios and WETA in New Zealand really are worthy of being exhibited. (For all the guys, yes, you get to see Arwen’s gowns, and for all the girls, you can all see Galadriel’s gowns :-). Some of the armours, weapons and models take your breath away.
I think it’s a fitting end to a wonderful week in Boston: closing the week with the exhibition of the revival of a classic tale suits the city so quaintly.
-
Boston
Boston’s a really pretty, quaint little city: a population of 600,000, mostly to support students (including masses of computing geeks who own far too many Powerbooks and iBooks — more on that later), with gorgeous harbours and peninsulas, and awesome neo-classical architecture which permeates the heart of the city. MIT and Harvard would be absolutely fantastic places to study: like Cambridge in the UK, Boston really makes me wish I was five years younger again, staying at a college, and studying at a great university. The surroundings really are inspiring, and even though the city is a bit old and squalid in some places, the neo-classical sandstone architecture which forms downtown just gives it a really awesome classical charm. The public transport system here isn’t too bad either, despite Monty’s attempts to convince me that it’s a load of crud. The subway system seems to be quite reasonable, and one interesting design aspect of it is that there’s about a kilometre between the subway stops located downtown — meaning that a subway station is never more than about 5 minutes walk away if you’re in Boston proper. Very convenient: while that means that trains stop more often in the city, it sure beats Sydney’s 15-odd minute walk between Town Hall and Central.
So far, Conrad and I haven’t explored too much, though this is partially because Boston really isn’t all that big: the population is only around 600,000 people, after all. We’ve walked around the city quite a bit, and covered some of Cambridge and MIT (but not Harvard — yet). Since we are officially here on work business, we’ve both been good boys and done quite a reasonable amount of work during the day. Rather than hacking at Monty’s, we’ve been enjoying the facilities provided by the fine Diesel CafÈ: reasonable coffee, wireless Internet access, power points, and comfortable seats for hours of hacking. I’ve mostly been working on our (Symbian-based) mobile phone multimedia browser, since we’re demonstrating tomorrow at MIT. So, it’s been hacking during the day with beer and socialising at night. Not that we’re reinforcing the Australian stereotyping by bringing back two cases of beer back to the house every day and polishing it off. (Though I’ve been a responsible boy and have only been drinking one or two bottles per night, yes sirree.)
For now, it’ll be a bit more Symbian hacking, and then hopefully we’ll go visit Harvard tomorrow followed by a big successful demo at MIT. All good.
-
Toronto, Part the Second
Well, CN Tower isn’t very exciting when you don’t ride the elevator to the top. It is rather impressively tall and everything, but I didn’t feel like paying the $30 to ride up to the top with no Michelle. (Cue “awwww” sound here.) Ditto for visiting Niagara falls: I’m really quite keen to go there, but I’ll bide my time until I’m there with the Better Half. (It’ll make my experience there more rewarding: yeaaaah, that’s right!) So, instead of sightseeing, I mixed with the locals: walked around Toronto a bit more and explored the city during the day, and went to the pub and played pool with some of Dom and Zoe’s mates. (I actually lost to Dom at pool, which was apparently quite an effort — I blame the excellent beer.) Since we were all feeling a little bit knackered by the end of the night but not quite ready for sleep yet, we sat down to watch The Lion King (the movie, not the play), which was absolutely excellent. If you haven’t seen it, ‘tis highly recommended: definitely one of Disney’s finer creations.
I visited Herr Wolfgang Thaller the next day in Hamilton, Ontario, which is about an hour away from Toronto via bus. I found Hamilton to actually be a little bit more seedy than Toronto, which was odd considering that Hamilton’s population is much smaller, but it was still felt reasonably friendly and safe. After a long lunch and coffee (as in, coffee took the entire afternoon), over which much Haskell discussion took place, Wolfgang and I headed back to Toronto to grab some dinner and do some GHC hacking. More accurately, I introduced Wolfgang to Vietnamese Beef Noodle Soup (possibly one of the greatest creations known to humankind), and then encouraged him to do GHC hacking while I surfed the web and reaped the fruits of his labours. What can I say? Distributed code development is excellent when you’re a lazy sod. We ended up staying up until a respectably late hour (~2am), and the next day, did the geek thing and went gadget shopping. All I have to say about gadget shopping is: how on earth do those little dozen or so Yum Cha Asian computer sweatshops within about 10 metres of each other manage to stay in business?
And so, that was Toronto. Cheap, awesome food, got to catch up with Dom, Zoe and Wolfgang, meet some dudes who worked on Lord of the Rings (“Dudette, do you know who I am?! I worked on Lord of the Rings!” works quite well as a pick up line), explore a great city, and generally had myself a ball. Next stop: Boston!
-
Haskell's Performance
This thread (still currently active at the time of writing this blog entry) on the haskell-cafe mailing list is a nice example of the one big, major problem I have with Haskell: performance.
To summarise the thread, the infamous great language shootout (which is only infamous if you’re into alternative languages like Haskell, which get their asses handed to them in microbenchmarks for varying numbers of silly reasons) showed that Haskell placed last in the word count test. (Note that the benchmark results have since been updated with a new GHC-specific version of the solution, which is far uglier, but also about 60x faster than the original version.) The Ocaml guys went to town on this result, and of course claimed that Haskell was dreadfully inefficient, with a half-condescending remark at the end that “Haskell’s approach has been expensive in terms of performance”. The Haskell community ignites, and comes up with a version within a day or two that is twice as fast as GNU
wc@, which is more or less on par with the Ocaml @wcversion. This is good. However, two rather bad things stand out to me:- Malcolm Wallace’s Space leak or what? post. Sure, Haskell has a space leak here. The problem is, you don’t notice these space leaks unless you’re an expert Haskell programmer. (I certainly can’t tell that code has a space leak, and I’ve been using Haskell for quite a while now.) The bigger problem is how to fix those space leaks.
- The final solution to the
wc@ program submitted for the contest "looks like a goat":http://shootout.alioth.debian.org/lang/ghc/wc.ghc.html. Why should I have to use @unsafeRead(and thus potentially destroy any guarantees that Haskell’s awesome type system gives me) to get decent performance out of this thing, and why do I need to resort toIOUArrayand lots of uses ofseq? Compare the Haskell version to the O’Caml version, and draw your own conclusions about which is more declarative, high-level, and most importantly, which one doesn’t require an expert in the language to write.
The main problem I see with all this is that it’s just too hard for an average Haskell programmer to get good performance out of Haskell. As people have shown on the haskell-cafe mailing list, you certainly can get very good performance out of Haskell: in plenty of cases, surpassing an equivalent version written in C. However, you can only do that if you’re a complete Haskell guru, and even then, things start looking really ugly: you might as well just rewrite that part of the program in C and call it via the Haskell Foreign Function Interface. I think the main cause of this is that Haskell is simply too unpredictable: in most cases, it’s laziness which causes the unpredictability. Note that this is different from saying laziness leads to slower performance: this is untrue, because in many cases, laziness can improve performance. Predictability is the important factor.
For optimisation, you must know what factors are causing things to be slow, otherwise you’ll be searching in the dark for what bits to optimise. So, Haskell users will tell you to profile (which is sound advice no matter what language you’re using). That’s fine. The problem then is you have to know why something is slow, and there’s where Haskell can get complex. Is there a space leak? (Do you even know what a space leak is?) Is your array strict instead of lazy? If it’s strict, is it boxed instead of unboxed? (Do you even know what unboxing is?) Can you use
unsafeReadinstead ofreadArray? (Did you know thatunsafeReadexists? I sure didn’t!)I think if Haskell were to give the programmer slightly more control (or, in more formal terms, enable the programmer to choose from different operational semantics), Haskell optimisation could be moved from the expert’s domain to the novice’s domain. This is one area where the Clean language has innovated over Haskell: one may claim that uniqueness types and heavyweight use of strictness/unboxing annotations make Clean programs far less pretty than their Haskell version (and I agree), but if you need speed, you can get it in Clean much more easily in than Haskell. The language specification gives you more control over what’s going on; strictness annotations are one example of such a control mechanism. GHC does give the programmer access to many new operations intended for optimisation, but in a syntactically-heavy manner, which discourages you from using them. This is in contrast to Clean, where you can, for example, make an unboxed, strict array just by writing
[# 1, 2, 3 !]rather than[1, 2, 3]. I don’t know how to make a strict, unboxed array in Haskell without looking up GHC’s library documentation.It’ll be interesting to see whether the Haskell language itself evolves to plug this problem. I know I would recommend Haskell rather than O’Caml to more people if it made performance optimisation easier. Note that what I’m discussing here is convincing a Haskell compiler to give good performance, rather than blazing performance: if you absolutely require blazing performance and nothing else will do, code that small fragment in C or Assembly, and call it via the FFI. Multi-language approaches are good. However, the goal is to make it easy to optimise programs from an abysmal run time to a good run time: a run time that you wouldn’t be embarrassed about demonstrating to non-Haskell folks.
Update: This was originally written toward the end of 2004. I’m glad to say that things have changed since then: Don Stewart’s Data.ByteString library has nailed the performance gap between Haskell and C for string processing and binary I/O (even beating C occasionally, thanks to GHC’s far superior compiler optimisations vs C and gcc), which is arguably the main area where you’d run into serious performance problems easily. GHC 6.6 has also gained bang patterns and some syntactic sugar for arrays. (The latter isn’t quite as nice as Clean’s strict array syntax, but it’s a huge improvement.) Both these features greatly lower the barrier to entry if you’re trying to coax blazing performance out of Haskell.
-
Breakfast is Good
Yum:

That is all.
-
Music to Eat Strawberry & Ice Cream Waffles To
Or, music to enjoy on a beautiful Toronto morning:
- Dido: White Flag, from Life for Rent
- Dido: Stoned, from Life for Rent
- Energy 52: CafÈ del Mar (Solar Stone remix)
- Way Out West: The Gift (Club remix edit), from Elven Sundays
- Andrew Sega (a.k.a. Necros): Orchard Street, from Elven Sundays
- Donna Lewis: I Love You Always Forever, from Elven Sundays
- Orbital: Halcyon+On+On (edit), from Elven Sundays
- Chicane: Autumn Tactics (Chicane’s End of Summer edit), from Elven Sundays
- Enzso & Boh Runga: One Step Ahead, from Elven Sundays
- Delerium: Love (featuring Zoe Johnston), from Chimera
- Sarah McLachlan: Path of Thorns (live), from Mirrorball
- Paul Oakenfold: Southern Sun (DJ TiÎsto remix)
- Dido: Don’t Leave Home
-
Toronto, Pt 1
My flight from Los Angeles to Toronto was thankfully rather uneventful, which meant no free upgrades to business or first class (yeah, like that was going to happen), but no baggage lost or overbooked flight either, which is equally as good. I landed at the inappropriately-named YYZ airport on time, picked up luggage, and met up with the ever-fun Dom and Zoe, who I haven’t seen in nearly two years. They have an absolutely lovely place right in the heart of downtown Toronto, but it’s in a quiet area since it’s on one of the rare one-way streets in the city.
Toronto is lovely: its downtown is segregated into a number of districts, such as the fashion district, the entertainment district, the financial district, the distillery, Chinatown and little Italy. Dom and Zoe’s place is in the middle of the fashion district, which borders the entertainment district, Chinatown, and the financial district: i.e. absolutely perfect for me. The fashion district provides plenty of shopping opportunity, the entertainment district provides, well, entertainment, Chinatown provides awesome cheap food, and the financial district provides lots of commercial shops to check out. Downtown looks much like New York and feels a bit like it too: square blocks, lots of commercial shops, food places and cafÈs interspersed with each other, and an energetic, alive atmosphere. Outside of downtown, I’ve ventured out to Danforth Av, a.k.a. the Greek district, a.k.a. the place where they filmed My Big Fat Greek Wedding (a totally excellent movie, err, or so I’ve been told).
One thing which is a contrast between Toronto and Sydney (or even Australia in general) is that stuff in general is cheap: a very filling meal can be had for around $7, compared to around $10 for the same thing in Australia. Clothes, electronics, CDs, etc are all significantly cheaper. About the only thing which is similar to Sydney’s prices is renting a place (not to be confused with buying a place, which is cheaper). But in general, your dollar goes a lot further here than in Australia, even with the 15% GST which isn’t included in the prices.
Speaking of dollars, I managed to find quite a few goodies in the city, including quite a few CDs:
- Amon Tobin: Live in Melbourne
- Juno Reactor: Odyssey 1992-2002
- The Best of Delerium
- Satoshi Tomiie & Hector Romero: Undulation 1
- LTJ Bukem: Earth, Limited Edition CD+DVD
and also Saturday Night Live: The Best of Will Ferrell (Volumes 1 and 2) and Christopher Walken, and to top it all off, quite a number of new Luis Royo books and portfolios. Yeah baby.
Our night life mostly consists of chilling at home watching movies and venturing out for some supper or tea, although we did watch Resident Evil 2 the other night since one of the guys that Dom works with did the special effects for it. Total schlockfest, but so much fun — especially if you like seeing Milla Jovovich and similarly sexy girls going kung-fu on zombies, which I quite like. We also saw Dr. Strangelove, which is even more amusing the second time around.
I’ve also been managing to mix play with work: making some (slow) progress on making a proper xine framework build on Mac OS X. But for now, I’m about to head out to CN Tower and see if I remember anything from my visit there when I was a young’en. Tomorrow, I’m hopefully meeting Wolfgang Thaller in Hamilton to talk Haskell geek stuff, and buggered if I know what I’m doing on the weekend (besides heading out to Boston for Monty’s on Sunday, that is). Coming soon!
-
On Windows Marketshare
John Gruber writes a good article titled Windows Versus the World:
Most regular people donít even realize that there exist any choices other than Windows. Itís not they havenít heard of Apple or Linux, but that they donít really understand what they are. Part of Appleís stated reasons for launching their own retail initiative a few years ago was simply to raise awareness that the Mac even is an alternative to Windows PCs.
The article’s a little bit Apple-centric, but that’s quite OK considering that John’s blog is largely about Macs. I think he’s completely right that desktop Linux distributions will start overtaking Macintosh marketshare in the next few years, though (if it hasn’t already).
-
Los Angeles: Shopping, Shopping, Shopping
First, my apologies for not writing any blog entries in the past half a week. I’ve just been having quite a lot of fun, and have been rather tired (as in, falling asleep in 5 minutes) every day after coming back home and chatting with Dominic and Zoe. But before I jump ahead and start yabbering about what I’ve been doing in Toronto for the last few days, first, Los Angeles …
Mmm, the City of Angels, with unique Calcium Water™, freeways which defy belief and reason, and lots and lots of good, hard shopping. Next time I come to Los Angeles, I’ll be sure to bring at least two bags, because the one poor duffle bag I’ve brought along this trip just went from about 70% full to about 92% full, mostly consisting of new gadgets and new clothes (although it would be about 10000% full if I could buy out the entirety of Brookstone — man, that store is so evil). I’m quite scared thinking about how much money I spent only going to Fry’s, the Beverly Center, and The Grove; that list doesn’t even include the two usual shopping malls I venture to whenever I hit L.A. (Westside Century City). Somehow, I managed to restrain myself to buying no more than about 7 new items of clothing (a-ha, but not all of them are for me!), and less than USD$350 worth of gadgets.
What to do when you have clothing stores such as Banana Republic, Club Monaco, and of course, Victoria’s Secret (yeah baby)? Not to mention other stores such as the Sony Store, Borders, Barnes and Nobles, and real Apple Stores (transparent staircases, yum!), all selling stuff that’s far less than you could get stuff back home in Sydney, if you can in fact get the thing in Sydney at all! Since describing what clothes I got would make me look like a girl (along with watching Suddenly 30, of course), I won’t bore you with those details. Instead, I’ll bore you with what gadgets and goodies I got instead:
- A very very tiny Vakoss USB hub, (as in, it’s just a tiny bit bigger than a CompactFlash card) because everybody needs a USB hub. Hey, at $10, I think I was quite justified!
- A 5-1 in one flash card reader, which reads the usual plethora of memory card formats, but it’s a PCMCIA card, so it’s much smaller than other flash card readers. As a cool bonus, it has a PCMCIA to USB adapter, so in case you’re not working with a laptop (_as if_ you wouldn’t have a laptop, haw), you can still use it anyway.
- Another classy 4-in-1 pen. Gotta have more clasy 4-in-1 pens. (Those of you who went with me on the ski trip this year will know exactly why I want another 4-in-1 pen :-). Black pen, highlighter, 0.5mm, and stylus. Wicked.
- Ghost in the Shell, Standalone Complex DVD, Episodes 1-4, Special Edition, with accompanying CD soundtrack by Yoko Kanno (all praise her).
- A Brookstone blue & white LED torch which is small enough to fit on your keyring. Like a Maglite, but LEDs never break unlike torch bulbs. Hooray!
- A mini tripod. Who doesn’t need a mini tripod, I tell you? I should probably mention it was about A$10. I was very happy considering I saw the exact same model in another store for $25. Glee.
I also got a Logitech Mouseman Traveler, which was unfortunately broken, so I had to return that. I also bought and returned an Iomega Micro Mini 256MB USB flash drive, but returned that too, because I really wanted the 512MB or 1GB version. The Micro Mini is awesome, though: it’s the first flash drive I’ve seen that really is small enough to fit on your keychain.
Other than the shoppingness of L.A., I’ve of course been enjoying myself catching up with my cousins. I also played the first real game of tennis I’d played in a long time, and let me give you some advice: never play tennis (or basketball, or any other high-impact sport) in crappy $10 shoes. Your knees will be whimpering for a while.
So, Los Angeles has been fun, as always. I’ll have to come back next time with 2 nice large suitcases, and a bigger credit card limit …
-
Life is Good
Blog updates soon, I promise. In the meantime, since I’m sure you all miss me (hallo?), here’s what I’ve been up to in a nutshell:

-
On-The-Go Playlist from Salt Lake City to Los Angeles
Hmm, looks like I’m in a heavy heavy rhythm mood today:
- Tool: Eulogy, from Aenima
- Tool: Stinkfist, also from Aenima
- James Brown: Ain’t it Funky Now, from Love Power Peace: Live at Olympia
- The Prodigy: Break & Enter, from Music for the Jilted Generation
- Iio: Rapture (Armin van Buuren mix)
- Jaded Little Pill: Accelerator (Hybrid mix), from Remix and Additional Production By …
- Energy 52: CafÈ del Mar (Hybrid remix), from Remix and Additional Production By …
- NevÈ: Sacrifice (Starecase remix)
- Juno Reactor: Conga Fury (Animatrix mix), from Animatrix: The Album. (Incidentally, the Animatrix mix is far better than the version on Bible of Dreams, IMHO.)
-
Frequent Flyers' Tip: Non-check-in Baggage
It seems that at least United Airlines lets you bring “medium-size” carry-on bags. By “medium-size”, I mean bigger than a backpack, but smaller than a suitcase. Instead of checking them in, bring them through security and to the gate. When you board, you can get a little green ticket, and pass the bag to some dude on the passageway to the plane. So you don’t actually bring the back with you to the cabin, but the nice thing is that you can pick up the bag right outside the door of the aircraft, rather than having to go to baggage claim and waiting nine hours for your bag to (not?) turn up. I don’t know if this applies to US domestic flights, all flights, or just United, but it’s a neat party trick.
-
ICFP, Days 2 and 3, and the Haskell Workshop
The last three days of Snowbird have been pretty routine: breakfast, conference, dinner, sleep. I’m not saying the routine’s bad, of course; quite the opposite. Breakfast at the Atrium has been awesome every single day. Who can go past a breakfast buffet of bacon, sausages, poached eggs, (lots of) salmon, pancakes, french toast, fruits, an exhilarating view, and the company of Manuel, Gabi and cute liddle Leon? I found the talks at ICFP pretty good, and the Haskell Workshop talks were great; there wasn’t a single boring talk from the latter. I did skip a couple of talks at ICFP to mingle with the other conference attendees, do a bit of shopping and/or general admin stuff (like confirming flights etc).
There’s a pretty amusing picture which was taken when I skipped one talk to hang out with Don Stewart, Ganesh Sittampalam and Arthur Baars. Since I was the only one who paid to get Internet access at the Cliff Lodge, I of course decided to share my much-loved Internet connection with Don and Arthur. So, half a minute later, there was an ethernet cable running from my Powerbook to Don’s Thinkpad laptop, and another Apple-white Firewire cable running from my laptop to Arthur’s Powerbook. (If you’ve never tried networking via Firewire, it works very well, and even works between Mac OS X and Windows.) To top it all off, Arthur was using my shared Internet connection to talk to his dad back in Holland on a bluetooth headset via Skype. The Internet still amazes me sometimes!
While at the conference, I managed to meet lots of new people: the whole mob from Chalmers University in Sweden (Pete, why didn’t you come along you slacker?), guys from Melbourne Uni and the National University of Singapore, the Oxford/Cambridge/York folks, and of course I met up with some old friendly faces too. My alcohol-loving friends will be proud to hear that I drunk at least one beer every night: from memory, I had a Pyramid Kezefasomething (see last blog entry for details :-), Sapporo, Becks, and two Pilsner Urquells, not necessarily in that order. There was a funnily-titled beer named Polygamy (which came with the amusing subtext of “Why have just one?” printed on its label), but I wasn’t game to try it: funny name, but probably tastes like crappy American. Will have to ask the Swedish folks to see if they liked it or not.
Probably Snowbird’s only small disappointment is that there aren’t very many restaurants around: amongst the four hotels there, there are six or so restaurants. This would be OK if the food was amazing (like the High Plains Lodge at Dinner Plain), but it’s not amazing: the food’s rather average. Not a big problem, but I imagine the food might get a tad boring after a week or more. Apparently lots of people head down to Salt Lake City during the ski season to sample the finer foods that Utah has to offer.
The only real tourist stuff I did was take the tram up to the top of Hidden Peak mountain, along with Don, Arthur, Ganesh, Tom and Duncan. Hidden Peak had an elevation of 11,000 feet, and was completely white with snow when we got there. Crazy Tom was only wearing a t-shirt up there, which made him quite the Man considering it was 20 degrees fahrenheit. Quite a few people also decided to skip some ICFP talks and hike up there during the daytime, which takes around 3 hours, but I wasn’t quite passionate enough about hiking to do that. Check out the photo gallery for some pictures of Hidden Peak, though.
So, overall, Snowbird was fantastic: ICFP’04 was pretty good, the Haskell Workshop was excellent, and breakfast (very important), the accommodation, the social life, and the view were all awesome. I’m so coming back here one day.
P.S. I’ve decided not to post notes about the talks ICFP’04 on my public website, since I don’t really want to offend any of the speakers by saying who was crap ;-). Email me if you’re really interested about the talks.
P.P.S. Adrian, you’ll be glad to know that I asked around about Suddenly 30, and the general consensus was that if, indeed, a guy asked another guy to see it, most people I asked thought that former guy would indeed be unequivocally gay.