technology

Leopard initial reactions

Rather than buying a new computer, I’m updating my old one right now, and installed Leopard yesterday.

Normally when I install a major upgrade, I do a “clean install”—reconstructing my old environment by manually importing old files and recreating preferenecs is admittedly laborious, but it gives me a chance to re-examine what’s on my hard drive and jettison stuff I never use. I cloned my boot drive to an external drive, and selected the erase-and-install option in the Leopard installer. After that finished, it offered to import my old setup from my external drive. For some reason, I chose this option, and regretted it, as it faithfully imported every bit of cruft from my old system, some of which caused Leopard to lock up. Apart from that, I have to admit it did a sterling job—every jot and tittle was in place. It would be nice if I had more control over what got imported and what did not.

Tried again with the clean install, followed by manual copying of specific folders and files. I had a little trouble importing my old Mail folders, and discovered that I had to export my Address Book data (using Address Book running on a different computer) before I could import it to Leopard. And then I discovered one of those annoyances only a geek could love. For whatever reason, my short user name was now adamjrice. It has always been adamrice in the past, and this change was, of course, unacceptable. The path to my $HOME directory had changed similarly. One new and appreciated feature in Leopard is that it’s actually easy to change this: right-click on your username in the Accounts prefpane sidebar and it gives you the “advanced options” to fix this. Nice. However, it makes this change by creating a new $HOME directory with defaults, not by moving the old one, and instantly, silently migrating you to that. This causes weird and unwanted results. My advice: if you are going the clean-install route, check to make sure you are happy with your short user name before you do any customization. Fix it if need be, and log out/relog.

Other than these breaking-in pains, so far I’m happy. My computer is noticeably faster (not just subjectively—apps open faster, and Second Life, a poky pig, ran at about 2x the framerate making it almost tolerable), although this may have as much to do with blowing out some crufty haxies as anything else. Network throughput likewise seems to be faster, but I haven’t measured this.

QuickLook is probably worth the price of admission all by itself, especially if you can get plugins for the files you use the most. Last night, Gwen was trawling through a directory full of EPSs with meaningless names. Even though she’s still running Tiger, I mounted her drive, installed a QuickLook plugin for EPS, and was able to browse most (not all) of those files with previews in a couple of minutes. Big win. Coverflow in Finder, which seems like a frill, is useful in the same way QuickLook is, especially when, say, trawling through a directory full of meaninglessly-named EPS files.

As others have mentioned, Spotlight has gone from sucking to not-sucking. I reiterate that fact simply because the transformation is so stark.

So far, I’m calling this a success.

Technology on the bike

2007 hasn’t been a good year for cycling, at least not for me. I recently made a birthday resolution that in 2008 I would ride more.

Along with riding less, I’ve paid less attention to bike technology, which is something that’s always interested me. Lately I’ve been paying a little more atention. I just read about a prototype bike-computer/rear-view camera called Cerevellum. This looks like a great idea—plug-in modules for different functionality. One idea I’ve never seen implemented on a bike is a crash camera. Now, this might be more of a concern for me than most people, but the overhead would be slight and the potential benefits considerable.

I envision the system including rearward-looking and forward-looking cameras, an accelerometer, and some flash-memory storage. It wouldn’t need much—just enough to capture about a minute’s worth of video and audio (about 180 MB for good-quality uncompressed video—chump change by today’s standards). If the accelerometer detected any sudden movement (indicative of a crash), the cameras would save the preceding 30 seconds and the following 30 seconds. That should be enough to capture license plate numbers, the circumstances of the crash, etc. A manual trigger to save would also make sense, as would manual still photography capture. Equipment like this does exist for cars, but nothing miniature enough for a bike. With 1 GB memory cards as common as dirt, one could record several minutes of footage per ride, as well as a lot of still photos, which could be interesting in ways other than crash documentation.

Word annoyance du jour

screenshot of MS Word with two open documents

There are lots of reasons to be annoyed with Word. I’ve just discovered another one.

Look at the screenshot above. It shows two open documents in Word. Which one is the active window? (too small? You can see the full size image.)

Trick question. Neither is active. Even though these are the only two documents open in Word, neither is active. Keystrokes will not be sent to either one. Note how the title bar of the left window makes it appear to be active, while the scroll bar of the right window suggests it is active.

This condition arises erratically when the command-` systemwide shortcut is used to cycle through the windows of the current app. It only seems to happen when windows of other apps are also visible. I’m working on a job where I’m copying timecodes from the left window into the right, and the fact that I can’t use command-` to cycle is slowing me down measurably—almost as much as taking time out to blog about the problem is doing.

Google Crowdsourcing Machine Translation

Screenshot of google translation crowdsourcing interface

I clicked through a link from a gadget site to a machine-translated press release for a new car-stereo head unit. I noticed that when my cursor hovered over a block of text, one of those floating mock-windows that are so popular in web2.0 appeared. It permits readers to enter their own translation for that sentence or chunk of text.

This is interesting, and something I hadn’t noticed before. It raises all kinds of interesting questions. Most obviously, how do they vet these reader-submitted translations? But it’s fascinating as a machine-translation paradigm. There are two general approaches to MT: one is basically lexical and grammatical analysis and substitution: diagramming sentences, dictionary lookup, etc. The other is “corpus based”, that is, having a huge body of phrase pairs, where one can be substituted for the other. And there is a hybrid between the two, that uses the corpus-based approach, but with some added smarts that permits a given phrase to serve as a pattern for novel phrases not found in the corpus (this is also pretty much how computer-assisted translation, or CAT, works). I wonder how these crowdsourced submissions work back into the MT backend—if they’re used strictly in a corpus-based translation layer, or if they get extrapolated into patterns. I’m skeptical that they’re getting a significant number of submissions through this system, but if they did, the range of writing styles, language ability, and so on that would be feeding into the system would seem to make it incredibly complicated. And perhaps a huge jump forward in improvement over older MT systems…but perhaps a huge clusterfuck of unharmonized spammy nonsense.

.Mac—a missed opportunity

A post on oreillynet got me thinking about .Mac, Apple’s online thingy for mac users. Apple recently updated it, and while the updates are nice enough, I think Apple is missing an opportunity.

I don’t know how many people use .Mac. I get the impression that not many do. It seems overpriced for what you get. So what do you get? An e-mail address and web mail. Online photo galleries and web pages. Remote backup, storage and (for some apps) syncing. Apple just increased the available storage from one gig to ten, and added some other features—”groups” (sort of like Yahoo Groups or Google Groups), domain-name hosting, and upgrades to the existing features (the photo album is pretty slick).

All this for the not-very-low cost of $100/yr. Apple is competing with two other alternatives here: free and generic.

There are free groups, free photo hosts, free mail services, free blog hosts, and so on. Of course, these are all ad-supported. And they’re good: Gmail’s webmail is considered by some to be the best mail client out there—web-based or local. It’s hard to compete with free, especially when it’s as good as it is. Admittedly, a lot of people get a little creeped out by having their data mined by Google, and putting their entire digital lives in Google’s hands.

On the generic side, for the price of a .Mac subscription or less, you can get a web-hosting account that gives you access to a Unix shell, more storage space (at Dreamhost, which notoriously oversells, I’m getting something like 250 GB of storage, of which I barely use 1%), web-based management tools, and access to the whole panoply of web-side apps, like WordPress, Drupal, Gallery, and so on. So it is possible to duplicate most or all of what .Mac does using open-source software that gives you more control and potentially broader functionality. Not everyone wants that level of control or needs all those features, but there are a lot of WordPress and Movable Type blogs out there, a lot of bulletin-boards and community sites, and so on. Clearly it’s not a small market, and I’d bet it’s a lot bigger than .Mac.

So, given that .Mac is not free and does not offer the same level of functionality as the other options, what does it offer? I see two things: All the templates for information hosted on .Mac look great (although the underlying HTML can be scary), and it has good integration with the client. Pretty much what you’d expect from Apple.

.Mac has been around in some form since the Internet first caught fire, and at that time, the kinds of things that regular folks would want to do online were not well-established. .Mac (originally “iTools”) was speculative in that sense. Some things, like photo galleries, turned out to be correct. (Although even there, flickr has shown us how photographs can be the nexus for communities, in a way .Mac can’t approximate.) Others, like remote backup, haven’t really panned out yet because A) the service doesn’t offer a meaningful amount of storage, and B) most of us don’t have a sufficiently fast upstream connection to make it practical. .Mac has changed and expanded its services, but hasn’t always kept pace with trends in Internet usage.

The recent updates to .Mac seem nice, but do not tempt me. What would tempt me would be if Apple offered the same slick client-side integration, but tied into a more generic hosting service—one where I can install a WordPress blog or a Drupal CMS.

iPhone

Everybody is talking about the iPhone, and who am I to resist that kind of peer-pressure?

The iPhone is stunning, and as it stands, I will not be getting one. Here’s why:

  1. Closed platform: The idea of spending $500 for a phone with as much potential as this but zero extensibility is a flat-out insult to would-be customers. Steve Jobs explains this by saying “we can’t have one rogue app bringing the entire West Coast network offline.” This is disingenuous or a lie. Somehow Apple trusts me not to bring down the entire Internet with one rogue app on my Mac, and the Internet is a lot dumber than Cingular at&t’s network. I don’t know for certain what the real reason is, but here are some possible candidates:
    1. Cingular at&t doesn’t want people installing Skype and iChat, which would let customers circumvent the company’s comparatively expensive services (seriously, 10¢ for a text message?). I don’t discount this possibility entirely, but considering Apple’s successful wrangling with music companies, I’d expect Apple to negotiate that away if they wanted to.
    2. Steve Jobs is notoriously fond of closed boxes. Probably plays some role in the decision.
    3. Apple wants to be able to act as a middleman and get a cut for any software you install on your iPhone. I think there’s a decent chance that this is at the root of it, but of course, it subverts free/open-source software distribution—and some of my favorite software falls in those categories.
  2. Storage not upgradable: The “cheaper” model is currently spec’d with 4 GB memory. By the time the phone is actually available for sale, this may seem a bit puny, and by the end of the phone’s useful life, it will be positively laughable. The lack of a flash-card slot may be another example of closed-box thinking, but regardless of why it’s missing, it puts the owner of the awkward position of spending a hell of a lot of money on a device that should be useful for a long time, but won’t be able to take advantage of what should be an easy and cheap upgrade.
  3. Lack of Flash/Java: I’ll readily admit that many uses of both Flash and Java are crap (some are brilliant though). Jobs has equivocated on Flash, but deciding to leave out either one is making a decision for customers that they should be able to make for themselves.

There are other shortcomings, of course: many people have focused on the lack of HSPDPA support. Apple’s explanation that the network for it hasn’t been built out sufficiently is of debatable merit. On the one hand, it means many people would be paying for a feature they couldn’t use. On the other, it means that when the feature would become usable, they still won’t be able to use it.

Apple is positioning this as a phone that happens to run a version of OS X. I view it as a tiny OS X computer that happens to have a cellular radio, and I view its features and lacks of features in that light. Despite all of this, it’s still an exciting development, not so much for the thing itself perhaps as because of related products we may see coming out of Apple (unlikely though it is, I’d be interested in something with a larger screen that dispensed with the cellular radio—sort of like the “sidepad” I wrote about before.) and because it should serve as a massive kick in the pants to the rest of the industry, raising the bar* in general.

Imity

I just signed up for the beta version of Imity. I’m still not sure what to make of it, except that it is freaky.

The idea is a form of augmented reality, or embodied virtuality, or whatever you want to call it. It takes the idea behind social networks like Friendster et al and attempts to replicate them in meatspace (in fact, I suspect they are going to try to tie into existing social networks, so that you don’t have to re-enter all your friends yet another time).

Ok, that’s still pretty vague. Let me try again. You need to have a fairly snazzy cellphone for this to work: the phone is your “presence marker.” You sign up on their website, download a little java app to the phone, and whenever the phone gets in range of another bluetooth device, it logs that event. If that bluetooth device happens to belong to someone you know, maybe your phone will beep at you or something. And later, you can go back to the imity website, and see all the bluetooth-contact events that you logged, and you’ll slap your forehead when you realize your best friend was at the same movie as you, even though you never saw each other.

But the freaky thing is, your phone logs all bluetooth contacts. I went to a coffee shop and logged eight contacts while I was there. Several of these were clearly people using Macs (which all have Bluetooth as well), as they were identified by Apple’s default computer names, “John Doe’s Computer” and the like. So now I can take an educated guess at the names of several complete strangers in a coffee shop. And it will count every time you’re around John Doe’s computer, so that perhaps after you’ve been in the same place at the same time enough, you’ll break down and introduce yourself—”Hi, John Doe. You and I have shown up at the same place at the same time on 37 occasions, so I thought I’d introduce myself.” I don’t know. Maybe not. Like I said, it’s freaky.

It gets even freakier when you imagine matching these bluetooth events against a GPS breadcrumb trail. It’s one thing to look at your imity log after the fact and note “at 17:23, I was near John Doe’s computer” and then try to figure out where you were at that time. It’s another when you know “at 17:23, I was at Clementine coffee shop, and was near John Doe’s computer.” Super-freaky. Then you’d push all that data into Google Earth and develop a model of where people hang out.

Or maybe not you. Maybe Starbuck’s installs Imity-like Bluetooth sensors at all their doors, or better yet, a consortium of retailers that all share this data, so they can work out where people go and when. Even if they spend cash, or don’t spend anything, they can track you via your bluetooth device. Of course, you can also track that they’re tracking you.

Idea for an improved cordless mouse

Up until recently, I was using Apple’s mighty mouse. I liked it, but like many people, I was frustrated by gunk getting on the scroll-ball, requiring frequent, baroque, and only semi-successful attempts to clean it. Eventually it just stopped working, despite all my efforts. Logitech’s MX Revolution has been enthusiastically reviewed, and Amazon was offering it at a discount, with a rebate on top (making the price merely high, rather than absurd), so I took the plunge.

Aside: For years, I managed with a plain one-button mouse. Then I got a cheap two-button-plus-scrollwheel mouse. Then I got the mighty mouse, which can scroll both up/down and left/right. With each upgrade, my minimum expectations ratcheted up, so the idea of simply doing without scrolling, and then doing without two-axis scrolling, became unacceptable. Funny how that works.

The mouse requires Logitech’s fancy driver software to customize all its various buttons and wheels, and I have found this software to be artificially limiting, and buggy to boot. I’m hoping that’ll eventually shake out. I realize there are 3rd-party drivers one can use, but I’m loathe to lay out more money to make this mouse work the way I want, and it’s not clear to me whether those drivers can interact with the mouse’s marquee feature, the scroll-wheel clutch.

From a hardware standpoint, the mouse itself is pretty nice. Despite the wacky shape, it feels good in my hand—good thing I’ve always been a right-handed mouser, even though I’m a lefty. It’s a little disappointing that this requires both a charging stand and a USB transceiver dongle. It would be more elegant for the charging stand to run off USB power and include the transceiver in it (I’m guessing the reason this is not done is because AC adapters that step down to the right voltage are readily available off the rack, and DC step-down converters would be custom parts). Even still, you’re using up a bit of desk space for the charging base.

But that’s not my idea. I’ve never had a cordless mouse before, and the one obvious drawback is that the mouse needs periodic recharging—every 2–3 days in my experience. That’s not unreasonable, but if the mouse craps out on you in mid-day, you’ve got to fish out your old corded mouse and use it while the wireless one recharges. Bummer.

So here’s my idea. The wireless mouse kit would consist of the mouse plus two transceiver dongles. Each dongle would include a battery. One dongle would be plugged into the host computer’s USB port, and the battery would charge while plugged in. The other dongle would plug into a socket in the mouse, and that battery would power the mouse. When the battery in the mouse-side dongle was exhausted, you’d swap the two. Zero wait time, zero desktop clutter. Obviously two sets of batteries would tend to increase costs, but countervailing efficiencies might negate that. Another benefit to this design is that the same mouse would work with a USB cable instead of the dongle twins—the user could make the substitution in a pinch, and the manufacturer could sell the cord-only variant as a lower-cost model (which would streamline manufacturing), sell the dongle twins as an upgrade, and use the same dongle twins across models (further streamlining production).

According to this guy’s take-apart, Logitech appears to be using a 1700 mAh 3.7 V battery. That’s roughly equivalent to three high-quality AAA batteries ganged together, which would be half the size of a 9-volt battery (like the one in your smoke detector). Not an unreasonable size for a dongle. Each dongle would also need charging circuitry, and that might be a problem in terms of size or cost—I don’t know enough to say.

Instead, it would also be possible to power the mouse during use through a special mousepad with an embedded induction coil.

Adventures in backup

I’ve got an aging external hard drive that I’ve been using for backups for some time now. It’s been getting kind of clogged up, and when we returned from Spain, it took a few tries before it would spin up. That was the kick in the pants I needed to move forward with a plan to get a network-attached storage (NAS) box.

I spent a lot of time reading the reviews at Tom’s Networking. It looked like there was no one product that offered both of two key features: two disk bays for RAID-1, and support for the Appletalk File Protocol (AFP). (I know that I could have dropped $600 on a four-bay box from Infrant, but I literally don’t have room for that, much less the budget or the need.) I decided to compromise on a “bring your own disk” one-disk box from Synology, DS-106e, which at least supports AFP. Eventually I can get an external box to plug into the DS-106 and backup my backup.

Getting this working has been a bear. The main point of this exercise, of course, is to back up. I had been using SilverKeeper, freeware from LaCie, for a long time. It works, but it is not easy to work with. I want to exclude things like caches and deleted mail from my backup, and while it is possible with SilverKeeper, it’s painful, and the interface is buggy enough (straight outta OS 9) that I’m never sure what I’ve added to the exclusion list. I looked around and decided to try out Synk, which offers pretty smart exclusions and looks nice.

Repeated attempts to make a backup fail in mid-stream. Tried with both Sync and SilverKeeper, and encountered some variation on the same problem each time. I do some reading on the forums for Synk and discover that most NAS boxes that support AFP don’t do a very good job of it, hence the problems I’m seeing. Trying to connect via SMB doesn’t work any better, for some reason.

Gnash teeth, rend garments, pull hair.

Inspiration strikes.

If you’re using OS X and are trying to back up to an NAS without success, here’s what you do. Launch Disk Utilities. Create a sparse disk image on your NAS box. Make that your backup target. I’ve tried this, and so far, it works. It seems to tax my Mac a lot more heavily, and it seems like taking the long way round. There may be other reasons this is a Bad Idea, and I would rather not have to do this in the first place. But, like I say, it works.

On the plus side, the NAS box is a lot quieter than my external drive, it lets me declutter my desk. I hooked my printer up to it, for additional decluttering, and that worked like a charm. Hardware assembly went smoothly: I stuck a 500-GB (Half a terabyte. Isn’t that insane? My first hard drive was 20 MB, making this one 25,0000 times bigger. Terabyte-drives will be unexceptional in commodity PCs in a year.) drive in it, and over gigabit Ethernet, it seems about as fast as my FW-400 external hard drive.

I want my hovercar too, dammit

Some British engineering firm has built a hybrid mini that gets 80 mpg, does 0-60 in 4.5 seconds, and has a radius of 800 miles. There is no doubt some hyperbole in this, and I suspect there are some unsolved problems (I wonder about the unsprung weight of those wheel-motors), but still, very impressive.

This makes me angry. If a shop like this can do it, why can’t the big guys? Shoot, I’d settle for a car with those specs that did 0-60 in 5.5 seconds.

Go with the workflow

In “A Feature Request for Apple Mail”, Jochen Wolters talks about introducing workflows into Mail.app. I think this is an interesting idea, but it doesn’t go far enough. Mail may be the app where many of us organize most of our administrivia, but it isn’t the only one. Apple should give better exposure to the excellent metadata system it created for OS X 10.4, and make projects and workflows canned datatypes in it. Apple is already taking baby steps in this direction with the to-do service built into the future version of Mail

How would this work?

Let’s take a typical translation job for me. It may involve four or five e-mail messages, a couple PDFs, and a couple of Word documents; if I wanted to get really organized, I’d add an item to my calendar showing the deadline. These are all disparate types of data managed through different applications, but they’re all related. Every job goes through a few stages (some of which are often skipped): inquired, estimated, accepted, underway, completed, invoiced, paid. Different activities may have different workflows (I’d need a completely different workflow for my fire-equipment business). So I need to A) define general types of projects and the steps of a workflow associated with each one; B) conveniently set up new projects and indicate their project types to pipeline them into a specific workflow; C) conveniently associate messages, files, etc, with a project; D) view and change the state for each workflow. It needs to be dead-easy: the marginal effort to assign a message to a project rather than just skip to the next message needs to be vanishingly small. I imagine hitting a magic key that pops up a list of active projects to choose from (with the option to create a new one); if any text is selected, a new project is created with that text as the title.

Mail Tags permits something like this, after a fashion, but only within the world of Mail.app. This might be enough if you’re content to use mail as a PIM, but I’m not (and it would get ugly trying to deal with files, and Mail Tags does not currently work with IMAP as described in that article). What I’m describing would need to be a system-level feature that was exposed in mail messages, setfile dialog boxes, the Finder, etc.

Projects could be viewed through the Finder, like smart folders. The viewing window for mail messages could include a banner showing a menu of pending projects to select from; once a message was assigned to a project, a row of buttons would be used to show and change state (this could also appear in the Finder window for the project).

Update: After doing a little more noodling on this, I’ve come up with the following bezel displays

workflow bezels

The three would not all appear at once. I envision that for an unassigned file, the magic key would bring up the first; if the user selects “New Project…” it transitions to the second; pressing the space bar would flip it to the third. For a file that has been assigned to a project already, it would go directly to the third. Those aspects of the workflow setup that couldn’t be controlled through this interface would probably be handled through a preference pane. The bezel would act on whatever document window is foremost.

At a basic level, there’s almost nothing in the data model for this that couldn’t be handled through OS X’s existing metadata constructs; the one thing that could not be would be a table associating project with project type/workflow. And so there’s no reason a third-party developer couldn’t do this right now. At a more advanced level, ideally there would be hooks added that would tie project-related events to other events, for example, when the mail client is foremost, setting a project on a message might close that message and move to the next. In MS Word, saving a file with no project would bring up the project-assignment bezel.

In fact, there’s already a program, SpotMeta, that lets users create enumerated types of metadata and apply them to files. As clever as it is, it’s a little clunky to use, and doesn’t have a straightforward way of working with mail messages, iCal events, etc (though technically, it could work with them).

Dealing with items that have been tagged with a project and workflow state could mostly be handled through smart folders in the Finder, in Mail, etc. Ideally there would be some kind of universal viewer (most likely hacked onto the Finder) that could show the contents of all the various datatypes corralled into a workflow.

Mobile backup

A friend taking an extended road trip just had her car stolen, with her laptop and everything else in it. That sucks massively. It got me thinking about the problem of maintaining backups and having access to them in a situation like that.

My home computer is a desktop. Currently I have it hooked to an external drive, and backup software runs in the wee hours every night to copy my home directory to the external. At some point in the near future, I hope to get a network-attached storage drive, so that I can A) liberate a little desk space, and B) move the backup away from the computer, in case something happens the computer. Admittedly, I’d only be moving the backup about 15 feet away, but a black box wedged into a cramped closet is much less likely to attract a thief’s attention, and if the roof collapses or something like that, fifteen feet might be enough. That’s what I’m counting on, anyhow.

But what about when you’re on the road? You need a backup medium that you keep separate from the laptop but still have ready access to, that is reasonably fast, and perhaps most importantly, is convenient to use. What are your options?

Before you can decide, you need to get your priorities in order. Some files are more critical than others; some change more frequently than others. Assuming that you will need to make compromises, you want to make sure the most current and most critical files are the most readily available and most frequently backed up.

Exclusive of media files, my home directory is about 5 GB. I’m guessing that about 1.5 GB of that is actually cache files and other digital ephemera, so to recreate my home directory, I’d need to be able to store about 3.5 GB. This would exclude all applications, music, videos, and photos. In reality, I could probably cut this in half by omitting a lot of archival files, though to do that I would need to reorganize my hard drive considerably. I’m lazy, so let’s stick with 3.5 GB as a target.

So, what are my options?

iPod
It just so happens that I have a 4 GB iPod Nano (rumor has it that these will be bumped to 8 GB soon). This would just accommodate me, plus a few hours of music or whatever. A hard-drive based iPod would have no trouble at all; in fact, I could store my home directory even with most of my media files on a 60 GB model. The potential problems here are that I would need to be scrupulous about keeping my laptop and iPod separate, and the temptation to keep music on the iPod, even if it cut into my storage requirement.
Network
My web-hosting company gives all its customers 20 GB of storage and webdav access. Webdav is pretty cool, because it lets me mount my network storage just like a hard drive on my desktop. A really, really slow hard drive, but there it is nonetheless. If high-speed connections could be taken for granted, this would be the ideal option—putting my storage in a remote datacenter that has its own redundant backups etc. But high-speed connections are hardly universal, and even when present, the upstream rate can be pretty slow. Backup software generally only backs up files that have changed since the last backup, but even with only 10 MB to back up, over a 128-Kbps upstream line, that will take at least 10 minutes (allowing nothing for communications overhead). In terms of convenience, this can’t be beat, assuming the connection is there. Make sure the remote volume is mounted and let the backup run. This is the only option that can be run unattended and still keep the backup volume physically separate. Having it on the server means I don’t need to even use my own computer to get at it; better still would be to have it in some web-readable format so that I could read it from any computer with a web browser. Thanks to Google, a lot of people are moving in this direction anyhow. I’m not entirely comfortable with that, and I get benefits from programs that run right on my computer that I’d be unwilling to give up, but perhaps if I had a more mobile lifestyle, I’d make a different tradeoff. And I do essentially do this already with my photos, by uploading them to Flickr.
Optical storage
Most newer laptops can burn to CDs at least, and in many cases to DVD. A single-side, single-layer DVD can store 4.7 GB, so I’m in the clear there. The drawback here is convenience: you need to go to more trouble to insert the disc, set up the burn session, burn the disc, label it, put it away somewhere, hope that it doesn’t get scratched before you need it, etc.
Flash drive
While this is technologically equivalent to the iPod Nano (and comes in the same storage sizes), I see a few key differences: there’s no particular temptation to use the flash drive for music, and you can hook it to your keyring. For this reason, I like this solution best for the most critical and current data: if the drive is on your keyring, you’re less likely to leave it connected to the computer. Well, I’m less likely, anyhow. This does require me to launch the backup manually, though.

I can imagine a multi-layered approach where I use a thumb drive as my primary backup for working files, bring a DVD that I burned in advance with some critical applications, occasionally burn a CD or DVD with photos (possibly snail-mailing it home), and occasionally upload my very highest-priority stuff to the server when I can take advantage of a fast connection.

Robotic folksonomy

I recently bought a new digicam, and I’ve been working on a translation job that relates to signal processing. These two facts, shaken together with some loose synapses in my brain, got me thinking along the following lines.

Digital cameras these days, in addition to taking better pictures, have better processors, and some have interesting ancillary functions. Kodak, for instance, used a general-purpose operating system in some of its cameras that can run user-supplied software. Inevitably, someone adapted this to play video games on the camera’s screen, but this was used in other clever ways (to take a picture every five minutes and upload to a connected computer, say).

We’re also starting to see digicams with wifi connections—in theory, if you’re near a hotspot, you could put your pictures online as quickly as you shoot them. We may also see cameras with Bluetooth that could get online via a cellphone connection.

But what a mess that would be to manage, a constant stream of unnamed, untagged photos. Since I started using Flickr, I’ve found that tags are often more useful than titles for photos. But who wants to try to apply tags via your camera’s interface? What a pain. That got me thinking about robotagging.

Imagine you have a digicam of the not-too-distant future that can talk to Flickr (which I’ll use as an example because I know and like it, but feel free to substitute the name of any other tag-based photo-hosting service with a public API), uploading images to it directly and getting information back. You want your photos tagged, but you don’t want to interrupt your shooting and you definitely don’t want to try to enter text using the camera’s inputs. How might this work?

Any image can be analyzed algorithmically by a number of different features. Color histograms, edge detection, OCR, and so on. It’s an area I admittedly don’t know a lot about. Flickr already has a huge corpus of tagged photos. The feature values for these could be extracted and saved as meta-data somewhere in the system.

When a new untagged photo gets uploaded, Flickr could extract its feature values and find other photos with near matches for those feature values. It would extract the most popular tags from those photos and send them back to your camera as a list. You’d select the ones that you wanted to use.

This user-selection process in itself would be an important part of the robotagging process, as it would help Flickr’s bot determine which feature values were relevant, or which were relevant to a specific tag. For example, it’s a good bet that a picture with the tag “yellow” is tagged that way based on a certain histogram, but that histogram would be less relevant to the fact that the same photo is tagged “flower.” Edge-detection would tell you nothing about color-name tags, but might be more strongly relevant to the “flower” tag. By training the system, the users would help the tagging bot make better choices in the future. This would have results similar to the ESP game.

Once their images were robotagged on the fly, users would probably still want to go back and add more personally meaningful tags, but as a first pass at tagging, something like this could work.

Update Looks like Riya is already doing this.

iSubstitute

For nearly two weeks now, I’ve been without my main computer, an iMac G5 with a 20“ screen. It’s remarkable what an annoyance that is.

I do have an iBook that’s a few years old, which mostly gets used for checking the IMDB when watching DVDs and for travel. It has a slow-ish G3 processor and a 12” screen. It’s also running the previous version of OS X (I fear it would have hard time keeping up with 10.4, so I haven’t installed that version). So I do have a computer, and one that would have been impossibly desirable a few years ago, but that now feels cramped, squinty, underpowered, and unfamiliar. I don’t like using it, and I spend much less time at it (my excuse for not blogging much lately). And while I do have backups of almost all my data, I haven’t tried importing most of it to the iBook. If I understand it correctly, there were file-format changes in basic apps like Address Book and Mail in 10.4 that probably wouldn’t be backwards-compatible. Plus the fact that this machine has a small hard drive that I want to keep clean, and the syncing issues I’d have when I do get my main machine back.

The whole repair saga—which hasn’t ended—has been an exercise in frustration. On the night of May 4, a Thursday, we had a major storm. After the first crack of lightning, I turned off my computer. I started the shutdown process on Gwen’s too, but a misbehaving app aborted the shutdown, so hers was running all night. I’ll also note here that both computers are plugged into the same surge protector, and it’s a pretty good one.

The next morning, I turned on my Mac and found it was randomly rebooting itself—sometimes after a few seconds, sometimes a few minutes. After exhausting all the various reset and diagnostic procedures I knew of, my next thought was to take it to the Apple Store, but Gwen and I were heading out of town for the weekend that day, and the Apple Store wouldn’t schedule a dropoff until late that afternoon. So I waited until Monday. On Monday, they told me it would be about 7 days before they could even look at it, but suggested that, since my model had a number of user-serviceable parts, and it looked like the inverter might be at fault, I could order that replacement part online, and that should only take three days.

It took Apple a week to deliver the new inverter. I received it yesterday and installed it immediately. The installation process is rather delicate, involving a total of five molex connectors—one in an inaccessible location—and some very snug-fitting parts and cable runs.

The inverter did not fix the problem. I knew that the diagnosis was a gamble. Oh well.

Unwilling to spend another week waiting for the Apple Store to get around to looking at my machine, I decided to explore other service options (this is warranty work). I found a place on South Congress and set up an appointment for tomorrow. They’re going to try replacing the power supply. I hope that does it.

The episode has been instructional, though. It’s reminded me of a hundred little things that I’ve set up on my main computer to make it work more smoothly—little things like a keystroke expander that automatically corrects “teh” to “the”—and which of those little things were important enough that I’ve gone to the trouble to set them up on the iBook. It’s also shown me how nice the screen on my iMac is, and how much my productivity is hampered by having a small screen with poor contrast. I’ve made friends with command-tab, which is especially handy when most of your windows are maximized.

Update: 17 May 2006

Took the iMac into a local shop, Mactronics. As is so often the case with these things, the technician could not reproduce my problem, but he took my description of the symptoms at face value and replaced the power supply anyhow. I’ve got it back now, and it’s working. He thought it was odd that the Apple Geniuses recommended I try getting an inverter replacement: he told me the inverter doesn’t do anything except power the screen’s backlight, and couldn’t possibly account for the problem I was having. It occurred to me that, in telling me to order a self-service inverter replacement, the Geniuses (funny how I can use that word both literally and sarcastically at the same time) at the Apple Store might have been telling me something that would get me out of the store and let me feel like I was doing something to improve the situation—even though it had no relation to what they may have known perfectly well is not the real problem.

Ambient notifications in Mail

A blog entry at O’Reilly discusses how the author has set up Mail to notify him of incoming messages. I do something similar, using a more layered approach, so in the interest of meticulously documenting everything you can do with Mail, as well as exploring ideas for ambient notification in mind-numbing detail, here goes.

When the topic of using OS X comes up, I tell people that if you drink Apple’s kool-aid and use its apps religiously—Mail, Address Book, iCal, iPhoto—then it will pay off for you. Since they hook into each other, and other apps hook into them as well, you really do get synergistic benefits. For example: if you keep all your contacts in Address Book, you can filter your mail in useful ways. If you create groups in Address Book to categorize your contacts, mail filters can be more useful.

I filter my mail based on whether the sender is in my clients group or my friends group; each goes to its own mailbox, and other actions are triggered as well.

When I receive messages from friends, their names are spoken aloud to me using this script.

When I receive messages from clients, the “work bell” rings (this is something Mail can do on its own), and a Growl notification appears on-screen using this script. I’d like to make it so that clicking on the notification blob opens the message in question, but I haven’t figured that part out yet. These notification blobs are actually pretty intrusive (they sit there until you click on them to dismiss them), but this was an intentional decision: if it’s work-related, I probably want to be interrupted.

When I receive messages from people I’ve never corresponded with before, it’s very likely those messages are spam. So I filter messages where the sender is not on my previous recipients list (this is a handy, and I suspect little-known feature in Mail) to a “holding pen” mailbox that is essentially a waiting room for my junk box. This makes it a little easier to prioritize and batch-process mail in the eternal struggle for inbox zero.

Recently, I discovered DockStar–this lets me see how many messages are in each of several boxes. This alone would almost be enough, but I like the extra channels of information I get.

The trouble with Mail

I’ve recently started reading Hawk Wings, a blog focused mostly on Apple’s Mail.app and other personal-information programs like iCal and Address Book. I’m always keen on ways to tweak Mail, but I was moved to actually write about it by the recent post Mail’s most annoying bug. It got me thinking about all the ways Mail could be better.

When it was released with OS X 10.0, Mail was barely usable. I had used Eudora up to that point, but when I made the switch to X, I decided to leave the old OS behind completely. While Eudora was available, it did not handle Japanese; it only handled Japanese on OS 9 thanks to a plugin that had not been ported to X (I know nothing of the state of Eudora’s i18n today). I looked at some third-party alternatives, and gladly would have paid for one that I liked, but I found nothing that I liked better than Mail, so I stuck with that.

Today, Mail is a pretty good program, but it has obvious problems, and even if those were all fixed, would be solid but not innovative.

Bad/no keyboard equivalents: Mail lets you read messages one of two ways: by splitting the window into a message-list pane and a message-viewing pane, or by showing each message in its own window. My natural inclination (probably inherited from Eudora) is to open each message in its own window, but when you do this, it is impossible to use the keyboard to navigate between messages while viewing the message. You need to close the current message window, then arrow up/down, then open that message. It’s a small thing, but multiplied out hundreds of times a day it adds up. I am dumbfounded by the lack of this, as well as some of the strange keyboard commands that are there—the commands to send and check mail, two of the most common e-mail activities, are obscure and non-mnemonic.

Bad threading: Mail tries to group messages by thread, but also groups based on subject line. I have a client that uses the subject line “request” on every message he sends me, so every time he sends me work, I need to disclose an increasingly ungainly list of messages (I keep all the old ones around just because I am that way). Another weakness in this quasi-threading is that it is “flat”–it doesn’t show which message is replying to which. This is possible. Properly threaded e-mail been possible for decades. Apple should be able to figure it out.

Inclusion of .sig in body: As far as I can tell, most civilized mail clients segregate the signature line from the body of the message when you are editing. Not Mail. This means you needs to edit around the .sig, or add it back after you’ve deleted it.

Reply format oriented towards top-posters: I’m not going to say that top-posting is wicked and only evil, stupid people do it, but I don’t do it. [Update: Holy crap, look at the passions this topic arouses.] When replying to an e-mail, I try to interleave my points with the sender’s points. Mail is set up to encourage top-posting though: it places the cursor on a blank line above the quoted text, and prefaces the quoted text not with a salutation but with a more bureaucratic “on such-and-such a date, so-and-so wrote:”. So there’s that wasted blank line, and a first line that I almost invariably wind up editing (if you get e-mail from me that has that introductory line unedited, it means either that I’m really busy, that you are bugging me, or that I don’t know how to address you). Again, customized salutation lines have been around for a very long time. Mail should solve this and not assume that everyone is a top-poster. And when I want to interleave my response into the quoted text, Mail does a lazy job. The helpful thing would be to create three blank, unquoted lines with the cursor on the middle line. Mail creates one blank unquoted line. If I’m inserting a comment between two paragraphs of quoted text, there will be one blank quoted line just hanging there—it should clean that up. I think Eudora did.

Simple filtering: I use a lot of rules in Mail to direct my mail into the appropriate slots. I know that Boolean logic can get confusing, but Mail could offer an expert mode for creating rules like “If (A or B) not C” Yes, I know that Mailsmith can do this. I also know that Mailsmith has no support for Japanese. i18n is a real bright spot in Mail: before Mail, e-mail containing Japanese was a frequent PITA. I still have occasional problems with it, but the problem is mostly solved.

No queue for outgoing mail: This is another one of those Eudora features I miss. With Eudora, it was possible to write a message and queue it for delivery later (indeed, this was the default, though it was also possible to send immediately). Not with Mail: you send it, it’s gone. A five-minute grace period would save a lot of mistakes.

So far, these complaints are just of the “this is broken” variety. There are lots of ways Mail could actually be innovative.

Presentation of threads: This is one thing where gmail is out in front: it shows “conversations,” including both messages you received and sent as part of the conversation. Even if Mail would show all the messages in a mailing-list thread in one window—ideally with proper threading indicated—I’d be very happy. If it could go a step further and strip off all the detritus of footers and excess quoting, I’d be amazed.

Mailing-list handling: As long as we’re talking about mailing lists, Mail should be smart enough to recognize “hey, you’ve subscribed to a mailing list” and offer to set up special mailboxes and filters for it. Since almost all mailing lists run on a handful of platforms (Yahoo Groups, Google Groups, Mailman, and maybe one or two others), it should be possible to create special actions for quitting a list, etc, so that newbies who subscribe to a list they then decide to leave don’t post annoyed and annoying messages to the list asking “how do I leave this list?” (actually, this suggests a whole xmlrpc mechanism for managing lists, but that’s a topic for another day).

Ad-hoc mailing lists: this could be dangerous in the wrong hands, but sometimes it is useful to have a mailing list for a short period of time and a small number of people. With the right rules and actions, a mail client could emulate a mailing list well enough. There should be a quick way to set this up.

Alternate views: It could be useful (or at least interesting) to be able to view my mail database in calendrical form. Or by person. It would be interesting, for example, to see a histogram of all the mail exchanged between me and Gwen over time.

The Sidepad

I’ve been musing a bit lately about the problem of having too much information on our computer screens to deal with. I’ve also been thinking about the problems involved in using a computer as the hub of an entertainment center. What follows is a concept that might be able to address both problems, as well as a few others.

This is a gadget I call the “sidepad.” It has a few modes of operation.

1. Docked mode

In this mode, the sidepad is physically connected (via a docking station) to the host computer, and acts as a specialized secondary display.

I’ve written before that I like the idea of roping off a section of my display for to use as for status-monitoring displays and the like, or better yet, a separate display entirely. There wouldn’t be enough of this ancillary stuff to fill a normal display (even a small one), but a custom display such as I am proposing would be perfect.

Shown here is a very rough mockup of a 20“ iMac with an ancillary display showing how the two would relate.

Image showing iMac with sidepad

Here is a detail of just the sidepad in docked mode

Detailed view of sidepad in docked mode

In this, the ancillary display shows the dock, application palettes, and ”dashboard“-style information, though in a much simpler and more disciplined format than Apple’s Dashboard. For lack of a better name, I’ll tentatively call this part of the display the ”dashpad“. Rather than having each widget being free-floating and self-contained, each dashpad widget fits into a ”slot“ and has no chrome (though actual widgets in this case could be somewhat dressier than I am showing them here). I have left the application palettes alone, although I envision a standard visual format for them, along with a special API to take advantage of the ancillary display.

How would something like this work technically? At the physical level, I imagine a dock that would connect to the host via Firewire. Although it would act in some respects as a second display, it would probably need to be treated more as a peripheral; it would have its own processor, which would need to collaborate with the host to fake acting like a second display in some respects.

At the software level, the OS would need a new API that let applications relegate palette display to the sidepad when present, along with support in the OS for the look and actions of those palettes. Likewise display of the dashpad.

2. Detached mode

In this mode, the sidepad is undocked from the host computer, but within wifi range, and acts as a remote terminal for that computer, as well as the command center for home entertainment.

We’re at a point where having a remote display for one’s home computer can be incredibly handy. Such as:

  • You see something while watching TV and want to check some background info on the web (IMDB entry on an actor, product website for something you see advertised).
  • You are piping music from your computer to your stereo. You want to be able to see track info, and to have more control over playback than next/previous track buttons on a normal remote offer.

Obviously these tasks can be accomplished with another computer networked into your primary computer, but this can require a fair amount of setup, and the expense and maintenance of an another computer. Apple likes to talk about its computers being ”digital hubs,“ and I love the idea, but I need to be able to use it out at the ends of the spokes.

Shown here is the sidepad removed from the dock. It would communicate with the host over wifi (probably setting up a VPN). Assuming the mac was also hooked up to, say, a TV and stereo, the sidepad would work as a remote control in this mode, directing media signals to the appropriate outputs.

sidepad in detached mode

In this mode, the screen would show something completely different. A fixed source browser would appear on the top-left, with tabs for one’s computer, the Internet (which would show a browser in the remainder of the screen), music, movies, photos (which would hook into the appropriate sources on the host’s hard drive, and display suitable browsers), and an organizer (contacts and calendar that would sync with the appropriate iApps).

3. Outbound mode

In this mode, the sidepad is operating independently of the host computer, functioning as an Internet terminal, media player, and PDA.

A lot of people who mostly need a desktop computer could also use something lightweight for e-mail, web surfing, and entertainment when they are away from home. The proportions of the display are not an accident: it has a 16×10 aspect ratio, for widescreen video. A laptop (especially a used one) is not an unreasonable solution, but may be overkill, and requires more work (and if Apple has its way, a .Mac subscription) to keep in sync with one’s desktop. Low-powered, small, and lightweight web-surfing tablets such as the Nokia 770 and Pepperpad already exist, but these are not really designed to sync with larger computers, much less provide either of the other modes I’ve discussed.

In order to fulfill its other functions, the sidepad would need a powerful enough processor to act as a PDA, with utility applications like a word processor, spreadsheet, and e-book reader. So it would be a no-brainer to include these functions in this mode.

One aspect of this mode that is open to criticism is the fact that it would require a fair amount of storage to be useful, increasing its price and putting it dangerously close to iPod territory. This could be handled by making storage optional, by using a memory-card slot, or by actually designing in an iPod dock.

The display in this mode would be very similar to that in Detached mode. The functionality would be different, though. The ”my computer“ tab might be disabled if a VPN at a decent speed cannot be established. The media tabs would reveal locally stored content, not content on the host computer.

Objections

What are the odds of something like this being built? Slim. There are a lot of problems with this idea:

  • Price: it might wind up being expensive enough that most people would reasonably ask ”why not just get a laptop?“
  • Size: For one thing, the size is not one we’ve seen before in a portable product—bigger than a PDA, PMP, or portable game console, but smaller than a laptop. The fact that nobody’s selling a device this size (measuring roughly 12” x 6“, the size of a license plate in North America) may be because nobody would buy it. For another thing, in order to feel well-connected to the host machine in docked mode might require different models for different screen sizes.
  • Marketing: With several different modes, none of which are ones that most consumers will instantly grok, this would be a challenge to sell effectively.

Still, I’d buy one.

Liner notes

Moving can be an occasion for reconsidering how you live your life. One aspect that Gwen and I are confronting is how we listen to music.

I’ve got all my CDs ripped to digital files, and since I spend most of the day working at (or, well, sitting at) my computer, listening to my music through iTunes is the most obvious option. I’ve been pushing for having a gadget to relay music off my hard drive to the stereo in the living room, something like the Airport Express or Slimp3 player.

Not Gwen. She doesn’t dislike iTunes, but she’s visual. She wants to browse through the covers of her music to make a selection, rather than scroll through a list of artists or the like. But she and I both feel that it would be nice to put away all of our CDs. So what to do?

The MP3 and AAC file formats allow you to include cover art as metadata right in the file. iTunes can display this art while it the track is playing. And there exist a number of applications for the Mac that will display the art when iTunes is hidden, and even help look for it on the Internet–Clutter, which I could never bond with, Sofa, which is an intriguing app now caught in limbo by its author’s death, and Synergy, which I’ve been happily using for some time. But these don’t help you browse your collection by cover—they just show you the cover once you’ve selected something.

One of the big problems with cover browsing is that you need to have the cover art. As I said, there are some programs that can help (by mining Google Images or Amazon), but often enough, they can’t find anything, or they find the wrong thing, or they find the right thing, but only a thumbnail image. And there’s some stuff for which there simply is no cover art (remixes, bootlegs, etc). I’ve been rather laboriously going through my collection and manually searching the usual sources to dig up good-quality images to make cover browsing possible. I reckon once I’m done, I’ll still be left with 2% to 5% of my collection sans art, and for that stuff, I’ll have to improvise.

I recently learned about Cover Buddy, which gives you a slide-sorter view of your cover art. It’s got some nice features, and it’s reasonably priced. But I’m really excited about my latest discovery, CoverFlow. When I read the description of this, I was doubtful of its utility, but having played with it, I’m hooked. It’s still very beta and rather primitive, but also very impressive. You really need a scrolling mouse to make the most of it.

I showed it to Gwen, and she was impressed as well. I think we’ve solved our music-browsing dilemma. Now we just need a Mac that can run CoverFlow in the living room…