bc head icon

A hero passes.


In college, I started a stupid drunk punk band called LEMON HEADS. I wrote the name on a jean jacket in magic marker. I was in a shitty pizza place in Central Square, Cambridge, when Evan Dando came up to me and asked me about it, because that was the name of his band.

I had no idea. I gave him a box of Lemon Heads candy, and wished him much success, toasting with a shitty beer. He gave me a tape.

One of the few wishes I've made that came true.

bc head icon

Programmers: How to get hired, or at least, get much more respect

I just interviewed someone, so this is my usual rant about interviews. (It's not specific to the candidate who just came in.)

Also, @rands pithily quipped, "What I'm really asking during the interview – are you nimble, honest, and tenacious?"

So here's how to do better at your interview.

1) STUDY! Use latest compiler/OS features!

Thank goodness nobody writes "I'm a quick learner" on their resume any more. Because these days, being a quick learner is an absolute requirement. So you have to demonstrate this. And a good way to do so is to actually spend some time using the product you'd be working on.

At the very least, find an online tutorial on writing an app (note: Hello World does not count), and do it. Then figure out what's missing to make it into an app people would actually use, and take a stab at extending it. 
2) Ask interviewer a GOOD question. Not "what's it like to work here?"

If you are a neophyte, interviewing for an entry programming job, ask an intelligent question about the new compiler/OS features -- How does your new automatic garbage collection avoid killing battery life?

3) Some interviewers/companies might broach the topic of "homework." If they do, do it, and make it good. For heaven's sake, don't just google some code and copy-paste. Explain where you looked stuff up, how you compared different approaches, why you selected the one you did. Also, make sure it actually compiles. 

Interviewers: Do not ask candidates to do magic tricks with javascript. Yes, I had a friend get asked to do that. I estimate it would've taken me a whole day to figure it out, and there was no "partial credit." Terrible question. Why not just ask, "Did you invent JavaScript?"
bc head icon

Useful tool: Dry Erase sheet

There exists a kind of plastic coated, adhesive-backed, posterboard marketed for being a dry-erase surface.

1) The dry-erase surface works well. It probably will last a couple years.

2) There is adhesive on the back, rather like the extra-strength Post It notes. It's strong enough to stick to the wall, and probably won't ruin the wall surface. It is somewhat repositionable.

3) You can get it in plain, lined, gridded, calendar, or music staves. Other than that, it's white. (I think some specialty store sells the same thing with hex grids for more dollars.)

4) You can get it in sheets or on rolls.

5) It is cheap, even if you don't factor into account how ridiculously expensive "dry erase boards" are at Office Despot.

6) Apparently teachers love the stuff, which probably means it's cheap and fails to suck.

Here is the exact stuff I got: http://godryerase.stores.yahoo.net/dryersestli.html -- a packet of 3 sheets, 16.5x22 inches was $20 including shipping and no tax.
bc head icon

Requirements for jobs that I tweeted

DISCLAIMER: I am NOT a spokesperson for my employer. I am almost never allowed to comment on issues related to my employer, and not generally allowed to speak to the press. I have a good job that supports my wife and son; please don't get me fired.

I recently tweeted that my employer is looking for iCloud developers. To be a successful candidate, you would be ONE of the following:
  1.  Experienced Mac software engineer
  2.  Experienced Windows software engineer
  3.  Senior Unix Systems Engineer
For any of these positions, they'd be looking for someone who has shipped quality products of this kind in the past. I am not part of the hiring team for iCloud.

I also tweeted that my employer is looking for Build Engineers. To be a successful candidate, you should be able to do ALL of the following:
  1.  Explain your thorough knowledge of Subversion and/or Git,
  2.  Show your skills at writing powerful yet clear perl and shell scripts, and
  3.  Be experienced with using the above to build software (mac, windows, or server-side) automatically. (IE. An "automated build system")
I would be part of the hiring team for the Build Engineer jobs.

If you are interested and think you are qualified, contact me. Bonus points if you can find my LinkedIn page and contact me that way.

A bunch of people have said, "I'm only 15, so I'm not qualified for these jobs." Let me give you the best advice I know.

If you are passionate about iOS or Macintosh Software (or, heck, Android or Windows for that matter), the very best thing you can do is to go get one of those "Learn to Program Apps in 24 hours" books, get the developer tools, and WRITE SOFTWARE AS SOON AS YOU POSSIBLY CAN. Do it today! Definitely do not wait for college.

The younger you start developing the mental muscles necessary to write code, the easier it is. This is true of almost everything -- learning foreign languages, math, reading, maybe even sports.

But It only takes a few weeks to become good enough to write your own programs without a lot of help. Obviously, the sooner you start, the sooner you can be good at it.

Now I am going to tell you a sad truth that isn't actually so sad: Every single person that tries to write programs, at first, they stink. In this way, programming is just like sports or video games. At first, you stink. Your friends might even laugh. But you have to remember, they also used to stink, and they got better, and therefore you can, too. 

If we're talking sports, the way you get better is that you practice. Hopefully, you can practice in private. Go shoot 100 lay-ups every day, and you'll soon be pretty good. Go to a batting cage for an hour every day, and pretty soon, you'll be pretty good. Same thing with programming.

Even more so: when my son was born, I took a few months off from programming. Then I went back to programming, and my first few attempts, to be frank, were horrible. This happens every single time I start over again after taking time off. But I know that it only takes me a short time to get past the most embarrassing mistakes, then I start making "better" mistakes. Eventually, I am making mistakes that my friends don't even notice, and I'm asking the experts for advice.

So the good news is: Everyone else who ever learned how to program, at first, they stunk, also. It's not just you. You have to push through, and in a month, tops, you'll have a program that you actually aren't embarrassed to show to people. If you have any urge to write programs at all, and any skill, you can do it for a month.


Then, I want to give you another piece of advice, which is true even if you aren't young. If you want a job writing software, the best thing you can do is to write software, and put it up for sale -- or even for free. Even better if you sell a program, get some users, talk with them, and improve your software. There are NO college classes that are as useful as this.

Then when you go to an interview, you can say, "I wrote THIS" and maybe even "I have THIS many happy users." If you can do that, you're probably going to get the job. But if you're like some friends of mine, you won't be looking for a job. You'll already have a really good one.

I can't wait to try your programs.
bc head icon

Bang and Olufsen EarSet 3i

I am not a fan of the earbuds that come with Apple i-devices. I have since purchased some expensive headphones (BeyerDynamic DT770, which are full-size, over-the-ears, "closed cans"), but they can't really be used while bicycling. In addition to looking like a crazy person, they'd block out all the surrounding noise and I'd get run over. Also, I couldn't wear a helmet and those headphones.

Recently, I heard that Bang and Olufsen was now manufacturing an iPhone compatible pair of "earbud like" headphones, and had a chance to go listen to them in their San Francisco store. I compared them directly to my expensive headphones, which I brought along. I fully expected to listen for 2 minutes and remove them from my head in disgust. Instead, after 20 minutes, I bought them.

The sound, straight out of the package, is wonderful. At first, there seemed to be a lack of bass, but when I pushed them down to cover my ear-holes, the sound plumped right out. The stereo imaging is better than my main cans. I'm not sure where the microphone is hidden, but it seems to work just fine.

These are earbuds, but they are much larger than the Apple buds. They have a metal and rubber clip structure that keeps them in place. It does require a little finagling to get them positioned correctly. I find that I need to remove my glasses before doing so.

The biggest drawback of the entire product is the price: $200. You can usually find my main cans for cheaper than that, these days.

There are other, minor, quibbles:
• The wire is covered with rubber, which has a lot of friction.
• The three-button controller is on the left side, not the right.
• The design of the three-button controller is slightly harder to use than Apple's.
• The earbuds are designed to be used with foam-rubber covers, but these covers fall off frequently. (Apple has switched to a design that does not use covers.) You can use them without the covers, but they are less comfortable, and might not stay in place as well.

In addition to the sound quality, I find them to be comfortable and good-looking. I'm delighted to have them.
bc head icon

Reposting a crass marketing ploy

Radio Shack has posted a video asking for customer input from the "Maker/DIY Customer."

The guys at hackaday reposted: http://hackaday.com/2011/05/27/speak-your-mind-and-help-radioshack-suck-less/

Some people think this a crass marketing ploy. Maybe it is. But consider that if you are willing to spend a few minutes writing them, Radio Shack might actually have stuff you want in the store.

I know, I know. They are not likely to ever have anything off-the-beaten-path enough to be truly interesting. Heck, they are not likely to ever have "people who actually know something about electronics."

But the cost is low, and the potential payout is interesting, even if the odds are pretty long.
bc head icon

Successor to the OLPC, the Raspberry Pi


Stick-of-gum computer with an ARM chip, pretty good video hardware, USB 2, and 256MB of RAM.

And that's it. You'll have to add a USB hub, a keyboard, mass storage, a mouse, and a video display/TV.

Intended price point: $25. (And, obviously, when you add the necessities, it'll really cost $100 or more.)

I'll probably donate some units, when it becomes real enough.

Incidentally, I dropped out of the OLPC "software charity" effort a while ago. I just wasn't any use to them, since I have zero temperament for porting Linux, so I donated my hardware and some more cash to the local SF group, so that they can deploy in, I think, Haiti.

In addition, as interesting as a near-indestructible, very low power, very low cost computer was, I simply could not type on the OLPC keyboard. Makes it tougher for grownups to steal the computers, I guess.

Good news is that, partially due to OLPC, open source unix has gotten a lot better at low power computing, so doing OLPC-like computers is dramatically easier now than it was then. Hopefully, a bunch of undergrads can port Sugar to it in a few weekends.
bc head icon


I am a huge fan of the Chinese version of this dish, which I know as 炸醬面, Tzar Cheung Mein, Peking Special Sauce Noodles. (Hopefully my copy/paste of the chinese worked.)

The Chinese dish is basically ground pork, soy sauce, and black bean paste over noodles that are a lot like ramen. (For years, I would go to the Joyce Chen Small Eating Place and get them for lunch, because they were inexpensive and delicious. I tried not to listen to the waitress and cook talk, in this Boston accents, about where they should get Mexican food after work.)

The Koreans love this dish, too, and make their own version with way more black bean paste, some dried seafood, and some very dense tofu. Locally to the SF Bay Area, they call the dish "Za Zang Myun."

So when I saw these noodles at the grocery, I got them. When I made them, they ended up with a nearly-black sauce that I am used to seeing on Za Zang Myun. The flavor was not overpoweringly salty, the dried vegetables reconstituted nicely, and the noodles where chewy and delicious. Typical ramen are 6/$1.50, or 39 cents each, and one unit of Chapaghetti is $1.39. Worth it.

I'd give these 8/10, but that's because there are some kinds of instant noodles that include, for instance, curry sauce and "fake meat chicken" -- those I'd give a 10/10.
bc head icon

The best app for math, ever.

In the past 30 years, I've been stunned speechless by computers on several occasions. I remember the first Macintosh, the first computer speech, the first time I was able to chat, via computer, with someone thousands of miles away -- and the first time I saw Graphing Calculator. By now, most of these feelings have dulled, but I'm still in love with Graphing Calculator.

Steve Jobs often talks about software that's so powerful, and yet so effortless, that it's magical. When you use Graphing Calculator, you get an almost-physical feeling of HOW MATH WORKS.

If you have, say y = (some big long equation including x), and you want to solve for x, pick up x and y and drag them around. WHILE YOU ARE DRAGGING, GC will update the equation, keeping it accurate. It's easier than untangling the wires on your earbuds!

Type something like y = sin t x -- GC will draw the graph, and add a slider for t. Yank on the slider, and see the results. Click a play button, and it will slide back and forth. Aha, t is affecting "frequency"! Now you understand.

You can, of course, grab a chart and drag it for a different perspective. Zoom in and out. Rotate 3D charts. (Even draw 4- and 5-dimensional charts.) GC keeps animating the entire time. More importantly, you can click on equations and find the interesting values.

Math is often hard. Graphing Calculator, because it's so powerful and effortless, makes it easy to "just mess around" with equations, and in doing so, you really understand them.

GC includes some amazing eye-candy -- a bunch of equations that plot a little PAC MAN head, chomping away. That's nice, but the thing is, you can tweak the equations, control the values, and therefore understand how the whole thing works, and pretty soon you'll be making your own silly eye-candy. No more math phobia.

There are other programs for solving hard math problems. They are not only slower to solve equations, they take much more time to learn to use. It reminds me that once, long ago, programmers had to punch their programs onto special cards (better not make any mistakes!), and then take the piles of these cards to a special room. The next day, they'd get a printout, usually showing an error or two. Even simple programming required huge amounts of patience, and very few people even wanted to learn. Then Apple and others used the immense power of faster chips to make computers "effortless" -- and now even people who would rather not learn about FLASH RAM or WI FI can take a picture of a product, and within seconds, find out whether the price in the store really is a bargain.

Graphing Calculator is like that, for Math. Nothing short of a revolution. It is a pity that Apple stopped including it with the operating system. But as a result, it's available for Windows, too.

It's not cheap. But there's a free "Viewer" version -- try it and I bet you will be saving your pennies.