Sunday, May 20, 2007

Don't Forget the Bookmarks

I've switched operating systems three times over the last six months. (See this post for the whole story.) When you switch, you have to figure out what data you need to keep and how to convert it to be used on the next OS. Sure there's the 'My Documents' folder that you'll copy over. Those PDF files will work fine, no matter what OS you're using. Office docs will generally work between the PC and the Mac. OpenOffice can also deal with most Office documents like Word and Power Point if you're headed for Ubuntu Village. Email is where it gets tricky.

I was using Outlook under XP and planning on using Thunderbird under Ubuntu. There is no Ubuntu application that will read Outlook files. It turns out you need to convert them to something useful on XP before you switch. This can be a problem if you've already switched and only have the Outlook files but no longer have Outlook. It worked out for me since I was using one computer but two hard drives. I could boot off the old XP disk and be back in Windows Land. Basically you need to export your email from Outlook and then import it to Thunderbird. Thus you have to get it working under Thunderbird on XP and then you're back simply copying over the Thunderbird email directory. So in my case of moving from XP, to Ubuntu, and finally to Mac OS; the XP to Ubuntu was the hard part. Moving from Thunderbird on Ubuntu to Thunderbird on Mac OS was pretty painless. Eventually I moved to Mail.app on Mac OS and as long as you can find a converter program, you're good to go. The one that worked for me was Eudora Mailbox Cleaner, which I highly recommend. There are a few tricks, like emptying your trash and compressing all your mail folders before converting, but otherwise it worked like a charm. I highly recommend it. I also learned that Mail.app uses SQLite under the covers. Which makes me want to learn more about that little corner of the world at some point.

What about calendar? When I moved from Outlook on XP to Thunderbird, I also switched to Lightning, a Thunderbird plugin that does calendar. It was pretty creaky but it worked. I was able to export my Outlook calendar and import it into Lightning. Moving Lightning to Mac OS from Ubuntu was again pretty easy.

The part that I almost forgot were my bookmarks. At first bookmarks don't seem that important. They are sort of temporal. You're working on a project and you accumulate a set of bookmarks related to that project: how to convert Outlook to Thunderbird, for instance. But there really are a lot of bookmarks that you need to take with you. I realized this after spending way too much time trying to find web pages I know I had bookmarked on my old machine. I then found this great Firefox plugin called Foxmarks. Foxmarks is a plugin that keeps a backup of your bookmarks on their servers, which can be convenient, if just a little bit scary from a privacy point of view. But the really cool thing is that Foxmarks keeps the bookmarks on all of your computers synchronized automatically. (Assuming that you've installed Foxmarks on all your computers.) This means you can add a bookmark to your computer at work, and later that night after you've put the kids to bed, you can belly up to your home computer to continue your project, and that bookmark will be there ready for you to use. Pretty sweet.

I'm not sure how the Foxmarks folks are going to make money. One founder is Mitch Kapor of VisiCalc and Lotus Notes fame so they shouldn't be hurting for funding at least. Their web site says something about better search. I suppose you could use bookmarks as a way to increase relevancy in search. Rather than using Google's Pagerank you could use some sort of Markrank that would boost pages that have more bookmarks. In the meantime, Foxmarks is a great way to keep your bookmarks safe and in sync.

Thursday, May 10, 2007

Apple Ads

You've probably seen a few of these on TV. Here are a bunch from Truveo.

Tuesday, May 8, 2007

What do you mean Gesture?

Here's a neat trick for the MacBook users out there (yeah, both of you): use two fingers on the touch pad for scrolling. Turns out this is incredibly useful. If you've ever used a mouse with a scroll wheel, you know how useful this can be. I have to admit I find Apple's single mouse button thing a bit constraining. Now I can use two fingers on my track pad even if I can't do the same with the mouse buttons.

In computer science speak this is called a gesture. Back in the early 90s I remember getting a demo of another gesture based interface at CMU. If found it really cool but couldn't think of how it would be used in real life. I'm glad these ideas are making it into commercial products. It turns out the iPhone will also have a bunch of gestures built in. You can flick your finger across the display to scroll. Pinching your fingers together will zoom out. Spreading your fingers apart will zoom in. This is kind of hard to explain in print, check out the photos demo to get a better idea of how these work.

Not only are gestures coming out as UI components. The term is also starting to have a broader meaning. Lately I've heard folks use gesture to describe the act of tagging or the act of selecting an item from a list of search results. This strikes me as a strange use of the term. It's at least useful in that it makes us think about user interactions from a slightly different angle. Battelle likes to talk about search as users expressing their intent. In this context gestures could be thought of as further evidence of our intent.

It seems to me there are two kinds of gestures. One is a command and the other is evidence of intent. Pinching a photo of George Bush on my iPhone is a command, a direct manipulation. It doesn't mean anything really except that I'm done looking at the picture and I want to move on. Tagging that Flickr photo of Bush as velvety is a evidence of intent. It says something deeper about the relationship between me and the photo. What do I mean by the gesture of tagging our president as 'velvety'? In this case it's just something I find amusing. It probably also says something about my politics, but let's not go there. This is a technology blog, not a political blog after all.

Sunday, May 6, 2007

hacker class?

The title 'hacker class' is a riff on the term 'creative class' as in the title of Richard Florida's book The Rise of the Creative Class


hacker: as in someone who enjoys hacks or tricks.
class: as in a group of people having the same social or economic status.

The Cool Kids

My buddy Omar and I were having coffee yesterday and talking about fun startup ideas among other things. Omar has already been exposed to my Ruby fanaticism and he's a Mac buff. So I was showing him my latest toy, the TextMate. TextMate is the coolest developer tool I've seen in a while. (Probably since I began using Intelli J from Jetbrains back in 2003, also known as the days of yore.)

Omar made the comment, "That's what all the cool kids are using these days." Which resonated with an idea I've been thinking about lately. It seems to me that there are some pretty big shifts going on in terms of how development gets done. My own productivity has increased enormously over the last 5 years. Lately I've experienced some stunning changes in how much I can get done, partly due to the fact that maybe I'm just getting better at it, but mainly do to the fact that I have better tools with which to do it.

For me the first shift was from Java to Ruby. This was back in 2004 and the early days of Truveo. I was trying to make a Perl script do what I wanted and it just wasn't working. I kept sending emails to my buddy Manchek (my personal hacker guru) asking him why this or that thing didn't work the way I expected. He finally got fed up and suggested that I learn Ruby. (Thanks again Bob!) He knew that I came from the C/Unix/Vi school and that I was then living in the Java world. I think he suspected that Ruby would fit my brain a bit better than Perl. It did.

I eventually gave up on Java and started doing everything in Ruby. I missed using the Jetbrains stuff and tried to get Ruby and Eclipse working but it just took too much work. I reverted to Ruby and XEmacs on cygwin. Progress was made, rapidly.

I've pretty much been living in that world until my AOL issued laptop started taking 5 minutes or so to boot up. It was driving me nuts. I live on my laptop. I do all my development and non-development work on this one machine that goes everywhere with me. (More on that later.) Since the machine had to be docked and undocked daily, I was shutting down and booting up twice a day. These zen exercises were costing me around 20 minutes a day. I decided to take drastic measures, I installed Ubuntu. This was a whole other odyssey which I won't get into here. But eventually I prevailed. I had a real linux environment with all the trimmings. The best part, boot times under 60 seconds. Rock on.

Now comes the bad part. A lot of the other fun stuff I liked about XP was gone. The two biggies for me were iTunes and destktop search. I can probably live without iTunes but the lack of a good desktop search was a problem. I have tons of email and I was used to finding things easily. (Thankyou Google Desktop.) Well Ubuntu has Beagle, but I found Beagle about as useful as a wiener dog. Kind of a hassle and not that much fun.

Ubuntu had a hacker coolness to it but it just didn't have all the creature comforts I needed. I was proud of myself for getting it to work. I had to do some fairly heroic things, like compile custom VPN software and get my WiFi working even though my D410's chipset wasn't supported by Ubuntu. But, then I saw the light.

Last December we spent a week at Beaver Creek skiing with some friends. One was my good friend Peter, another of my personal gurus. He had a shiny Macintosh and I had to have one. Luckily Peter and I both work for AOL and AOL is willing (if not always happy) to provide both Windows and Macintosh computers to its employees. I proceeded to badger the administration and was eventually awarded my own shiny MacBook Pro. iTunes support, check. Desktop search, check. Unix underpinnings, check. Rock on.

This brings me back to the cool kids and TextMate. I started settling into my new OSX home, re-arranging the furniture and hauling in some of the old furniture from my last place in Ubuntu Village. I couldn't quite get the XEmacs through the door though. There was this thing called Aquamacs but it was just scary. The port of GNU emacs for the mac seemed like the best choice. Things were still missing, like syntax highlighting for Ruby, etc. Then one day I ran across this screencast by James Edward Gray II, and I was hooked. Not only did it support Ruby like a champ but it had some of my favorite control key bindings from emacs: ^a, ^e, ^k, and ^y are all there and happy to help. Sure, it costs 39 euros, but hey, I'm worth it.

There is so much cool stuff in TextMate I would recommend splurging on the book as well: TextMate: Power Editing for the Mac

So what else are all the cool kids using these days? (And who are these cool kids anyway?) I suspect the cool kids know about GTD, Subversion, and a whole lot more. My plan is to keep an eye out for this kind of hacker goodness and blog about it when I get the chance.