Neil Young, Trans Tour

December 5th, 2007

I wish I could find the source of this footage.

I support Barack

November 18th, 2007

I support Barack Obama. He is the only viable candidate that is serious about changing politics.

His speech at the Jefferson Jackson Dinner was one of the best speeches I’ve heard from a politician since he spoke at the 2004 Democratic National Convention:

Lawrence Lessig recently publicly endorsed Obama. The alternative to Obama appears to be Hillary; Lessig describes why he’s not supporting Hillary:

But the part that gets me the most about Senator Clinton is the eager embrace of spinelessness. I don’t get this in Democrats generally. I never have, but I especially don’t get it after two defeats to the likes of George Bush (ok, one defeat, but let’s put that aside for the moment). Our party seems constitutionally wedded to the idea that you wage a campaign with tiny speech. Say as little as possible. Be as uncontroversial as you can. Embrace the chameleon as the mascot. Fear only that someone would clearly understand what you believe. (Think of Kerry denying he supported gay marriage — and recognize that the same sort of people who thought that would win him support are now inside the control room at ClintonHQ).

I want the next president to have a spine.

Posts From The Past

November 18th, 2007

I rarely read my archives but my nostalgia kicked in as the blog recently hit two years of age. Here are some of my favorites:

  • Nov, 2005: I evaluated the cost of financing versus leasing a car.
  • Aug, 2006: I argued that the economy at large was threatened by the housing bubble.
  • Dec, 2006: I explained the previously unknown process using ICU on Mac OS X. That led to CocoaICU.

HP LaserJet 1020 on Mac OS X

October 30th, 2007

I just bought a new printer, an HP LaserJet 1020. I was surprised to find out just how affordable laser printers are (I spent $150). I read the reviews and although the printer is not officially supported on the Mac, various people stated that it’s possible to get it to work.

I bravely ordered the 1020 and assumed I could get it working on my Mac. I was even naive enough to believe that perhaps Leopard would have some super-magical update that made everything just work.

Everything did not just work. I plugged the printer into my MacBook and attempted to add the printer. No driver. This was about what I expected. Next step, I googled ‘HP 1020 mac‘. Okay, that forum seems interesting. Click, read, download drivers from HP for 1022, install driver, attempt to add the printer. No luck.

At this point, I realized that that thread was 10 pages long. There are a few routes to get the printer working but I chose to install the old HP driver for the 1020 which allows you to print to the 1022. The old driver is not available on HP’s site; someone is hosting that driver.

You could also go the open source route and install a Foomatic driver. That sounds like fun but I only saw this after I got the printer working so I’m just sticking with the old HP drivers.

What really disturbs me about this is that HP has developed a driver that basically works with this printer but they have chosen to not do whatever is necessary to support the Mac. BOOOO!

SmugMugExport 1.0.3

October 9th, 2007

I’ve released SmugMugExport 1.0.3. Notable changes include:

  • new subcategory selection in the album creation interface
  • use of PUT instead of multi-part POST for uploading images
  • new keyboard shortcuts for adding and removing albums (try ‘-’, ‘+’, or Delete)
  • other bug fixes, internal cleanup, etc

To those unfamiliar with the project, SmugMugExport is an iPhoto export plugin that allows you to upload photos from iPhoto to SmugMug.

In other SmugMugExport news, my plugin is now prominently featured on the Mac upload page. I’m kind of bugged that my plugin is listed as ‘iPhoto’ and not by its name but it’s still nice that I’m listed there at all.

Where’s NSRegularExpression?

September 15th, 2007

I wrote CocoaICU about a year ago when I made the following observations:

  • ICU has great regular expression support
  • ICU is installed on Mac OS X
  • Foundation lacks support for regexes.

CocoaICU is simply a light layer of Objective-C code that encapsulates ICU.

It’s remarkable that Cocoa still lacks regular expression support. I am not a Leopard user or tester but my educated hunch is that Leopard will not add support for regexes which means that this problem is probably going to exist in the Mac developer community for at least another few years. Why is this such a bad thing?

  • Inconsistent regex semantics across apps : Regex syntax leaks through to users of applications. Conventions for character classes and semantics for referencing capture groups differ across regex libraries. The result is that users must understand the particular regex semantics for each application they use. It would be nice if we all just agreed to use whatever Apple wanted (probably ICU).
  • A confusing variety of regex libraries for developers : In the absence of a generally accepted regex implementation, a variety of third-party libraries have sprung up to fill the void. If you absolutely need regexes in your app, the otherwise simple problem of writing regular expressions has become the much harder problem of shopping for a regex library that suits your needs: what are the differences in features between libraries? how well-tested is library X?, etc. In addition, the userbase of regex users is now fragmented across several libraries and the benefits of a large userbase (bug reports, feature requests, etc) are now dissipated over many libraries. Developers who use a third-party library are also now responsible for incorporating updates to the library into their app.
  • It’s embarrassing for Apple : It’s embarrassing that Cocoa is the only framework I can think of that lacks support for regexes.

I know Apple understands the importance of adding regular expression support to Foundation. What has mystified me until a few days ago is why Foundation still lacks regexes.

Apple is apparently waiting for at least one big improvement to ICU before they add regex support for NSStrings. A recent post in a Cocoa-Dev thread by an Apple employee mentions the missing ICU functionality that prevents Apple from adding regex support. I hesitate to claim that I completely understand the issue and its relation to Apple but I think the following describes the situation:

  • ICU currently only works with UTF16 strings stored in a buffer
  • NSStrings are not stored as UTF16 strings and character data is not necessarily stored in one continuous buffer
  • The underlying characters in an NSString must therefore be copied to a buffer as UTF16 strings before matching can occur using ICU
  • It would be nice to not have to do this potentially large convert/copy of an NSString to do matching

Apple could add regex support by simply doing the inefficient convert/copy of strings which would basically replicate what CocoaICU does. It’s clear that Apple is not going to do this (they would have done it by now). I think I agree with Apple’s stance on this issue; users of Foundation should expect that something as simple as regular expression matching works as expected. An implementation that would potentially consume lots of memory or perform poorly is worse than simply not including any functionality.

Suddenly, I Feel 12 Years Old Again

August 26th, 2007

sim city

Thanks Wii!

The Art of Resume Writing for Software Developers

August 23rd, 2007

There is no shortage of advice available to guide you in writing a resume. I’m going to pollute those waters a bit more and lend my advice which is targeted at software developers.

It’s fairly easy for an intelligent person with a bit of work experience to write a mediocre resume: insert contact info, insert previous jobs with duties, list skills, list education. I read a fair number of these kinds of resumes. People with this class of resumes get jobs. Odds are you have one of these resumes.

There is another class of resume that vaguely resembles the outline above but is much, much better. Something about these resumes quickly and accurately gives the reader a good idea of the writer’s skills and personality. I’m pretty sure that this class of resumes is almost always written by people who have either read many resumes and/or understand how the hiring process works at larger companies. I don’t claim to have a resume that is in this upper class. However, I’ve read so many resumes that I’m starting to learn how to make my resume more like those written by the upper-tier.

Let’s go through the life-cycle of the resume:

  1. writer posts resume on web or submits resume to potential employer
  2. keywords scanning computer may scan resume for keywords
  3. resume enters company where human resources looks at the resume
  4. human resources passes the resume to a technical contact in the organization who is a potential manager
  5. manager reviews resume during a phone screen to formulate questions
  6. on-site interviewers briefly review resume to formulate expectations and questions
  7. resume may be used during interview to formulate questions during the face to face interview
  8. the resume is carried by interviewers to a meeting where the decision about the candidate is made

There are some things to note about this process:

  • technical people don’t look at your resume before step 4
  • most people don’t get to step 4
  • technical people only briefly look at your resume
  • technical people use your resume as a source of questions to ask you

When the non-technical reader reads your resume, they need to quickly determine if your skills match those on the job description. If you paint an inconsistent picture of your skills, the reader will pass you over. If the jobs is for a Java programmer and you mention the Java bullet point in your skills but your experience doesn’t talk about all the things you did using Java, then you’re not a Java programmer no matter how well you know the language.

When the technical reader reads your resume, they will most likely scan it for interesting items. If there is something unique like an objective or summary at the top of the resume, I will probably read it (if it’s short). I look at the experience and try to see what meaningful things the person did at their last two or three jobs. If they try to impress me with overly descriptive or buzzword-laden summaries of their jobs or duties, I stop reading. There are no bonus points for big words, technical acronym soup, or descriptive prose. The reader wants to quickly know what you’re good at and what you’re going to do at work.

I only recently revised my resume with the intent of making it something better than mediocre. I’m not sure if it’s there yet. Note the following about the resume:

  • keywords at the top: keyword scanners are welcome. Sure it’s a bit cynical but I think it works
  • third-person summary: I’m not sure I really like this yet but the intent is to give a reader a quick overview of who I am. If you’re a brand, you have a mission statement. On a resume, this summary is basically my mission statement: who I am and what I do. It probably needs some help but it’s a start.
  • experience as bullet points: All the interesting things I did at a job get a bullet. These bullet points are my friend when I am being interviewed by someone who is looking at my resume. Bullet points will turn into questions and I can talk about these items.
  • skills divided by skill level: Developers are generalists by necessity. We should know how to program in C, use Unix, write some HTML, etc. We also have a few strengths that are our core strengths that get us jobs. If you combine all your skills into one section, you’re diluting your really good skills and overselling your less honed skills; they all occupy the same amount of space in a list of skills.

Let’s hope these tips help you make your resume more than mediocre.

Nothing is Perfect

June 10th, 2007

I sure wish this was released on an album:

WWDC Predictions

June 9th, 2007

Before MacWorld 2007 I made some predictions:

  1. New Finder in Leopard: Apple’s Finder will be significantly improved. This rumor has been repeated ad nauseam since 10.0 but I think this is the year. Apple has already stated that there are unannounced features in Leopard and Apple will need to put those features into developer’s hands to really test the code. Thus, Leopard won’t be in consumers hands until June.
  2. iPhone: Everyone is expecting this and I think it will happen at Macworld. This is Apple’s biggest new product since the iPod. There is always the possibility that it gets pushed to a special event in February if it’s not quite ready yet. I feel like it’s been a while since there’s been an impressive “One More Thing”. This could be it.
  3. Apple Google Partnership: If the iPhone happens, I already blogged about why I think this will happen.
  4. iTV: If #3 happens, maybe we’ll see some Google content (YouTube) show up on iTV. People expect new features to be announced for iTV.
  5. iWork and iLife Updates: It isn’t really a prediction if it’s certainly going to happen.

It’s been six months and WWDC is right around the corner so let’s look back on those predictions:

  1. We didn’t see a new Finder at MacWorld but I think we’ll see one at WWDC. Before MacWorld, Leopard was still supposed to ship in the first half of 2007. My conclusion about a new Finder at MacWorld was based on the need to put features in developers hands before releasing Leopard. Now that Leopard has been delayed, the conclusion still stands.
  2. iPhone exists and was released at MacWorld.
  3. I think this is going to happen and replace or radically transform .Mac as I suspected many months ago.
  4. iTV with YouTube content has already been announced.
  5. iWork and iLife updates will probably come out when Leopard is released.

The only other possibility I see is that the new Finder will be part of some larger technology that enables really cool interfaces and that this technology is the big news.

What we won’t see but people (cough rumor sites) have been talking about:

  1. new iMacs
  2. iPhone SDK

This WWDC should be an exciting one for developers. I think Apple will add on a few new features to Leopard that really enable interesting apps.