Archive for the ‘General’ Category

The Comments Conundrum

Sunday, April 2nd, 2006

A little while ago I introduced a field on my weblog’s comments form asking users to simply enter my first name. I did this, following Andrew Wooster’s suggestion, as a simple but amazingly effective anti-spam measure. Unfortunately, I think it’s been a little too effective: since I introduced it I’ve gotten noticeably fewer comments, as well as some confused emails. With this in mind, I just wanted to take a moment to clarify that this field is not meant to be some sort of riddle or exclusivity test: when it asks “What is Buzz’s first name?” it’s looking for “Buzz.”

Since this does seem to be a consistent source of confusion, however (and I can see how it would be, since “Buzz” is actually a nickname), I’m definitely going to change the wording to something clearer. Apologies for the ambiguity.

Email: Year 0

Wednesday, March 29th, 2006

As many of you probably know, I’ve become notoriously bad about things like updating my weblog and answering my email. Well, I’ve decided to make a clean break and start trying to manage my email the Merlin Mann way.

As part of my great email reset, however, I essentially took my daunting pile of existing inbox messages (stretching back to 2004) and dumped them all to a folder called “Archived Messages.” The only problem with this is that I feel guilty about all the email in that pile with questions for me, favors to ask, crashes to fix, and the like that I won’t be getting to. Therefore I’m now issuing a blanket invitation/request: if you’ve emailed me in the past few months and not gotten a response, please feel free to email me again and get into my newly (and probably temporarily) manageable queue.

Thanks, and now back to our regularly scheduled programming…

(Update: I always forget my email is nowhere on this page. You can email me at buzz at this domain.)

The “Four Things” Meme

Thursday, February 16th, 2006

Now that I’m finally spending a quiet night at home, and working hard to get through the 500 odd unread items I have in NetNewsWire (to say nothing of my unanswered email!), it’s becoming painfully apparent to me just how out of the weblog loop I am. People I once considered “light” posters are now producing three or four posts in the time it takes me to do one, and the Mac developer blogging torch seems to have been passed to a new generation of people like Daniel Jalkut, Jonathan Wight, and Blake Seely. Sigh.

The other thing about my absence from the blogosphere is that I haven’t really kept up with what all webloggers fundamentally care about: what people are saying about me! Because of this I failed to notice that Aaron Feaver tagged me with a dreaded meme! Since I’m no longer the type of blogger who has, you know, delusions of importance, I’ve decided embrace a little blog candy and run with it. And awaaaay we go!

Four Jobs I’ve Had

  1. Fashion model for a fancy, Denver-based country club lifestyle magazine (see below–I’m the little kid on the right).
  2. My Modeling Career

  3. Paperboy
  4. Computer sales dork at Best Buy (in high school).
  5. Intern in the collections department of a bank (also in high school).

Four Movies I Can Watch Over and Over

  1. Adaptation
  2. Ghost World
  3. Three Kings
  4. Requiem for a Dream

Four Places I Have Lived

  1. Denver, Colorado
  2. Lakewood, Colorado
  3. Cupertino, California
  4. Haight Ashbury, San Francisco, California
  5. Haight Street from the Roof

Four TV Shows I Love to Watch

  1. Curb Your Enthusiasm
  2. Seinfeld
  3. Fawlty Towers
  4. The Simpsons

Four of My Favorite Dishes

  1. Carnitas, or, really, just about any Mexican pork dish
  2. The red beans & rice with andouille from Memphis Minnie’s
  3. The truffle cheese burger at Oola (pictured below)
  4. Oola Burger

  5. The sikh kebab at Rotee

Four Websites I Visit Daily

  1. My Flickr contacts page
  2. My Del.icio.us inbox
  3. Upcoming.org (maybe not daily, but pretty often)
  4. My Last.fm friends page (gotta keep up with what my hipster friends are listening to!)

Four Places I Would Rather Be

  1. California’s Central Coast
  2. The View from Nepenthe #1

  3. Austin, Texas
  4. Capitol of Texas

  5. Mount Evans, Colorado
  6. Sunset on Mount Evans

  7. Paris
  8. Paris Streetlight at Sunset

On Interviewing

Friday, July 22nd, 2005

In the past week, I’ve spent the majority of my time in job interviews–both as the interviewer and interviewee. Since most of the people my own team interviews tend to be inexperienced recent college graduates, most of whom have never had to interview for a job before, and many of whom seem to make the same very avoidable rookie mistakes, I thought it might be interesting to write down what I’ve learned about how (and how not) to go about selling yourself for a job.

Before I start, I should point out, first, that these are my own opinions and do not necessarily reflect the policy of my employer; and, second, that, while I think these principles would hold true at most Silicon Valley companies, your mileage may vary.

That said, here are my pearls of wisdom:

Show enthusiasm: It may be hard to overcome your nervousness and seem happy to be there, but its important that you establish yourself as someone who is interested not just in a job, but in the job. No one wants to feel like someone is “settling for” them, and employers are the same way. This is especially true of high profile Silicon Valley companies, which usually have a lot of fans eager to work for them.

Be proactive: It’s difficult to get a sense of a person in an interview, and it’s even more difficult when the person passively makes you pry information out of them. While you obviously shouldn’t try to seize control of the interview, it behooves you to use whatever opportunities you get to let the interviewer know why you would be particularly suited to the job.

Interviewing for a job on the OS? Well, then it would probably be a good idea to mention how much you enjoyed your Operating Systems class (and why) when asked about your education. Know that the application you’re interviewing to work on has some particular engineering problems to solve? Try to specifically mention a time in the past when you had to solve similar problems when asked about projects you’ve worked on. Have access to part of the source for the project you’re interviewing with? Familiarize yourself with it, and impress your interviewers with your initiative.

Be familiar with the programming “canon”: As a college English minor, I learned a lot about what used to be called “The Western Canon:” the common body of literature that educated people were once expected to digest. Because everyone in Western, English-speaking society was once raised on Shakespeare and the King James Bible, for example, writers could use phrases like “a hawk from a handsaw” and “through a glass darkly” with full confidence that readers would understand their meaning.

I have a theory that programming has a very similar canon, and its King James Bible may well be Kernighan & Richie’s famous C Programming Language book. Because so many programmers cut their teeth on K&R, a great many common interview questions are culled directly from its pages (implement atoi(), for example).

Other candidates for inclusion in the canon would probably include: the dinosaur book about operating systems, the Gang of Four design patterns book, and UNIX Network Programming (to name a few random examples I’m familiar with). These are the books your interviewers probably used in college, and the examples contained within them may well have formed the foundation of their understanding of computer science. It might not be a bad idea to review them.

Know your algorithms and data structures: It’s a fair bet that at least one interviewer will ask you a question about a specific algorithm or data structure, as well as its runtime (Big-O) characteristics (as I’ve pointed out before, some organizations even seem to have particular biases when it comes to data structures). Make sure you’re familiar with the basic ones: linked lists, hashtables, binary trees, etc. I’ve always thought Stanford’s CS library website was an excellent resource for reviewing linked list and binary tree basics, and the NIST Dictionary of Algorithms and Data Structures is a good resource for more advanced topics like hashtables.

Be prepared to discuss specific implementation details: This one comes from my own personal experience as an interviewee. As it happens, I was recently beaten out for a job I really wanted at least partially (I was told) because the interviewers were concerned about my inability to recall certain specific implementation details from projects I had worked on. Assume that your interviewer will be very interested in programming projects you’ve worked on in the past, and make sure you’re ready to talk in specific terms about your design decisions, algorithms and data structures you used, challenges you overcame, and how you could do things better. If its on your resume, you should be ready to talk about it.

Don’t pad your resume: It’s tempting to exaggerate the breadth of your knowledge on your resume, especially when you don’t have a lot of experience, but, while padding your resume may get you past HR, it could make for an embarrassing interview experience. I’m constantly amazed at the diversity of knowledge on my own team, and if you mention that you know something exotic like OCaml, Lisp, or Smalltalk, chances are someone will be excited at the opportunity to quiz you about their pet under-appreciated language.

Oh, and for God’s sake, if you mention that you know Cocoa, make sure you can at least explain how Cocoa memory management works! So many self-professed Cocoa programmers screw that up that I almost made a separate category in this list for it!

At least try to answer every question: I’ll let you in on a little secret about my personal interview expectations: I don’t expect every person I interview to answer every question I ask perfectly. What I do expect, however, is that people will at least make an attempt to answer every question, and quite often I’m just interested to see how they go about trying to reason their way to an answer. Make an educated guess rather than offering a blank “I don’t know” (just be sure to admit it’s an educated guess). If you’re coding at the whiteboard, talk through the problem and let the interviewers know about your thought process.

Assume that your prospective employer will read your weblog: You may think I’m joking about this, but, like everything else here, this advice comes from personal experience. When I came out to Cupertino to interview with Apple, my first interviewer of the day presented me with a printout of one of my weblog entries and asked me some questions about it. These days it’s pretty easy to Google someone you’re curious about, and you should assume that at least one of your interviewers will be curious enough to do so.

None of this advice means I’m a perfect interviewee (or interviewer), of course. As I said before, I recently lost out on a job I really wanted. Still, I’d be willing to bet that if you follow my advice, you’ll find yourself facing much friendlier interviewers and much better odds in your job hunt.

May 2005: There Will Come Soft TiVos

Tuesday, May 3rd, 2005

Recently, after months of trying, I finally managed to get the TiVo box I bought during last year’s “Great TiVo Giveaway” set up and working with my home wireless network. It was quite a chore, but the whole time I was trying to work around TiVo’s senseless omission of an ethernet port (Why USB and no ethernet, by the way? It boggles the mind!), I was at least encouraged by visions of all the wonderful television I was going to be enjoying once I got my hands on a landline.

Now that my TiVo is plugging away, though, I’ve been kind of disappointed to find that it hasn’t changed my TV watching habits at all. Sure, I can now see “The Daily Show” or “South Park” or “The Office” pretty much any time I want, but now that I have that ability I never quite seem to be in the mood. In fact, I’ve gotten so blasé toward TiVo that I rarely even check to see what it’s got for me, and it pains me a bit every time I walk past and see it earnestly recording something it thinks I will like but will almost certainly never watch.

Today I realized why I find this scene so oddly poignant: I’ve seen it before, at the end of Ray Bradbury’s Martian Chronicles. I suppose I should be happy, then: in the event that humanity is wiped out, at least something will remember how much I liked “Curb Your Enthusiasm.”

Ring-a-Ding-Ding!

Wednesday, April 27th, 2005

You would never guess from this shot that the song I am crooning is New Order’s “Bizarre Love Triangle.” Thanks to Kevin Bjorke for the photo.

Stay Tuned

Saturday, April 16th, 2005

If you’re a weblog reader who’s been waiting for me to post, or someone who has emailed me and is waiting for a response, or a Cocoalicious user who has been waiting for an update, or a Cocoalicious contributor who has been waiting for a patch to be integrated, or a PodWorks user who has been waiting really long for an update, or a PodWorks user who is waiting for support, or a WWDC Dinner attendee whose name I have yet to put on the page, please accept my apologies. I’m afraid recent stresses (both professional and personal) have made it difficult for me to maintain my customary level of overcommitment outside of my day job.

The good news is that I have a backlog of interesting things to write about, including SXSW Music, my spur of the moment trip to Death Valley, the future of Cocoalicious, an idea I have about how digital music players could implement more intelligent shuffle, a Google Maps hack I’ve been working on, my new Nikon D70, and possibly (depending on how things go) even an exciting new direction in my life.

Oh–and I promise to try to get back to answering email soon…

How I Remapped My Permalinks

Thursday, March 31st, 2005

One of the biggest things that prevented me from moving to WordPress for a long time was the fact that if I switched, all of my permalinks would break. Fortunately, I came up with a good way of remapping every one them using a combination of Marc Nozell’s Blosxom to Wordpress migration tutorial, htaccess, and some code extracted from the Wordpress Moveable Type import utility. Here’s how I did it.

To start, I modified Nozell’s templates, which cause Blosxom to dump the weblog’s content in the standard Moveable Type export format, to include an additional “permalink” field for each post. I did this by simply adding the following to his story.mt template:

PERMALINK: /weblog$path/$fn.html

I then exported all of my Blosxom posts using this template, as described by Nozell.

Next, I extracted just the code that parses the Moveable Type export files from the Wordpress Moveable Type import utility (in “import-mt.php” under the “wp-admin” directory), put it into a separate file (which I call “import-generate-htaccess.php“), added a bit of code to extract the new permalink field from each post, and then put in a line to output mod_rewrite directives that map the old permalink to the new one based on that information:

print "RewriteRule ".$permalink." http://weblog.scifihifi.com/".$post_date."/".$post_name."\n";

When this code is run on the MT Export file Bloxom generates (by going to “wp-admin/import-generate-htaccess.php in your browser), it dumps to the browser a mapping between your old post URLs to your new ones. Simply put these rewrite directives in an htaccess file at the root of your old weblog (making sure to enable rewrites first in the file), and voila: your old permalinks now redirect to your new ones.

This way of doing things is very hacky, of course, and the actual steps involved will differ a lot depending on peoples’ setups. I thought I’d at least share the general idea, though, in case someone else is in the same boat.

Combined RSS Feed

Thursday, March 31st, 2005

While I’m messing around with my weblog, I figure I might as well take advantage of FeedBurner to offer one of those composite RSS feeds that includes my weblog posts, a daily summary of my del.icio.us links, and my Flickr photos. I’m not sure how many people it will appeal to (in fact, I know some people find combined feeds like that downright annoying), but, hey, it’s free and easy to do, so here it is.

It’s Not Just a Hobby Anymore!

Tuesday, March 29th, 2005

Del.icio.us addicts take note: this afternoon our dear leader finally announced that he is quitting his day job to focus on del.icio.us development full-time. And not a moment too soon: how many weeks now has the Inbox claimed that it would be back “hopefully this week?”

In all seriousness, though, it’s nice to see Joshua get the recognition (monetary and otherwise) that he deserves for kicking off the folksonomy boom. It’s also good to hear that he seems to recognize the true reason for his (and any social software’s) success: an enthusiastic community of interesting users. Here’s hoping del.icio.us can maintain it’s excellent signal-to-noise ratio now that the wider world is beginning to catch on.