Snow Leopard Celebration

Often when we ship a new version of Mac OS X, there will be a celebration event for the organization. We were trying to remember the other day whether we’ve had one for every release (I’m pretty sure we didn’t have one for Puma), but I’ve thought in any case that none of them equalled the party for shipping Cheetah (OS X 10.0), which was held in Hangar One at Moffett Field.

But I think we just surpassed that one, with the party for Snow Leopard, which was held on Friday evening at the newly-rebuilt California Academy of Sciences. The museum shut down for a private party for just us, and even though there were hundreds people there, I’m told by people who have been to the new building (this was my first visit) that it wasn’t anywhere near as crowded as when it’s open to the public, so it was totally worth it. I don’t even want to think how much it cost to rent the place for a Friday evening.

I visited the old Academy a couple of times before it was demolished (like the De Young Museum nearby, Cal Academy’s old buildings were damaged in the 1989 Loma Prieta earthquake and had to be rebuilt from scratch), and I recall it being interesting but quaint, in an old stone-and-concrete structure which felt too small for the Academy’s ambitions. The new building is huge, three stories tall with a garden that covers the whole roof, and a spacious floor plan based around the Morrison Planetarium in one wing, and the tropical rainforest in the other. It’s quite a structure.

I love rainforests and we made a point of visiting before it closed at 8 pm (the party started at 6:30). You start at the bottom and walk upwards, with the air getting more and more humid as you progress. There are butterflies and birds in the habitat, and you’re asked to check yourself for butterflies before you leave. We also made a point to get Planetarium tickets, where we saw a show titled “Fragile Planet” about the possibility of life on other worlds. The script was a little dodgy at times (although it might play better to someone who hasn’t been reading science fiction all his life), but the visuals were fantastic, especially the opening sequence of lifting off from Earth. Well worth the visit.

The “living roof” was disappointing only in that you can’t see as much in the dark; I suspect it’s better seen in the daytime. Certainly it looked stunning in the Planetarium show. But the interior didn’t disappoint, with African dioramas, the giant pendulum, fossils and skeleton reproductions, displays and interactive presentations, and the Steinhart Aquarium, which is not as impressive as the Monterey Bay Aquarium, but is still fun. The party lasted until 11, which was enough time to see everything, some things more than once.

Debbi came with me as my guest, and were socialized with many of my cow-orkers and their guests. Over the last 10 years I’ve gotten to know quite a few people at Apple, though it’s always a little surprising how many people I don’t recognize, even from just walking around campus. It’s a big company.

Debbi and I left a little early – although things were starting to wind down – and went to Ghirardelli Square to wrap up the evening with ice cream.

I didn’t take pictures of the party itself, but we did take some good pictures of the academy, for your viewing pleasure. I certainly recommend going if you’re in the area – assuming you want to brave the crowds.


Hanging whale skeleton
The hanging blue whale skeleton
(click for larger image)

Blue Butterfly
Large blue butterfly in the rainforest

Blue Lizard
This lizard is smaller than my hand

T Rex skeleton
Tyrannosaurus Rex skeleton
(click for larger image)

Sea dragons
Sea dragons
(photo by Debbi)

Sea turtle
A lively sea turtle

White alligator
A rare albino alligator
(click for larger image)

Tortoise and Me
Me and a model of a large tortoise
(photo by Debbi, of course)

Ten Years at Apple

Sunday marked (as the calendar turns) ten years of working at Apple for me. I guess yesterday – Monday – was slightly more relevant, since if course I didn’t start work on a Sunday (although I did go in the previous Friday to get some info from my manager, since I spent my first week in a training class). Yesterday was 522 weeks from that starting date.

But who’s counting?

I’ve spent most of that time working on the Xcode developer tools. Not only is 10 years a long time to work at a single company in Silicon Valley, but nearly-8-years is a long time to be in more-or-less the same role at that company. Of course, every year it seems like I’m working on something new and different, using new technology, so there’s a lot of variety within my job. There’s so much going on here that even if I switched teams every couple of years there’s still more neat stuff to work with and work on than anyone could fit into a lifetime. (Contrast with my previous company, where after 4 years I felt like I’d basically done everything there was to do, on a technical level.)

(Of course, I “celebrated” my anniversary by spending the whole day investigating a heisenbug, but that’s the way it goes sometimes!)

Although the job has its frustrations, there’s no substitute for working with smart people on a project that matters, even if it’s not the most visible or glamorous project around. And I know my work is appreciated, which helps a lot too.

It’s been an exciting decade for Apple, too; the company was just starting its upswing when I joined the company, about a year after the first iMac was introduced. It’s been fun to have been there through all of that.

When I told one of my closest friends at my old company that I was going to interview with Apple, she said, “Oh, you are so out of here.” Ten years later, I’m glad I got the offer, and I’m glad to have taken the job. And I’m glad to have stuck around this long. I hope to stick around a good while longer.

Social Media

So I joined Facebook yesterday. Giving in to subtle social pressure, I guess. But I don’t yet (or, if you prefer, still don’t) see what the big attraction is.

At least Facebook actually let me join. When I tried to join MySpace a couple of years ago they, well, technically they let me join, too, but something went wrong with the account set-up and I was never able to edit my account: Any changes I made were immediately lost. I couldn’t even delete the account and start over! And MySpace has (or had, at the time) nonexistent user support: I wrote them twice asking for help, and all they did was send me back entries from their FAQ that I’d already read. Useless.

What do I expect to get out of Facebook? Honestly, I have no idea. I mainly use the so-called “social media” for two purposes:

  1. To keep in touch with friends.
  2. To follow writers I find interesting or who are writing about subjects I enjoy.

For the most part, I get all of this through the blogs I follow (and I follow dozens of them), including LiveJournal, which has pretty much shown itself to be the best one-stop-shopping site for keeping up with friends and acquaintances.

I can count the number of times I’ve gone to sites like Digg on my fingers. I have a Twitter account which I use sporadically, but Twitter just doesn’t provide much depth or a decent signal-to-noise ratio. (Debbi sometimes teases me about Twittering when we’re out-and-about, but really I’m not very active there. Not compared to many people.)

So anyway, Facebook: I imagine I might encounter a few old acquaintances there, but honestly I’m already in touch with most of my old friends through e-mail and the Web. The mere existence of the Internet turned out to be the 90% solution for that. But maybe I’ll be surprised.

So Facebook might just end up being another account I created that ends up laying fallow. But hey, at least it’s free.

Q&A: How Did You Get Into Software?

(Ganked from Nadyne.)

I think I was first exposed to computers by a neighbor of mine when I was about 8 or 9 (so, 1977 or 78) who had somehow piqued my interest with some stories of his programming mainframes. He loaned me a book he had on programming in FORTRAN, which I thumbed through but didn’t really understand. I’m not sure it was a very good book, to be honest, although at that point I had no idea what distinguished a good book on programming from a bad book. (It’s not clear to me that most people who write programming books know this either.)

Also around this time I got into video games courtesy of the Atari 2600, which was the most popular (at least in my neck of the woods) game console of its day. There was even a “programming in BASIC” cartridge for the system which I bought with images of programming my own games, but it was a waste of time since its capabilities were, uh, extremely limited. But also around this time a friend of mine, Ben, got a TRS-80 Model I, which actually did have a full BASIC programming language. I borrowed his books on BASIC programming and wrote out – in long-hand on lined paper! – lengthy programs which represented little games. I’d go over to his house and type them in and see if they worked, debug them, etc. It was all totally ad-hoc, but those days I spent lots of time writing and drawing random stuff on paper, so it was right up my alley.

My parents bought me my very own TRS-80 Model III, which must have been when I was 11 or 12 given that it was released in 1980. So I was able to create all my own little games, and I’d also create little animation programs with the rather primitive graphics system. It had a tape drive and 4K of RAM, and I wrote a text adventure game which filled up the whole of memory, and I had to cut corners to get it to fit in. Later it got upgraded to 48K of RAM with a floppy drive. This was the day of computer magazines which printed whole programs in source code, and I subscribed to one: Softside. I especially enjoyed the text adventure games, in which they encoded all of the text strings using a simple algorithm so you wouldn’t have the game spoiled for you while you typed it in. On the other hand, you ended up with some interesting typos in the strings when you ran the program.

(I sometimes wonder if typing in all this stuff from paper helped make me such a fast typist, especially since I’m a two-fingered typist.)

In late 1981 my friend Rob – who at this point qualifies as my oldest friend with whom I’m still in contact – moved in across the street. They had an Apple II+, and we spent many hours on that thing playing Ultima II and watching MTV. This was a big step forward since it had better graphics and color, which my TRS-80 didn’t have. A couple of years later my Mom bought an Apple IIe, which pretty much put my TRS-80 into mothballs.

My next step in actual programming came through playing play by mail games, which inspired me to construct my own turn-based computer games, which my friends would play. I wrote an elaborate system in BASIC to track everyone’s moves and the state of the game, and emit board state to the screen from each player’s perspective (one of the things I thought was neat about these games was that you could only see a limited amount of the board, quite different from real-time board games). Unfortunately I had no idea how to write printer code, so I had to copy all the boards onto paper to hand them out. Did I mention that I had a lot of free time back in the day? (Did I mention that my grades weren’t so great early in high school?)

By senior year of high school I was seriously interested in computer programming, and I signed up for two programming courses at once, a full-time class in Pascal, and a part-time class in BASIC (the instructor insisted I take the latter class in order to take the former). These were my first exposure to structured programming principles. I also worked part-time in the computer lab and had to restructure a program they were using in the office. This was my first experience working with someone else’s code, and it was more than I could handle at the time – it was very slow going. I just shake my head when I reminisce about it, since these days I wade into thousands of lines of code I’ve never seen before on a semi-regular basis.

The other thing to mention here is that Rob’s mother bought one of the very first Macintosh computers, which must have been right in 1984. It had MacPaint and MacWrite, plus of course an ImageWriter. The screen size, graphics, and color were a bit of a letdown compared to the Apple II, but the interface and software made up for that. I still have a paper print-out of a drawing I did in MacPaint on that very machine. I don’t really remember Rob and I using that machine for much more than novelty fiddling around – the Apple II was still the game system – but in senior year – by which time Rob had gone off to college – my new friend Matt also had a Mac, and we spent many, many hours after school at his house playing Dungeon of Doom on it.

In 1987 I headed off to college at Tulane, and although I didn’t really know what I wanted to do with my life, I did want to keep up with programming. Tulane was a little draconian about its computer science courses: I wasn’t able to test out of classes with material I’d already taken, so I spent my freshman year being re-taught stuff I’d learned the year before. Sophomore year, though, we moved on to C more advanced information about how computers work. By the end of the year I’d decided to declare my major in CS, since the competing majors (English and art) were things I thought I could work on on my own without formal collegiate training. (Naturally, I’ve done fairly little creative writing or drawing ever since. Oh well!)

So that’s when I committed to a career in software When I finished college I felt somewhat deficient in my programming skills – in particular, use of pointers in C still baffled me from time to time – so I went off to graduate school at Wisconsin. Although I didn’t get a Ph.D. there, I did have the opportunity to work with an outstanding programmer on a research project and I learned a tremendous amount from studying his code and talking with him about how he designed software.

I was never a Macintosh programmer in the classic days. Whenever I tried to learn Mac programming I was either daunted by the high price of the developer tools (“Hmm, developer tools or four months of comic books…?”) or I would read about what was involved (the APIs and the lack of protected memory) and it just didn’t seem worth it, especially once I had experienced doing programming on UNIX systems. So my first experience with graphics programming was with X Windows. On the bright side, once Apple moved to a UNIX OS with the advent of Mac OS X, that made it an ideal system for my programming background.

When I look back on it, I often feel like I backed into being a programmer. I wasn’t a hacker or prolific programmer like many of my peers at the time, and sometimes I’d wonder if I wasn’t a fraud because programming didn’t consume my hobby time like it did so many other peoples’. But I’ve always tended to spread my time and attention across a variety of hobbies and interests – as even a casual reading of my journal should prove. Despite this I’ve ended up as a solid software engineer (well, I think so, anyway) in my career. Programming isn’t the be-all and end-all of my life, but I still enjoy building things and seeing them work, and all things considered I don’t regret the choices I made to end up where I am.

Twittering Away

A few weeks ago I gave in to peer pressure and joined Twitter. You can find me there under mrawdon. Okay, I wasn’t really being pressured, but I’d several of my cow-orkers were hanging out there making pithy remarks, so I decided to sign up.

I’ve joked that Twitter is “like blogging only without the pesky content”. I’ve also seen it called “microblogging”, which I take to mean, “There is content, but there isn’t very much of it.” Which seems about right: I see little tidbits of real content here and there, but most of Twitter consists of tiny, generic snippets of thought which are either devoid of depth, or devoid of meaning due to a lack of context.

It’s the lack of context that really makes Twitter a suboptimal experience compared to blogging: If I didn’t know the people I’m following personally, there’d be essentially nothing there for me. So it’s no surprise that the few times I’ve tried to go out and find new Twitterers to follow, I’ve come up empty because it’s all just random nattering without any context to give it meaning, or any depth to give it value in the absence of that context. (By contrast, I’ve found many fine journals and blogs over the years simply by poking around in one place or another on the Web, even if I didn’t know the author beforehand.)

If I were to use a single word to sum up Twitter, I think it would be “disposable”. It’s hard enough to build anything of lasting value in a blog format, and it looks to be nearly impossible on Twitter. I don’t expect to become educated or informed through Twitter, and I strongly doubt there’s anything of interest in “the archives”. Will I ever go back to look at my old tweets to recall what was, like I do with my journal? Probably not. I wonder whether anyone else does so with their tweets?

Clearly a lot of people are having fun on Twitter, though. A tool like Twitteriffic turns Twitter into something like a push-notification system, which means less effort on your part to keep up with what your friends are doing. (This isn’t very different from following a blog via an RSS feed, though.) But it seems like most of the fun is in following the snarky remarks and exchanges and the occasional raw outbursts that pepper the site.

So there’s some value in that; people have fun and get a few laughs. But there’s a lot of fun and plenty of laughs elsewhere in the world, and a lot of it is more rewarding when it’s not restricted to 140 characters.

WWDC 2008

I put in my time at WWDC this week. In addition to staffing the Xcode lab, I also was demo boy for a presentation – the first time I’ve been on stage at a conference other than Q&A sessions.

It all went pretty well, with one exception: Mid-afternoon yesterday, shortly before the presentation, I started getting a headache. In the somewhat overheated presentation room, the headache got worse. I was okay when I was actually driving the demo, but waiting between demos I was feeling really cruddy. Afterwards I went to the lab for my shift, but at that point the headache had gotten really awful and my stomach felt upset. I finally left early and caught the train back home, where Debbi picked me up at the station. At home I went straight to bed and slept for 12 hours nearly-straight.

I’m not sure if I was dehydrated (we’re having another heat wave here), or had a touch or food poisoning, or just had a migraine. But I felt much better this morning, if a little wobbly. Possibly from skipping dinner.

There are a lot of people for whom WWDC is a big social event, and they spend the whole week up there, even renting a hotel room in the city. I’m not one of those people, so I’m back in the office today. In a way I envy those folks, since I’m sure it’s a lot of fun for them, seeing old friends etc. I rarely have that experience, even at SF conventions, and I know a lot more people in fandom than I do in the Mac developer community. Ah well. Diff’rent strokes and all that.

The Scanner Blues

A few months ago I took the plunge and upgraded our desktop computer at home to Leopard. After all, I’d been running it both at work and on both of our laptops, and it seemed fine. Okay, I’d had to update some freeware and shareware, but that’s to be expected. I should probably update them more than once every 3 years anyway. 🙂

Well, it went smoothly, except for one problem: I can’t get my scanner to work under Leopard. Which is a bummer, since I use the scanner to scan book and comic covers for this journal, album art for my iTunes library, and also to scan items I put up for sale on eBay.

I have a Canon CanoScan LiDE 80, which was reasonably inexpensive and (more importantly) small and flat, but with a decent-sized platen for scanning. It’s worked well for several years, on both Panther and Tiger. But on Leopard it doesn’t work at all.

My first problem is that I use the version of Adobe Photoshop Elements that came with the scanner, which means that it’s now quite old, and won’t even launch on Leopard. If this were the worst problem, it would be surmountable; I could try to figure out Image Capture, which comes with Mac OS X, or I could try to use GraphicConverter or buy a copy of VueScan. Or heck, I could just buy the newest version of Photoshop Elements.

The larger problem is that the LiDE 80 doesn’t seem to be supported on Leopard, and in fact Canon seems to do a poor job of updating their drivers – the most recent drivers for this scanner were posted on 10/4/2007, which was shortly before Leopard was released. So I infer that they haven’t really been updated to work with Leopard. And n matter what I try, I haven’t been able to get them to work, even using the TWAIN driver, as other applications don’t seem to recognize Canon’s TWAIN driver. (The drivers also appear to be available only for PowerPC machines, which is fine for my desktop machine, since it is such a machine, but I’d like to buy an Intel-based Mac sometime soon, and that will pretty much hose it.) Someone recommended I check out SANE to see if they have a driver for it, but they don’t; apparently the scanner uses a “backend” which SANE doesn’t yet support. Alas.

It appears that other people have had the same problem, but I haven’t found a concrete solution. This thread has a lot of discussion about the issue, and some people seem to have gotten it to work, but others have not. I’m one of the “have not” people. On the other hand, one person was able to get it to work with VueScan, which I haven’t tried. (Although since VueScan seems to have a free trial, perhaps I should.)

So anyway, my solution to all this was to realize yesterday: Hey, I bought a second internal hard drive for the desktop machine a while back! So I partitioned that drive and installed Tiger on one partition, brought it up to date, and then installed the Canon software along with Photoshop Elements. Sure enough, the scanner works great in that environment. So at least that gives me a solution for the short term.

The longer term will involve buying a new computer, and then probably a new scanner. It seems that Epson has been releasing new drivers for Leopard, so I might give them a try, perhaps the V200 Photo. I’m certainly more inclined to buy a scanner from someone who appears to be actively supporting the platform.

If anyone has any advice or suggestions on what to get, I’d appreciate it.

Of course, I’ve needed to buy a new stereo receiver for months, and haven’t gotten around to that, so who knows when I’ll get to doing all this? (Then again, I installed Tiger on a new partition on a whim last night, so it could happen at any time…)