Two months with the iPhone

Steve Job’s recent announcement of the new iPad (really?) coincided closely with the two month anniversary of my getting an iPhone. So how have the past 8 weeks or so been?

I’m definitely better at typing on the virtual keyboard. I’m nowhere near as fast (or accurate) as I was on the Treo’s physical keyboard, but I can see a definite improvement over three months ago. Hopefully I’ll continue to get better as I learn more tricks. I’ve also adjusted to life without the clickwheel for basic iPod functions, which still accounts for the majority of my iPhone usage. The audio scrubber is frustratingly inaccurate, however, and I find it diffiicult to use. The voice commands come in handy while driving in the car so I’m finding myself using those more often. At home, we’ve got the Griffin PowerDock dual-charging station so we can keep my and my wife’s iPhones charged without having to pull out the little white charger blocks.

I originally complained about it not being easy to sync the iPhone with multiple PCs, mainly because that made it harder to download content while travelling with my laptop (my primary iTunes machine is my desktop at home). I found that you can download new podcasts directly from the device, which is cool … unless you happen to be using AT&T’s 3G data service instead of WiFi (see the screenshot to the left). No downloading new podcasts while driving in the car. 🙁 To make it easier to sync files (or photos), I’m using DropBox on my PCs and the iPhone. I just move the photos from my camera roll into the DropBox folder using the app and it’s automatically synchronized to all of my other devices running the DropBox client.

I used to carry a 2gb USB thumb drive around that contained my portable apps and personal documents, but why continue to do that when I’ve got extra room on my 32gb iPhone? I purchased Avatron’s Air Sharing application (screenshot to the right) which for $3 turns your iPhone into a wireless storage device. I can map my iPhone as a drive on my Windows PC (or connect via the browser) and then use my regular synchronization software to copy files back and forth. Yes, DropBox can do the same basic thing, for free, but I’m not comfortable storing some of my personal documents on DropBox’s servers so Air Sharing lets me eliminate that middleman (besides, I’ve got this stuff backed up to my encrypted Amazon S3 account through Jungledisk, no need to duplicate them out in the cloud again). Air Sharing also supports viewing most document types like Word and Excel, PDF, etc.

If you live in a multi-iPhone household and need to keep a synchronized shopping list, you must purchase GroceryIQ. For just $1 you get a full-featured list app that supports multiple stores, aisle and category customization, barcode scanning, and list sharing. If I purchase something on the list and mark it off, it will disappear from the app on my wife’s iPhone so we don’t end up both buying the item. By customizing the aisle order for each store, our grocery shopping is more efficient: no more back-and-forth in the store because we forgot an item that was two aisles back. Everything is listed in the order you go through the store. I was a little disappointed that the recent version includes little ads in your shopping list, but they’re not that intrusive and heck, it was only $1 and that’s well worth the features you get.

i.tv is neat little app (free) that turns your iPhone into a connected TV guide. You can search TV listings for your lineup, see what’s currently on and what other people are watching. What I like, though, are the TiVo features (of course!). After linking your tivo.com account you can schedule upcoming recordings directly from your iPhone. There’s also a feature that turns your iPhone into a WiFi-enabled remove control for your  TiVo (Series3 models only). Yes, I can change the channel on my TiVo in the family room from across the house (except you can’t control TV functions like volume, so I still need the remote extender for that). Fun to play with.

Other than those additions (plus a few free games), I seem to be past the initial “must-download-and-try-everything!” stage of installing apps. My list seems to have stabilized around 5 pages of icons, which I try to have organized by type: most-used, utilities, games, work-related, misc., etc. Unfortunately the lack of real customization features on the springboard makes it hard to really categorize the icons so I’m trying to learn to live with that. 🙂 It’ll also be interesting to see which (if any) new features introduced in iPhone OS 3.2 (running on the iPad) make it into the iPhone itself in the next few months.

Recovered from The Crash

After a few evenings’ work, I’ve recovered from The Crash and have my server back up and running!

The problem started last week on Thursday when I found the server was not responding to pings, none of the services were available, and the fans were cranking at 100%. The server is headless, so I hooked up a monitor to see if anything strange was going on. Unfortunately, there was no video signal … and even the “raising elephants” magic key sequence didn’t do anything. My only option was to hard power off the box and restart it, at which point it seemed back to normal except none of the system logs showed anything that would indicate what the problem was.  A similar thing had also occured back in December while we were up in Cleveland which I had just written off as a random crash, but now this was the second time. I should have known better that Linux just doesn’t crash 😉 and sure enough, the box was locked up again Friday morning.

That evening, I pulled the server out of the closet and hooked it up at my desk along with monitor and keyboard so I could interact with it directly instead of over an SSH connection. I figured maybe this way I could see if anything strange was happening that wasn’t being reflected in the logs. It all seemed normal until finally I saw this:

Oh oh … that couldn’t be good. ata1.00 was obviously referring to the hard drive. A quick search on that { UNC } code showed “Uncorrectable error – often due to bad sectors on the disk” so it became apparent that the drive was failing. Presumably there was some bad area of the disk and when the server accessed that area it just locked up. At this point I tried running a disk check and started getting all sorts of I/O errors. Rather than push the drive to complete failure with the scan, I decided to rebuild the server on a spare drive and restore from backup.

The failing drive was an old 120gb and all I had around were older IDE 20gb, 30gb, and 40gb drives (no SATA controller in my “server”). I wasn’t using all 120gb, so moving to a smaller drive was an acceptable solution. My first thought was to make an image of the failing drive using EASEUS  Todo Backup which works great for imaging Windows PCs even when moving to smaller drives. Unfortunately the software doesn’t recognize the Linux file system so it could only do a sector-by-sector copy, which means I could only copy the image to another identical 120gb drive. With the image copy option off the table, I decided to just do a clean install of Karmic on the spare 30gb drive and then restore what I could from my backups. I hadn’t done a clean install of Linux since I put this server together back in 2007, so why not? I spent the rest of weekend re-installing and re-configuring packages to put the server back the way I had it. Luckily I keep good notes of all the changes I make, so between that, being able to pull files (like the MySQL databases and configuration files) from the 120gb drive connected via a USB enclosure, and having the rest of the important stuff backed up on my two NAS devices and in the cloud (via Jungledisk), the restore process was relatively straightforward with no data lost.

Sunday night, I moved the rebuilt server back to its home in the closet. After a quick check to make sure everything was running, I went to bed. The next morning, I heard a loud fan noise coming out of the closet … the server had crashed again! 😮 Same symptoms, not good. I had to get to work so I just shut the server down and left. Monday evening, I started it up again and logged in via SSH (remember, it’s headless when it’s in the closet). As before, there was nothing in the logs to indicate a cause of the crash. The difference now, though, was that the system seemed to be crashing faster. After just a few minutes, it would be locked up like before the disk crash. So I pulled it out of the closet again and hooked it up to a keyboard and monitor so I could watch it crash first-hand … and it didn’t crash.

Google to the rescue! I found this post that seemed to describe my exact problem: a headless server running the latest 2.6.31.x kernel crashed after just 10 minutes. The cause? The screensaver! Or, rather, since the server isn’t running X windows, the screen blanker that turns off the monitor after 10 minutes. Apparently due to some bug in the interaction between the kernel and the basic video driver, when the system tried to turn off the monitor when no monitor was attached, the system would just hang. This is why the system was just fine as I worked on it all weekend, but then crashed as soon as I moved it back into the closet and it was headless again. I added the suggested init script for disabling the screen blanking to my system, rebooted, and waited. 11 minutes later, the server was still running. Eureka!

The server has now been stable for a few days, so I finally seem to be past the problems. What bugs me now is the similarity of the two crashes. Obviously, according to my diagnostic tools, the original hard drive was failing in a bad way. Is it just a coincidence that the second video/screen blanking-related crash exhibited the same symptoms as the failing disk? That seems suspicious, but the server was running for a lot longer in between crashes, not failing after just 10 minutes of uptime. I was using a slightly different version of the 2.6.31 kernel on the old drive (I’m using 2.6.32 now) so maybe it was due to that different revision.

At any rate, after all of that, the server is finally back. In addition to giving me the “opportunity” to rebuild the server from scratch, this incident also helped to confirm that I’ve got a decent backup strategy in place. Sure, it took me a few days (instead of hours) to get everything back online, which wouldn’t be acceptable in a business situation, but at least I had zero data loss!

Crash!

The hard drive in my server crashed! I’ve been having problems over the past few days where Ubuntu was just locked up and the server was unpingable. I’m trying to make a backup image of the drive before it completely dies, but for now I’ve got some of the site back up and running with last week’s backup on a spare drive and a clean Ubuntu install. Not everything is back, so there might be some broken links and stuff generally not working correctly.

Fun! 🙁

Finally back to normal (temperatures)

After almost two solid weeks of temperatures in the 40s (and below freezing in some areas, apparently we brought it back with us from Ohio), our normal Florida “winter” weather returned today. Yes, it was finally back in the 70s … I was able to eat lunch outside in the sun and even cook up some chicken on the grill for dinner out on the lanai. I saw a lot of brown grass and dying plants on the way home from work today. We’ll be hearing a lot of about the long-lasting effects of that weather on the state’s produce and wildlife in the days to come, I’m sure.

Happy New Year! A new decade begins …

Wow, 2010. Hard to believe that 10 years ago we were worried about Y2K! 😉

For New Year’s Eve we did our family tradition of fondue for dinner (we went out to The Melting Pot this year instead of cooking it ourselves). Then we headed over to First Night in downtown St. Petersburg, which we had never been to before. It’s basically just a big outdoor fair spread across several blocks along the bay with activities for the kids (like glice skating!), music, food, and fireworks every hour until the big show at midnight. We stayed for a few hours and then headed home to watch the ball drop on TV.

Back in Florida

I know it sounds a little harsh, but after spending the past few days in chilly, snowy Ohio for the holidays, we’re glad to be back in Florida.

We spent Christmas Eve day doing some last minute shopping and preparations, which included cooking lasagna (in our hotel room) to take to dinner at my aunt’s place.

Christmas Day was relatively relaxing. After church and an early lunch a few of us went to see “The Princess and the Frog,” which my daughter enjoyed (it was a very different type of Disney princess movie … I particularly enjoyed the musical score and the trumpet-playing alligator). We cooked Christmas dinner at my brother’s and sister-in-law’s place and spent the rest of the day with the immediate family.

On the 26th, we had a family photo taken at a local Portrait Innovations studio. The place was pretty small, and apparently had a 40-person occupancy limit so they were asking people to wait outside (in the cold!) until they were called. Overall it was a poorly organized way to get a picture taken, but the end result was worth it. We spent that evening at another aunt’s house to visit with my mom’s side of the family.

Sunday? More visiting with family, of course! That’s also when the real winter weather started to move in. By the time we left my sister’s place that evening a good half-inch or so had fallen (and it was still coming down) so my daughter had her first experience with a snowbrush as she helped clean off some of the cars.

The drive back to the hotel was slow due to the deteriorating road conditions. Of course, we had to take advantage of the snow once we got back to the hotel: my daughter and I had a serious snowball fight, which was a lot of fun (mostly for her), and she got to make a decent snow angel.

Luckily, when we woke up early this morning to head to the airport, it was just freezing cold and no longer snowing. The crews had done their job overnight and the major roads were clear. Once we dropped off the rental car and got into the airport, though, the “fun” began. Thanks to the two Northwest Airlines incidents, security at the airport was crazy! You’d think the airport would have been prepared, but the line was a  mess: it switched back on itself several times so it was almost impossible to find the end. Plus it went past all the other lines to check-in so people were constantly cutting through with their baggage, causing general confusion. 40 minutes later we were finally through, without major incident (although once we got to our gate and settled down my wife realized she had accidentally left an opened bottle of apple juice in her carry-on that went through the x-ray machine and wasn’t caught. Oops!).

We had no return flight issues except for the slight delay for de-icing. Once back in Florida and the 60-degree sunny weather, we heard from my sister that it really started to get bad after we left, so we had made it out just in time. To celebrate being home, we had lunch on the deck outside at a Bahama Breeze near the airport. Ahhh. And yeah, we rubbed it in for the family up north by sending a photo. Love you guys! 🙂

Ohio for the holidays

We’re up in Ohio  for Christmas … brrr!

Last night we checked into the Marriott at the Tampa Airport using their “Park Here, Fly There” package (a one-night stay with up to 7 days of “free” valet parking). This way we didn’t have to use the remote long-term parking lot and not get up as early to make our 8am flight to Cleveland. Once we checked into our room, we went down into the airport proper to grab a drink at Starbucks and people-watch. It was weird being in the airport without any luggage and not having to go anywhere (yet). As advertised, the room was very well insulated so we didn’t hear any of the airport traffic outside. I just wish they had insulated the door as effectively, however, because there were some noisy people out in the hallway pretty late that woke us up.

We had no travel issues to speak of this morning, which was a pleasant surprise. The security line was long, as expected, but we didn’t have any problems or delays. Our flight was smooth and perfectly on-time. Stepping off the jetway in Cleveland we were met by an unpleasant, but not unexpected, blast of cold, northern Ohio winter air. It was mostly just cold, windy, rainy, and overcast … just like I remember Cleveland winters. The rest of the day was spent running errands: picking up the boxes we had shipped up earlier, checking into the hotel, going grocery shopping for Christmas dinner, etc.

For dinner we met some old college friends and their kids at The Pub in Rocky River. The last time I had been down that part of Detroit Road, I think the old movie theater that The Pub is now located in was still a  movie theater! The food was great, though, (I had the Ham and Swiss Pub Pretzel) and the spirits were better (my favorite was the Monty Python Holy Grail Ale, of course!).

The next few days are going to be busy …

WIJFR: The Wizardry Compiled

Wiz Zumwalt, ex-Cupertino programmer and now mighty wizard in a sword-and-sorcery world, must contend with the need to act as a leader in the Council of the North, the need to teach his new magic programming system to others, and the need to rewrite his spell compiler system. He also learns of incredibly destructive ends his spell compiler is being put to, as well as growing resentment of humans by the magical creatures of the World, which may culminate in war.

I just finished “The Wizardry Compiled” by Rick Cook, which like the first book in the series I downloaded for free from the Baen Library. I started reading this book in iSilo format on my Treo, but switched to an iPhone in the middle so ended up finishing it in Stanza. While I never had any problem with reading e-books on my Treo, I have to admit the e-book experience on the iPhone is a lot better!

“Compiled” takes place about two years after Wiz defeated the Dark League in “Wizard’s Bane.” Having earned his place among the Mighty and a seat on the Council, Wiz finds himself mired in bureaucracy, typical of large committees. The other Mighty are skeptical of his new magic and his attempts to teach them magical “programming” are going frustratingly slow (partially due to his poor instructional skills). His work on the compiler is progressing, but he soon discovers that someone has modified his ‘ddt’ spell (for safely dispersing magic) into a “hacked” version called ‘demon_debug’ that simply erases anything magical from existence. The humans along the Fringe of the Wild Wood are using demon_debug to move back into the forest, simply nullifying anything in their way … which will shortly cause an out-and-out war with the magic creatures who live there. On his way back from a trip to see the effects of demon_debug first-hand, Wiz is captured by the remnants of the Dark League who still inhabit the shattered City of Night.

The book splits into two separate narratives at this point. While Wiz is a fugitive in the City of Night trying to evade re-capture, Moira (the hedge witch, and Wiz’s wife), travels back to our world to recruit a team of programmers to work on the spell compiler. Soon, there’s a whole managed project going on as the team attempts to understand the workings of magic and Wiz’s new programming language. Can the team complete the compiler, and can Wiz escape from the City of Night, in time to prevent war?

Like the first book, I enjoyed the juxtaposition of programming and code with the world of fantasy and magic. In addition to the technical programming concepts, Cook adds the team and aspects of managing a large software development project (another area I’m familiar with due to my consulting background). Also, in a reversal of roles from the first book, Moira travels to California and gains a better understanding of Wiz’s world (and gets to try pizza!).

I’m going to continue the series, so I’ve already purchased the next volume (“The Wizardry Cursed and Consulted“) from webscriptions.net for a mere $4.

Laser tag has come a long way

Today we had my daughter’s birthday party (with three other birthday kids from her class) at the Xtreme Fun Center for laser tag and video games. Wow, laser tag is awesome!

My sister and I owned a pair of Worlds of Wonder Lazer Tag pistols and sensors when we were kids and used to run around in the yard and play. Around that same time, a Photon arena opened up in a nearby Cleveland suburb and I remember my dad taking us to play once or twice. Both games were cool, and a lot of fun, but the WoW stuff was cheap plastic, with limited range, and playing Photon required wearing bulky and heavy equipment (and it was expensive). In the years since I’ve honed my “combat” skills on first-person shooters like Doom and Quake, and I’ve played paintball a few times (which is a different kind of rush with real pain involved).

But before today it had probably been over 20 years since I’d stepped into a laser tag arena. The tech and equipment is amazing. This center had the latest iteration of the gear, which consisted of a simple, relatively light-weight vest with illuminated sensors on the chest, back, and shoulders, and a two-handed rifle connected via an elastic cable (so you can’t accidentally drop it). A heat sensor in the barrel of the gun won’t allow it to fire one-handed to prevent you from shooting blind around corners or over your head. When you get “hit” the affected sensor vibrates so you can tell where the shot came from and then you “go dark” for about 5 seconds before you can shoot again. The most amazing part, to me, was that you can see the laser beams! I was floored when the first game started and I could see these green laser lines flashing across the arena. Combine that with the glowing colored targets on everyone’s vests and guns and it was a surreal Doom + TRON-like experience. Super cool. If you watch the video below closely, you can see a few of the beams flash by (I was recording with my digital camera, so the quality is not that great).

 

We got a bunch of free passes as a “thank you” from the center for having our birthday party there, so we will definitely be going back for some quality family time in the arena. 😀

Google’s Chromium OS is, uh, a browser

Google’s forthcoming Chromium OS has gotten a lot of buzz recently. My trusty old EeePC 4G Surf has become quite the sandbox for trying out different netbook operating systems, so of course now it is running Chromium. I downloaded the latest of Hexxeh’s Chrome builds, copied the image onto a 1gb thumb drive, and then installed the image onto the SSD in my EeePC. It boots to the signon screen in about 15 seconds:

You login using your Google/Gmail credentials, since this is an OS for the cloud (of course, I had to login with the default ‘facepunch’ from Hexxeh’s FAQ first so I could join the netbook to my wireless network before it could authenticate my Google login).

As you can see from the login screen in my video above, it’s not well suited for the smaller 7″ screen on my EeePC. The settings dialog, for instance, goes off the bottom of the screen and the usual Alt+mouse to drag a window doesn’t seem to work. Also, since this was installed as an image, the SSD drive looks like just a 1gb drive so I’m missing out on the other 3gb for storage. Graphics performance isn’t that great either.

Other than that, I’ve successfully turned my netbook into a almost fully functional Ubuntu machine into a device that only runs a browser. 😮 Hmmm. I guess this is the simplicity Google is shooting for, but it’s almost too simple for me.

Oh, and while I’m talking about Google … why won’t they let me put my iGoogle tabs back on top of the page instead of on the left? It’s a ridiculous waste of space, and it’s even worse on the smaller screen of my EeePC.