WWDC Wednesday: Fire and Motion

August 9, 2006 | programming
As you may or may not be aware, one of the features of Mac OS X Leopard is called iChat Theater. iChat Theater allows you to share arbitrary sound and video via AIM. The feature is great for end-users; showing a friend a funny movie clip, or your parents a photo album of your kid, has become wonderfully trivial. In what for Apple qualifies as a rare nod for developers, they have publicly exposed a clean API to allow your applications to hook into this framework. Basically, all an application...

Objective-C 2.0: the Bad, the Horrible, and the Ugly

August 8, 2006 | programming
Apple announced Objective-C 2.0, the first major change to the language ever. The features should all be great—support for properties, inbuilt iterator syntax, much higher abstraction in the runtime, and more—but ultimately, though many of these modifications attempt to solve real problems in Objective-C, they nearly universally solve them inelegantly and inconsistently. One of my biggest complaints comes with the iterator extension. In Objective-C 1.0, to iterate over a collection, you had to...

Building the Squeak VM

May 28, 2006 | programming
When I’m not busy coding in various dialects of C for Fog Creek, I enjoy coding in Squeak Smalltalk as a hobby, and I try to stay active in the community when I can. Unfortunately, lately, I’ve been slacking rather spectacularly, and perhaps because of that I missed that Göran had assembled a nice tutorial on how to build a Squeak VM for Linux/Unix. The tutorial should get you a fresh-built VM in a couple of minutes, and a custom-built one not too long after that. Do note that, if you’re on OS...

Gearing Up

May 21, 2006 | personal, programming
After a semester of virtually no coding, I’m preparing to return to New York to do more work for Fog Creek on Fog Creek Copilot. This will be the first time in my career that I’m returning to a code base that I haven’t seen in a bit over a year. In some ways, this is very exciting. Knowing that something I put so much time and effort into has proven to be truly useful to a large number of people is extraordinarily gratifying, and getting a fresh chance to fix all the little things that I ran out...

When Cussing Should Be Okay

May 16, 2005 | programming
So, today I spent roughly two hours hacking the MySQL driver for Squeak to add the DESCRIBE command and adding MySQL support to ROE. ROE is an awesome package that lets you write queries directly in relational algebra in your Smalltalk code. It generates all of the SQL to actually execute the query and delays execution until as late as possible. The effect is very nice. I’m currently working on a tutorial for how to use ROE in Seaside, and as part of that, I thought it’d be nice to add MySQL...

The Art of Missing the Point

April 17, 2005 | programming
Sometimes, you’re confronted with someone who so stubbornly refuses to understand what you’re saying that you just want to cry. Let’s ignore for the moment that a lot of the hype around Rails is…well, hype. Even with that in mind, contrast the tutorial video for Rails with the tutorial video for Trails, a JSP-based framework that aims to do the same thing. Even if you completely ignore issues like scaffolding, the difference between these two videos makes me downright sad. For example: Methods...