New Nano

Is it silly to be excited to get a new toy like this? Especially since there have been weeks when I’ve spent more on comic books than I spent on this? (Okay, very few such weeks, but still.)

I mainly plan to use this to play podcasts in my car, replacing my venerable – but nearing the end – 80 Gb “classic” iPod.

The iPad Cometh

I’m not buying an iPad this weekend, though many of my friends and cow-orkers are. I tend to trail the edge of technology adoption anyway; I’m quirky for a programmer that way. For me it seems like the iPad is rife with potential, but there’s not a lot I’d truly use it for from the beginning.

Here are some things I don’t expect to use the iPad for:

  1. Reading books and comic books. To me, most books and many comic books are things to be enjoyed over and over, to be collected and shared through lending and borrowing. I own many books and comics which I expect to enjoy for decades to come, and I have my doubts that the evolution of technology is such that I’ll be able to read an e-book I buy today again in 20 years without going through some sort of annoying upgrading process, due to format changes (never mind DRM issues, if any). Reading literature on a device seems better aimed towards disposable works. To be sure, there are some books which I regard as disposable (this one, for instance), but that’s not the case for most books.

    Of course, many readers may consider most books to be “disposable” in this case. (Debbi gets most of her reading material from the library, the long-time gold standard of disposable literature.) Even the classics are disposable to someone who doesn’t plan to ever read them again. But I’m a collector, so I’m just not the target audience for e-books and e-comics.

  2. Programming. One can program for the iPad, but not on the iPad. More to the point, for me, most of my programming outside work these days involves writing complex Ruby scripts to process baseball statistics and my library of Magic cards. That uses programming as a tool to get some information out the other side, rather than to write an application which is itself the tool; it cuts out the middleman, so to speak. I could imagine rewriting all that stuff so that it runs on the iPad, but it’s not likely that I will. Especially the baseball stuff, which is pretty narrowly tailored to my own quirky needs.

    Programmers are an exception to Frasier Spears’ commentary on the iPad in this way; for us, programming often is a part of the “real work”. But the point is that programmers are not the core audience for the iPad, and I think one reason behind Cory Doctorow’s ire is that he either doesn’t understand or doesn’t accept this.

  3. Writing and blogging. I don’t see myself writing fiction or essays or blog posts on an iPad: Why use the on-screen keyboard or buy an external keyboard when I can just use my Mac? Will it be as easy to do word processing or use WordPress on an iPad as on a laptop, and if not, will that be a significant barrier? I dunno.

    The question of whether the iPad is mainly aimed at content consumers, or whether it will also work well for content producers, is I think an open question. At the moment my impression is that it leans toward the former, but I can imagine the balance evening out over time. Consequently, I can see myself changing my mind about this one more easily than the above two.

On the other hand, here are some things I do hope to use the iPad for, sooner or later:

  1. As a drawing input device. I expect we’ll see apps which allow the iPad to be used as an input device like the Wacom Cintiq in pretty short order, connecting your iPad to a Mac and using it to control Photoshop or other drawing apps which are too resource-intensive to run on the iPad themselves. (Of course, in the long run, why need to even connect it to your Mac? But I doubt we’re there yet for many purposes.)
  2. Playing innovative games. Computer games have been pretty stagnant for the last 10 years, in my opinion. First person shooters, real-time strategy games, simple arcade-style games, they’ve each made incremental advances over time, but nothing that’s blown me away. The last time I played computer games which felt truly new were MYST and Riven back in the 90s. Sure, they were at their core puzzle games, but they were also immersive experiences in exploring a world. I would love to see a thoughtful, immersive game experience enabled by the iPad.
  3. Reading newspapers and magazines. Speaking of disposable literature, I still subscribe to the daily newspaper (the San Jose Mercury News) in print form, and I even save the funnies every day for Debbi to read. I’ll probably keep doing so, but I could see subscribing to other periodicals – especially niche ones, or ones I don’t plan to keep, such as science fiction magazines – and reading them on an iPad. (And yes, I’d certainly pay for them.)

I have no doubt I’ll buy an iPad eventually (perhaps as soon as this summer). This is just my personal and ruthlessly-practical way of looking at it.

The iPad is already a fascinating device from a social-engineering and technological-evolutionary standpoint (if it weren’t, there wouldn’t be all the controversy surrounding it), and the science fiction fan and casual futurist in me would love to write about those aspects. However, the Apple employee in me thinks I should probably stay out of it. (I don’t think anyone really listens to little ol’ me, but there’s no percentage in risking the Internet Hordes unexpectedly descending on my blog and reading more into it than I intend.)

And on that note, off I go to my fantasy baseball draft, which I manage using the aforementioned Ruby scripts on my MacBook Pro.

Monsters of Webcomics

Saturday we went up to the Cartoon Art Museum in San Francisco, mainly because I wanted to see their Monsters of Webcomics exhibition before it departs later this month.

If you’ve never been to the Cartoon Art Museum, it’s definitely worth a trip. Admission is reasonable (currently $6 for adults), and you get a lot for your money: The museum consists of 5 rooms, each with a different exhibit. If you’re afraid that it’s full of superhero comics art, nothing could be further from the truth: I features all sorts of sequential art, and usually there are only a few pages of superhero comics. For example, we saw a collection of concept art, color test art, and animation cels from Disney’s Sleeping Beauty, many from the collection of one of the artists, Ron Dias. Another is an exhibition of an underground cartoonist from San Francisco, Spain Rodriguez. While underground comics aren’t my thing, there’s something for everyone (well, most people) here. The museum also has a bookstore in front with an eclectic selection.

The webcomics exhibit was pretty good, featuring ten webcomics, most of which I’d heard of, but only one of which (Girl Genius) I read. Though I probably should be reading Dicebox and Templar, Arizona (I’d never heard of the former, I’d come across the latter but not gotten into it). The other seven arguably have more in common with the underground comics I’m not fond of than with traditional cartoons or comic art, so I’m not sure any of them will be my thing (the art styles aren’t generally to my taste, and surrealistic stories and jokes aren’t for me). Still, it’s always good to see what’s out there.

The museum’s exhibits always feature copious notes, and this exhibit contained descriptions by the strip creators of how they got into webcomics, and how they produce their comics. The Dicebox exhibit contained a step-by-step illustration of how the creator produces a page, using both paper and digital techniques.

It’s been several years since I’d last visited the museum. I should wander by their web page more often and try to go once a year or so, because I always enjoy it. Plus, it’s an excuse to get up to the city, which us South Bay dwellers can be reluctant to do.

The 5 Stages of Internet Friendship

  1. You quietly follow their blog and/or Twitter feed (also known as lurking).
  2. You comment on their blog or respond to their tweets.
  3. You exchange e-mail with them.
  4. You friend them on Facebook.
  5. You add them to your instant messaging buddy list.

Things were a little different back in 1990, when I was new to the net:

  1. You read their posts on USENET.
  2. You send them e-mail about their posts.
  3. You publicly respond to their posts.
  4. You chat with them using talk, BITnet Relay, or perhaps IRC.
  5. You talk with them on the phone or meet them in person.

Thank goodness today we have enough social networking technology to avoid that last step! Hooray for progress, eh?

Neat Mac Software

I don’t often get new software for my Mac, as I find that the software that comes with Mac OS X, or that I’ve bought or downloaded previously does what I want. And with as many hobbies as I have – many of the non-computer hobbies – I’m not generally looking for software to do something new for me. Despite this, I’ve downloaded two new pieces of software in the past week:

  1. ClickToFlash is a very cool Safari plug-in which masks out all the Flash being used on the web from your browsing experience, letting you choose to view a Flash instance on demand, by clicking on the Flash box. Since a lot of annoying animated ads are done in Flash, it also works as a partial ad blocker. It took me just minutes to be really happy I’d downloaded this.
  2. Tweetie is a Twitter client. (There’s also an iPhone version, but I’m happy with Echofon there.) It seems slightly better than Twitteriffic, although I’m hard-pressed to say how; I tried Tweetie because I have friends who love it. I mostly wish that Twitter had a better Web interface so that I didn’t need a separate app for it at all; the service is so simple, you’d think they could make one. Still, since Twitter is of minimal value to me (Facebook is much more useful and fun), it’s not a big deal one way or the other.

What other Mac software out there ought I to be using?

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.