My iPhone’s Getting Blue

I am eagerly anticipating a new iPhone 3G S (and OS 3.0) later this week as I write this post on my still excellent first generation iPhone. I am brewing a separate post about mobile phones but I wanted to share a brief observation: most of my favorite apps have blue icons.

A few blue apps worth mentioning:

WordPress – using it to tap out this post in bed right now

Pandora – plug into your stereo and be amazed!

Twitterific – an excellent, powerful Twitter client

Shazam – great accuracy at identifying songs playing around you (I’ve discovered neat stuff on the radio with this one!)

Google – voice search can be super fast and easy. Trying to train myself to use it more.

Backups. The right way.


AirPort photo via Engadget

Last week the inevitable happened: my backup drive failed. I took it as an opportunity to set things up right. (Note: I firmly believe in also backing up to the cloud but only for DR purposes.)

My existing backup solution was a WD 500GB MyBook attached to an old (unsightly) desktop. The box ran XP and was configured to “wake on lan” and then hibernate after a couple hours. Not bad but there was a glaring usability problem: backups were manual. (This setup cannot support Time Machine’s automated backups on the Mac and the wake-on-lan required a manual step for all backups.)

What’s my new ‘proper’ solution? Two new pieces of hardware: the Iomega Prestige 1TB ($100) to replace my dead MyBook and an AirPort Extreme router ($180). Yes, a single Time Capsule gets the same result but it’s a much worse choice since it’s over $200 more and less future proof (for upgrades or disk failures). Update 7/31: Apple just cut their TC prices to be much more in line with my preferred option — but I still wouldn’t get one for the other reason.

$100 for a TB!

The Iomega arrived the next day from Amazon and I first set it up with 2 partitions: NTFS and Mac OS Extended (Journaled) to support Time Machine. Worked like a charm but the physical cabling to each laptop for each backup would get anoying fast.

That’s where the AirPort Extreme comes in to save the day (4 days later via the Apple Store online). This router replaces my very trusty Linksys WRT-g and features nice performance improvements of wireless-n and dual band support. But the killer feature is the Airport Disk sharing — simply plug in any USB drive and access it from any host on your network!

A surprising bonus of this setup is that the ‘airdisk’ works on Windows too and it even provides a Fat32 proxy to the Mac file system. Once I noticed that, I repartitioned the Iomega as a 1TB Mac partition that’s shared between my OS X and Windows hosts (while those last around here!)

Now I can finally say goodbye to manual backups (and hello time machine). Plus, I can retire the last standing clunky desktop mini tower in my home. Oh how ubiquitous they once were.

…and onto the Mac


At work, we have a program in place which lets employees swap their PC laptops in for MacBooks. A couple weeks ago my number was called and since I’ve been getting a bit fed up with my primary computer, a now sluggish 3 year old Dell, I decided to take the plunge. (Hardware wise the Dell is fine — the slow and steady software rot of Windows is mostly to blame). Needless to say, drastically changing one’s primary computer is a pretty big deal for most people, let alone a software professional.

This isn’t quite my first foray into the world of the Mac. For over a year I’ve been administering my team’s Mac Mini as part of our browser test lab and last Christmas I got my wife a sweet Mac Air which she loves and I’ve helped her learn to get around on. But this is the first time that I’ve made my primary computer a Mac and so far I’m digging it. (It probably doesn’t hurt that I’ve been a mega iPhone fan for more than a year.)

For the longest time I’ve been decidedly anti-Macintosh and pro Win/PC. My how the tides have turned! Growing up, my first 6 computers were all DOS and Windows based PCs. Windows 3.x,  Win95 and DOS will always have a special place in my thoughts and I strongly admire Microsoft for what they have done for the entire computing industry. But as software technology keeps moving online (into the cloud) it feels like Microsoft is constantly playing catch up. Their massively critical flops like Vista and the Zune are now just barely offset by productivity stalwarts Excel and Word. But even these are being threatened by the likes of Google Docs, iWork and OpenOffice. For the sake of competition, let’s hope that Windows 7 helps them gain back some of their former glory. 

My first experience with Macs (not counting the green screened one from grade school daycare) was in first year Computer Science at University of Waterloo.  The funky iMacs in the “Mac Lab” were what the Mathematics frosh (aka freshmen) were supposed to use.  I used them a few times but quickly learned to stay away and entered that lab only to print — those machines seemed awful to me. I much preferred to “work from dorm” on my own PC and either use my Linux partition (Slackware!) or telnet into the Unix machines on campus. Much better.

So, how did they make ’em good?

Apple, under returning CEO Steve Jobs, did two critical things to make Macintosh computers as desirable for computing professionals as they are today: OS X and Intel based hardware. 

The Macintosh Operating System 10  has Darwin at it’s heart, an open source UNIX kernel. In my experience all good programmers will tell you that a UNIX OS is technically the best you can get. It has extreme stability, great performance and the best powerful command line interface. OS X also had the Aqua interface which added scalable graphics, anti-aliasing, transparency, shadows and animation. And they weren’t shy with these UI features.   

Moving to Intel CPUs in 2006 was also an excellent move because of the great success and market penetration of the X86 architecture. This means one can easily run Linux binaries on their Mac or dual boot to Windows or another Intel compatible OS.  It’s hard to disagree that Intel simply makes the best, fastest, affordable chips of this day and age. This is what tipped the scales for me.

The other thing that’s hard not to love about the Mac is the premium hardware. Things like magsafe (the power cord uses a magnet to pop in and out with ease and safety if you trip over it), a nice un-brick-like power brick, fantastic LCD monitors and great keyboard keys really are worth the extra cost and show an attention to detail that most hardware manufacturers just don’t “waste” money on developing.

The trackpad and its gesture support is another thing Apple’s focus has nicely paid off on. Once you start using two finger scroll, and two finger tap (for context menus), you’ll realize the mouse isn’t quite as vital as you once thought.  

Keyboard Junky

For me, the toughest thing by far on making the switch from PC to Mac is my dependency on the keyboard. Macs were really designed for the (one button!?) mouse. Lately Apple has been getting better at keyboard support and they were very smart for making Alt-Tab just work (Cmd-Tab switches apps like just like Windows) since that’s probably the most hard-wired keyboard command for all Windows users.

My biggest annoyance is the loss of Home, End, Page up and Page down keys. To get these key functionalities you will need to use a two key combo (e.g., Cmd+Left arrow instead of Home or Fn+Up instead of Page up). This is bad because not only do you need two hands but they differ slightly between apps!  I also dislike how Cmd+Left and Cmd+Right is overloaded in the browser to mean Home or End if you’re in a text area and back or forward browse if you’re not. Too much thinking is required… I find I’m reaching for the mouse or trackpad more often which simply slows me down.

I also wish one could navigate dialogs using accelerators like in Windows. Some apps have this built in using Option + letter keys but this doesn’t work if the dialog has a text box focussed upon load since Option + letters is also used for extended character typing. 

On the plus side, I much prefer using my thumb for hotkeys since Cmd (where Alt is on a PC) is the main hotkey initiator. That key placement feels far more natural than using Ctrl with my pinky (which is the initiator for most hotkey commands on a Windows PC). It’s kind of interesting that on Windows, the Alt key is now almost forgotten which is sad given it’s prominent position on the PC keyboard.

Third Party Apps

my menubar

The built in apps for OS X are nice but everyone knows you need extra software to get real work done.

IntelliJ by JetBrains is my IDE of choice. I love its HTML/XML/JSP editing capabilities (which Eclipse just can’t seem to get right) as well as its built in support for Tomcat and Maven. It works on the Mac just as it does on Windows which is also great.

For text editing I’ve been impressed with open-source Smultron. I’m not using it for code editing but as a scratch-pad it’s working out nicely. (And of course, it doesn’t do everything that metapad can, but I’m sure it does stuff that metapad cannot ;)

The Butler app was something I discovered to solve a particular problem: make F2 edit a cell in Microsoft Excel. Butler allows you to set up hotkey interceptors for specific Apps. It also does a bunch of other stuff that seems cool, like a clipboard storage menu but I haven’t delved into much else yet.  

For a shell terminal, iTerm is nicer and far more customizable than the built in Terminal app. And I’m using iStat Menus (pictured above) to monitor memory and CPU. 

I’ve been rather dissapointed with Microsoft’s Office suite on the Mac as well as Adobe Fireworks CS4. Mac Office is not nearly as full featured or customizable as the Windows versions and, yes, Entourage sucks way more than Outlook. Fireworks could be great but somehow Adobe forgot to test Fireworks CS4 on the Mac. Shame on them.

Liquidninja Goes Mobile


As I continue to browse the web on my beloved iPhone, I occasionally visit a blog that’s perfectly sized for the device. Basically this saves me a double-tap (which would zoom in on the article text) but anything that makes people think less is just awesome!

I recently decided that I wanted  my own blog to have a similar feature: detect mobile browsers and present a different skin or theme to them. Getting this done was slightly trickier than I had expected.

An important note: if you’re using a caching plugin for WordPress you may have problems with serving different flavors of pages depending on the client’s browser. Luckily WP Super Cache, which is updated fairly frequently recently added a “Mobile device support” option for just this purpose.

First I tried the plugin called wp-mobile. This one looks just great on an iPhone.  Unfortunately it just wouldn’t work for me. (Yes, even after disabling  wp-supercache.) I also wasn’t a big fan of the complexity that the carrington theme comes with (since theme customization was one of my goals).

Next, I tried the much simpler MobilePress. This one just worked right out of the box with a couple caveats. First, it didn’t play well with Disqus (the cool distributed comment platform this site uses). The Disqus comment text came up the same color as the theme’s background so the comments were completely unreadable. I fixed this by changing the body background color to a lighter shade. The second caveat I’ll get to in a moment.

After MobilePress was working I decided to customize the default theme to give it the same feel of the main theme on this site, FrostNinja. (For those curious, I wrote a post on how I made FrostNinja.) To test it I used the technique described in the aforementioned article as well as simulating the iPhone on two of my desktop browsers. The picture at the top of the screen is Safari 4 with the developer menu enabled and the iphone user-agent set. I also tested with Firefox (mainly because I just love firebug!) with the UserAgent Switcher plugin.

Next comes the other problem I faced which was a bit nastier and I still don’t understand why it’s broken.  I uploaded my new FrostNinja Mobile theme to my server in the correct place (plugins/mobilepress/themes) and successfully set it as the default, for all platforms, in the Mobilepress Themes setting page. But the default theme was still being served — even with wp-cache completely disabled! The workaround for this one is a bit uglier: after renaming the existing themes I symlinked both to my new theme (e.g., “ln -s frostninja-mobile default”).

Overall a fun experience and I’m pleased with the result.

Update: At some point this mobile theme stopped working yet again. Rather than keep debugging it I turned it off in favor of a responsive solution. This has many benefits including way fewer moving parts. Here’s how it looks on mobile:

Screen Shot 2013-03-21 at 6.17.11 PM

metapad turns ten


It feels great to say that after a full decade I still enjoy using metapad on all of my Windows installations.

Today marks the 10th aniversary of the first public release of metapad (see the history page if you don’t believe me). To celebrate I have finally, after long promise, released the source code for metapad. That’s right, now metapad is officially open source and available on GitHub. Not just freeware but truly “free software”, as is defined by the FSF.

I started developing metapad back in early 1999 when I was an intern at a very cool Toronto based media company called (at the time) Digital Renaissance.  It was my second internship there and I had graduated from VB programmer to C++ programmer (woohoo!) and I was pretty stoked to be learning the ins and outs of hardcore object oriented Windows programming with MFC. But I guess I was pretty good at squashing the bugs they were throwing at me because I had a lot of free time on my hands…

So I decided to write my own text editor — one that was as fast and lightweight as Microsoft’s Notepad but had some serious features that people could use to, say, write the front-end code for a web site. Plus back in ’99 most folks still used these things called modems so downloading software was a pretty big deal. The fact that the initial release of metapad was less than 20 kilobytes was an important factor in its relative success. (Competing products that relied on fat runtime libraries were ten to fifty times larger than metapad).

Other than the superiority of metapad’s size, speed and feature list, there were two other major factors contributing to its overall success: suporters and multiple language support.

Very soon after metapad was released, an up and coming tech email newsletter called Lockergnome run by one Chris Pirillo, decided to recommend metapad. A little later on, I was very proud to get a 4 star and then an upgraded 5 star editors’ pick rating from ZDNet, the publisher of the once popular and powerful PC Magazine. A sincere thanks goes out to Chris and to the editors at Ziff Davis as well as all the other sites around the world that helped to spread the word about metapad.

Early metapad supporters
Early metapad supporters

In the year 2001 I came up with the idea to let volunteers translate metapad’s user interface (very similar to what Facebook has recently done). Thanks to the dedicated efforts of some computer savy, multi-lingual metapad users from around the globe, metapad is currently available in 32 languages other than english (each available as a downloadable plugin).

I was amazed to discover that since I installed Google Analytics in late 2005, there have been 442,881 visits (generating just shy of a million pageviews) coming from 212 different countries! Here’s a graph of the visitors by country (breaking out the top 10).

Top 10 countries visiting this site
Top 10 countries visiting this site

Special thanks to Florian BalmerAaron HawleyCarlos Fleitas and all the other users who submitted bug reports, feature requests and kind words. All of your feedback and support was what drove me to improve metapad from v1 to v3.5. Big thanks to all who have sent donations which have generously helped me maintain the website.


Categorized as technology