Feb 03

I have a confession to make: until this year, I didn’t have all my photos in a properly cataloged database. I’d tried various programs, but none of them quite satisfied me.

iView MediaPro seemed to have bugs in its ITPC handling. I e-mailed their support address reporting the problems, and got no reply at all. Then they were bought by Microsoft, so that was that.

QPict works well as a browser for large numbers of random files, but I don’t find it a very helpful tool for organizing them. This seems to have been reflected in the changes in the new version, which looks more like a Finder replacement for photos.

I got Adobe Bridge for free with Photoshop Elements, but I gather it’s pretty much the full deal as bundled with Photoshop CS3. It looks like it’s very powerful, with some kind of metadata templating system. However, it has a horrible interface for browsing large numbers of photos, and a horrible interface for entering metadata.

iPhoto was pretty ropey too. In particular, it insisted on moving all your photos into a set of folders named 2004/01/01, 2004/01/02, and so on. It also had no support for any of the industry standard metadata formats, such as ITPC and XMP. It’s as if iTunes had been built with no ID3 tag support and made to store all your music in folders according to how many minutes and seconds long each song is.

However, with iTunes 08, Apple finally delivered something usable; and with iTunes 09, I’m actually feeling enthusiastic about the program. I’ve now got everything in iPhoto, and I’m happy with it.

The new face recognition is far from perfect, but it’s good enough to be a time saver. It can also be a source of entertainment–I laughed when it got confused by some shadows, picked out a horse’s ass, and asked whose face it was.

The geotagging isn’t too useful as yet, but it’s a nice feature to have supported. I’ve discovered that if you’re using the dialog to manually assign geotags, it will use any existing metadata to help narrow down the options it presents to you. This means that if you start off by tagging a bunch of photos with an approximate location (e.g. London), and give the event a sensible title (e.g. England Trip 2001), searches for specific locations will apparently start from London, England and work outwards.

Browsing the tagged photos is less impressive. For now, there’s just a zoomable Google map with push pins on it. However, I’m sure people will start coming up with cool add-on visualizations.

Another nice feature of iPhoto is the built-in Flickr and Facebook support. Both systems work like add-on photo libraries; you can edit a Flickr-published photo album, and the changes automatically sync up in the background. Also, any faces tagged in iPhoto result in the appropriate person being tagged in Facebook.

Internally, the iPhoto Library now organizes your files by event. As in previous versions, the original files are kept untouched, and any changes you make result in new files. All of this is invisible to you, and you don’t need to care, but it does mean that you never lose quality by applying repeated edits to a JPEG, and you can revert to the original file at any point. The program manages to stay pretty snappy, even while juggling thousands of files.

iPhoto now supports the raw CR2 files from my Canon SLR, as well as JPEGs. It also has an option to reveal the original file in the Finder, or to fire up an external program (such as Photoshop or Canon Digital Photo Professional) to edit the raw file.

So overall, I now recommend iPhoto, even for fairly advanced photography enthusiasts. It won’t be enough for a pro studio photographer, but if your camera isn’t your career, it’s probably most of what you need.

Dec 21

I was enjoying some soft blue cheese on fresh French bread, thinking about algorithms, when I had a sudden revelation. I’ve implemented it as The NSA cheese test so you can enjoy it.

Mar 07

iPhone SDK: no wireless network access (WiFi only), and no multi-tasking.

Jan 18

Human beings have different kinds of memory; they remember things in different ways. Three common classes of memory are spatial memory, visual memory and verbal memory. (There’s also chronological memory, but that’s not relevant to my point here.)

I have excellent spatial memory. It’s what I rely on most. For example, if I start to think about how to get to a given place in town, I literally find 3D visualizations of my route flashing into my consciousness. I also have pretty good visual memory; when I make the journey, I verify that I’m going the right way by comparing the visual appearance of buildings and landscape that I pass with the scenes I remember.

My linguistic memory is terrible. If you asked me to name the actual streets on the route, I’d have a hard time remembering them. My mental map of London, for example, only has 6 street names. This makes me a really bad person to get directions from. “You take the narrow road that heads off at a thirty degree angle, right at the place with the green copper roof, over the light colored bridge…”

There’s an upside to my condition. If you rely on verbal memory to navigate, as soon as you step outside your known area you are pretty much lost until you can find a familiar street name. In contrast, I have a pretty good chance of navigating between two known points, even if the area in between is totally new to me.

This hierarchy of types of memory also applies in my interaction with computers. When I want to find my password manager, I don’t remember its name. Instead, I remember that it’s in the bottom hierarchical menu of my KDE menu, positioned near the top, and has a green icon.

I know this experimentally, incidentally: back in the System 6 days there was a joke Mac INIT that removed all the text from the menus. I tried it, and was quite startled to discover that I could still use most of my favorite applications.

With that background out of the way, I would like to talk about why for me, the new KDE 4 application launcher is a user interface disaster of epic proportions.

Continue reading »

Dec 12

SixApart have finally released MovableType as open source software under the GPL. I may take a look at it, as it has a working plugin called Privacy that provides for locked postings people have to authenticate to read–something WordPress doesn’t seem able to do at the moment.

MT supports pretty much everything else I need that WordPress has, including categories, tags, OpenID, Atom, and search. Intriguingly, it also allows multiple users with separate sites via a single MT installation. I’m almost tempted to set up a service for anyone I know who wants to leave LJ-land…

Oct 31

I guess I wasn’t paying attention to the Leopard previews earlier in the year, because OS X just blew my mind.

I was editing an e-mail message, and decided to idly click on Time Machine to see what it was doing. Instead of the Finder going into Time Machine mode, my e-mail went into time machine mode. I clicked the back arrow a couple of times, and there was what my e-mail inbox looked like 2 days ago, complete with since deleted messages.

It’s the same with the Address Book. You can step back through how your address book looked at different moments in the past.

My general impression of Leopard is that it’s good. Proper multi-threading in Finder and Mail makes a big difference. But this Time Machine thing is the most amazing backup tool ever. I got a big hard disk at Costco at the weekend, and backing up is now totally painless, there isn’t even an application to run. You just have to make sure a suitable disk is plugged in for long enough to copy the changes over, once a day or so.

Backing up isn’t sexy and it isn’t fun, which is why most people don’t bother to do it. Now there’s no excuse to skip backing up. Or at least, not if you’re a Mac user.

Sep 29

Metasploit on the iPhone:

Every process runs as root. MobileSafari, MobileMail, even the Calculator, all run with full root privileges. Any security flaw in any iPhone application can lead to a complete system compromise.

I really thought Apple had better software developers than that. I guess that explains Steve Jobs’ comments about it being impossible to provide a 3rd party SDK safely.

Yeah, if you made the incredibly dumb decision to have no security whatsoever in your mobile OS, then it’s impossible to support 3rd party applications safely.

More to the point, as soon as someone finds a security hole in Safari or Mail, that’s it—they will be able to pwn the entire system. I’d place bets that someone will find such a bug, sooner or later; and then we’ll see iPhone viruses and trojans spreading by e-mail or web.

Sep 25

WordPress 2.3 is out, with official tag support. I’ve just finished upgrading, and tags now work properly. I had to hack together some SQL + Ruby to convert everything, but it should all be done now.

Atom feeds and OpenID support should hopefully work as before; let me know if you notice anything strange. I’m going to test by replying to this…

Update: It works. And excitingly, you no longer have to hack code to get OpenID support working to and from LiveJournal.

Sep 27

There has been a lot of GPLv3 discussion on tech sites. Perhaps predictably, a lot of it has missed the point or miscategorized the changes.

If you read the history of the Free Software Foundation and the GNU Public License, you discover that it all came about because Richard Stallman found himself having to use broken software that he wasn’t allowed to fix. The entire purpose of the GPL is to ensure that everyone who uses a piece of GPL-licensed software can change that software, use the changed version, and distribute it to other people.

The GPLv3 changes are not some radical new direction, there’s no bait-and-switch going on. The problem is simply that a number of organizations have found ways to use GPL-licensed software, but still break the spirit of the license by preventing users from being able to change the software, use the changed version, and distribute it.

Continue reading »

May 22

Digital TV means crystal clear reception from an $8 wire loop antenna. It means beautiful sharp images a meter across with no visible scan lines.

It also means occasionally having to reboot your television.

It’s just the way things are. I have to reboot my cellphone every day or so, or a memory leak eventually causes it to crash. I have to reboot the printer once a month or so. Our answering machine has needed rebooting a few times, too, and the other day I rebooted the car. I haven’t had to reboot my watch, but it does have to sit and calculate for a while when I change physical time zone. I’m sure in a few more years, I’ll be rebooting the toaster whenever it starts burning toast.

Like a Mac, our TV is entirely software controlled, even powering itself on and off when ordered to by the software. There’s no physical on/off switch, just a button that requests that the software turn the set on or off.

Unfortunately, there’s a bug. Every now and again, the software will think there’s no incoming signal, and ask the hardware to turn off the screen to save power. After a second or two it’ll realize it made a mistake, and ask the screen to power up again. It happens very intermittently, I’d guess once every dozen hours or so, but that doesn’t stop it from being annoying. At one point there was a TV episode on the TiVo that would reliably make it happen at a certain point.

So, I wrote to Sharp asking if this was a known glitch with Aquos TVs. They called me back, and had me put the TV into a special hidden maintenance mode. It turned out my TV needed a software update, something to do with a power glitch in Aquos models that support CableCard. I was refered to a local Sharp service engineer, who brought over a couple of flash cards and apparently did the update. So far, so good.

Something about this disturbs me, though. More and more outwardly simple objects that we interact with are controlled by complex software, and we’re apprently still no closer to solving the problem of delivering reliable software. I didn’t feel too bad when the car needed a firmware upgrade, because a car is a really complicated system—especially a hybrid car that needs to control 2 engines at once and trade off energy between them. But TV is conceptually so simple, and it used to involve no software at all. Digital is nice, and all, but because of the need to decode MPEG-2 we’ve quietly lost simplicity of design. And that’s before you even consider the fact that ATSC is a horrible, horrible piece of design-by-committee with 18 different formats.