Archive for the 'rants' Category

How I Wish It Were True

Paul Graham’s recent essay, Apple’s Mistake is a very clear, and I think, fair description of what’s gone totally wrong with the App Store and the associated review process.

The absurdly reductionist summary is: “unless Apple pays attention to what programmers think, the iPhone as a platform will wither and die.” How I hope Apple takes that argument to heart! But the bitter, cranky realist in me says it’s probably not going to happen. Nor do I think Apple will suffer much (noticeably) if they continue on their current path.

I’ve had an iPhone since the second day you could buy them. I love the device, as I have not loved any other gadget. And this is what I believe breaks Paul’s argument: the device, without any apps at all, is so much better than anything else out there, I would not seriously consider switching to some other phone. I suspect a lot of people, most people in fact, who care not a whit of the pain and suffering of programmers to labor to get their wares into Apple’s store, who like the simplicity and elegance of the iPhone would behave the same way.

I actually have two phones. I’ve been carrying a Motorola Droid for about two weeks. There are some things about it that are quite cool: GMail is the best email I’ve ever used on a mobile device, better than Blackberry and several million times better than email on the iPhone. I love that I can use my Google voice number for all calls, automatically.

Aside from that, though, it feels very, um, Linuxy. And nerdy. And clunky. (I won’t even get into how ugly it is next to the iPhone. Some people care about design, and many don’t.)

Linux is great, of course. But UI’s built on top of Linux tend to be oddly inconsistent, patchwork and fussy. The Android UI, at least the one that Motorola has put together for Droid, feels a lot more like a computer UI than it does a seamless mobile UI. Apple managed to take what a phone UI was like and extend it to do things you wouldn’t think you could do with a tiny screen and fat fingers. Android seems much more to have been taken from a computer UI and hammered down to a way you can touch that UI on a tiny screen.

It’s hard to describe exactly what things make it seem that way. But probably it comes to things like: too many nested menus; two ways of navigating apps; no direct manipulation to delete an app; and too much awareness that there is a ‘file system.’ To install music on the Droid, you have to find a special menu, enable and mount the phone as a drive, and then copy mp3 files from your computer to the droid. How many normal people are going to even know what the heck “mount” means?

So, the problem with Paul’s warning scenario actually affecting Apple is this: the iPhone is so much better as a device, hardware and software, out of the box, that millions and millions of people will prefer it to other devices. And there’s no close second: you have the crappy phones from Samsung and LG, and the meh phones from Nokia, and the almost-good-but-too-geeky phones from Motorola. And they all have different quirks and sizes and input methods. So where will most developers put their time? The ones who actually want to make some money? On the one phone where ALL the screen sizes are the same, and all the APIs are the same.

I wish it weren’t so. I wish Apple would think something like “Gee, we are just crushing everybody on industrial design, simple interfaces and marketing. Let’s also crush them on making the developers love us too.” But they don’t seem inclined to care, and I don’t really think it will impact their bottom line if they don’t.

Motorola: if you want to beat Apple, make one phone. One single phone that is the expression of all the very best your industrial designers can put together, and one UI on top of Android that is the most carefully researched and tested that your UX experts can come up with. Or Samsung or LG, or Nokia. Make one single phone, and make it better every year until it beats the iPhone. Then people will buy it. Then the developers will come. And you can treat them like crap, or not, it doesn’t matter.

I Think a Blackberry is Probably Better for Doctor Wife

I wrote earlier about the iPhone’s poor SMS alert features, and how that made it unsuitable for my wife who is a doctor. I’m now 90% certain that a blackberry is the right choice for her.

The SMS thing is huge. I probably could hack something together, like have a web site that would keep sending SMS alerts every 5 minutes until she acknowledged it. But that could get very expensive/annoying in failure cases. Such as: the phone is in SMS coverage but not data, so you can’t stop the server from paging you.

Blackberry SMS alerts are fully customizable, and there is an alert LED as well. I don’t know if there is a persistent audible beep, but a long and loud alert plus the blinking red LED is good enough.

The other thing gets into the classic blackberry vs. iPhone debate. I won’t get into that too much, but mostly people talk about the touch screen keyboard vs. the physical keyboard; or screen resolution; or 3G quality; or integration with enterprise systems.

But all that is irrelevant to my choice.

First, the keyboard thing is a bullshit argument. Some people have a hard time with the touch screen keyboard, and they are aces with two thumbs. Some people are touch screen wizards. And others, such as me, are completely hopeless with both. The keyboard thing is largely a question of personal taste, and one is not better than the other, objectively. A touch keyboard gives you more screen to play with, a physical keyboard gives you different UI benefits (such as dozens of physical shortcut navigation possibilities.) It’s trade-off city.

When I really started thinking about what my wife needs for a smartphone, instead of thinking of an excuse to buy a shiny, pretty iPhone, I got into the real use cases. The primary one is this: it’s 3am, or she has 3 minutes between patients, and she gets a page/SMS. She needs to get to the email message that contains the voicemail quickly. If you imagine this use case on an iPhone, and really time it out, it would be something like this:

0. Pretend, just for argument that the incredibly quiet SMS alert on the iPhone actually gets noticed. In reality, it won’t much of the time, and then the entire work flow below gets delayed by 10 minutes to an hour.

1. Wake iphone (instant)

2. Slider unlock swipe (if you are sleepy because it’s 3am, you might have to do this twice); 1 second

3. Type unlock code. Oops, touched the emergency call button. OK, finally got it right. 5 seconds.

5. Open SMS. Find message. (2 seconds)

6. Touch Mail icon. Mail launches. (1 second)

7. Wait while Mail polls for new messages. (5 seconds)

8. Wait some more while Mail polls, because it just noticed the Wifi and reset it’s TCP connection. (15 seconds)

9. Or wait even more because EDGE/3G coverage is weak at the moment. (20 more seconds.)

10. OK see message that has the voicemail attachment and callback number. Listen to the attachment. Wait while it downloads (5-30 seconds.)

11. Listen to message, call patient. Call patient is instant because you can just click on the phone number in the either the mail message or the SMS.

I’ve been living with my iPhone for a year. I love it, it’s the best consumer electronic device I’ve ever owned. But this is the way it really is. I’m a computer programmer, I have zero stress in my job. I don’t really care much if reading email takes 30 seconds. If I’m checking email on my phone, it’s because I’m bored in the waiting room of the dentist and I have 30 seconds to waste. People aren’t throwing up blood while I’m waiting for an email to pop up on my screen. (Oh yes, I went there.)

You might think I’m being picky here, with these 1 and 2 second things. But put yourself in the situation. It’s night, you are tired, you are stressed. You probably haven’t slept much because you’ve got a lot of pages. Every stutter in the work flow is like a slap in the face, and your blood pressure ticks up a notch. Speed matters, and if you think 1 second is fast, then Google is going to eat your lunch when they eventually get around to entering your business.

OK, now walk through the Blackberry scenario. If you haven’t actually used a Blackberry for a while, you’ll have to trust me. This is the way it really is.

1. Wake Blackberry. (instant)

2. Type unlock code. Getting the code wrong/hitting the emergency call key is a lot less likely; one of the UI benefits of physical keys. (2 seconds)

3. Read SMS message (1 second)

4. Launch email (instant)

5. Oh look the message is already there, thanks to the insanely fast and reliable push infrastructure that RIM has perfected. Read message (instant)

6. Download voice mail attachment (5-30 seconds.) I’m going to guess this is about the same on the blackberry as the iPhone, but I don’t know that for sure, because I haven’t tested it yet. Based on current rumors, it’s possible that the iPhone has some weakness in the 3G stack, so it might be that the Blackberry actually is faster.

7. Call patient. The Blackberry can make a phone call from the selected phone number in the email, just like all smart phones. (instant)

With the Blackberry, there’s no stutter in work flow at all, except waiting for the download of what could be a long, rambling voice mail from a sick and occasionally demented patient. That’s pretty much unavoidable until networks get faster/better coverage.

A much better solution to all of this would be to forward the voice mail left on the office phone system to iPhone visual voice mail, or to the voice mail box of the Blackberry carrier, with caller ID intact. I don’t know of a way to do this with a self-hosted PBX (we’re using an Asterisk-based one now.)

Finally, there’s an obvious question here. Why doesn’t she just call her office voice mail and listen to the messages, once she gets the SMS? This is, in fact, what we do today. It’s not really satisfactory because of a problem with the office PBX: for some reason, incoming calls are very quiet. If you listen to them on the phone, it can be hard to understand what a sick/elderly patient is saying, because they talk quietly or mumble. For whatever reason, if you just play the audio file in email, it’s much clearer and louder. We’re working with our PBX vendor to fix this, but honestly, I’m about to put the thing back in the box and send it back. So the whole adventure of getting a smartphone to listen to voice mail is a pragmatic solution to vendor intransigence.

iPhone Ringtones, SMS Alerts and Physicians

I’d like to buy an iPhone for my wife. She has a RAZR, and it’s such junk. She doesn’t get very much email, so the simple iPhone email app would be great for her to get her email and check her voice mail. (The phone system at her office sends voicemail as attachments.)

But there is one huge hurdle that’s blocking me. It’s a big problem, and it’s extremely frustrating because it could be solved so simply. It’s really just a tiny little thing, and it sucks that stopping me from buying that shiny, shiny new phone.

My wife is a physician, and part of that means being on-call. What happens is this: patients call the office at 2 in the morning, they leave a message, and the phone system sends an SMS message to her phone. Currently it’s her RAZR. So I set up her RAZR to have the longest, loudest possible SMS alert sound. It’s important, because if she happens to be at home, and her phone is in the kitchen, and she is in the other room, you want her to hear it. So she can call you back and prescribe your meds. But if she does happen to be WAY down the other end of the house, and the kids are yelling, and she doesn’t hear the loud, long alert, the RAZR has a persisent page. So 5 minutes later when she is back near the phone she’ll hear a little “beep.” Then she’ll know she has a page and she can return it.

The iPhone fails this use case in two ways. First the selection of tones is pathetic. Apple has decided that there are only 10 or so sounds that are suitable for an SMS alert. And they are all quiet and short little dings and beeps. Second, there is no persistence. The iPhone won’t beep every 5 minutes until you at least look at the screen and see the message indicator.

I even bought a custom ringtone in the hope that it would be selectable as an SMS alert. No dice. Wasted $0.99.

I don’t see how any physician can use an iPhone as their sole device. Apple has basically forced all of them to also carry a pager, or RAZR, or Blackberry. Why? I don’t get it. Most UI limitations Apple chooses really contribute to overall cleanliness and simplicity of the interface. But the SMS sound selection ALREADY has a choice of sounds. Why not let somebody choose annoying, long sounds for SMS? On the surface, it might seem like a tasteless, annoying thing to do. But in some use cases, it could save somebody’s life. Think about it.

I’m hoping some clever developer creates an iPhone app that will solve this.

[I know I could buy her an iPhone, and she could carry both the iPhone AND the RAZR. But... yuck, and you know, it costs money to have two devices.]

Update: I was hoping the iToner app from Ambrosia would work, but, alas, it only customize the phone tones.

Update: there is a lot of info out there on how to hack your iPhone to do this, but it requires Jailbreaking, which won’t work at the moment on 2.0.1. But that might be an option for us.

MobileMe would be great if it actually, you know, worked.

For me, MobileMe has been a fucking disaster. First, during the first few days I had ENDLESS contact/calendar conflicts, and MobileMe actually deleted a random set of about 100 contacts.

That’s all settled down now, but now iDisk has become so unreliable that it’s almost pointless. If I don’t explicitly sync up a computer, and then check that something made it up to the server (via the web UI), then get on the other client computer, and push the sync button, and sometimes reboot, and push the sync button a few more times, nothing syncs. This is despite the fact that everything is set to “Automatically” synchronize.

Guess what? Copying stuff to my personal web site and manually copying it back down is less of a hassle. And I’m paying for this? Bleah.

Things You’d Like to Say to Sales Reps

Sometimes the things sales people say just makes you want to go crazy and get all rude and sarcastic. But you really shouldn’t. It’s not their fault they’ve been given some stupid-assed company line to tow, or have had insufficient training. So you have to smile and say “Thank you.” But it’s fun to imagine what you would say if you were a big, giant meany.

I’m shopping around for online billing software/services for my wife’s medical practice. The first question I ask is “What are the browser requirements/do you support Firefox on Mac?”

The first amusing answer I got was on the phone.

Sales Guy: “Well, uh, it’s a proprietary system, so they want to really control what’s on there, and they don’t really allow just anything to run. So it’s only IE on Windows.”
Me (confused): “Um, you mean [your company name] wants to control what browser people use with your system?”
Sales Guy: “No, Apple doesn’t allow it.”
What I actually said: “Well, that’s not really, you know, true, but whatever. Thanks.”
What I wanted to say: “Dude, how fucking stupid do you think I am? Buh-bye.”

OK, the next one was just today. One of those chat window sales things popped up on the site.

Me: “Does [your product name] support Firefox on Mac?”
Sales Chatter Dude: “We only support IE on Windows for Security Reasons.”
Me (actual): “OK, Thanks.”
Me (desired): “So, by security reasons, you mean you want to create the largest number of scenarios where my medical office computer is infected with worms, spyware, and virus, so I can then use it to access your Windows .NET based server system. Which, I take it, has also been chosen for the security reason that you want to create the worst possible security situation. Is that right? Jesus H Roosevelt Christ, get a friggin clue!”

Emacs Notes for Summer 2008

Every now and then, I re-evaluate and switch up the emacs version that I use. Often this is driven by a major OS upgrade, like Panther->Tiger or Tiger->Leopard. Sometimes it’s just because it’s been a while, or something that has been bugging me, and I’ve reached the breaking point. Or I want to avoid real work for an hour.

In the version of Carbon Emacs I used for Tiger (which I had built myself from GNU sources), I had some emacs lisp that would set the default font on startup. The built in default font was too big for my tastes, and it was consequently anti-aliased. I really don’t like anti-aliased fonts in my editors and terminals.

For some reason, this lisp no longer worked in the Carbon Emacs I had to start using for Leopard. In fact the little dialog box that you could pop up a standard Mac font selector window didn’t even work, so I couldn’t change the font from the default Monaco 12-point anti-aliased font. I’ve been suffering this cruelty for over 6 months.

Today I tried a number of recipes for getting a newer emacs (I wanted to try 22.2), but they failed. I ended up using this hack:

First, download emacs 22.2 sources from GNU.


cd emacs-22.2
sudo cp -R mac/Emacs.app /Applications/Emacs.app
sudo cp /usr/bin/emacs /Applications/Emacs.app/Contents/MacOS

My old lisp still didn’t work the way it used to, but part of it did:

(global-set-key "\C-x\C-t" 'mac-font-panel-mode)

This allows me to bring up the little Mac font selector window. Then some apropos work turned up “set-default-font.” Mac fonts on Emacs have seriously inscrutable names. But if you interactive run M-x set-default-font and then hit ? when it asks which font, you get a nice listing of ALL the crazy Emacs-ized mac font names.

The font I wanted was:


(set-default-font "-apple-monaco-medium-r-normal--10-90-72-72-m-90-mac-roman")

That’s Monaco 10 point. So I just stuff that in my emacs lisp initialization file along with:


(global-font-lock-mode 1)
(set-frame-width (selected-frame) 90)
(set-frame-height (selected-frame) 80)
(set-frame-position (selected-frame) 1 6)

And my Emacs is ready to use when it starts up. Just like back in 1991 on my SPARCstation 2.

Normal People Become Mac Nerds

I’m a computer geek, and I mostly hang around other computer geeks. So my views of what is really popular in terms of information technology are very skewed. I’m very aware of this bias, because at work we are trying really hard to make our software easy to use and popular with norms. That’s normal people, not computer dorks.

A vast portion of the technology arguments we have, I fully realize, are irrelevant to the norms. They don’t give shit about Unix, or Macs or Vista. They know that there are computers, and there’s the internet (or Google, which is, for a lot of people, the internet). People just want something simple that works, and all the other bullshit that we Valleywag readers care about doesn’t even register on their personal radar.

That’s what I thought as of a few days ago, anyway. I had jury duty the other morning, that great democratic cocktail shaker that stuffs a couple hundred citizens from all the American castes in one room for 4-5 hours. Mostly I just kept my head down and read my sci-fi novel. But I couldn’t help overhearing a conversation of three norms sitting nearby. One guy, maybe was in his late 50s, seemed like he owned a small business of some kind. Sounded like a good guy, I think maybe with a Woburn accent, probably not a college type. Definitely a norm. There was a college-age woman or maybe a little older: she seemed like a typical Gen Y-er, but not technical. And there was a kid, maybe 21, a semi-goth maybe. A video game junkie, probably. Also not a tech person.

I heard bits and pieces of stuff and then started listening. They were having the Mac vs. PC discussion. It wasn’t the religious thing. Nobody in the conversation was saying PCs were better. The older guy and the woman were basically spouting the party line benefits of Apple and Mac, getting some of the ideas a little wrong or garbled, but mostly getting it right. The younger guy was the PC user and he was playing the role of “I have this old PC and I need a new one, but I don’t really know about how to use Macs.” The other two were right on this, talking him through how it wasn’t a big deal, it just takes a little getting used to, and everything works so much better.

I was floored. I didn’t think it would be possible to dislodge Windows from it’s preeminent position on the desktop. No matter how bad Vista sucked, or how great OS X was. Now I’m not so sure.

How the heck do I set up a BitTorrent tracker?

Why is this so friggin hard?

At work we have a couple hundred servers, and we like to install software on them a lot. Like every day. The software images are kind of big, maybe 100-200mb each, and there are maybe 20 different “types” of them. We more or less want to copy all the images out to all 200 machines really fast. Instantly would be great, but we’d settle for a minute or two. We have way expensive switches with 32 gigabit aggregate bandwidth, so 32 file copies could be happening simultaneously at fill 1000 megabit wire speed before we’d run into a wall.

We’ve had the idea for a long time to run our own little bittorrent universe on our LAN, with a client on every machine and a tracker that would get the master copy of everything.

I’ve just about pulled all the hair out of my head trying to make this work. BitTorrent.com has sold out to the Music/TV/Movie industry, and their web site is all useless drivel about how to download movies on the Windows BitTorrent client. There are 17 zillion people who have written their own bittorrent trackers, but those sites are loaded with ads about free pr0n, and it doesn’t give me a happy feeling about installing into my production data center. Or my own workstation for that matter.

I’ve tried downloading the BT source code from sourceforge; that’s apparently gone. Darwin/Macports installs of bittorrent bit the giant FAIL with all kinds of fucked up Python dependencies.

It’s looking like one of the most popular and probably easiest trackers is a PHP-based one called BT Tracker. But there are 500 flavors of that, and I really don’t want to have to set up a web server to set up PHP to set up a tracker for an internal system. Doesn’t anybody just make simple, self-contained daemons anymore?

Got any hints?

Amen, brother.

Update: promising. Um, maybe not.

Periodic Steve Yegge pointer

Remember how I said I thought Stevie was my slightly smarter, long lost twin?
I was wrong. He is way, way smarter than me.

In praise of the one page resume.

Steve Yegge has written up some great stuff about how to get hired. In particular, he’s talking about how to get hired by at Google, and probably when he is interviewing you. But I think the advice would work at a lot of places, including where I work.

We’ve been interviewing a lot of candidates recently, so I’ll offer my little bit of advice to the job seeker: cut your resume down to one page. I don’t care who you are, or how much you’ve accomplished in your life. If you can’t express your life’s work in a one-page summary, you either:

1. Have an overinflated opinion of yourself and what you’ve done.

2. Have no idea how distinguish the important from the trivial.

Either way, I won’t want to work with you, for you, or have you work for me.

I was ranting about this today, holding up as an example a nice, clean 1-page resume of a college intern. “This is brilliant. One page. Everybody should have a one-page resume.”

Paul said, “what if you’re Steve Jobs?”

I don’t care who you are. In fact, if you are Steve Jobs, this is your resume.

I’m Steve Jobs.

If you want to get all wordy, you could probably get away with:

I invented the Macintosh, the iPod, the iPhone, brought the music industry weeping to me at my feet, and am in the middle of taking over Disney. Who am I?

Back in reality, you might be saying, but I did all these things and I learned all this stuff. Guess what? You’ve either had a lot of jobs, and you’ve done one or two really interesting/difficult/awesome things at them, or you’ve had a few jobs, and you’ve done slightly more interesting/difficult/awesome things.

You should be able to summarize each interesting thing you’ve done in one sentence. Furthermore, I claim that you can’t really do much more than 1 interesting thing per year. If you claim that you can, I think you and I have very different ideas about what “interesting” means. This summary sentence should be like a newspaper headline, something that will make me think “Gosh, that sounds really interesting, I must ask them more about it.” Then we’ll be able to talk about all the details about what made that thing hard or fun or really terrific. Your resume is bait, to get me on the hook.