Mostly random pontification, delivered at irregular intervals.

Macintosh

The Cult of Mac.

The value of over-the-counter service

My primary computer is a dual 2GHz PowerMac G5 until I can upgrade it with a Nehalem Mac Pro, most likely around the end of the year or early next year. I bought it in 2004, along with a 23" Apple Cinema HD (the old pinstripe plastic bezel kind with an ADC connector). Unfortunately, about a year ago the CCFL backlight on the monitor started turning pink from old age, and thus unusable in a properly color-managed photographic workflow.

I used that as an excuse to splurge on a humongous (and agoraphobia-inducing) HP LP3065 30 inch LCD monitor after reading the glowing reviews. The two features that sold me were the enhanced color gamut (the only way to improve that would be to get a $6000 Samsung XL30, something I am not quite prepared to do), and the fact it has 3 built-in DVI ports, so it can easily be shared by multiple computers (assuming they support dual-link DVI, which unfortunately my basic spec Sun Ultra 40 M2 does not). The fact it was 25% less expensive than the Apple 30" Cinema Display helped, of course.

About 6 months ago, I discovered there was a fine pink vertical line running across the entire height of the monitor, roughly 25 centimeters from the left. Since I primarily use that monitor for photo (the primary monitor for Mail, web browsing or terminals remains the Apple), at first I worried there was a defect with my camera. I managed to reproduce the problem with my MacBook Pro (they have dual-link DVI, unlike lesser laptops), and called HP support (the 3 year HP warranty was also an important consideration when I purchased).

My first support call in November 2007 went well, and the tech told me I would be contacted to arrange for an on-site exchange. This is a seriously heavy monitor and I did not relish the idea of lugging it back to FedEx, so getting premium support for a business-class monitor sounded an attractive proposition. Unfortunately, they never did call back, and as I had other pressing matters to attend to involving international travel, I just put it out of my mind (it is a very subtle flaw that is not even always visible).

I only got around to calling them back a few weeks ago. Unlike in November, I was given the run-around with various customer service reps in India until I was finally routed to a pleasant (and competent) tech in a suburb of Vancouver (the US dollar going in the direction it is, you have to wonder how much longer before HP outsources those call centers back to the US). The problem is not with Indian call centers, in any case, all but one of the CSRs were very polite (I suspect Indians learn more patience as they grow up than pampered Americans or Europeans would). The problem is poorly organized support processes and asinine scripts they are required to go through if they want to keep their jobs. In any case, the Canadian rep managed to find the FRU number and also told me someone would call to schedule an appointment. Someone did call this time, to let me know the part was back-ordered and they would call me when it becomes available.

This morning, as I was heading for the shower, my intercom buzzed. It was a DHL delivery man with the replacement monitor. I had to open the door to him in my bath robe. Naturally, nobody at HP bothered to notify me and had I left earlier, I would have missed him altogether.

One of the great things about Apple products is that if you live near an Apple store, you can just stop by their pretentiously-named Genius bars and get support for free (though not free repairs for out-of-warranty products, obviously). I now have a fully working HP monitor again, so I suppose I can't complain too loudly, but the Apple monitor with the sterling support looks like the true bargain in hindsight.


Backing up is hard to do (right)

You can never overstate the importance of backups. Over the last year I have put quite a bit of effort in making sure my data is backed up properly. The purpose of this article is not to describe backup best practices (that is a vast subject, there are other, better resources available on the web, and in any case there is no one-size-fits-all solution). I am just documenting my setup, the requirements that drove it, and possibly give readers some ideas.

The first part in planning for backup is to do an inventory of the assets you are trying to protect. In my case, in order of priority:

  • 1.5GB of scans of important documents: birth certificates, diplomas, invoices, legal documents, bank statements, and so on. This data is very sensitive, and should be encrypted.
  • 150GB of digital photos and scans
  • My address book, which lives on my laptop
  • My source code repositories
  • My personal email, approximately .75GB
  • The contents of this website, about 5GB
  • 190GB of music (lossless rips of my CD collection)
  • My Temboz article database

Thus the total storage capacity required for a full backup is reaching the 400GB mark. This in itself precludes DVD-R or even tape backup (short of buying an expensive LTO-4 tape drive or an autoloader, that is).

The second step is to devise your threat model. In my case, by decreasing order of likelihood:

  1. Human error
  2. Hard drive failure
  3. Software failure (e.g. filesystem corruption)
  4. Silent data loss or corruption, e.g a defective disk
  5. Theft
  6. Fire, earthquake, natural disaster, etc.

Third, some general principles I believe in:

  • Do not use proprietary backup formats. The best format is plain files on a filesystem identical in structure to the original.
  • Do not rely on offline media for backups. The watched pot does not boil over, online data is much less likely to go bad without my noticing until it is too late.
  • A backup plan needs to be effortless to be successful. Plugging in external drives when backups are needed, or rotating drives between home and office is something I have tried, but not stuck to.
  • Backups should be verified — they should generate positive feedback, so that the absence of feedback can alert to problems
  • For all types of data, there should be one and only one reference machine that holds the authoritative copy. Multi-master synchronization and replication is possible using tools like Unison, but is much harder to manage and increases the risk of human error.

With these preliminaries out of the way, here is my system:

  • My primary backups reside on my home server, a Sun Ultra 40 M2 workstation, running Solaris 10. This machine is very quiet, so I can keep it running in the room next to my bedroom without disturbing my sleep. It is also relatively power-efficient at 160W with seven hard drives.
  • One of the seven drives is the 160GB boot drive, and the other six are 750GB Seagate drives configured in a 3TB ZFS RAID-Z2 storage pool.
  • With large SATA drives, reconstruction after a drive failure is long and the risk of another drive failing due to the stress of rebuilding is not negligible. RAID-Z2 can tolerate two drives failing, unlike RAID 5 which can only tolerate a single drive failure. This level of data protection is higher than RAID 1 since RAID 1 won't protect you if two drives that are the mirror of one another fail. You can get the same level of protection in RAID 6 or RAID-DP.
  • I have scripts to take ZFS snapshots daily. The daily snapshots are kept for the current month, then I keep only monthly snapshots. Snapshots are the primary line of defense against human error.
  • Snapshot technology consumes only as much disk space is required to store the differences between the snapshot and current versions of a file, and is much more efficient than schemes like Apple's Time Machine where a single byte change to a mult0gigabyte file like a Parallels virtual disk image will cause the entire file to be duplicated, wasting storage. Because snapshots are taken near instantly and cost almost nothing, they are an extremely powerful feature of a storage subsystem.
  • I backup from my various machines to the Sun via rsync over ssh. An incremental backup of my PowerMac G5, which has most of the 400GB in my backup set, takes less than 5 minutes over Gigabit Ethernet, despite the ssh encryption.
  • ZFS is probably the best filesystem, bar none, but it is not perfect, as demonstrated by the Joyent outage and you still need another copy for backup in case of ZFS corruption.
  • Every night at 2AM a cron job on my old home server (2x400GB, ZFS RAID 0), that I now I keep at work, pulls updates from the Sun using rsync over ssh (the company firewall won't let me push updates to it from the Sun). Another cron job at 8AM kills any leftover rsync processes, e.g. if there are more data changes to transfer than fit in the 1-2 GB that can be transferred in 6 hours over my relatively pokey 320-512kbps DSL uplink (no thanks to AT&T's benighted refusal to upgrade its tired infrastructure).
  • A last line of defense is to back up my server at work to a D-Link DNS-323 NAS box using rsync over NFS. This cute little unit holds two Western Digital Green Power 1TB drives in RAID 1, which slide right in, no tools required. It consumes next to no power or desk space. Since it runs Linux and is easy to extend using fun-plug, I could conceivably run the cron and rsync from there. As a bonus, the built-in mt-daapd server streams my entire music collection to iTunes over the LAN so I can listen to any of my CDs at work.
  • It can take a few days for this data bucket brigade to catch up with a particularly intense photo shoot, but it will eventually and is never too far behind. This provides me with near continuous data protection and disaster recovery.

Macworld 2008 round-up

MacBook AirThe MacBook Air was what I was waiting for (I pre-ordered the SSD version just before the online Apple Store buckled under the load). I have a MacBook Pro 15", and because of its weight I end up leaving it at work and not carry it with me at all times (the MacBook is hardly any lighter). Sure, the Air has drastically limited connectivity (the lack of Gigabit Ethernet is probably what I will regret most, even though I clocked my Airport Extreme at 90 true Mbps throughput). Other minuses include the glossy screen (instead of an anti-reflective one), the MacBook-like chiclet keyboard rather than the much nicer MacBook Pro keyboard), or the sealed non user-replaceable battery.

I suspect people deriding it are people whose main machine is a laptop. My main machine is a tower desktop, and no laptop is ever going to compete in terms of capacity and expandability. The drive on the laptop is merely a cache for the desktop where the real data lives. The compromises the Air makes are acceptable ones in exchange for a machine that is light enough for me to carry all the time. I was considering getting an Asus Eee PC prior to the show, and the MacBook Air is a vastly more capable and polyvalent machine.

Apart from that, the show was a relatively quiet one with few truly noteworthy new products. Here are the main highlights:

  • Matias did not have the Tactilepro 2.0 keyboard on display. I love mine (a version 1 with the ALPS keyswitch) and would like to get a spare, but apparently they have parted ways with the manufacturer of the new Matias-designed keyswitches and are working on a 3.0 version for later this year.
  • Fujitsu were demonstrating an ultra-small, bus-powered document scanner, the S300M. Unfortunately, once again for reasons due to licensing of the bundled software, they could not release a single SKU that would work with both PCs and Macs.
  • The German company Project Wizards was demonstrating Merlin, a project management program similar to Microsoft Project. The scheduling and load-leveling algorithms look at least as capable as Project 2000, and they told me the next version will allow team members to report on task advancement by simply contacting a built-in web server. Looks like a promising product.
  • Samsung showed the CLP-300 which they bill the world's smallest color laser printer. Indeed it looks roughly the same size as my monochrome HP LaserJet 1320, and much smaller than my bulky HP 2605dn, that's quite an achievement. I am wary of Samsung lasers since buying the CLP-500 for Kefta a few years back. The print quality was fine, but it was ludicrously slow, taking something like 5 minutes per color page to print. The CLP-300 seems reasonably fast, faster than the 2605dn at any rate.
  • Samsung was also showing off the gorgeous XL30 30" LED-backlit LCD monitor. LED backlight is more environmentally friendly, does not shift colors as it ages unlike a TFT backlight, and gives a wider color gamut. Unfortunately, its price is a princely "between $6000 and $7000".
  • Microsoft was showing off Office 2008, emphasizing ease of use and productivity rather than features for features' sake for a change.

    Microsoft Blogger lounge

    They even set up a bloggers-only salon to curry favor, complete with Internet cafe and snacks.
  • I tried Nikon's humongous AF-S VR Nikkor 200mm f/2G IF-ED lens. Very heavy but impressive piece of gear.
  • Canon was showing off the new Flash-based HD camcorders they introduced at CES. They are not that much smaller than the HDV ones. The HV30 replaces the excellent HV20, but the only real improvements are 1080p30 mode and an articulating LCD.

A San Francisco local's advice to Macworld attendees

Third StreetI have been living and working in downtown San Francisco for almost eight years now. Until a month ago, my office window (right) used to overlook Third Street and the Moscone center. San Francisco is a popular convention destination (one wonders why proctologists seem to prefer it to, say, Detroit) but Macworld Expo is definitely the biggest show in town. Restaurants and hotels are taken by storm, taxis become scarce, traffic gets even snarlier and the lines at Metron eateries cross the threshold of ludicrousness. So here are a few tips for Macworld attendees to have a better time and not caught in tourist traps.

Transportation

Driving in San Francisco is a non-starter. Traffic is horrendous, parking is scarce and you would lose far too much time just getting around. SF Muni is a pretty good public transport system (at least by admittedly paltry US standards) and their 1, 3 or 7 day Passport passes are good value.

Cars are mostly useless inside the city, but nice if you want to drive to make a Fry's run or a day trip to Marin across the Golden Gate. If you must drive, the friendly folks at Reliable Rent-a-Car will give you decent rates on Toyotas. Until I bought a car last month, they were my go-to place for when I needed a car.

Lunch

San Francisco has the best food in the United States, but you wouldn't know if from the overpriced eateries in a three block radius. The Firewood Cafe and Buckhorn Grill in the Metron are actually reasonably decent, but the throngs of convention-goers mean long lines. Mo's Grille has excellent burgers (I recommend the aptly named "Belly Buster"), and since access to it is a little tortuous, you have a fighting chance (it is literally just above the Moscone South).

Ranging a little further, Nova has decent burgers and a lovely lobster quesadilla, and the new Westfield Mall three blocks to the west has a decent food court. Some good local chains are Bistro Burger, S.F. Soup Co. or Café Madeleine (official birthday cake purveyor to Kefta).

That said, the best lunch experience is to take the historic F line streetcar to the Ferry Building Marketplace with its wide variety of gourmet food stores and eateries. I heartily recommend the clam chowder at Ferry Plaza Seafood (it used to be my Friday lunch of choice) or the eclectic fare at Boulette's Larder. Chocolates from Michael Recchiuti or fresh-pressed olive oil from Stonehouse make for great (and edible) souvenirs.

Staying hydrated is important when you expect to spend an entire day on the show floor. There is a Whole Foods store a mere block away where you can buy any required provisions.

Dining

Dining in San Francisco is an embarrassment of riches, it would be a shame to settle for overpriced hotel food. A word to the wise: most of the better places are hooked into the OpenTable reservation system which makes finding a good place with availability a much less hit-and-miss affair. This year Macworld coincides with the annual Dine About Town event where participating restaurants will offer specially discounted menus.

Equipment

Murphy's law will strike at the worst possible moment. If you need help with your Mac, the geniuses at the San Francisco Apple Store (or the smaller Chestnu St or Stonestown locations) can help. It's also good to keep in mind the Apple stores all offer free WiFi connectivity.

If you need commodity spare parts like a USB hub in a hurry, Central Computers is a mere block away and carries a wide assortment, albeit PC-centric.

If you are an attendee and have questions I have not answered, please feel free to email me, my contact info is at the right.


iPhone first impressions

I thought I would escape the frenzy of iPhone hype by filtering out any mentions of it from my feed reader. In fact, I was quite resentful of the way the iPhone launch pushed out the release of OS X 10.5 Leopard to October 2007. On my way to my cousin's wedding on Friday June 29th, I passed by the San Francisco Apple Store and saw the line. It was actually fairly tame, as it only went halfway around the block (when the store originally opened, the line went all the way around and spilled over into Market Street).

Of course, when I came back, I had to see one. One of the petty annoyances with my Nokia E62 was how it would take several seconds for the address book to load. The iPhone, despite having a much more computationally intensive user interface, still manages to have lightning-quick responsiveness to user input. That itself convinced me to buy one.

The iPhone mostly meets or even exceeds the hype. The user interface is exceptionally good, let alone for a version 1.0 product. Some quick notes from a Nokia E62 switcher (my previous phone was also using Cingular/AT&T):

  • Email and web are very snappy. The SSL implementation on the E62 would take forever to negotiate with my home IMAP server (as in several minutes), the iPhone's is instant. The E62's web browser, despite being based on the same WebKit code base as Apple's Safari, could not run two concurrent AJAX XMLHttpRequest concurrently, Safari has no such problems.
  • The battery life is very short, well under 2 days, and it takes a long time to fully charge.
  • The glass screen does not scratch, but it does show fingerprints and smudges.
  • The virtual keyboard is surprisingly effective. This was the single biggest area where I thought it would fall short, but it actually performs far better than the E62's chiclet keys. Part of the reason is that the E62's keys actually wobble when you press them, which doesn't make for precise typing, and they are so tiny anyway that it's hard to type accurately without pressing other keys in the process. The iPhone's magnification effect as well as the fact you can slide your finger to correct a misregistered virtual keypress, makes for much faster typing. The predictive text engine is also far superior to schemes like Symbian's, or T9. T9 is unbearably annoying in the same vein as Microsoft Word's noxious autocorrect functionality or Clippy, I always disable T9 on any phone that has it, the iPhone's system is unobtrusive and eminently usable in comparison.
  • The sound quality on the iPhone is not at the same level as the E62, specially for the speakerphone.
  • No voice recorder. A rather silly omission.
  • The calendar does not support To-Do list items from iCal. This is ridiculous.
  • You cannot use iTunes music files as either the ring tone or alarm sound. This was probably to appease AT&T and the RIAA, who seem to believe they have a divine right to make you pay over again and again for the same music. Even if I were prepared to accept their racketeering and pay the obscenely expensive charge for a ring tone, I seriously doubt they would have what I used for mine on the E62, the finale theme from Sibelius' Kullervo op. 9.
  • The recessed phone jack is incompatible with most earphones like my ER-4P, but it works just fine with B&O A8, whose jack is actually a fairly thin molded connector wrapped in a rubber jacket that easily slips off to accommodate the iPhone jack.
  • Safari has no option to remember passwords for you, unlike the desktop version, and it does not recognize the standard http://login:password@site/ convention either, which makes logging onto Temboz harder than it has to be.
  • The Bluetooth functionality in the iPhone is pretty minimal, limited to using Bluetooth wireless headsets and not much more. You cannot beam business cards or photos. Unlike the E62, I cannot use it as a modem for either my MacBook Pro or my Nokia N800. Since there is no SSH client on the iPhone, this could bite me when I need emergency access. Then again, the $20 unlimited data plan for iPhones is half the price of my previous $39.99 unlimited data plan.
  • Not supporting Java or Flash is a feature, not a bug.
  • The camera, as could be expected, is mediocre. We all know the only purpose is to snap facsimiles of notes, billboards, flyers. whiteboards and the like.
  • The calculator is minimal. It does not support RPN and does not have either scientific or financial capabilities.
  • You can specify 24-hour time format, but there is no way to specify ISO date format.
  • The iPhone seems incompatible with my SendStation PocketDock Line Out USB, and thus I cannot connect it to my Ray Samuels Hornet pocket headphone amplifier and full-size Sennheiser and AKG headphones. It is also incompatible with Apple's own universal AV dock, and displays a warning message telling you so. Then again, since it is a GSM phone, the annoying pulsating buzz induced by GSM would make such an arrangement impractical.

Update (2007-07-13):

It must be the Friday 13th effect at work... My iPhone seems to have developed a defective proximity sensor. The phone works as a speakerphone, but no longer turns the headset speaker on when I bring it to my ear. Resetting and even restoring the phone does not help, it's probably a hardware issue.

Fortunately, the SF Apple Store Genius Bar let me in this evening without an appointment, and swapped it for a new one. This was the first time they had seen this particular problem, and they told me Apple's policy for the first month is to do full replacements and collect field failures for analysis. The repair process afterwards seems to be still up in the air. I would recommend they have swap or loaner units on hand, as people are less likely to tolerate not having a phone than not being able to listen to music for a week.


MacBook Pro 3G first impressions

I upgraded my MacBook Pro to the third-generation model so I can bump up my RAM to 4GB. Aperture and CS3 are very resource-intensive, and the 2GB upper limit of my first-generation MBP was somewhat constraining.

I just transferred my files over using Apple's migration utility and target firewire mode. The process, while not 100% automated (it did not transfer X11, for instance, or some of the preferences), is far smoother than any Windows equivalent. Here are my first impressions on the new model:

  • The new, environmentally friendly mercury-free LED backlight is definitely more blue in tone than the pinkish cold-cathode fluorescent backlight on the old model. The default ColorSync monitor profile does a good job of compensating for this, however. There is some vignetting on the 15" screen (darkening in the corners). I wonder how the 17" model fares, and whether they had to add additional LEDs for a more even backlight illumination.
  • This machine is fast. It blows my dual-2GHz G5 PowerMac out of the water in all benchmarks other than disk I/O. Unsurprisingly, it is also much faster than the first-generation machine, specially on graphics but also on disk I/O.
  • It does not heat up quite as much as the older Core Duo model, the heat level, while high, never reaches a potentially dangerous temperature. This is probably due to improved power management, as running two Parallels virtual machine will bring it up to the same pant-scorching levels as the Core Duo.

Yet another AppleTV article

Ever since my Panasonic PVR died and I switched to an Elgato EyeTV 250 for my PVR needs, I hardly ever use my 32" Sharp Aquos LCD HDTV, and do most of my watching on my Mac's 23" Cinema HD display.

To rectify this, I purchased an AppleTV yesterday at the San Francisco Apple Store, where they are prominently displayed, hooked up to Sony Bravia LCD TVs. While their choice of TV is questionable (remember, Sony is a four-letter word), the demo is effective for those who did not get to see it at MacWorld Expo 2007.

In all likelihood, I will cancel my Comcast cable subscription in a few days. The only TV shows I watch are:

  • Battlestar Galactica (iTunes season pass: $34.99)
  • South Park (iTunes season pass: $23.99)
  • The Simpsons (not available on iTunes yet)
  • Family Guy (although the show has become stale and probably on its way out)

I stopped watching live TV seven years ago when I bought my first PVR (a TiVo Series 1). My monthly Comcast bill is $56.20 (basic extended analog cable, no premium channels). Purchasing an iTunes season pass for Galactica and South Park would cost me just slightly more than one month of Comcast's "service". This also means the AppleTV will have paid for itself in less than 6 months (the famous "return on investment" or ROI metric used by IT departments to estimate whether a project is worthwhile or not). The Fox shows I can get over ATSC HDTV because I have an Elgato EyeTV 500 ATSC DTV/HDTV to Firewire tuner (broadcast flag free), and direct line of sight to Sutro Tower, where the San Francisco digital TV over-the-air signals are beamed from.

Of course, the satisfaction of firing the cable company, with its tendency to jack prices up much faster than inflation for ever degrading service, is in itself priceless. As a bonus, the iTunes shows are fully digital, and without ads.

The limiting factor is of course the abysmally slow standard of what passes for broadband in the US. Ironically, I left Europe for California in 2000 because I thought the epicenter of the Internet industry was here, but nowadays the US lags badly behind even formerly dirigiste France in terms of optical broadband and high speed DSL.

Broadband prices are much higher in the US — I pay $70 per month for 2.5 Mbps downstream and 384 kbps upstream, when in France I would get 18 Mbps for half that price (or 70 Mbps for the same price as in the US in the many areas that are getting optical coverage). This is despite the fact my former colleagues at France Telecom face labor costs and Internet transit costs double those of US carriers (the US' central role in terms of connectivity means US carriers can impose peering terms where non-US carriers pay the lion's share of the transoceanic cable costs, even now that Euro or Asian Internet traffic is beginning to eclipse US traffic). The reason for high prices is of course the coddling of the AT&T-Verizon-Comcast oligopoly by a FCC overly influenced by the doctrinaire Chicago School of economics, which refuses to accept even the theoretical possibility of a monopoly...

AppleTV is the second key product in Apple's digital hub strategy, and like the iPod, it is also available to Windows users. Apple did learn from its mistakes in the 1980s, where it lost potential dominance of the desktop PC market to Microsoft by having unrealistically maximalist designs on the market. In some way, this is akin to the virtualization phenomenon shaking corporate IT: like the browser or Parallels, iTunes is another middleware layer that makes the operating system almost irrelevant - Windows users can switch painlessly to the Macintosh, once they realize the elegance and simplicity of the iPod and AppleTV also apply to the Mac and they do not have to settle for the inferior Windows experience.

Now, AppleTV is a semi-closed environment like the iPod. I refuse on principle to buy low-quality, DRM-infested music tracks from the iTunes store. Switching to DRM-infested video tracks from the Apple store is not very consistent. For my defense, I must say:

  • Unlike music, video is something you see once and usually never again. Thus, the DRM restrictions are less onerous (still outrageous, but less unacceptably so).
  • There is no legal non-DRM alternative, unlike CDs for music.
  • Cable companies are really, really evil...

Last but not least, just as you can load your iPod with high-quality, non-DRM music ripped from good old CDs and SACDs, you can load video into iTunes from various sources other than Apple, such as the excellent Elgato EyeTV PVR software, a DVD ripper like Handbrake, podcasts and probably all sorts of other mechanisms in the future (I would be surprised if YouTube did not come out with an AppleTV compatible service soon). Since Apple refuses to license its DRM, that effectively forces other players to use non-DRM video. Who said two wrongs do not make one right?

In any case, I fully expect the AppleTV to be reverse-engineered and alternative operating systems made available for it, just as Rockbox provides FLAC support and gapless playback on the iPod, or how people managed to get Linux running on the original Xbox. Apple is probably not subsidizing the AppleTV the way Microsoft does with its game consoles, so they probably do not have a strong incentive to prevent repurposing with mechanisms like the encrypted boot loader on the Xbox. Less than a week after initial availability, there are already reports of people upgrading the internal hard drive...

Flat-panel HDTVs were the star of the 2006 holiday shopping season, thanks in no small part to free-falling prices. There is now a critical mass of people in the US who are starting to realize just how lousy standard definition TV is, like my friend and colleague Frank who can't bear to watch his TiVo Series 1 any more now that he has a humongous rear-projection 1080p screen, and is mulling building his own MythTV or Freevo box.

The iPod is already a mass-market phenomenon. I believe Apple has a real shot of taking a huge chunk of the cable companies' business away from them. Hollywood will be cheering, because Steve Jobs is one of them, and they can make much more profit from iTunes Store sales than from the crumbs the cable distribution monopolies grant them. Of course, there will be collateral damage like TiVo (not that I would particularly mind), and possibly NetFlix. Presumably Microsoft will do the same by adding equivalent functionality to the Xbox 360. Sony will try, but will fail utterly because of its insistence on polluting everything with proprietary yet unusable pseudo-standards and unredeemably horrid software. All in all, the television industry is in for some mighty interesting times.

Update (2007-03-24 10AM):

I have just cancelled my Comcast subscription. The guy handling the cancellation was actually very friendly, and we talked a little about South Park, TiVo, digital TVs and DVR options. They did not put any hurdles or unnecessary hoops to jump through in the cancellation process, you have to grant them that. Contrast this with scumbags like AOL who have been repeatedly been slammed by state attorney-generals for fraudulently keeping on charging users after cancellation. The cable company's pricing policies may be evil, but their customer service seems pretty good.


MacWorld SF 2007 round-up

One of the perks of living in San Francisco is easy access to MacWorld Expo. I can literally see the Moscone center a mere two blocks from my new office window. This year's show spanned both North and South halls, but in some ways was a let-down compared to the last two.

Of course, all the buzz was about the iPhone. The amazing thing is not that Apple should make one, but rather that not a single cell phone manufacturer has a clue about design and ergonomics. Nokia used to, but they have backslid badly with their sluggish and over-complex Series 60 allegedly smart phones.

The prototypes were securely held under glass bells, presumably to preserve them from the salivating legions of the Mac faithful. From the demos, it looks pretty snappy compared to the incredibly sluggish Symbian or Windows Mobile equivalents, but I have serious doubts as to whether even Apple can make on-screen virtual keyboards work.

The other marquee product is the Apple TV, essentially a severely anorexic Mac mini without an optical drive or separate power brick, and running an unspecified embedded OS with the Front Row user interface. Pity it is limited to 720p (the 1080i support is interpolated). At a time when CompUSA sells a top of the line 42 inch Sharp Aquos 1080p LCD flat panel for under $2000, the lack of 1080p support is puzzling.

I haven't seen that much innovation among the third party vendor stands either. Here is what I did find at least somewhat noteworthy:

  • Fujitsu came out with a new model of its ScanSnap document scanner line, the S500M, the only document scanner with official Mac OS X support. They claim the new model is slightly faster, and has a much improved paper feed. Indeed, the 5110EOX2 I have is annoyingly prone to double-feeding. The new model is also bundled with ReadIRIS Pro and Acrobat 7 Standard, a pretty good bundle all in all since those two programs together retail for nearly the same price as the scanner.
  • Speaking of PDF, viewing the PDFpen demo makes me regret even more shelling for that piece of bloatware that is Acrobat. Simple, inexpensive software to manage and edit your PDFs. They have a show special, 20% off if you follow the link www.smileonmymac.com/macworld.
  • Invisible Shield was demonstrating its self-healing protective plastic film for various gizmos by shaking an iPod mini in a box filled with screws and bolts, and showing how it survived unscathed. They also make protective films for digital camera LCDs, this looks like an interesting option since DSLR LCDs are very easily scratched.
  • A number of stands were using the Logitech 3DConnexion SpaceNavigator controller. Ovolab (makers of the excellent Phlink answering machine peripheral, were demoing a photo geocoding application Geophoto, with lightning-fast Google Earth style navigation (oddly enough, the Google stand did not use this nifty human interface device). The controller has six degrees of freedom and is remarkable easy to pick up.
  • Logitech has a fairly subdued stand. There were no real demonstrations of their NuLOOQ controller for Photoshop users, nor of their newly acquired SlimDevices Transporter, or Harmony programmable remotes. The emphasis was on their laser mice. SlimDevices was a popular draw at previous MacWorlds, I am not sure whether Logitech has gotten a grip on how to market that product line yet.
  • Infrant had a small stand with a ReadyNAS NV+. I had never seen this NAS before, it is much smaller, quieter and more solidly built than I expected. The rep at the counter was a new recruit and not all that knowledgeable about the product (I asked whether they expect to support iSCSI soon, which would make it a killer expansion option for my Solaris 10 home server with ZFS). Infrant has a partnership with SlimDevices, and the bundle of a Squeezebox with a ReadyNAS is one of the most attractive networked digital music options available, far superior to the flashy but ultimately unsatisfying Sonos.
  • Matias was demonstrating a prototype of their new TactilePro 2.0 keyboard. They now make their mechanical keyswitches by themselves instead of buying them from Alps (as with the version 1.0 Tactilepro I am using to type this blog entry). I like the original version so much I bought a spare when Alps announced it was discontinuing the keyswitches. The feel of the 2.0 is slightly different from the old one, but it still has that honest-to-goodness clickety-clack feel, albeit with a more subdued sound. The other differences involve upgrading the built-in hub to USB 2.0 and adding the Optimizer feature, which turns the useless Caps Lock key into a shortcut key instead. I remap the Caps Lock key to Control anyways on Macs, Windows and Solaris, so this last feature is of dubious interest to me.
  • Intelliscanner was selling rebadged Symbol CS1504 scanners for $250. Save your money, buy the OEM Symbol version for under $100 and use my free Python driver instead.
  • Canon was out in force, as was HP. Nikon and Epson had smaller stands this year. I got to handle the excellent new Canon HV10 HD camcorder, the new 70-200mm f/4L IS lens (a version of the excellent 70-200mm f/4L lens I already own, with gyroscopic optical Image Stabilization added), and the upcoming new Pixma Pro 9500 pigment ink printer that should compete with the Epson R2400 and the HP B9810.

iTunes 7, one step forward, one step back

I upgraded to iTunes 7 yesterday. This new version adds a feature opera and classical fans were clamoring for, gapless playback. Often, two or more consecutive tracks must be played without interruption. CD players do that effortlessly, surprisingly few MP3 players can. A pause, however slight in the middle of an aria can be incredibly jarring. Apple took its sweet time, but they eventually delivered (although it is not clear if all older iPod models will support this beyond the 5G video-capable iPod). You have to explicitly flag albums that must be played without gaps by selecting the "gapless album" option.

I still have to get used to the cosmetic changes in the new version. I liked the green musical note icon better than the new blue one. The new style looks a little flat and one-dimensional, just like many Windows XP applications have a flat web page inspired look compared to the beveled buttons and controls of the CUA-based Windows 2000 interface.

iTunes 7 is also markedly different in behavior from previous versions in how it handles albums. To keep the user interface easily understandable for the general public, all tracks are shown as a single flat database, but behind the scenes, iTunes implicitly normalizes this into something that looks like the following relational data model:

old iTunes ER model

iTunes 7 added a few new fields, including "Album Artist", which seems to be of dubious utility. I described in a previous article my coding conventions to work around the fact iTunes was obviously designed by people with absolutely no clue about classical music. Unfortunately, iTunes 7 does not rectify this situation, but what's worse, they also changed the key for the album to include both Artist and Album Artist:

iTunes 7 ER model

I can understand why they did this - if you have several alternative versions of the same work by the same composer, but by different artists, they would be played in intermingled order, which is why I append (2), (3) and so on to multiple interpretations of the same work (by decreasing order of preference).

On the other hand, the new behavior means that if you assigned different artists to tracks in an album (in a classical piece or an opera, you seldom have all the tracks played by the same artists), iTunes mistakenly thinks you have several albums, one for each possible value for artist, and this breaks libraries that worked with previous versions. iTunes 6 and earlier would not care and play them all in the order implied by the Track# field. iTunes 7 will see them as different albums and you will get a nasty surprise when you play the album in shuffle mode, as it will skip to a completely different album halfway through.

Let me illustrate with the album I first encountered the problem with. The last two tracks have Peter Seiffert credited, whereas the first two do not. The list view shows the albums sorted properly, like previous versions of iTunes:

iTunes 7 list view

The album view makes it clear what iTunes thinks is happening:

iTunes 7 album view

The only work-around this today is to force all tracks in an album to have the same Artist field. I will need to write an AppleScript to identify all tracks that need to be normalized thus, even if this means a loss of information. A further quirk is that the implicit normalization is apparently done at iTunes startup, so you need to restart iTunes for the changes to have an effect.

Update (2006-11-03):

I auto-updated to 7.0.2 today and finally figured out something that has been puzzling me for a couple of weeks now. My copy of Poulenc's Stabat Mater (Battle/Ozawa/Boston/Tanglewood) would not play as a single album, even though it is displayed as such in the album view. I have "shuffle by album" activated, and it would skip from any track in that specific album to a completely unrelated one. Even if I pinned it down by entering "poulenc stabat" in the search box so no other album could be selected, iTunes would skip from track 1 to a completely random track, instead of moving on to track two.

Apparently iTunes shuffles using a different algorithm than the album grouping. I have another album that has the exact same title "Stabat Mater", albeit one by Pergolesi, not Poulenc (and four others by Dvořak, Szymanowski and Vivaldi, but the opus or RV number differentiates the album titles). Having two albums with the same title seems to confuse iTunes no end. I don't want to mangle my album names just to appease iTunes 7, but I found a work-around: just change the mostly useless "Disc Number M out of N" field so the two albums with conflicting titles have different disc numbers, and they will collide no more. Better yet, use the CD number field to uniquely identify each CD in your collection, instead of just within a boxed set. Once again, you need to restart iTunes for this to kick in.


Transfer complete. Or is it?

I finally completed my CD ripping project and now have lossless copies of all my CDs (and the CD-audio layer of my SACDs) on my Mac.

iTunes status bar

As I mentioned before, the bulk of the work is tagging the music with correct metadata, locating cover art when the majority of my CD jewel cases and booklets are moldering in a cellar in France. (Amazon is helpful, specially now that it allows users to upload their own scans of cover art). Doug's AppleScripts for iTunes make short work of normalizing CDDB metadata like correcting the people who stuff the composer name in the title or vice versa.

iTunes scripts menu

I wrote my own scripts to tackle these common operations:

  1. Strip numbers from titles. That's the "Track #" field's job. This script requires the Satimage AppleScript Regex OSAX plug-in to work.
  2. Renumber a selection sequentially, so I can split a CD into its constituent parts and renumber them independently from each other or the original CD track order.
  3. Strip prefix strings from titles.

This does not mean I am finished, however. About 3/4 of the way through, I realized iTunes is far from perfect at extracting CD audio. For various reasons related to how the Redbook CD audio format was designed without computers in mind, it is very hard to get a perfect, repeatable rip from one attempt to the other. iTunes has an "error-correction" option that seems not to have any effect. For reliable ripping, you have to use specialized programs like EAC on Windows and a cdparanoia-based program like Max on OS X. This complicates the workflow as Max is slightly buggy, and nowhere as good at managing metadata as iTunes is, so the one-step import in iTunes becomes a less streamlined affair:

  1. Rip the CD to AIFF in Max
  2. Import the AIFF into iTunes
  3. Number the tracks (very important!) using my "Renumber tracks" script
  4. Convert to Apple lossless
  5. Copy the metadata from CDDB using Doug Adams' Copy info tracks to tracks script.
  6. Add album cover art and mention the track was ripped with Max
  7. Backup to another hard drive!

The good thing is, now that I have collected the metadata and cover art, I can rerip trouble tracks with clicks or pops, and copy the metadata in one step using Doug's action, so re-ripping won't be as much of a hassle as the first time. The next step is to convert everything to FLAC so I have a non-proprietary library that works with SlimServer on my Solaris home server.

If you are not as obsessive about your music metadata as I am, the process will be much easier if you just use whatever CDDB supplies you. In any case, remember, just say No! to DRM-infested lossy-compressed tracks from the iTunes Music Store.


Put whiny computers to work

I have noticed a trend lately of computers making an annoying whining sound when they are running at low utilization. This happens with my Dual G5 PowerMac, the Dells I ordered 18 months ago for my staff (before we ditched Dell for HP due to the former's refusal to sell desktops powered with AMD64 chips instead of the inferior Intel parts), and I am starting to notice it with my MacBook Pro when in a really quiet room.

These machines emit an incredibly annoying high-pitched whine when idling, one that disappears when you increase the CPU load (I usually run openssl speed on the Macs). Probably the fan falls in some oscillating pattern because no hysteresis was put into the speed control firmware. It looks like these machines were tested under full load, but not under light load, which just happens to be the most common situation for computers. The short-term work-around is to generate artificial load by running openssl in an infinite loop, or to use a distributed computing program like Folding@Home.

Load-testing is a good thing, but idle-testing is a good idea as well...


Taming the paper tiger

A colleague was asking for some simple advice about all-in-one printer/copier/fax devices and got instead a rambling lecture on my paper workflow. There is no reason the Internet should be immune to my long-winded rants, so here goes, an excruciatingly detailed description of my paper workflow. It shares the same general outline as my digital photography workflow, with a few twists.

Formats

The paperless office is what I am striving for. Digital files are easier to protect than paper from fire or theft, and you can cary them with you everywhere on a Flash memory stick. As for file formats, you don't want to be locked in, so you should either use TIFF or PDF, both of which have open-source readers and are unlikely to disappear anytime soon, unlike Microsoft's proprietary lock-in format of the day.

TIFF is easier to retouch in an image editing program, but:

  1. Few programs cope correctly with multi-page TIFFs
  2. PDF allows you to combine a bitmap layer to have an exact fac-simile with a searchable OCR text layer for retrieval, TIFF does not.
  3. TIFF is inefficient for vector documents, e.g. receipts printed from a web page.
  4. The TIFF format lacks many of the amenities designed in a format like PDF expressly designed as a digital replacement for paper.

Generating PDFs from web pages or office documents is as simple as printing (Mac OS X offers this feature out of the box, for Windows, you can print to PostScript and use Ghostscript to convert the PS to PDF.

Please note the bloated Acrobat Reader is not a must-have to view PDFs, Mac OS X's Preview does a much better job, and on Windows Foxit Reader is a perfectly serviceable alternative that easily fits on a Flash USB stick. UNIX users have Ghostscript.

Acquisition

You should process incoming mail as soon as you receive it, and not let it build up. If you have a backlog, let it rest and start your system for processing all new email so the situation does not worsen, before you tackle old mail.

Junk mail that could lead to identity theft (e.g. credit card solicitations) should be shredded (if you get a powerful enough shredder, it can swallow the entire envelope without even forcing you to open it) or even better, burnt. Of course, you should only consider a cross-cut shredder. Junk mail that does not contain identifiable information should be recycled (when in doubt, shred). Everything else should be scanned.

Forget about flatbed scanners, what you want is a sheet-fed batch duplex (i.e. capable of scanning both sides of a sheet of paper in a single pass) scanner. For Mac users Fujitsu ScanSnap is pretty much the only game in town, and for Windows users I recommend the Canon DR-2050C (the ScanSnap is available in a Windows version, but the Canon has a more reliable paper feed less prone to double-feeding). Either will quickly scan a sheaf of paperwork to a PDF file at 15–20 pages per minute.

Filing

Paper is a paradox: it is the most intuitive medium to deal with in the short-term, but also the most unwieldy and unmanageable over time. As soon as you assemble two sheets into a pile, you have lost the fluidity that is paper's essential strength. Shuffling through a pile takes an ever increasing amount of time as the pile grows.

For this reason, you want to organize your filing plan in the digital domain as much as possible. Many experts set up elaborate filing plans with color-coded manila folders and will wax lyrical about the benefits of ball-bearing sliding file cabinets. In the real world, few people have the room to store a full-fledged file cabinet.

The simplest form of filing is a chronological file. You don't even need file folders — I just toss my mail in a letter tray after I scan it. At the end of each month, I dump the accumulated mail into a 6"x9" clasp envelope (depending on how much mail you receive, you may need bigger envelopes), and label it with the year and month. In all likelihood, you will never access these documents again, so there is no point in arranging them more finely than that. This filing arrangement takes next to no effort and is very compact - you can keep a year's worth in the same space as a half dozen suspended file folders, as can be seen with 9 months' worth of mail in the photo below (the CD jewel case is for scale).

Monthly files

There are some sensitive documents you should still file the old-fashioned way for legal reasons, such as birth certificates, paycheck stubs, diplomas, property titles, invoices, tax returns and so on. You should still scan them to have a backup in case of fire.

Date stamping

As you may have to retrieve the paper original for a scanned document, is important to date stamp every page (or at least the first page) of any mail you receive. I use a Dymo Datemark, a Rube Goldberg-esque contraption that has a rubber ribbon with embossed characters running around an ink roller and a small moving hammer that strikes when the right numeral passes by. All you really need is a month resolution so you know which envelope to fetch, thus an ordinary month-year rubber stamp would do as well. Ideally you would have software to insert a digital date stamp directly in the document, but I have not found any yet.

Management

Much as it pains me to admit it, Adobe Acrobat (supplied with the Fujitsu ScanSnap) is the most straightforward way to manage PDF files, e.g. merge multiple files together, insert new pages, annotate documents and so on. Through web capture OCR, it can create an invisible text layer that makes the PDF searchable with Spotlight. There are alternatives, such as Foxit PDF Page Organizer or PaperPort on Windows, and PDFPen on OS X. Also see my article on resetting the creator code for PDF files on OS X so they are opened by Preview for viewing.

Encryption

If you are storing a backup of your personal papers at work or on a public service like Google's rumored Gdrive, you don't want third-parties to access your confidential information. Similarly, you don't want to be exposed to identity theft if you lose a USB Flash stick with the data on it. The solution is simple: encryption.

There are many encryption packages available. Most probably have back doors for the NSA, but your threat model is the ID fraudster rummaging through your trash for backup DVDs or discarded bank statements, not the government. I use OpenSSL's built-in encryption utility as it is cross-platform and easily scripted (I compiled a Windows executable for myself, and it is small enough to be stored on a Flash card). Mac and UNIX computers have it preinstalled, of course, do man enc for more details.

To encrypt a file using 256-bit AES, you would use the command:

openssl enc -aes-256-cbc -in somefile.pdf -out somefile.pdf.aes

to decrypt it, you would issue the command:

openssl enc -d -aes-256-cbc -in somefile.pdf.aes -out somefile.pdf

OpenSSL will prompt you for the password, but you can also supply it as a command-line argument, e.g. in a script.

Backup

Backing up scanned documents is no different than backing up photos (apart from the encryption requirements), so I will just link to my previous essay on the subject. In addition to my external Firewire hard drive rotation scheme, I have a script that does an incremental encryption of modified files using OpenSSL, and then uploads the encrypted files to my office computer using rsync.

Retention period

I tend to agree with Tim Bray in that you shouldn't bother erasing old files, as the minimal disk space savings are not worth the risk of making a mistake. As for paper documents, you should ask your accountant what retention policy you should keep, but a default of 2 years should be sufficient (the documents that need more, such as tax returns, are in the "file traditionally" category, in any case.

Fax

The original question was about fax. OS X can be configured to receive faxes on a modem and email them to you as PDF attachments, at which point you can edit them in Acrobat, and fax it back if required, without ever having to kill a tree with printouts. Windows has similar functionality. Of course, fax belongs in the dust-heap of history, along with clay tablets, but habits change surprisingly slowly.

Update (2006-08-26):

I recently upgraded my shredder to a Staples SPL-770M micro-cut shredder. The particles generated by the shredder are incredibly minute, much smaller than those of conventional home or office grade shredders, and it is also very quiet to boot.

Unfortunately, it isn't able to shred an entire unopened junk mail envelope, and the micro-cut shredding action does not work very well if you feed it folded paper (the particles at the fold tend to cling as if knitted together). This unit is also more expensive than conventional shredders (but significantly cheaper than near mil-spec DIN level 5 shredders that are the nearest equivalent). Staples regularly has specials on them, however. Highly recommended.

Update (2007-04-12):

I recently upgraded my document scanner to a Fujitsu fi-5120C. The ScanSnap has a relatively poor paper feed mechanism, which often jams or double-feeds. Many reviews of the new S500M complain it also sufffers from double-feeding. The 5120C is significantly more expensive but it has a much more reliable paper feed with hitherto high-end features like ultrasonic double-feed detection. You do need to buy ScanTango software to run it on the Mac, however.


Trimming the fat from JPEGs

I use Adobe Photoshop CS2 on my Mac as my primary photo editor. Adobe recently announced that the Intel native port of Photoshop would have to wait for the next release CS3, tentatively scheduled for Spring 2007. This ridiculously long delay is a serious sticking point for Photoshop users, specially those who jumped on the MacBook Pro to finally get an Apple laptop with decent performance, as Photoshop under Rosetta emulation will run at G4 speeds or lower on the new machines.

This nonchalance is not a very smart move on Adobe's part, as it will certainly drive many to explore Apple's Aperture as an alternative, or be more receptive to newcomers like LightZone. I know Aperture and Photoshop are not fully equivalent, but Aperture does take care of a significant proportion of a digital photographer's needs, and combined with Apple's recent $200 price reduction for release 1.1, and their liberal license terms (you can install it on multiple machines as long as you are the only user of those copies, so you only need to buy a single license even if like me you have both a desktop and a laptop).

There is a disaffection for Adobe among artists of late. Their anti-competitive merger with Macromedia is leading to complacency. Adobe's CEO, Bruce Chizen, is also emphasizing corporate customers for the bloatware that is Acrobat as the focus for Adobe, and the demotion of graphics apps shows. Recent releases of Photoshop have been rather ho-hum, and it is starting to accrete the same kind of cruft as Acrobat (to paraphrase Borges, each release of it makes you regret the previous one). Hopefully Thomas Knoll can staunch this worrisome trend.

Adobe is touting its XMP metadata platform. XMP is derived from the obnoxious RDF format, a solution in search of a problem if there ever was one. RDF files are as far from human-readable as a XML-based format can get, and introduce considerable bloat. If Atom people had not taken the RDF cruft out of their syndication format, I would refuse to use it.

I always scan slides and negatives at maximal bit depth and resolution, back up the raw scans to a 1TB external disk array, then apply tonal corrections and spot dust. One bizarre side-effect of XMP is that if I take a 16-bit TIFF straight from the slide scanner, then apply curves and reduce it to 8 bits, somewhere in the XMP metadata that Photoshop "helpfully" embedded in the TIFF the bit depth is not updated and Bridge incorrectly shows the file as being 16-bit. The only way to find out is to open it (Photoshop will show the correct bit depth in the title bar) or look at the file size.

This bug is incredibly annoying, and the only work-around I have found so far is to run ImageMagick's convert utility with the -strip option to remove the offending XMP metadata. I did not pay the princely price for the full version of Photoshop to be required to use open-source software as a stop-gap in my workflow.

Photoshop will embed XMP metadata and other cruft in JPEG files if you use the "Save As..." command. In Photoshop 7, all that extra baggage actually triggered a bug in IE that would break its ability to display images. You have to use the "Save for Web..." command (actually a part of ImageReady) to save files in a usable form. Another example of poor fit-and-finish in Adobe's software: "Save for Web" will not automatically convert images in AdobeRGB or other color profiles to the Web's implied sRGB, so if you forget to do that as a previous step, the colors in the resulting image will be off.

"Save for Web" will also strip EXIF tags that are unnecessary baggage for web graphics (and can actually be a privacy threat). While researching the Fotonotes image annotation scheme, I opened one of my "Save for Web" JPEGs under a hex editor, and I was surprised to see literal strings like "Ducky" and "Adobe" (apparently the ImageReady developers have an obsession with rubber duckies). Photoshop is clearly still embedding some useless metadata in these files, even though it is not supposed to. The overhead corresponds to about 1-2%, which in most cases doesn't require more disk space because files use entire disk blocks, whether they are fully filled or not, but this will lead to increased network bandwidth utilization because packets (which do not have the block size constraints of disks) will have to be bigger than necessary.

I wrote jpegstrip.c, a short C program to strip out Photoshop's unnecessary tags, and other optional JPEG "markers" from JPEG files, like the optional "restart" markers that allow a JPEG decoder to recover if the data was corrupted — it's not really a file format's job to mitigate corruption, more TCP's or the filesystem's. The Independent JPEG Group's jpegtran -copy none actually increased the size of the test file I gave it, so it wasn't going to cut it. jpegstrip is crude and probably breaks in a number of situations (it is the result of a couple of hours' hacking and reading the bare minimum of the JPEG specification required to get it working). The user interface is also pretty crude: it takes an input file over standard input, spits out the stripped JPEG over standard output and diagnostics on standard error (configurable at compile time).

ormag ~/Projects/jpegstrip>gcc -O3 -Wall -o jpegstrip jpegstrip.c
ormag ~/Projects/jpegstrip>./jpegstrip < test.jpg > test_strip.jpg
in=2822 bytes, skipped=35 bytes, out=2787 bytes, saved 1.24%
ormag ~/Projects/jpegstrip>jpegtran -copy none test.jpg > test_jpegtran.jpg
ormag ~/Projects/jpegstrip>jpegtran -restart 1 test.jpg > test_restart.jpg
ormag ~/Projects/jpegstrip>gcc -O3 -Wall -DDEBUG=2 -o jpegstrip jpegstrip.c
ormag ~/Projects/jpegstrip>./jpegstrip < test_restart.jpg > test_restrip.jpg
skipped marker 0xffdd (4 bytes)
skipped restart marker 0xffd0 (2 bytes)
skipped restart marker 0xffd1 (2 bytes)
skipped restart marker 0xffd2 (2 bytes)
skipped restart marker 0xffd3 (2 bytes)
skipped restart marker 0xffd4 (2 bytes)
skipped restart marker 0xffd5 (2 bytes)
skipped restart marker 0xffd6 (2 bytes)
skipped restart marker 0xffd7 (2 bytes)
skipped restart marker 0xffd0 (2 bytes)
in=3168 bytes, skipped=24 bytes, out=3144 bytes, saved 0.76%
ormag ~/Projects/jpegstrip>ls -l *.jpg
-rw-r--r--   1 majid  majid  2822 Apr 22 23:17 test.jpg
-rw-r--r--   1 majid  majid  3131 Apr 22 23:26 test_jpegtran.jpg
-rw-r--r--   1 majid  majid  3168 Apr 22 23:26 test_restart.jpg
-rw-r--r--   1 majid  majid  3144 Apr 22 23:27 test_restrip.jpg
-rw-r--r--   1 majid  majid  2787 Apr 22 23:26 test_strip.jpg

Update (2006-04-24):

Reader "Kam" reports jhead offers JPEG stripping with the -purejpg option, and much much more. Jhead offers an option to strip mostly useless preview thumbnails, but it does not strip out restart markers.


MacBook Pro first impressions

I am writing this on a brand-spanking new Apple MacBook Pro (yes, I know, clumsy name). One of the reasons for my purchase is because I have been spending quite a bit of time in trains lately. Trains are one of the most civilized ways to travel, Caltrain certainly beats being stuck behind the wheel in the gridlock that is U.S. Highway 101. A laptop is a good way to get things done during the 3-hour round-trip to Santa Clara.

My last few laptops were company-issued Windows models. I only ever purchased two laptops before, both Macs, a PowerBook 180c in college (it sported a 68K chip, proof that Apple could have kept the PowerBook moniker on an Intel-powered machine) and one of the original white iBooks in 2001 when they first came out around the same time as Mac OS X. For the last ten years or so, I always managed to have ultra-thin and light models (less than 2kg / 4lb) assigned to me, and the MacBook Pro is certainly heavier than I would like. That said, it has a gorgeous screen and a decent keyboard.

Subjectively so far, it does not seem appreciably slower than my dual-2GHz PowerMac G5. I ran Xbench for a more objective comparison, you can see the benchmark results for more info. Unsurprisingly, the disk I/O is in the desktop's favor, but the Core Do processor holds its own, and even beats the G5 handily on integer performance benchmarks.

I prefer desktops to laptops, for their superior capacity and peripherals. With its relatively puny 80GB of storage capacity, the laptop (it doesn't really qualify as a notebook given its physical size) is not going to usurp the G5 soon. It doesn't even have enough capacity to store my complete music library, for instance. I am not looking forward to the usual hassles of synchronizing two computers. Apple's synchronization solution requires buying a $499 Mac OS X Server license, and third-party solutions are a bit thin.

Now, Apple is a designer PC company, and you want to protect the casework with a decent amount of padding, but the protective case itself must look sharp. I have always had good experience with Waterfield Designs bags made right here in San Francisco, so I naturally got one of their sleevecases. It is made of high-grade neoprene rubber rather than the foam used by other manufacturers, but in exploring my options, I couldn't help but notice the dizzying array of choices for design-conscious Mac users. For some reason, Australian companies are over-represented, I counted no fewer than 4 manufacturers:

As for the MacBook Pro itself, it is too soon to tell. One thing you immediately notice is how hot it gets, even though the entire aluminum case should act like one big heat sink. I haven't played with the built-in iSight yet so I can't compare its quality with that of the stand-alone iSight I have mounted on my desktop.

The 512MB of RAM installed are woefully inadequate for a supposedly professional machine, but I would rather not pay Apple's grossly inflated margins on RAM compared to Crucial. I bumped it up to the full 2GB. This upper limit is kind of disappointing when you come from a 64-bit platform (my desktop has 5.5GB of RAM). Laptops benefit even more than desktops from RAM, as free RAM is automatically used as a disk cache, and reduces the need to fetch data from slow and power-hungry 2.5" hard drives.

Update (2006-04-05):

Don't try to use Monolingual to strip non-Intel architectures to save some space. You will end up rendering Rosetta unusable... I used to disable Classic, I am not sure I would go that far in only allowing Intel binaries to run on my machine.

Update (2007-08-02):

More Australian laptop bag manufacturers:


A Python driver for the Symbol CS 1504 bar code scanner

One of my cousins works for Symbol, the world's largest bar code reader manufacturer. The fashionable action today is in RFID, but the humble bar code is relatively untapped at the consumer level. The unexpected success of Delicious Library shows people want to manage their collection of books, CDs and DVDs, and as with businesses, scanning bar codes is the fastest and least error-prone way to do so. Delicious Library supports scanning bar codes with an Apple iSight camera, but you have to wonder how reliable that is.

If you want something more reliable, you need a dedicated bar code scanner. They come in a bewildering array of sizes and shapes, from thin wands to pistol-like models or flat ones like those used at your supermarket checkout counter. For some reason, the bar code scanner world seems stuck in the era of serial ports (or worse, PS/2 keyboard wedges), but USB models are available, starting at $70 or so. They emulate a keyboard - when you scan a bar code, they will type in the code (as printed on the label), character by character so as to not overwhelm the application, and follow with a carriage return, which means they can work with almost anything from terminal-based applications to web pages. Ingeniously, most will allow you to program the reader's settings using a booklet of special bar codes that perform changes like enabling or disabling ISBN decoding, and so on.

The problem with tethered bar code readers is, they are not very convenient if you are trying to catalog items on a bookshelf or read in UPC codes in a supermarket. Symbol has a unit buried deep inside its product catalog, the CS 1504 consumer scanner. This tiny unit (shown below with a canister of 35mm film for size comparison) can be worn on a key chain, although I would worry about damaging the plastic window. Most bar code readers are hulking beasts in comparison. It has a laser bar code scanner: just align the line it projects with the bar code and it will chirp once it has read and memorized the code. The memory capacity is up to 150 bar code scans with timestamps, or 300 without timestamps. The 4 silver button batteries (included) are rated for 5000 scans — AAA would have been preferable, but I guess the unit wouldn't be so compact, but it is clear this scanner was not intended for heavy-duty commercial inventory tracking purposes.

I bought one to simplify the process of listing books with BookCrossing (even though their site is not optimized for bar code readers), but you have other interesting uses like finding out more about your daily purchases such as nutritional information or whether the company behind them engages in objectionable business practices. I can also imagine sticking preprinted bar-coded asset tracking tags on inventory (e.g. computers in the case of an IT department), and keeping track of them with this gizmo. People who sell a lot of books or used records through Amazon.com can also benefit as Amazon has a bulk listing service to which you can upload a file with barcodes. An interesting related service is the free UPC database.

Symbol CS 1504

You can order the scanner in either serial ($100) or USB ($110) versions, significantly cheaper than the competition like Intelliscanner (and much smaller to boot). I highly recommend the USB version, even if you have a serial port today — serial ports seem to be going the way of the dodo and your next computer may not have one. The USB version costs slightly more, but that's because they include a USB-Serial adapter, and you can't get one retailing for a mere $10. The one shipped with my unit is the newer PN50 cable which uses a Prolific 2303 chipset rather than the older Digi adapter. Wonder of wonders, they even have a Mac OS X driver available.

The scanner ships without any software. Symbol mostly sells through integrators to corporations that buy hundreds or thousands of bar code scanners for inventory or point of sale purposes, and they are not really geared to be a direct to consumer business with all the customer support hassles that entails. There are a number of programs available, mostly for Windows, but they don't seem to have that much by way of functionality to justify their high prices, often as expensive as the scanner itself.

Symbol does make available a SDK to access the scanner, including complete documentation of the protocol used for the device. While you do have to register, they do not make you go through the ridiculous hoops you have to pass to access to the Photoshop plug-in SDK or the Canon RAW decoding SDK. The supplied libraries are Windows-only, however, so I wrote a Python script that works on both Windows and Mac OS X (and probably most UNIX implementations as well, although you will have to use a serial port). The only dependency is the pySerial module.

By default, it will set the clock on the scanner, retrieve the recorded bar codes, correct the timestamps for any drift between the CS 1504's internal clock and that of the host computer, and if successful clear the unit's memory and dump the acquired bar codes in CSV format to standard output. The script will also decode ISBN codes (the CS 1504 does not appear to do this by itself in its default configuration). As it is written in Python, it can easily be extended, although it is probably easier to work off the CSV file.

The only configuration you have to do is set the serial port to use at the top of the script (it should do the right thing on a Mac using the Prolific driver, and the Windows driver seems to always use COM8 but I have no way of knowing if this is by design or coincidence). The program is still very rough, specially as concerns error recovery, and I appreciate any feedback.

A sample session follows:

ormag ~>python cs1504.py > barcodes.csv
Using device /dev/cu.usbserial...  connected
serial# 000100000003be95
SW version NBRIKAAE
reading clock for drift
clock drift 0:00:01.309451
resetting scanner clock... done
reading barcodes... done (2 read)
clearing barcodes... done
powering down... done

ormag ~>cat barcodes.csv
UPCA,034571575179,2006-03-27 01:08:48
ISBN,1892391198,2006-03-27 01:08:52

Update (2006-07-21):

At the prompting of some Windows users, I made a slightly modified version that will copy the barcodes to the clipboard, and also insert the symbology, barcode and timestamp starting on the first free line in the active Excel spreadsheet (creating one if necessary).

Update (2007-01-20):

Just to make it clear: I hereby place this code in the public domain.


Batch-changing PDF files to open in Preview on Mac OS X 10.4

Adobe Acrobat 7 is a necessary evil for some operations such as OCR, rotating or deleting pages (although as an editor PDFPen is cheaper and more useable). Acrobat has grown into a sumo of an application, with incredibly sluggish load times. If you peek under the hood, you will notice it actually has a full copy of MySQL embedded in it. I am not fond of MySQL, but it is not that bad of a database as to account for all the bloat in Acrobat, who knows what else lurks in that package?

At any rate, Acrobat is to be used as a last resort, and most definitely not the viewer of choice. Apple's own Preview.app is far snappier and more pleasant to use (no annoying Yahoo toolbars or spurious JavaScript warnings when you have the good sense to disable a potential security hole). Acrobat insists on taking over ownership of a file once you save it, however. You could manually change the HFS creator code for each file by hand, but this is where Spotlight's efficiently indexed metadata database shows synergy with OS X's underlying UNIX scripting magic. The following one-liner will clear the creator code for all PDF files on your system so they open with Preview instead of Photoshop. It can easily be added to a crontab or launchd script.

mdfind 'kMDItemCreator=="Adobe Acrobat*"'|tr "\012" "\0"|xargs -0 -n 1 /Developer/Tools/SetFile -c ''

If you simply want to strip the creator application from all PDF documents altogether, this script will do the trick:

mdfind 'kMDItemKind="Adobe PDF document" and kMDItemCreator!=""'|tr "\012" "\0"|xargs -0 -n 1 /Developer/Tools/SetFile -c ''

mdfind queries the Spotlight metadata for all files with a creator that starts with "Adobe Acrobat". xargs reads arguments from standard input and passes them as command-line arguments to the SetFile utility (part of the OS X Developer Tools). tr replaces line feeds with ASCII 0 NUL characters used as argument separators when xargs is invoked with the -0 option, so embedded spaces in filenames are passed unscathed. I have tested this with Unicode file names, and they are handled correctly as well.

Thanks to Spotlight, the whole process takes only a couple of seconds on my machine, something that would not be possible if it had to scan through 300GB's worth of files. It also goes to show that Spotlight's apparent sluggishness when you use it from the GUI stems entirely from the overhead of the GUI struggling to progressively display search results as they are returned by the metadata index, not from the underlying database engine. There is no justification for Google searches of the entire Internet being faster than a local desktop search.

Of course, the technique can be generalized to other ownership changes for contested file formats like HTML, JPEG or TIFF.


Switch complete

Today I have officially completed my switch from Windows to the Mac for my personal stuff. The last remaining tie that bound me to the boys from Redmond was my Canon DR-2080C document scanner, which does not have drivers for Mac OS X. I have now replaced it with a Fujitsu fi-5110EOX2 and the excellent translated Japanese driver for OS X (shame on Fujitsu for not releasing the English version, despite their presence at MacWorld 2005).

My ultimate goal is the elusive paperless office. I would like to scan to PDF and shred all my paperwork, apart from that required for legal reasons like pay stubs, invoices and important documents like diplomas and property titles. Electronic documents are easier to file, faster to retrieve, backed up more reliably for disaster recovery purposes, and take far less bulk. The fact I had to reluctantly boot up my PC to scan in batches runs counter to the streamlined workflow advocated by efficiency experts like David Allen of Getting Things Done fame.

My first computer was an Apple II, the first computer I bought with my own money was a Macintosh Plus, but as I became a hard-core UNIX user, the limitations of the old Mac OS became all too apparent. I once had to write a program in Think C using low-level disk I/O primitives to do a simple task that could be handled by a shell one-liner, to batch rename TeX font files as System 6 did not have a shell or AppleScript, and I could not afford MPW back then. I decided I would not go back until Apple came up with an OS with robust UNIX underpinnings like NeXTstep. When OS X was first released, I bought an iBook, which was followed by an iMac G4 (ordered the very day it was announced, and which now serves as a video conferencing terminal at my parents' place). The Macs were intended to be auxiliary machines, my primary home computers being a fast Windows box used for digital photography and games, and a dual-processor Solaris machine.

The PCs were in my bedroom, the iMac in my living room, as it is an elegant artifact that does not look out of place there. It also wakes up from sleep instantly, making it the ideal machine for quick web or email use. I began to notice I was increasingly using the Mac for real work, and started to evince an almost physical reluctance to boot up the Windows machine, even though the iMac was significantly slower. The noise and unreliability of the PC probably accounted for much of this (flaky ATX power supplies and motherboards). I had also never managed to get Adobe Premiere running smoothly to edit video, and iMovie+iDVD just work.

The logical next step was to upgrade to a full-featured PowerMac, which I did in June of last year. It thus took me over a year to complete the migration, despite being very knowledgeable about both platforms. The hardest items to switch were not the usual suspects like Microsoft Office — Office is fully supported on the Mac and I have a license, even though I never use it and haven't even bothered to reinstall it after upgrading to Tiger. No, the two hardest applications to switch from were IMatch and the document scanning. Kavasoft's amazing Shoebox has all the power of IMatch but a far superior user interface (I will post a review Real Soon Now).

What use is left for the PC? For now, games, although even this will disappear in Spring of 2006 when the HDTV-capable PlayStation 3 is released.


Ripping your CD library and building a home network

Since I moved six years ago, I keep my CDs in binders (four of them, plus one for DVDs and two for CD-ROMs) and the jewel cases in storage. I just finished ripping the first folder's worth, about 250 CDs and SACDs in iTunes. The bulk of the time spent is actually in cleaning up inconsistent CDDB metadata and locating scans of the cover art. As I mentioned earlier, I am ripping to Apple's lossless encoding, which is a lossless zip-style compression of the 16-bit, 44.1kHz stereo PCM CD audio stream. There is no loss of quality and my iTunes library should now be a bit-for-bit exact copy of my CD collection (or at least the third or so I have already ripped).

iTunes status

Because there is no loss of quality, I won't have to go through the effort again, whereas if I had ripped to a lossy format like MP3 or AAC, I would need to do so again to play on my HiFi setup or if the level of compression was too high. Hard drives are cheap, and storing 250GB of music is no longer the daunting prospect it was a few years ago. Lossy formats like MP3 take detail away, rather than introducing noise, and thus it is not immediately obvious just how much damage was done, but side-by-side listening makes it clear. I always find it very amusing to read people nit-picking about subtle details of audiophile gear, and then basing their subjective judgment on testing with MP3s or (even worse) video game soundtracks played over a PC sound card.

Due to electromagnetic interference, a PC chassis is the last place you want to put quality analog audio circuitry. The way to go is to hook up a PC or Mac's Toslink optical or SPDIF coaxial digital audio output to an external digital to analog converter ("DAC", such as the one built into every home theater surround receiver). This situation is reminiscent of high-end CD players, where the laser pickup mechanism ("transport") is in a different box from the DAC to improve quality. I do most of my listening from my Mac connected to my Yamaha home theater connected by Toslink, or from Sennheiser HD-650 headphones connected to a Headroom DAC and headphone amp (via USB).

There are alternatives to a direct connection, such as a Squeezebox, Apple AirPort Express, or one of the lesser devices that allow you to stream music from your computer to your amplifier via a wired or wireless local area network. WiFi may be fashionable, but I don't recommend using it for streaming audio or video because the jitter introduced by interferences degrades sound quality.

Streaming sound over the house is of course the first step in building a home network. Market studies show most people use a home network only to share Internet access or a printer between several computers, and they haven't yet reached even this first stage. One of the most obvious uses for home networking is remote monitoring using a webcam, but this hasn't been marketed effectively. Remote control of TiVo is another non-contrived application, much appreciated by their users.

Given the overwhelming amount of gadgetry that clutters my tiny San Francisco-size apartment, it is natural I have a home network, entirely wired, although I do have WiFi for visitors. In an idle moment, I mapped it (PDF) as a practical exercise in using OmniGraffle instead of Visio. One conclusion I drew from a cursory analysis of it is that all the networking gear combined did not amount as much in value as my headphones alone. Home networking as a category is not going to dominate consumer electronics anytime soon...


MacWorld SF roundup

I work a mere four blocks away from the Moscone Center, where the annual MacWorld SF trade show is held, so naturally I just drift there during my lunch break, possibly extended... Here is a list of strange and wonderful things I saw during the show, and that might have been overlooked by the more mainstream sites:

iLugger

The iLugger is a carrying case for the iMac G5 (it fits both the 17" and 20" models). Most laptops are always connected to the mains and seldom used as real mobile devices, and an iMac G5 will give significantly better performance at 2/3 the price of a PowerBook. Interestingly, the company making it is a blimp manufacturer, clearly a case of someone scratching their own itch.

Epson RD-1

Epson repNot a new product, but I got to handle an Epson R-D1, a limited edition Leica M compatible rangefinder digital camera (the only one of its kind) based on a Voigtländer-Cosina Bessa R2 body. I shot a few samples with a 50mm Summicron and Noctilux, and the resulting pictures are remarkable clear and sharp. Noise levels at ISO 800 are significantly better than my Canon EOS 10D, no small feat, and given a rangefinder's 2-3 stop advantage over a SLR, this looks like an ideal available-light camera.

The Bessa R2 has a relatively short rangefinder base length, which reduces its focusing accuracy compared to a Leica. The hardest lens to focus is the Noctilux-M 50mm f/1.0 (yes, you read that right, the fastest production lens in the world), due to its very shallow depth of field at low aperture, as shown in the picture to the left. I took it with a Noctilux (ISO 200, f/1.0, 1/125) at close to its minimum distance of 1 meter, and focusing accuracy seems adequate... Click on the image for the full-size JPEG with EXIF metadata (not including the manually set aperture and focus, of course). For comparison purposes, here is the corresponding JPEG I shot yesterday (ISO 800, Summicron-M 50mm f/2, 1/30, aperture unrecorded, probably f/4).

The gentleman portrayed is an Epson representative who was apparently given the charge of watching over this $3000 camera (apparently his only task). The sight of me pawing over it might explain his expression...

I won't duplicate Luminous Landscape's review, and didn't have that much time to play with the RD-1 in any case. Build quality is good, as good as the 10D at least. It does not have the satisfying heft of my Leica MP, nor its superlative 0.85x viewfinder, but then again what does? Some retro touches like the dials are an affectation, as well as the manually cocked shutter. The shutter cocking lever does not have to advance film, and its short travel feels somewhat odd.

X-Rite Pulse ColorElite

X-Rite, a maker of color calibration hardware, was demonstrating its Pulse ColorElite bundle, resulting from its acquisition of the color management software vendor Monaco Systems. This package allows you to calibrate with precision the color characteristics of a monitor, scanner, digital camera and printer, for consistent, professional-grade color management. It goes much beyond simple and now relatively inexpensive monitor calibration colorimeters, by also using a spectrophotometer (an instrument that measures light across the visible spectrum, wavelength by wavelength), and the price is correspondingly higher. The market-leading product is the GretagMacbeth Eye-One Photo. X-Rite has clearly replicated the Eye-One package, but at a slightly lower price, and with some nice touches that significantly improve usability. The Eye-One spectrophotometer (which is used both for calibrating monitors and prints, a GretagMacbeth patented technology) is reportedly more accurate, however (3nm vs. 20nm). The Pulse bundle retails for $1300, the Eye-One for $1400.

FrogPad

The FrogPad is a small one-handed Bluetooth keyboard designed to be used with PDAs or smartphones, but it can also be used with a Mac or PC as it follows the standard Bluetooth Human Interface Device (HID) profile. You can hold it in one hand and type with the other. I don't know how long it takes to get used to it, but at any rate they are offering $50 off the regular price of $179 if you use the code Apple50. They also has a mockup of a folding version in cloth, for use in wearable computing.

Interwrite Bluetooth tablet

CalComp used to make high-end tablets and digitizers for architects, engineers and artists. The tablet market is pretty much monopolized by Wacom, nowadays, but CalComp is still around (after being bought out by GTCO). They were demonstrating a Bluetooth tablet for use by teachers in a classroom setting (although I am not sure how many cash-strapped school districts can afford the $800 device).

JetPhoto

There was a cluster of small Chinese companies exhibiting. One of the more interesting was Atomix, a company that makes JetPhoto, a digital photo asset management database, similar to Canto Cumulus or Extensis Portfolio. Apparently, their forte is the integration of GPS metadata and the image database, you can do geographical selections on a map to find photos. It also had many export functions with a comprehensive database of cell phones and PDAs to export photos to. Unfortunately, the current version does not support sophisticated hierarchical, set-oriented categories, the one feature in IMatch I find absolutely vital.

The program looked impressively polished for a first version, and is available free to download for now. This is yet another illustration of how the Chinese are rapidly advancing up the value chain, and American firms could be in for a nasty surprise if they maintain the complacent belief high-end jobs are their birthright and only unqualified manufacturing jobs or menial IT tasks are vulnerable to Chinese (or Indian) competition.

Fujitsu ScanSnap

One of the few things I still use my Windows game console PC for is to drive my Canon DR-2080C document scanner. This small machine, the size of a compact fax machine, can scan to PDF 20 pages per minute (and it can scan both sides simultaneously). It is intended for corporate document management, but is also very useful to tame the paper tiger by batch-converting invoices, bills and so onto purely electronic form, in a way that is not practical using a flatbed scanner.

It seems Fujitsu is bringing that functionality to the Mac with the similarly specified ScanSnap fi-5110EOX. The scanner is driven with a bundled version of Adobe Acrobat 6.0. I can well see this becoming popular in small businesses run on Macs, although the Fujitsu reps on the stand implied they were here to gather potential customer feedback to make a stronger case for enhanced Mac support with their management and accelerate the release of Mac drivers for it.

Ovolab Phlink

My office PBX is actually a PC-based CTI unit made by Altigen, and voice mails left to me are automatically forwarded to me as WAV attachments in an email. That has major usability benefits - I can set email rules to drop voice mails when the attachment is too small (usually someone who hanged up on the voice mail prompt), or fast forward and rewind during message replay. This feature is addictive - voice mail still sucks compared to email (disk hogging, not searchable or quickly scannable), but being liberated from excruciatingly slow voice-driven user interfaces, replete with unnecessarily deliberate and verbose prompting, makes it somewhat bearable.

I did not have this kind of functionality at home, however. It is possible VoIP devices will offer it at some point, but that does not seem to be the case in low-end home VoIP for now. I tried experimenting with the open-source Asterisk PBX, but did not have the time to pursue this, and in any case I'd rather not have to install a dedicated Linux machine at home just for this purpose (my home network runs on Solaris/x86, thank you very much).

Fortunately, Ovolab, an Italian company based near Milan, has introduced Phlink, just what I was searching for, and I actually bought one on the spot. It is a small USB telephony attachment that plugs into a phone line and turns your Mac into a sophisticated CTI voice-mail system. It is fully scriptable using AppleScript and supports Caller ID. I have yet to use it extensively (the hardest part, interestingly, is bringing a phone cord close enough to my Mac).


Switching to Camino

I mentioned earlier that I had switched to Mozilla Firefox (then called Firebird) as my default web browser, from Mozilla (I still use Mozilla on Solaris). In the last few months, the Firefox bandwagon started becoming mainstream, probably due to exasperation with the continuing security holes in Microsoft's Internet Explorer.

That said, I have also switched to the Mac at home, and Firefox on Mac OS X often feels like an afterthought. Several bugs have gone unfixed in the last three releases or so, even though patches have been submitted. I am not excessively fond of Safari, Apple's default browser, and the ability to share profile data between my Windows machine at work and my Mac at home is a big benefit.

Two weeks ago, I tried Camino on my home machine. Camino is a derivative of Mozilla - it uses the same HTML rendering engine, but wraps it in a shell that leverages Apple's technologies the way a cross-platform browser like Firefox or Mozilla can't. Earlier versions had been unconvincing, but I switched for the 0.8.1 release. Firefox 1.0PR on the Mac is an unalloyed disaster, buggy and crash-prone, without any visible bug fixes (I switched back to 0.9.3 within a couple of hours), and that was probably the last straw.

The immediate benefits Camino brings me are the following:

  • Middle-clicking on a link opens it in a new tab, the way it does for Firefox on all platforms but the Mac
  • Navigating through Web forms using the tab key works perfectly, when Firefox and Safari will only let you switch between text fields, but not pull-down menus, radio buttons or the like.
  • When minimizing windows using Exposé, there is no annoying Firefox or Mozilla ghost window cluttering the screen.

Of course, not all is perfect, and the migration entails these pitfalls:

  • I have Firefox set up so if I type a few words separated by spaces in the URL bar, it searches Google. This avoids the need for two text boxes, one for th URL and one for searching (the way Firefox does in its default configuration, or Safari), which are redundant and not as usable. Unfortunately Camino does not support this directly and pops up a modal dialog box complaining about the illegal URL format. Fortunately, Camino does support Mozilla's excellent keywords feature, so I created a keyword "g" to handle Google queries.
  • Camino keeps bookmarks in a OS X style XML plist format, rather than the standard bookmark format used by other Mozilla variants. This makes synchronizing bookmarks a little bit slower, as you have to use the import utility instead of simply copying a file over. Bookmark imports are not perfect, moreover, as they tend to drop separators.
  • The saved passwords are not interoperable, as Camino stores them in OS X's Keychain manager instead of Mozilla's encrypted database format (I don't know if this means Camino and Safari can share passwords). I have started working on Python modules to read and decrypt the Mozilla files, however, and I have a low-priority password sync project on my back burner.
  • Camino doesn't have the wealth of extensions Firefox does, but then again since they seem to break with every release of Firefox (and many don't work well on the Mac), this is less of a disadvantage than may seem at first glance.

What's missing in the Airport Express?

Apple Airport ExpressApple introduced the Airport Express today, surprising observers who expected product announcements to be on hold until the WWDC conference in San Francisco later this month. Apple-watching is a surprise-fraught art not unlike Kremlinology used to be, with the added risk of cease-and-desist letters by the notoriously secretive and litigious company.

The Airport Express is a compact little wireless network in a box, offering an IEEE 802.11g WiFi access point cum router, an Ethernet port, an audio port to stream audio (interestingly, it supports both conventional electrical line-level output as well as Toslink optical in the same jack), and a USB port to allow printer sharing (no word on whether this also allows scanner sharing the way Keyspan's USB server does).

This unit replaces 2 or 3 boxes (and their associated wall warts), is relatively inexpensive at $129, and will no doubt become as popular and widely (yet poorly) imitated as the iPod was in its day, specially given it can be used by Windows PCs. If I did not already have a Slimdevices Squeezebox (with beta support for the Apple lossless encoder), I might have be tempted, in spite of the lack of a display or remote control.

I am not all that fond of the wall-wart concept, but the plug can be removed and replaced with a standard IEC-320-C7 cable (which can certainly be found far cheaper than the ridiculously expensive $39 Apple charges for them), or even powered from Ethernet using the new power-over-Ethernet standard 802.3af (the USB port is disabled in that case), a nice touch that exemplifies Apple's attention to detail. As a side note for those of you who have a hard time coping with wall warts, I highly recommend the Power Strip Liberator Plus, a simple but highly effective solution to the problem of clogged power strips.

That said, there is one port missing, one that would have turned the Airport Express from a well-designed piece of electronics into a visionary product: a phone jack. A RJ-11 jack that can be plugged into a phone line (FXO) or into which a phone can be plugged (FXS) would bridge one of the few remaining domains not covered by Apple's digital hub (the other one being TV). With iTunes AV, Apple has a very capable Voice over IP (VoIP) client, but no way to interface it to legacy POTS (Plain Old Telephone System) networks. I am not sure if this is deliberate and if they want to introduce this as a value-added feature to their .Mac Internet services suite, but Apple has lacked decent telephony product since the introduction of the Geoport ten years ago.

It should be straightforward to add telephony software to a Mac and have it able to act as an intelligent voice-mail or IVR system (forwarding voice mails via email the way Panther's Fax feature can with faxes). Computer-Telephony Integration, widespread in the PC world, is also an essential feature for many enterprise applications (think call centers or CRM). Many small businesses use Macs because they cannot afford full-time IT staff to baby-sit Windows machines. Offering them an integrated telephony solution would be a very attractive proposition.