Archive for the 'iphone' Category

Snow Leopard iPhone SDK fixed

I was completely stumped by an error in the build of our iPhone app. It just said ‘something something exited with status -1.’ Said something wasn’t any kind of actual program or file you could find on the disk, so I had no way of getting further into it.

I actually had a support call into Apple Technical Support, who were trying to help figure it out.

But then the final Snow Leopard iPhone SDK 3.1 came out, and that revealed much more detailed errors. In particular, it showed that Xcode was trying run an old Leopard component of the iPhone SDK, which no longer exists. So I wiped the entire /Developer hierarchy off my machine, and reinstalled Xcode 3.2 and the single Snow Leopard 3.1 iPhone SDK. Kapow, everything works now.

10 iPhone tips from tap tap tap

http://www.taptaptap.com/blog/10-useful-iphone-tips-and-tricks/

I was surprised at how many of these I didn’t know about.

Pause/Skip with headphones on new iPod Touch

I didn’t see this written anywhere, but I just tried it, and it works. With the iPhone, you can click the microphone to pause the currently playing song, or double-click to skip to the next track. This makes it very pleasant to listen to music, and IMO is what made the iPhone the “best iPod ever.”

What was really annoying was that the first iPod Touch didn’t have this feature: to skip songs, or pause, you had to pull the thing out of your pocket, look at it, wake it up and pause/skip. This made the iPod touch the “worst iPod ever,” at least as far as listening to music goes. For me, this seemingly hostile feature drop, even more than having no physical volume control, relegated the iTouch to watching movies and web browsing.

But all is forgiven. Plug your iPhone (or compatible, presumably) headphones into the iTouch, queue up a playlist. You can pause by one-clicking, skip by double-clicking. I’m hoping the new Nano has the same improvement.

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.

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.

The iPhone software update does not cost $20.

I’ve seen it reported in a few places that it does. But I just downloaded it, and it didn’t cost anything. I’m assuming that this all part of the stupid Sarbanes-Oxley revenue recognition thing, and Apple just “recognized” $20 of the original $500 I paid for the iPhone.

However, the iPod Touch update does cost $20.

OMFG, Google/Apple fanboy happy happy joy joy

Google launched their iphone-optimized site today. Wow, holy crap. It looks nice, of course, as do most of the iphone optimized sites. (Facebook is a really good one.) But the amazing thing is how freaking fast it is.

First, they have links for the four services I use on google on my iPhone: search (of course), gmail, calendar and reader. It’s like they are reading my mind. (But I know they aren’t because I actually use Reader more often mobile than anything else.) Then, you click on a link and it’s, like, KABOOM! the reader page instantly appears. INSTANTLY. Same for gmail and calendar. It’s like they installed their servers in AT&T’s EDGE access points.

iPhone hacking software getting more mainstream.

Ambrosia has a custom app that looks pretty slick to install custom ringtones. I’ll try it out when I get home.

See here.

NTS: good summary of iPhone web programming

http://www.alistapart.com/articles/putyourcontentinmypocket

How to type a period on the iPhone

While you are typing, touch the “.?123″ key, but don’t lift your finger. Then slide your finger/thumb/tentacle over to the period/question mark/colon and lift. You’ll get your mark and the keyboard with auto switch back to letter mode.

Yay.

Thanks to Gizmodo.