Archive for the ‘iphone’ Category
Dumping MobileRSS
March 11th, 2010 at 9:48 pm
Based on an article surveying iPhone newsreaders1, I downloaded the free version of MobileRSS and began using it last week. Tonight I’m deleting it.
It has some good points:
- Like many newsreaders now, it syncs with Google Reader, so you can do your feed reading on different devices and not have to think (much) about repetition.
- Its user interface is very Tweetie-like, which I consider high praise.
- It allows you to set a nice big default size, very important for us geezers with
bifocalsprogressive lenses.
But it’s terribly unstable, especially when you have more than a handful of unread items. Tonight it must have crashed—screen goes black, then back to the home screen—a dozen times as I made my way through about 20 items. That’s absurd. I suppose it’s possible that it’s bad code in the ads in the free version that’s causing the crashes, but with such bad performance I’m certainly not going to buy the ad-free version to find out.
Less important, but more comical, MobileRSS often got confused as to how many unread items I had in the queue. When I saw this, I had to take a screenshot.

Yes, it thinks I have -8 unread items. Apparently, I’ve read posts that are still rattling around in P.Z. Myers’ brain.
-
I’ve lost the link to the article and can’t identify it in my browser history. I don’t think much of its recommendations, anyway, so it’s no big loss. ↩
iPhone death and resurrection
March 1st, 2010 at 8:00 am
This is a tale of stupidity and bravery. A harrowing trip from the depths of sorrow to the pinnacle of triumph. A rousing adventure of our modern world with an important Lesson For Us All. It’s how I killed my iPhone and brought it back to life.
I’d put on an old pair of jeans to paint the bathroom, and when I was done I gave them to my wife, who was about to start a load of laundry. I was, of course certain that my iPhone wasn’t in the jeans’ pocket, because I wouldn’t want the phone on me when I’m painting, so I didn’t check the pockets when I handed the jeans over. This is the stupid part of the story.
A couple of minutes later I ran down to the laundry room and opened the door to the washer. As I pawed through the clothes, I saw the phone’s screen glowing through the denim. The jeans had barely gotten wet, but enough moisture had gotten into the dock connector to make the iPhone think it was plugged in. It had put up the warning message that I’d plugged it into an unapproved device.

I shook the phone and blew into the dock port until the warning message went away. I tried to turn it off, but it wouldn’t respond to the power button. The screen told me I had no cell service, so I dug out a paperclip and popped the SIM card from its slot so it could dry. I was hoping the extra opening on the top would help dry out the power button, too.
At first, the phone seemed to be working pretty well. I could flick to change screens, the home button worked, and most of the apps launched without a problem. Buttons near the lower right corner—iPod, Google Reader, and PCalc on my home screen—were iffy; sometimes they responded and sometimes they didn’t. Soon, though, the phone began to run amuck. Apps were launching on their own, mostly those same apps near the lower right corner. The iPod app would not only launch, but begin playing music or videos. I’d hit the home key to stop it, but a few seconds later another app would launch. Basically, it was acting as if someone were tapping randomly on the lower right quadrant of the screen.
I got out a blow drier and ran it around and around the phone to speed evaporation. All the while, I kept pushing the power button, hoping to get the phone to shut down so it wouldn’t damage itself any further. But it wouldn’t go to sleep on its own, because the phantom tapping kept launching apps and keeping the phone awake.
After a reminder via Twitter from @kshanemcfarland, I put the phone in an airtight plastic bag with some rice, a sort of poor man’s desiccator, and left it there until morning. Eventually, it stopped launching apps and went to sleep, but then it started flashing the Apple logo every 15-20 seconds. I was reminded of HAL:
I’m afraid, Dave.
Dave, my mind is going.
I can feel it.
I can feel it.
My mind is going.
The next morning the battery was dead and there was no more flashing. I plugged it in and waited. Several minutes later, it was charged enough to start up. It worked! Every app worked, although the power button was still dead. Not so bad, I thought. If I shorten the autolock time down to one minute, battery life won’t be too bad. I unplugged the phone, put it in my pocket and went off to work.
Unfortunately, this is not the end of the story. When I got to work and pulled out the iPhone to dock it, it was flashing the Apple logo again. Shit. I talked to one of my coworkers about it, and she set me up with a real desiccator that she’d been using on a project a few weeks ago. And that’s where the phone stayed the rest of the day, under a plastic dome, cut off from the rest of the world.

I removed it from the desiccator that evening and plugged it in overnight to give it a full charge. The next morning, its behavior was the same: perfectly fine when plugged in (except for the dead power button), perfectly fine for a little while when unplugged, then back to the flashing logo.
I did a full restore, which took over an hour, but in the end the result was the same: an iPhone that would work only when plugged it—basically unusable. I was resigning myself to a a trip to the Apple Store for a replacement.
Let me interrupt the narrative here and give you some background. This is a first generation iPhone, bought about two years ago. Although it was working well before the incident, I had firm plans to replace it with a more modern model. But I didn’t want to replace it with a 3GS, not, at least, until I saw what the fourth generation iPhone was going to be. My expectation was, and still is, that this summer’s iPhone will blow the 3GS away, probably using the A4 chip that’s in the iPad. My goal was to hang onto my old phone until June or July when the new model arrives. Getting tangled up in a new AT&T contract this close to the launch of a new iPhone was the last thing I wanted.
I did have a safety valve. My daughter has been agitating for an iPhone for months. If worst came to worst, I could get a 3GS now, then give it to her when I got the fourth gen phone.
OK, back to the story:
I felt certain the dead power button was the key to the phone’s failure. Something was in there, screwing up the connection. That, I reasoned, was the cause of both my inability to turn the phone off and the flashing logo (which looked like an interrupted reboot). Since the phone was useless as-is, I decided to crack it open and try to clean out the power button. I had nothing to lose.
I followed the instructions on ifixit.com and soon had a few pieces of iPhone laid out on the table.

The power button is in the upper right corner of the aluminum back piece. I dug around in some crevices there with a thin stainless steel pick. I blew compressed air in and around the area. I swabbed the area with isopropyl alcohol. And when I put the phone back together the power button worked! And so did the rest of the phone—no more flashing logo.
I have no idea which part of the cleaning did the trick, and I don’t care. My iPhone is working again, and if I can baby it through these next few months, I’ll have a new phone in my hands and can put this ugly incident behind me.
I should mention that the phone did not make it through the case cracking unscathed. I left a couple of scratches on the aluminum back. More important, the black plastic antenna cover didn’t snap fully into place when I reassembled the phone. Fortunately, I have an Incase Slider Case that fits tightly around the phone and will keep everything together no matter how much it gets jostled.
Update 3/4/10
The other day, I pushed up really hard on the lower part of the Incase Slider and the iPhone’s antenna cover snapped in the rest of the way. Now the scratches and slight distortion in the aluminum back are the only evidence of my phone surgery.
So there you have it. Monumental stupidity rescued by perseverance, pluck, a set of instructions posted on the internet, and a heavy dose of blind luck.
Microsoft’s text-like interfaces
February 16th, 2010 at 9:34 pm
Following a link from Daring Fireball, I read this article by Luke Wroblewski comparing the user interfaces of the iPhone and the new Microsoft Windows Phone 7 Series [sic]. The gist of the article is that the iPhone’s information-dense interface makes the user experience more efficient than that of the MWP7S. I agree with Wroblewski’s comparison, but I think he has the cause/effect relationship backward. The inefficiencies of the MWP7S interface aren’t due to the low density of information MS puts on the screen; rather, the screen is information-sparse because Microsoft has an institutional preference for layered, multi-step, inefficient interfaces. This preference goes back to the DOS days of character-based displays.
Back then, the menu of “user friendly” programs typically consisted of a strip of words running across the bottom of the screen. You’d choose one of these words through a set of keystrokes. If you were lucky, choosing that word would actually execute a command. More commonly, it would lead to a new set of words at the bottom of the screen and you’d choose one of them to execute the command. (If you were unlucky, this second choice wouldn’t execute a command, but would lead to yet another set of choices.) This layered approach wasn’t exclusive to Microsoft, it was a pretty common way of writing menu-based programs.
The Macintosh was a huge departure. Considered in the abstract, it didn’t seem like it should be. After all, its menubar was just a strip of words running across the top of the screen, and you had to choose commands from the individual menus. But somehow in practice, this didn’t seem like a two-step process. After a few minutes, you didn’t think “I’m going to click on the File menu, then drag down to the Save As… item,” you thought “I’m going to choose Save As… from the File menu.” The click and drag on the menu became a single step in your mind and in your hand.
The early versions of Word and Excel for the Mac worked like other Mac programs, with almost all the commands in the menus, but as Microsoft further developed Windows itself and the Windows versions of Word and Excel, the Mac versions began to take on the characteristics of their Windows cousins. More menu choices led to dialog boxes instead of actions. Buttons within dialog boxes led to other dialog boxes. It was the multi-layered, text-based interface all over again, just tarted up with a GUI. By the late 80s or early 90s, two clever Mac programs had been converted into clumsy oafs.
And the conversion was Microsoft’s choice. They’d already written programs that were Mac-like, and they could have used that experience to make efficient Windows programs. Instead they made awkward Windows programs and backported the awkwardness to the Mac side.1
That great advance in user friendliness, the Windows wizard, is another example of Microsoft using what is essentially a text-based interface in a graphical environment. At heart, a wizard is a series of multiple choice questions, something every beginning programmer learns to accomplish with write and read statements. The wizard just puts these questions in a dialog box with a (sometimes animated!) picture next to them.
Obviously, Microsoft has hundreds, if not thousands, of really smart programmers and designers on staff. I can’t believe that such talented people would make such poor decisions over such a long period of time if it weren’t an institutional requirement.
Update 2/17/10
I forgot to add that Apple is not immune to clumsy, over-layered interfaces. For example, if you manage two or more email accounts on your iPhone, you know how inefficient it is to go from the Inbox of one account to the Inbox of the other: climb two levels up, then two levels down.
-
I’m pretty sure Apple’s “look and feel” lawsuit was under way, but I doubt that’s the reason Microsoft took the clumsy route. “Judge, if we had copied Apple, we wouldn’t have such a shitty interface.” ↩
Exploring the Simplenote API
January 20th, 2010 at 4:25 pm
I’ve been meaning to work with the Simplenote API ever since it was announced, thinking it would be a good way to keep my plain-text todo lists1 synced between my computers and my iPhone. I haven’t done any syncing yet, but I have written a utility script that will get me started.
There are, as you may know, already several ways to sync your Simplenotes. Most of them, unfortunately, are tied to special note-taking apps that I don’t want install. One, Fletcher Penney’s SimplenoteSync, is more general, but works by syncing all the notes to a set of files in a single directory on your local computer. I’m looking for something a little more fine-grained than that—a way of syncing individual notes to individual files that can be anywhere on my computer.
As a first step, I wrote the following script, simplenote-index, which gathers and prints out information for all the notes on the Simplenote server.
1: #!/usr/bin/python
2:
3: from urllib import urlopen # standard Python library
4: from base64 import b64encode # standard Python library
5: import simplejson # http://code.google.com/p/simplejson/
6:
7: # Login credentials.
8: email = 'someone@example.com'
9: password = 'seekret'
10:
11: # Get my authorization token for later calls.
12: loginURL = 'https://simple-note.appspot.com/api/login'
13: creds = b64encode('email=%s&password=%s' % (email, password))
14: login = urlopen(loginURL, creds)
15: token = login.readline().rstrip()
16: login.close()
17:
18: # Get the note index.
19: indexURL = 'https://simple-note.appspot.com/api/index?auth=%s&email=%s' % (token, email)
20: index = urlopen(indexURL)
21: noteList = simplejson.load(index)
22:
23: # Print the first line of each note along with its key.
24: baseURL = 'https://simple-note.appspot.com/api/note?key=%s&auth=%s&email=%s'
25: for i in noteList:
26: noteURL = baseURL % (i['key'], token, email)
27: title = urlopen(noteURL).readline().decode('utf-8').rstrip()[:40]
28: print '''Title: %s
29: Key: %s
30: Modified: %s
31: Deleted: %s
32: ''' % (title, i['key'], i['modify'], i['deleted'])
I think the comments explain it pretty well; there’s not much to it. It logs in, gets an authorization token, then collects the information on each of your notes on the server. Here’s the sort of output to expect:
Title: Hardware store
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRiF5BsM
Modified: 2009-09-08 00:24:13
Deleted: False
Title: Metra Eastbound Mon-Fri
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRij5h4M
Modified: 2010-01-01 17:51:59
Deleted: False
Title: Metra Eastbound Saturday
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRjC3h4M
Modified: 2010-01-01 17:52:33
Deleted: False
Title: Metra Eastbound Sunday
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRi35h4M
Modified: 2010-01-01 17:52:46
Deleted: False
Title: Metra Westbound Mon-Fri
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRik5h4M
Modified: 2010-01-01 17:53:05
Deleted: False
Title: Metra Westbound Saturday
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRjL3h4M
Modified: 2010-01-01 17:53:20
Deleted: False
Title: Metra Westbound Sunday
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRjT3h4M
Modified: 2010-01-01 17:53:37
Deleted: False
Title: Swimming City Times 2009
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRiG5BsM
Modified: 2010-01-01 17:54:33
Deleted: False
Title: Swimming Meet Event Order
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRiH5BsM
Modified: 2010-01-01 17:54:59
Deleted: False
Title: Weight
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRiTii8M
Modified: 2010-01-20 12:35:52.611425
Deleted: False
Like Simplenote itself, the script treats the first line of each note as its title (the script prints only the first 40 characters of the title so the formatting doesn’t get screwed up). The important thing for the work I intend to do later are the keys. These are character strings that uniquely identify each note and are essential for scripts that read and write notes. The goal of simplenote-index is to give me those keys so I can hard-wire them into my syncing scripts.
With lots of notes, simplenote-index will give lots of output. Grep is a great way to filter the output down to a reasonable level. For example,
simplenote-index | grep -i -A 3 metra
will give me just the notes with the local train schedule
Title: Metra Eastbound Mon-Fri
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRij5h4M
Modified: 2010-01-01 17:51:59
Deleted: False
--
Title: Metra Eastbound Saturday
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRjC3h4M
Modified: 2010-01-01 17:52:33
Deleted: False
--
Title: Metra Eastbound Sunday
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRi35h4M
Modified: 2010-01-01 17:52:46
Deleted: False
--
Title: Metra Westbound Mon-Fri
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRik5h4M
Modified: 2010-01-01 17:53:05
Deleted: False
--
Title: Metra Westbound Saturday
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRjL3h4M
Modified: 2010-01-01 17:53:20
Deleted: False
--
Title: Metra Westbound Sunday
Key: agtzaW1wbGUtbm90ZXIMCxIETm90ZRjT3h4M
Modified: 2010-01-01 17:53:37
Deleted: False
The -i option to grep makes the search case-insensitive, and the -A 3 option prints not only the line containing the search string, but the three lines after it as well.
With this easy one under my belt, I can start working on the more complicated syncing scripts.
-
No, I don’t use OmniFocus anymore. It was just too much work for the good I got out of it. I’m back to my TextMate-based LGTD system, which I’ve updated a bit and really should do a short post on. ↩
Simple thanks
January 12th, 2010 at 11:56 am
Like many people, I first learned of Simplenote through John Gruber’s Daring Fireball post from last summer. I bought the app and liked it from the beginning, even though it had some user interface problems. Using Simplenote paid off yesterday, when I became one of the WhySimplenote contest winners. (Twitter links to these two posts were my entries.)
Winners got a $30 iTunes gift card, which I’ll put to use immediately, and an upgrade to Premium service, which may give me the kick in the pants I need to start work on the syncing script I’ve had in mind ever since the Simplenote API came out. Thanks, Cloud Factory!
My favorite part of the winners announcement was the descriptions of what the other winners were doing with Simplenote. I was particularly taken with Andrew’s entry:
In my college share room, there’s five of us, but it’s my job to get the groceries. Each of us have access to the online component of Simplenote.
Whenever someone remembers something we/they need from the shops (often while daydreaming in lectures), they just type it onto the web app from their laptop.
Then, when I’m at the shops, I just take out my iPhone to look at the collaborative shopping list that’s been generated over the week. I never forget to get anything since I have a list, everyone has everything they need for the week, and there’s minimal stress since everyone can do it in their own time - not when I’m going out the door shouting to ask whether anyone needs anything.
Works great.
This is something I never would have thought of, but it fits Simplenote perfectly. Makes me sure there are more clever uses that I’m missing.
Simplenote, TextExpander, and the scale
January 4th, 2010 at 12:22 am
Losing weight was not going to be one of my New Year’s resolutions. I just wanted to keep myself from gaining weight over the winter when I can’t ride my bike to and from work. But when I got on the scale a few weeks ago and found myself grazing the 200-pound mark, I knew that I’d already failed at keeping my weight steady and needed to start losing.
There are as many weight loss strategies as there are dieters. My plan is to simply think more carefully about what and how much I eat, and let the scale tell me how well I’m doing. I know that many people are dead set against weighing themselves every day; their theory being that your day-to-day weight fluctuation is too noisy to be a good measure of your progress. But for me, going a few days between weighings is just a license to lie to myself about my intake. I’m going to weigh myself every day and record it to keep myself honest.
I will not, as a general rule, be making the results public. I won’t be putting my weight up in the sidebar of the blog, nor will I set up a Twitter account for my weight as Leo Laporte has.1 This is not about shaming myself into losing; it’s about me keeping score for myself.
I’ll be using my iPhone to keep track of my weight. This is not just some nerdy love of technology, the phone is my most practical recording device. I keep my phone in the bathroom overnight to have it ready when I get dressed in the morning, so it’s already right where the scale is. And, like my car keys, my phone is something I have to pick up and pocket every morning. If I’m going to establish a habit of recording my weight, doing it on the iPhone seems like the easiest way to do it.
I’m sure there are dozens of iPhone apps that will help me track my weight. They’ll probably also graph it, calculate my BMI, and generate an autoregressive integrated moving average model. But I don’t want a new app, I just want to enter the date and weight as efficiently as I can. So I’ve decided to record my daily weight in Simplenote, an app that
- launches quickly,
- I’m familiar with, and
- can be streamlined with TextExpander.
Here’s what my note looks like so far.

I have to put three spaces between the date and the weight, otherwise the iPhone will interpret each line as a phone number and will turn it into a link—underlined and in blue.
I’m typing in the weight exactly as it’s displayed on my scale. It weighs to the nearest half pound, so eventually I’ll have some values that end with “.5” instead of “.0.”
I enter the date quickly via this TextExpander snippet:

The abbreviation is meant to indicate “date stamp”—I put a “z” at the end because “ds” is a combination that can appear in real words. I have TextExpander set to ignore the case of the abbreviation, so “Dsz” (which is what I’ll get at the beginning of the line because of the iPhone’s auto-capitalization) works the same as “dsz.”
The content uses the standard strftime format. Using two digits for the months, days, and years ensures vertical alignment.
There will, no doubt, come a time when I’ll want to graph my weight or do some sort of regression analysis. That’s when Simplenote’s automatic syncing will come in handy. I’ll copy the data from my Simplenote web page, paste it into a local text file or spreadsheet, and analyze to my heart’s content. For now I’m happy just to get into the daily routine of recording my weight.
-
I know he’s an internet celebrity and all, but doesn’t it strike you as odd that Leo’s scale has almost 1500 followers? ↩
Eneloop Mobile Booster
November 15th, 2009 at 10:11 pm
I’ve never had a complaint about my iPhone’s battery life, but I am often worried that it will run out on long travel days. Also, I’ve never found a car charger for it that doesn’t cause interference when I have the phone hooked up for playback through my car’s stereo. This week I found a solution to both of those problems with the Eneloop Mobile Booster. And I got it cheap—just $20—through a closeout sale at Costco.
The Mobile Booster I bought is the KBC-L2. It’s the predecessor to the KBC-L2S now found on Eneloop’s site and at Amazon. The packaging looks like this (I stole the photo from this site, which gave the Mobile Booster a rave review at its pre-closeout price of $39):

What comes in the package are:
- a 5000 mAh lithium-ion battery, about 3 inches by 3 inches in plan and 1 inch thick
- an AC adapter for direct charging from a wall outlet
- a USB-A/USB-mini cable for charging through your computer
The battery itself looks like this:


The upstream side has the AC and USB-mini sockets; the downstream side has two USB-A sockets for connecting the devices you need to charge. There’s a blue LED under the skin between the Sanyo logo and the button. It lights up when the unit is charging and when you push the button to check the charge.
This seems like a good place to mention the worst part of the KBC-2L Mobile Booster: it comes with absolutely no instructions. Luckily, the KBC-2LS’s instructions work for the older version, too. They’ll tell you how to decipher the various flashing patterns of the LED, and, most important, they’ll tell you that you have to press the button to get the Mobile Booster to start charging your device. Let me repeat that:
To charge your iPhone (or other device), you must first plug it into the Mobile Booster and then push the button on the Mobile Booster. If you don’t push the button, the device will not charge.
That’s kind of important, and it’s nowhere in the KBC-L2 packaging.
While I’m at it, I should also link to Sanyo’s list of compatible devices. Good to know before you buy.
The Mobile Booster is not especially stylish, nor is it built specifically for the iPhone, so if you really want the convenience of a Mophie Juice Pack, you won’t be satisfied with the Eneloop. But it’s a lot cheaper and has much more capacity—four times the capacity if the 5000 mAh rating is to be believed. In my tests so far, I’ve gotten two full iPhone charges and still haven’t exhausted the Mobile Booster. For $20, I would have been happy with just one full charge.
As for the playback interference, the Mobile Booster solves that problem by eliminating my need to use the electrically noisy car charger on long drives.
The Mobile Booster isn’t a spur-of-the-moment thing. It takes up to 7 hours to charge it through the AC adapter and up to 14 hours through the USB cable. So you’ll need some time before your trip to get it ready. But if your travels are scheduled at least a night in advance, it should work well for you.
Normally, I don’t like recommending something until I’ve spent a good deal of time using it. But the closeout sale at Costco won’t last forever, and the $20 price is spectacular.
Some Simplenote stuff
November 12th, 2009 at 10:14 am
Last week I had a business trip to Hartford, Connecticut and decided to try a new way of keeping the flight/hotel/etc. details. I’ve written on the past about how I keep my travel information handy. For a few years, I had all the info printed on a 3×5 card, which I kept in my Hipster PDA. After getting an iPhone, I switched to creating a PDF that looked good on the iPhone’s screen and could be moved to it via email or one of the many wifi file transfer utilities. This trip, I put the information in Simplenote. It worked out so well I moved some other information from PDF to Simplenote.
Let me start by saying that for pure information retrieval speed, nothing beats a 3×5 card in your back pocket. But when I got the iPhone I wanted to consolidate as much as I could into it, and small inefficiencies seemed like a small price to pay for that consolidation. But Files, the file transfer/viewing app I use, does take a while to open, probably because it tries to establish a WebDAV server on whatever local wifi network it can connect to. Simplenote has a much faster startup time and would be preferable if I could get the formatting right.
Here’s the OmniOutliner template I was using to create the trip card PDF.

Obviously, Simplenote, which works with plain text only, isn’t going to give me the font size and style changes that I can get in a PDF, but I’d be satisfied if I could get the flight numbers and times to line up reasonably well. This isn’t a given. Simplenote uses Helvetica, a proportional font, and doesn’t allow tabs; therefore characters will not automatically line up in columns. Luckily, two features of Helvetica allowed me to get columns that were close enough to alignment to make the trip info well structured and readable:
- All the numerals are of the same width. As far as I know, this is a feature of every proportional font.
- The space character is almost exactly half the width of a numeral.
By putting two spaces in place of every “missing” numeral, I could get times with one-digit hours to align with times having two-digit hours. And by putting the flight numbers at the ends of the lines, their unavoidable misalignment wouldn’t matter.

As you can see, the alignment isn’t perfect, but it’s good enough to quickly scan through the list down any of the columns.
In addition to launch speed, the other advantage of using Simplenote instead of a PDF is editablity. If my plans change, I can edit the note directly on my phone, something I can’t do with a PDF.
I was so pleased with the ability to align columns of numbers that I converted my Metra commuter train schedule from a set of HTML files to a set of Simplenote notes. Here’s what it looks like in the web app

and here’s what it looks like on my phone

Not as nice as the HTML version

but, like the trip info, easily readable and much faster to access.
Now that I’m using Simplenote more, and collecting more notes, I’m glad to see that its developers are adding new options for organizing notes and making its launch time even shorter. It would be nice if Simplenote had a note-by-note option for displaying the text in a monospace font; this would allow perfect column alignment for all kinds of data. I can understand why the Simplenote people haven’t done this; the only monospace font on the phone is the ugly and excessively-serifed Courier. Maybe if Apple moves Menlo to the iPhone, we’ll get a monospace option in Simplenote.
One last thing. I started writing this post in Simplenote in the Hartford airport. As I was juggling the phone and some things I shouldn’t have been eating the phone’s orientation kept shifting between portrait and landscape (something the upcoming options will be able to prevent). The transitions didn’t always go smoothly, and I ended up with a screen that looked like this:

Three keyboards for the price of one!
What I like about Tweetie 2
October 10th, 2009 at 10:25 pm
If you’re a Twitter and iPhone user, you surely know that the new version of the popular Twitter client, Tweetie 2, appeared in the App Store yesterday. I don’t claim to be familiar yet with all its new features, but I have found a few new things that are delightful.
First, the cut/copy/paste system now works as it should. In Tweetie 1, when looking at a posted tweet, you could select a word or the entire tweet, but nothing in between—the selection handles could not be moved. Now you can move the selection handles wherever you want, just like every other app that supports cut/copy/paste. Strictly speaking, I don’t consider this feature delightful, I consider it minimally competent and something that Tweetie 1 should have been updated to correct. But still, it’s very nice to be able to copy just what I want from a tweet.
Next is the ability to review the original tweet as you reply to it. This is a feature that Twitterrific had some time ago and was perhaps the only advantage Twitterrific had over Tweetie. Tweetie’s implementation is especially clever. To see the original tweet, put your finger in the editing area and drag down; the original tweet will appear just above your reply. When you lift your finger, the editing area will spring back up to where it was.

You’ve probably noticed that refreshing is done the same way. In the timeline view, drag down to see the refresh arrow and release to have Tweetie look for updates.

This feature works well with Tweetie’s new ability to maintain your old view between launches. In Tweetie 1, each launch of the app started with a blank screen as Tweetie polled Twitter for the 20 most recent updates of your friends. Tweetie 2 starts with what your were looking at the last time you were running it. If there are new updates or @mentions or direct messages, a little blue dot appears by the appropriate icon in the bottom toolbar.

It looks like searching has been improved, but since I almost never search (as a former educator, I find reading the tweets of the Average Twitterer really depressing) I’m not qualified to pass judgement.
I miss the chat-like balloons of Tweetie 1, but I suspect I’m one of the few who does.
The last thing I want to mention is the scrolling. Tweetie 1 was famous for its fast, smooth scrolling, and I was worried that Tweetie 2’s new features would weigh it down and make its interface a bit clunkier. No need to have worried. The scrolling is as fast and as smooth as ever, making Tweetie 2 a pleasure to use.
A simple PCalc tip
October 6th, 2009 at 2:51 pm
If you’re the type of person who likes to figure out how to use your calculator to make upside-down naughty words, you probably heard about PCalc’s latest revision. I didn’t write about PCalc 1.8 when it was released because—apart from its little dig at the App Store’s age-rating system1—there weren’t many new features worth writing about. Plus, upside-down words only work when if you use PCalc’s LCD font, and I always use Easier To Read.
The new release did remind me, though, that I have for some time combined two of PCalc’s features to make its extensive function set more readily available. I haven’t seen anyone else mention this simple trick, so I figured it was worth a quick post.
PCalc has several different keyboard layouts with different sets of functions available in each layout. Normally, I work with the Engineering layout, which has the power, trig, and exponential functions usually associated with a scientific calculator. Occasionally, though, I need the hex conversion and bit functions found in the Programming layout. In the past, I’d go into the PCalc preferences to change the layout when I needed a Programming feature, then change back to Engineering when I was done. Eventually, I realized this was stupid and set up PCalc to save me some time.
Like many iPhone apps, PCalc can be used in either the vertical or horizontal position, and the keyboard layouts for these two positions are independent of one another. So now I have the vertical layout set to Engineering

and the horizontal layout set to Programming

and whenever I need to do something in hex, I just turn the phone sideways.
Am I embarrassed that I didn’t see this opportunity right away? Yes. I was probably distracted by the 5318008.
-
To James Thomson’s horror, this guy didn’t get the joke and made it look like Thomson himself was the bluenose. ↩









