iPhone Interface For My Blog

09/28/2009 Update: Now added a link to the view from Android.

Last week I learned about WPTouch, which is a plugin for WordPress that reformats the theme for the iPhone, Android and other mobile devices. It was an easy install, and I am now happy to report that if you view my blog on a mobile device, you’ll see the new UI. Here’s what it looks like on an iPhone


If anybody has an Android phone, or some other supported mobile device, send me a screenshot so I can see what it looks like.

Thanks to Steve Ziegler, here’s what it looks like from an Android device. Thanks, Steve!

The iPhone 3GS GPS Is Crazy Good

I have a Garmin eTrex Venture hand-held GPS that I bought about five years ago. I used it for years mounted to my bicycle handlebars for when I would go trail riding to inject a bit of geekery into my rides. I would then download the tracks off of it and pull them into Google Earth to see where I’d been. It worked pretty well, but it had some annoying tendencies. The first was that it took nearly 10 minutes after turning it on before it really knew where it was. It wanted to get strong signals from twelve satellites before it would give you a decent reckoning of where you were on the planet, and that took a while. It was also very sensitive to cloud cover or tree cover. There were many times I’d be riding through the woods and would be in a particularly dense area and it would completely lose any idea of where we were, which is really not what you want your GPS to do.

Last Sunday I decided to get the bike out after a nearly two-year hiatus and go out to my favorite riding spot, Tribble Mill Park. Before I left, I bought an app for my iPhone 3GS from the app store called Trails. When I got to the park and got my bike out and ready, I ran Trails, created a new track entry and started it up. It almost instantly showed me where we were (just like the Google Maps app that is built-in) on the map. I then put the iPhone back into its leather holster, put that inside a canvas saddlebag that hangs under my bicycle seat, and then climbed into the saddle and started riding. I stopped several times along my route to check on it, and not once did it lose the signal. Let me say that again, in a different way: even though the iPhone was encased in leather, ensconced in a canvas bag and under a bicycle seat and my butt, it never lost the GPS signal. It mapped my route perfectly, as can be seen from this screenshot


That’s pretty darn cool, for a phone! The GPS is not the primary purpose of the device, yet it performs far better than a dedicated GPS device. Now, GPS devices in general may be a lot better now than they were five years ago when I bought mine, so this may be an unfair comparison, but it really blew me away. I had thought about getting a handlebar mount for the iPhone, but if it can do what it needs to do from the relative safety of the saddlebag, I’d much rather keep it in there.

By the way, the Trails app is quite nice and completely worth the $3.99 it cost. I like the fact that you can stop and restart it to pick up where you left off. One really nice feature is that it has a button to launch the iPhone’s camera, so you can take pictures along the way without exiting the program. That’s a nice touch. It also requires you to name each track, which are kept in separate “files” so one track doesn’t show up overlaying another on the map. If you’re into trail riding and you have an iPhone 3GS or 3G, consider buying this great app.

Apple Doesn’t Seem To Want My Money

Yesterday, like six billion other people, I tried to pre-order a new iPhone 3GS from the Apple Store online. After trying multiple times getting multiple timeouts, I was finally given a message stating that they could not complete my request online, and that I needed to go to a brick-and-mortar Apple Store to complete it. This didn’t completely shock me since when I bought my first generation iPhone, I could not activate it through iTunes, and instead had to visit an AT&T store.

Shortly afterward, I received an email from concierge@apple.com, with this text

Thanks for starting your iPhone purchase online. To finish the process, come to the store you selected and look for a Concierge in an orange shirt. We’ll help you complete your purchase, activate your new iPhone, and set it up for you.

Apart from the fact that I didn’t select a store, this was in sync with what the online store told me. A pain to have to visit an actual store, to be sure, but it didn’t sound like it would be too painful.

So today, I drove to the mall and visited the Apple Store. As soon as I entered, I spied an orange-shirted “concierge” and approached her. “Hello,” I said, “I tried to preorder an iPhone 3GS yesterday online, but it said it couldn’t do it, and I needed to seek out an orange-shirted person at an Apple Store. Can you help me with this?” She looked pained as she responded, “I’m sorry… we don’t actually have a system in place to pre-0rder the 3GS.” She went on to say that they did have a pre-order system for when the 3G was launched, and she assumed they would move that system over for the 3GS, but they had nothing now, and I should come back on the 19th. She also said that “lots” of people had been coming in today, who had also been told to visit a store to complete their purchase.

That just sucks out loud.

I’m trying really, really hard to throw money at Apple and they just won’t take it. They clearly underestimated how many people would try to pre-order online yesterday, otherwise they would have had more server bandwidth to handle it. The fact that they sent me (and others) an email telling me to go to a store to finish the process, when they have no such process in place, is just sloppy. I’m not happy about this one little bit, and I want people to know about it.

Does this mean I’m not going to buy a 3GS and, instead, go with a Pre or something else? Of course not, and Apple knows this….

Skype For iPhone Is Full Of WIN!

We’re on vacation in Colonial Williamsburg, and the AT&T signal in and around our hotel sucks! This seems to be a common theme for me. At home, I have next to no AT&T signal. I swear, if it weren’t for the iPhone being such a loverly machine, I would never have gone with AT&T. Anyway, so we’re here in Williamsburg, and in the hotel, there is no cellular signal at all. But there is free, and fast, WiFi. So I fired up the Skype program on my iPhone and would you believe it worked a treat? It did. I have now made two calls with it. One to a restaurant in town, and the other to my brother-in-law back in GA to check on our dog. Both calls were crystal clear, with no lag or dropouts. I only have a 1G iPhone, so I can’t test it over the cellular network, but over WiFi, it was darn near perfect. I have a Skype unlimited subscription, so these calls were essnetially free. In any event, it was better than paying the $0.75 the hotel would have charged me for each call, plus whatever rate the local phone company charged. But beyond the cost, it was just plain cool!

I’ve been a fan of Skype for several years and we use it extensively where I work. I call into meetings and conference calls using it all the time, and I only very rarely have problems. I am now equally impressed with Skype for iPhone. Great job, guys! Keep up the great work.


Help Me With iPhone Dev Graphics Question, Please

Usually when I learn a new programming language or framework, I am plagued by the fact that I can’t think of anything to build with it, or I can only think of things that are too difficult. With iPhone development, I have two ideas for apps, both of which should be fairly easy to write. I’ve gotten a good start on the first app, but now I’ve hit a roadblock, and I’ve been stuck here for a while. I thought I’d ask for help.

Obviously I can’t disclose too much of what the app does, since I do eventually want to sell it in the App Store. Essentially, it allows for a very specific type of photo manipulation. I’ve got the basic UI built, and I’ve hooked into the camera framework, so you can either take a new photo, or use one you already took. I am displaying the photo in the main window, currently scaled to fit, but I will eventually add zoom and pan. I have the code written that allows the user to define a region of the photo to work on, by drawing a rectangle or ellipse. I draw the shape using Quartz 2D, which results in a red rectangle or ellipe drawn on top of the photo. So far, so good.

This is where I’m stuck. I need to do “something” to the bits in the photo in the region defined by the rectangle or ellipse and, at some point, a freehand shape. (Obviously I can’t reveal what the “something” is.) So, I have looked through the Quartz 2D docs and am trying to figure out how I can

  1. get the bits in the region defined by the user’s drawing
  2. swizzle the bits with my secret sauce to produce the desired effect
  3. get the swizzled bits back into the photo for display to the user

And here I sit. I have never done anything with graphics before, so this is all completely foreign to me. I can’t see how to do any of those three steps.

The next question, then, is should I be using OpenGL ES instead of Quartz 2D? The iPhone dev book I have taught a little bit of both, and the OpenGL stuff looked far more complicated than Quartz, which seemed like overkill for my situation. I don’t know.

I think I can accomplish what I want by creating an image mask, applying that to my original image, and then displaying the new image, but the mask creation function, CGImageMaskCreate, has me confused. I get most of the parameters, but I don’t understand the CGDataProviderRef parameter. Can anyone offer any sort of pointers to get me moving again? Are there any really in-depth Quartz 2D tutorials? The Apple docs on Quartz that I’ve read are very basic, and don’t really give examples.

Thanks for any help or pointers. I know I haven’t given you much to work with.

Dear Nintendo: A Wii Storage Solution, Please!

We have a Wii. We’ve had it pretty much since they hit the market. We love it, yes Wii do. Except for one thing: the unbelievably small amount of internal storage the thing has. It only has 512M of storage that is used for game save data. For people who don’t have a lot of games, that’s probably plenty. It was plenty for us, too, until we started buying lots of games and downloading games from the Shop Channel. I can’t tell you how many times we’ve wanted to download something new from the Shop Channel, only to be told we don’t have enough free space. Some of the games, especially the old console games, are tiny. Most take up only a single “block.” But some, like the episodes of Strong Bad’s Cool Game For Attractive People, and the save file for Super Smash Bros. Brawl, are huge. As in hundreds of blocks, huge.

So, what can we do? Well, there’s an SD slot on the front, and we have a 2G SD card in there. But that’s considered completely separate from the internal storage, and none of the games that we have can run with their data file on the SD card. On a few occasions we’ve moved things temporarily to the SD card to free up space on the internal storage, but if we ever want to play that game again, we have to shuffle files around again. Guitar Hero World Tour will, apparently, let you keep downloaded songs on an SD card, but the kicker is that you can only download them to the internal storage and then copy them. But when you already don’t have enough space on the internal storage, you’re still screwed. And last night when I fired up Rock Band 2 for the first time, it told me that it could store “extras” and such on the SD card, and was that OK? I said it was, and it then told me that I didn’t have enough free space to install the bits that would allow me to keep stuff on the SD card. Grrrrr.

There are two USB ports on the back of our Wii. I have an external drive that’s something like 150G that I’m not using for anything. It’s not even plugged in. If Nintendo would allow it, I could plug that into the Wii, and our storage problems would be solved. But they don’t allow that. Well, it’s not that they disallow it, it’s just that plugging the drive in won’t do anything. They have to patch the OS to make it look in other places for data files. And they can do that; they’ve just chosen to ignore the pleas of their users. Much the way Apple has turned a deaf ear to our demands for cut & paste on the iPhone, Nintendo has gone far too long without giving us a reasonable storage solution. My cynical friend is convinced that the solution will be to buy a new “Nintendo Wii Version 2, Now With More Internal Storage!” I sure hope he’s wrong.

Come on, Nintendo, give us a workable storage solution. Soon!

iPhone OS 2.2 – Meh, So Far

I happened to be up and working for the man at 2:00 this morning when I saw a note on Twitter saying that Apple had released version 2.2 of the iPhone OS. Being the fanboy that I am, I immediately started the update process. The whole thing, from first click to iPhone ready-to-use, took about 15 minutes. Not bad, and certainly better than some previous upgrades.

Engadget has a rundown of the new features. One of the biggest additions is Google Street View, which lets you see street-level views while working through driving directions. You can also get walking directions from the Maps app, but since I never walk anywhere, that doesn’t really help me. The rearranging of the URL bar and Google box in Safari is another. You can also download podcasts over the air, but I use my 60 GB iPod for podcast listening, so this feature doesn’t do anything for me, either.

Basically, I’m just hoping that they’ve squashed bugs and made the OS more stable. I love my iPhone, but it does have its problems. I don’t know about everyone else, but I have to reboot my phone about once a week to keep it responsive. I know it’s time to reboot when I’m typing on the keyboard and I’m about 6 letters ahead of what’s shown up.

Oh yeah, Steve has still not decided that we’re worthy of copy & paste. Even though about 99% of iPhone customers are begging for C&P, it’s almost like Steve is keeping C&P away from us out of spite. Maybe in 3.0…

I Am Full of Teh Happy

Yesterday was a good day for me on several fronts. Let me tell you them.

First, whilst searching for various things in the iTunes store, I saw that Metallica had released their new album, Death Magnetic. I had bought the first single, My Apocalypse, a couple of weeks ago when it came out, and I was excited that Metallica might be good again. I was a Metallica fan from way back in the 80’s. I loved, loved, loved every album up to and including …And Justice For All. I didn’t like “the black album” at all for several years, but then it grew on me. I thought everything after that, starting with Load, sucked out loud. I listened to the samples of the new album and immediately clicked the “Add to Cart” button. I’ve listened to the whole album about 5 times now, and it’s playing again as I write this. This album is full of awesome. It’s fast and heavy with glorious Kirk Hammett guitar solos throughout. If you liked “old” Metallica, you will love this album. Buy it. Memorize it. Love it. Standout songs include “My Apocalypse,” “Broken, Beaten & Scarred,” “The Judas Kiss” and “All Nightmare Long.” 

I was also happy to see that iTunes had finally added 0 + 2 = 1 by the very strange band NoMeansNo. I had this as a cassette, back when it was originally released, but I haven’t been able to find it in any format since. iTunes had one or two NoMeansNo records, but not this one. I have been checking periodically, but they never had it. Until yesterday. I’ve listened to it twice since buying it. It’s heavy and a bit odd, but very good. “0 + 2 = 1” and “The Valley Of the Blind” are the best songs on the record.

And if that weren’t enough musical goodness, Dar Williams’ new album, Promised Land, was also available. I think this is one of her best albums ever. I have her entire catalog, and this album has already moved to the top of the list for me. It has her signature lyrical twists, and it’s quite upbeat, with beautiful melodies. I’ve only listened to it twice since buying it, but it’s really good. My favorite songs, so far, are “It’s Alright,” “Buzzer” and “Troubled Times.”

Yes, I have eclectic musical tastes.

Next, as anyone with an iPhone knows, Apple released iPhone OS 2.1 yesterday. I was really looking forward to this update because OS 2.0.2 had lots (and lots) of problems and annoyances. The biggest problem I had was with how long it took to backup the phone. Every time I plugged it into my Mac, it would easily take over an hour to do a full sync. That’s absurd. I have less than 2 gigabytes of stuff on the iPhone and it took one-hour+. I have 60 gigabytes of stuff on my iPhone, and a sync never takes more than a few minutes. The other major annoyances were a terrible lag when using the onscreen keyboard, and the fact that when you updated an application, it didn’t stay where you put it, instead moving to the first available open spot. Not good. 

I’m very happy to report that iPhone OS 2.1 has fixed these problems, for me, anyway. A full sync is taking around five minutes, which is completely reasonable. The keyboard feels responsive, and after updating applications, they stay where I put them. Bravo, Apple. Keep the goodness coming, KTHX.

And finally, the first two discs of season 3 of Weeds arrived from Netflix. I watched the first three episodes last night, staying up far, far too late in the process. Damn, I love this show, even though I know I shouldn’t like it, if you know what I mean.

My iPhone Battery Drain – Solved

Ever since upgrading my iPhone to 2.0.2 last week, I had noticed a marked drain on my battery. I don’t use my phone that much, so it surprised me that the battery was going down as fast as it was. I never let it get fully drained, but it would easily have lost its full charge over three days, which is unusual for me.

What I forgot was that after installing 2.0.2 I also setup a mail account on the phone to my company’s Exchange server. The problem was that even though I had “Push” turned off in the “Fetch New Data” section of Settings, when I added the Exchange server, it defaulted to “Push.” Once I discovered this, turned “Push” off and told it to fetch every hour, my battery life is right back where it has always been.

So, if you’re losing battery life faster than you expected, check your “Push” settings, not just in the Settings tool, but for each email account you have setup.

iPhone OS 2.0.1 – Installed

I just finished updating my 2G iPhone to OS 2.0.1. Usually when I sync my phone, I skip the “backing up iPhone” stage because it takes too damn long, but tonight, I figured I’d better let it complete. That stage alone took over an hour. After the upgrade, the entire sync process took under three minutes. That’s a serious improvement. As for other changes, I haven’t had time to play with it yet. I will be sure to note any improvements or annoyances I find.