18

There’s a worrying tendency for “real” programmers look down their noses at CSS. It’s just a declarative language, they point out, not a fully-featured programming language. Heck, it isn’t even a scripting language.

That may be true, but that doesn’t mean that CSS isn’t powerful. It’s just powerful in different ways to traditional languages.

Take CSS selectors, for example. At the most basic level, they work like conditional statments. Here’s a standard if statement:

if (condition) {
// code here
}

The condition needs to evaluate to true in order for the code in the curly braces to be executed. Sound familiar?

condition {
// styles here
}

That’s a very simple mapping, but what if the conditional statement is more complicated?

if (condition1 && condition2) {
// code here
}

Well, that’s what the decendant selector does:

condition1 condition2 {
// styles here
}

In fact, we can get even more specific than that by using the child combinator, the sibling combinator, and the adjacent sibling combinator:

condition1 > condition2

condition1 ~ condition2

condition2 + condition2

AND is just one part of Boolean logic. There’s also OR:

if (condition1 || condition2) {
// code here
}

In CSS, we use commas:

condition1, condition2 {
// styles here
}

We’ve even got the :not() pseudo-class to complete the set of Boolean possibilities. Once you add quantity queries into the mix, made possible by :nth-child and its ilk, CSS starts to look Turing complete. I’ve seen people build state machines using the adjacent sibling combinator and the :checked pseudo-class.

Anyway, my point here is that CSS selectors are really powerful. And yet, quite often we deliberately choose not to use that power. The entire raison d’être for OOCSS, BEM, and Smacss is to deliberately limit the power of selectors, restricting them to class selectors only.

On the face of it, this might seem like an odd choice. After all, we wouldn’t deliberately limit ourselves to a subset of a programming language, would we?

We would and we do. That’s what templating languages are for. Whether it’s PHP’s Smarty or Twig, or JavaScript’s Mustache, Nunjucks, or Handlebars, they all work by providing a deliberately small subset of features. Some pride themselves on being logic-less. If you find yourself trying to do something that the templating language doesn’t provide, that’s a good sign that you shouldn’t be trying to do it in the template at all; it should be in the controller.

So templating languages exist to enforce simplicity and ensure that the complexity happens somewhere else. It’s a similar story with BEM et al. If you find you can’t select something in the CSS, that’s a sign that you probably need to add another class name to the HTML. The complexity is confined to the markup in order to keep the CSS more straightforward, modular, and maintainable.

But let’s not forget that that’s a choice. It’s not that CSS in inherently incapable of executing complex conditions. Quite the opposite. It’s precisely because CSS selectors (and the cascade) are so powerful that we choose to put guard rails in place.

I’ve been playing around with the newly-released Squoosh, the spiritual successor to Jake’s SVGOMG. You can drag images into the browser window, and eyeball the changes that any optimisations might make.

On a project that Cassie is working on, it worked really well for optimising some JPEGs. But there were a few images that would require a bit more fine-grained control of the optimisations. Specifically, pictures with human faces in them.

I’ve written about this before. If there’s a human face in image, I open that image in a graphics editing tool like Photoshop, select everything but the face, and add a bit of blur. Because humans are hard-wired to focus on faces, we’ll notice any jaggy artifacts on a face, but we’re far less likely to notice jagginess in background imagery: walls, materials, clothing, etc.

On the face of it (hah!), a browser-based tool like Squoosh wouldn’t be able to optimise for faces, but then Cassie pointed out something really interesting…

When we were both at FFConf on Friday, there was a great talk by Eleanor Haproff on machine learning with JavaScript. It turns out there are plenty of smart toolkits out there, and one of them is facial recognition. So I wonder if it’s possible to build an in-browser tool with this workflow:

Drag or upload an image into the browser window,

A facial recognition algorithm finds any faces in the image,

Those portions of the image remain crisp,

The rest of the image gets a slight blur,

Download the optimised image.

Maybe the selecting/blurring part would need canvas? I don’t know.

Anyway, I thought this was a brilliant bit of synthesis from Cassie, and now I’ve got two questions:

A book about the history of telegraphy might not sound like the most riveting read, but The Victorian Internet is both fascinating and entertaining. Techno-utopianism, moral panic, entirely new ways of working, and a world that has been utterly transformed: the parallels between the telegraph and the internet are laid bare. In fact, this book made me realise that while the internet has been a great accelerator, the telegraph was one of the few instances where a technology could truly be described as “disruptive.”

After I finished reading the final Iain M. Banks novel I was craving more galaxy-spanning space opera. The premise of Ancillary Justice with its description of “ship minds” led me to believe that this could be picking up the baton from the Culture series. It isn’t. This is an entirely different civilisation, one where song-collecting and tea ceremonies have as much value as weapons and spacecraft. Ancillary Justice probes at the deepest questions of identity, both cultural and personal. As well as being beautifully written, it’s also a rollicking good revenge thriller.

China Miéville’s books are hit-and-miss for me, but this one is a direct hit. The central premise of this noir-ish tale defies easy description, so I won’t even try. In fact, one of the great pleasures of this book is to feel the way your mind is subtly contorted by the author to accept a conceit that should be completely unacceptable. Usually when a book is described as “mind-altering” it’s a way of saying it has drug-like properties, but The City & The City is mind-altering in an entirely different and wholly unique way. If Borges and Calvino teamed up to find The Maltese Falcon, the result would be something like this.

When I sent off my recommendations, I told Matt:

Oh man, it was so hard to narrow this down! So many books I wanted to mention: Station 11, The Peripheral, The Gone-Away World, Glasshouse, Foucault’s Pendulum, Oryx and Crake, The Wind-up Girl …this was so much tougher than I thought it was going to be.

And Matt said:

Tell you what — if you’d be up for writing recommendations for another 3 books, from those ones you mentioned, I’d love to feature those in the machine!

Station Eleven made think about the purpose of art and culture. If art, as Brian Eno describes it, is “everything that you don’t have to do”, what happens to art when the civilisational chips are down? There are plenty of post-pandemic stories of societal collapse. But there’s something about this one that sets it apart. It doesn’t assume that humanity will inevitably revert to an existence that is nasty, brutish and short. It’s also a beautifully-written book. The opening chapter completely sucker-punched me.

On the face of it, this appears to be another post-Singularity romp in a post-scarcity society. It is, but it’s also a damning critique of gamification. Imagine the Stanford prison experiment if it were run by godlike experimenters. Stross’s Accelerando remains the definitive description of an unfolding Singularity, but Glasshouse is the one that has stayed with me.

This isn’t an easy book to describe, but it’s a very easy book to enjoy. A delightful tale of a terrifying apocalypse, The Gone-Away World has plenty of laughs to balance out the existential dread. Try not to fall in love with the charming childhood world of the narrator—you know it can’t last. But we’ll always have mimes and ninjas.

I must admit, it’s a really lovely feeling to get notified on Twitter when someone buys one of the recommended books.

For a while now, I’ve wanted to include Flickr in that list of third-party services but I couldn’t think of an easy way of associating audio files with photos. Then I realised that a mechanism already exists, and it’s another machine tag. Anything on Flickr that’s been tagged with lastfm:event=... will probably be a picture of a musical artist.

So if anything is tagged on Huffduffer with music:artist=..., all I need to do is fire off a call to Last.fm to get a list of that artist’s events using the method artist.getEvents. Once I have the event IDs I can search Flickr for photos that have been machine tagged with those IDs.

Undeterred, I found a RESTful interface that provides the past events of an artist on Last.fm. The format returned isn’t JSON or XML. It’s HTML. It turns out that past events are freely available in the profile for any artist on Last.fm with the identifier last.fm/music/{artist}/+events/{year}. Here, for example, are Salter Cane gigs in 2009: last.fm/music/Salter+Cane/+events/2009.

If only those events were structured in hCalendar! As it is, I have to run through all the links in the document to find the hrefs beginning with the string http://www.last.fm/event/ and then extract the event ID that immediately follows that string.

Once I’ve extracted the event IDs for an artist, I can fire off a search on Flickr using the flickr.photos.search method with a machine_tags parameter (as well as passing the artist name in the text parameter just to be sure).

After I started rewarding machine tagging on Huffduffer with API calls to Amazon and Last.fm, people started using them quite a bit. But when it came to displaying tag clouds, I wasn’t treating machine tags any differently to other tags. Everything was being displayed in one big cloud.

I decided it would be good to separate out machine tags and display them after displaying “regular” tags. That started me thinking about how best to display machine tags.

One of the best machine tag visualisations I’ve seen so far is Paul Mison’s Flickr machine tag browser, somewhat like the list view in OS X’s Finder. Initially, I tried doing something similar for Huffduffer: a table with three columns; namespace, predicate, and values.

That morphed into a two column layout (predicate and values) with the namespace spanning both columns. The values themselves are still displayed as a cloud to indicate usage.

This is marked up as a table. The namespace is in a th inside the thead. In the tbody, each tr contains a th for the predicate and td for the values.

Table markup allows for some nice :hover styles (in browsers that allow :hover styles on more than links). Whenever you hover over a table cell, you are also hovering over a table row and a table. By setting :hover states on all three elements, wayfinding becomes a bit clearer.

the XSL transformation is done by Amazon, not me; that wouldn’t be the case if I used XML-RPC.

Anyway, having successfully created a Huffduffer-Amazon bridge using machine tags, I thought I’d do a little more hacking. Instead of restricting the mashup love to Amazon, I figured that Last.fm would be the perfect place to pull in information for anything tagged with the music namespace.

Last.fm has quite a full-featured API and yes, it can output JSON. To start with, I’m using the artist.getInfo method for anything tagged with music:artist=..., music:singer=... or music:band=.... Here are some examples:

I’m pulling a summary of the artist’s bio, a list of similar artists and a picture of the artist in question. For maximum effect, view in Safari, the browser with the finest implementation of CSS3’s box-shadow property.

Nice as Last.fm’s API is, it’s not without its quirks. Like most APIs, the methods are divided into those that require authentication (anything of a sensitive nature) and those that don’t (publicly available information). The method user.getInfo requires authentication. Yet, every piece of information returned by that method is available on the public profile.

So when I wanted to find a Last.fm user’s profile picture—having figured out through Google’s Social Graph API when someone on Huffduffer has a Last.fm account—it made far more sense for me to use hKit to parse the microformatted public URL than to use the API method.

Amazon’s API was one of the first I ever messed about with, first on The Session and later on Adactio Elsewhere. There are things I really like about it and things I really dislike.

I dislike the fact that there’s no option to receive JSON instead of XML. However, one of the things I like is the option to pass the URL of an XSL file to transform the XML (I wish more APIs offered that service). So even though JSON isn’t officially offered, it’s perfectly feasible to generate JSON from the combination of XML + XSL. That’s what I did for the Huffduffer hacking—I find it a lot easier to deal with JSON than XML in PHP5. If you fancy doing something similar, help yourself to my XSL file. It’s very basic but it could make a decent starting point.

But the thing I dislike the most about the Amazon API is the documentation. It’s not that there’s a lack of documentation. Far from it. It’s just not organised very well. I find it very hard to get the information I need, even when I know that the information is there somewhere. Flickr still leads the pack when it comes to API documentation. Amazon would do well to take a leaf out of Flickr’s documentation book (hope you’re listening, Jeff).

There’s something about the mix of rigidity and haphazardness in machine tags that appeals to me. While they all share the same structure, everyone is free to invent their own usage. If machine tags were required to go through a specification process we would have event:lastfm=... and event:upcoming=... instead of lastfm:event=... and upcoming:event=... but really, it simply doesn’t matter as long as people are actually doing the tagging.

With the introduction of these new API methods, it looks like there’s room to build more finely-tuned apps to pivot around namespaces, predicates and values.

Playing a gig is tiring. There’s the actual playing on stage—which can get pretty sweaty—but it’s the hauling of amps and instruments that inevitably means that a gig night is a late night. So after playing a Salter Cane concert on Friday night, I had a nice long lie-in on Saturday.

When I did finally emerge, I slothfully sat with my iBook, casting a casual eye over the Web via Twitter, Flickr and all my habitual haunts. At five minutes to midday, I glanced at my mobile phone and saw that I had missed a call. In no particular hurry, I listened back to my voice mail.

The message was from Robert Harding, the authorised Apple service provider who was replacing the hard drive in my borked Macbook. The message said that my laptop was ready but I’d need to pick it up before noon. That was just five minutes away!

I quickly called him back and asked if he could stay open a little longer. It turns out that he normally doesn’t even work on a Saturday but he had gone the extra mile to get this done and he really needed to be somewhere else soon… but he would hang on until ten past twelve.

I’ve never dressed so fast in my life. While I was donning some clothing, Jessica called a taxi for me. I ran downstairs and began counting the seconds until the cab came ‘round the corner. It showed up, I hopped in, and away we went.

Now I had my Macbook back with a brand new hard drive. Thus began a long day of file transfers, downloads, SVN checkouts and cabalistic command-line push-ups involving Apache, PHP and MySQL. I’ve just about managed to restore the machine back to the state it was in before its meltdown.

And not a moment too soon: in a few minutes I’ll be heading to the airport to grab a flight to New York where I’ll spend the week giving workshops and consulting with Time Warner. I had more or less resigned myself to bringing the iBook but, assuming that this machine stays fixed, the extra power of the Macbook will come in handy.

When I got my new Macbook just over two months ago, I was somewhat wary of how it would compare to the workhorse of an iBook that I’d had for so long. I’m not necessarily saying that Intel chips are inherently shit but I had heard enough horror stories from friends to make me think that a good ol’ G4 was a geek’s best friend.

Pretty soon though, I got used to the Macbook’s speed and power and I quickly learned to live its quirky reflective screen. Before long, it became my main machine.

How premature of me! Last night the Macbook started making regular ticking noises. A loud click is emitted every second. I tried shutting down the laptop and was confronted with the spinning beachball of death so I held down the power button to force a shutdown.

After letting it cool off for a while, I tried starting up the Macbook. The ticking resumed immediately. And now, instead of booting into OS X, I get the dreaded flashing question mark folder. PRAM zapped. System Management Controller reset. All to no avail.

I’ll probably have to send the laptop away to get repaired. But I really can’t afford to be without a laptop—I’ve got a trip to New York coming up next week that involves two days of workshops. So I dug out my old iBook and—touch wood—it seems to be working okay. No freezes or kernel panics yet. Sure, the iBook feels a bit slow and claustrophobic compared to the Macbook but at least it isn’t constructed made of shoddy hardware.

I have a lemon that’s less than three months old. Tomorrow I’ll begin the long hold’n’explain with the Corkonian support staff. I hope they’ll deal with this situation lickety-split. I’m not happy about this.

Although the Internet did restart, all data had been lost. At an emergency press conference, White House Press Secretary Tony Snow revealed that the goverment does not have a back of the internet but had “always meant to get around to making one.”

I’ve had a white iBook literally since the day they were first released. By today’s standards my first iBook was a primitive G3 affair. Since then I’ve upgraded to more powerful models but I’ve always had an iBook and I’ve always been more than happy the sturdiness and portability.

My last iBook is a few years old now and it’s beginning to show signs of laptop dementia. Intermittent freezing and kernel panics are telling me that it’s time to put the ol’ white thing out to pasture.

In the past I would have simply invested in a new iBook. That’s not an option anymore, more’s the pity. So I got myself a Macbook (well, technically it’s a Clearleft purchase but you know what I mean).

This looks like being a great machine—I’m certainly going to enjoy the larger hard drive, bigger screen and extra RAM—but I can’t help but feel a twinge of sadness for the passing of the iBook era. Me and my little white Turing machines have been through a lot together; travelling to foreign climes and joining faraway networks.

Now it’s time to break in my pristine new Macbook. I’d better start collecting some sticker schwag. Flickr, Technorati, Creative Commons… if you guys want to some free advertising, just send some sticky love my way.

I’ve spent the last couple of days migrating all my data and operating system foibles over to the new laptop. Soon I’ll take it with me on the road and find out how it holds up.

The Macbook didn’t show up in time for a workshop I did in Rochdale last week so I borrowed Jessica’s iBook instead but I’ll giving the new Macbook its first field test at an Ajax seminar in Dublin next week. It’ll get a good workout this month when I lug it to Paris for XTech and San Francisco for @media (and maybe I’ll make it to Copenhagen for Reboot).

I’m sure it’ll feel weird at first, like wearing a new pair of shoes, but by the end of this month I hope to form a bond with my new portable computing device.

One of the highlights of Refresh Edinburgh for me was listening to Dan Champion give a presentation on his new site, Revish. He talked through the motivation, planning and production of the site. This was an absolute joy to listen to and it was filled with very valuable practical advice.

Revish is a book review site with a heavy dollop of social interaction. Even in its not-quite-finished state, it’s pushing all the right buttons with me:

The markup is clean, semantic and valid.

The layout is uncluttered and flexible.

The URL structure is logical.

The data is available through microformats, RSS and an API.

There’s some really smart stuff going on with the sign-up process. If your chosen username matches a Flickr username, it automatically grabs the buddy icon. At the sign-up stage you also have the option of globally disabling any Ajax on the site—an accessibility option that I advocate in my book. Truth be told, there isn’t yet any Ajax on the site but the availability of this option shows a lot of forethought.

One of the features dovetails nicely with Richard’s recent discussion about machine tags ISBNs. If you tag a picture of a book on Flickr with book:isbn=[ISBN number], that picture will then show up on the corresponding Revish page. You can see it in action on the page for Bulletproof Ajax.

Oh, and don’t worry about whether a book has any reviews on Revish yet: the site uses Amazon’s API to pull in the basic book info. As long as a book has an ISBN, it has a page on Revish. So the Revish page for a book can effectively become a mashup of Amazon details and Flickr pictures (just take a look at the page for John’s new microformats book).

I like this format for machine tagging information related to books. As pointed out in a comment on Richard’s post, this opens up the way for plenty of other tagging like book:title="[book title]" and book:author="[author name]".

I’ve started to implement this machine tag format here. If you look at my last post—which has a whole list of books—you’ll see that I’ve tagged the post with a bunch of machine tags in the book:isbn format. By making a quick call to Amazon, I can pull in some information on each book. For now I’m just displaying a small cover image with a link through to the Amazon page.

That last entry is a bit of an extreme example; I’m assuming that most of the time I’ll be just adding one book machine tag to a post at most, probably to accompany a review.

Machine tags (or triple tags) is still a relatively young idea. Most of the structures so far have been emergent, like Upcoming and Last.fm’s event tags and my own blog post machine tags. There’s now a site dedicated to standardising on some namespaces—MachineTags.org has a blog, a wiki and a mailing list. Right now, the wiki has pages for existing conventions like geo tagging and drafts for events and book tagging. This will be an interesting space to watch.

Richard has some very nifty ideas up his sleeve for the next iteration of his site. Some of these are design-related and some are technical. He just gave a peek into the technical side of things by explaining how he’s using tags to tie content together. Not just any old tags, mind: machine tags.

You may remember that Flickr rolled out machine tags a while back. That’s their name for what’s basically tripletags; tags that take the form of namespace:predicate=value. There’s some tight integration between Upcoming and Flickr using the machine tag upcoming:event=[ID]. You can see a looser coupling (one way rather than bi-directional) in the recently-updated events section of Last.fm which uses lastfm:event=[ID]. As an example, take a look at the page for a Low Lows concert I went to and took pictures of.

Richard is making use of machine tagging to associate his Flickr pictures with his blog posts. He’s also planning to use Amazon’s API to associate ISBN numbers with blog posts, raising the question of which namespace to use:

We therefore need a triple-tag version of the ISBN tag, and here’s my suggestion: iso:isbn=0713998393. ISBN is a standard recognised by the International Organisation for Standardization (ISO) so I thought it made a certain sense for ISO to be the namespace. Other standardised entities could be tagged in a similar way, such as iso:issn=15340295.

Seems like a sound idea to me. I might experiment with machine tagging reviews here in that way and then pulling in complementary information from Amazon.

But that’s for another day. For now, I’ve gone ahead and integrated Flickr machine tagging here… but this works from the opposite direction. Instead of tagging my blog posts with flickr:photo=[ID], I’m pulling in any photos on Flickr tagged with adactio:post=[ID].

Now, I’ve already been integrating Flickr pictures with my blog posts using regular “human” tags, but this is a bit different. For a start, to see the associations using the regular tags, you need to click a link (then the Hijax-y goodness takes over and shows any of my tagged photos without a page refresh). Also, this searches specifically for any of my photos that share a tag with my blog post. If I were to run a search on everyone’s photos, the amount of false positives would get really high. That’s not a bug; it’s a feature of the gloriously emergent nature of human tagging.

For the machine tagging, I can be a bit more confident. If a picture is tagged with adactio:post=1245, I can be pretty confident that it should be associated with http://adactio.com/journal/1245. If any matches are found, thumbnails of the photos are shown right after the blog post: no click required.

I’m not restricting the search to just my photos, either. Any photos tagged with adactio:post=[ID] will show up on http://adactio.com/journal/[ID]. In a way, I’m enabling comments on all my posts. But instead of text comments, anyone now has the ability to add photos that they think are related to a blog post of mine. Remember, it doesn’t even need to be your Flickr picture that you’re machine tagging: you can also machine tag photos from your contacts or anyone else who is allowing their pictures to be tagged.

I realise that I’m opening myself up for a whole new kind of spam. But any kind of spam that requires namespaced tagging on a third-party site is pretty dedicated. If someone actually goes to that much effort to put a thumbnail of an inappropriate image at the end of one of my blog posts, I probably wrote something particularly inflammatory in that post—which would make the associated thumbnail a valid comment, I guess.

Once again, like Upcoming and Last.fm, these are event-based. But the machine tagging would work equally well for location-based posts. So when I go up to Scotland next week and blog about it, I (or you or anybody) can then go to Flickr, find some nice pictures of Edinburgh and using the adactio namespace, associate the pictures with the blog post.

If nothing else, this will be an interesting experiment. Machine tags don’t have the low barrier to entry of regular tagging but they aren’t as complex as something like RDF. It might be that they hit the sweet spot between accuracy and ease of use.

Oh, and if you find any Flickr pictures related to this blog post, tag them with adactio:post=1274.

Ambient intimacy is about being able to keep in touch with people with a level of regularity and intimacy that you wouldn’t usually have access to, because time and space conspire to make it impossible. Flickr lets me see what friends are eating for lunch, how they’ve redecorated their bedroom, their latest haircut. Twitter tells me when they’re hungry, what technology is currently frustrating them, who they’re having drinks with tonight.

While I was away at South by Southwest, Jessica found all the updates from Austin really helped her feel more connected to the people there. I need to get one of those giant plasma screens that were scattered around the convention centre and put one in my flat.

Just occasionally, Twitter is genuinely useful as Leisa can attest (Tantek has a similar story of narrowly-avoided airport confusion from his trip to Vancouver for Web Directions North). But it isn’t really about usefulness or long-term gain.

Lots of people are saying that Twitter is a fad and it won’t last. You know what? That’s fine. Not everything has to last. The whole raison d’être behind Twitter comes from answering a simple question in the present tense:

What are you doing?

If you don’t like Twitter, that’s fine. I understand completely. There’s loads wrong with it and it’s fundamentally not for everyone. But for the rest of us, let us have our fun. We’re not harming anyone and we’re getting some genuine emotional value from technology. That’s a rare thing these days. Yes, I’ll probably get bored with it and move on to something new but in the meantime, Twitter is fun. It really is as simple as that.

Oh, and if you think that Twitter is a waste of your time, here’s a real time-sink: Twittervision.

Among the many design fads prevelant in the trendiest designs (rounded corners, drop shadows and gradients, bloody gradients), there’s been a movement toward upside-down reflections of anything that can stand up: books, words, pictures, the kitchen sink.

I’m not 100% sure where this trend started but I know I’ve seen it on the Apple site for quite some time. It’s certainly present in their Front Row software. I suspect that they may have started the whole reflection design meme. I also suspect that this was a fiendish long-term plan of theirs.

See, I think they wanted us to associate reflective surfaces with feelings of coolness and trendiness. Why?

So that they could release the otherwise lovely MacBook laptops with shiny, reflective glass screens. “It’s not a bug, it’s a feature!”

The party shuffle feature in iTunes is supposed to create a random playlist of songs. Oh yeah? Then how come, out of 6,435 songs, it manages to choose the exact same song performed by two different bands one after the other?

Update: The question is rhetorical. The fact that coincidences like this occur is in fact proof that the shuffling is truly random. If there were no coincidences, that would be suspicious. The Cederholm-Fugazi effect is another example. It’s just that, as Daniel Gilbert says, we notice things that are memorable and filter out the vast majority.

Since I started working at the Clearleft office, I’ve been using a lovely new 20 inch Intel iMac. That’s great… but it means that I now use three different machines; I have my 17 inch G4 iMac at home and my 12 inch G4 iBook for when I’m on the move. I decided that I really needed to centralise all my data.

The first step was a no-brainer: start using IMAP instead of POP for my email. This is something I should have done a long time ago but I’ve just been putting it off. I’ve got six different email accounts so I knew it would be a bit of chore.

After a few false starts and wrong turns, I got everything up and running on all three computers. Unfortunately somewhere along the way I lost a couple of emails from the last day or two.

Which reminds me…

If you’re the person who sent me an email about doing a pre-Reboot podcast interview (or if anyone else out there knows who I’m talking about), please write to me again — I lost your email but I’d love to have a chat.

Anyway…

With my email all set up, that left contacts and calendars. I looked into contact syncing services like Plaxo but I wasn’t all that impressed by what I saw (and tales of address book spamming really put me off). In the end, I decided to drink the Apple koolaid and get a .Mac account. I doubt I’ll make use of any of the other services on offer (I certainly don’t plan to send any electronic postcards… sheesh!) but I think it’ll be worth it just for the Address Book and iCal syncing. As an added bonus, I can also sync my Transmit favourites — a feature I didn’t know about.

I am surprised by one thing that isn’t synchronised through .Mac. There’s no option to centralise the podcasts I’m subscribed to. That still seems to be based around the model of one computer and one iPod. I would have thought it would be pretty easy to just keep an OPML file on a server somewhere and point iTunes at that to keep podcasts in sync but this doesn’t seem to be something that’s built in by default. No doubt somebody somewhere has built a plug-in to do this. If not, I guess somebody somewhere soon will.

Apart from that, I’m all set. I’m relying on Apple to store my data and my hosting provider to store my emails, but I somehow feel more secure than if I was just hoarding everything locally. I feel a bit less tied down and a bit more footloose and fancy free.

If you’re the kind of person who enjoys living under a rock, allow me to be the first to tell you that Apple have released Boot Camp Public Beta which allows Intel-based Macs to dual boot OS X and Windows XP.

My reaction, much like everyone else, was “Holy shit!”.

Blogland is awash with hypotheses and conjecture about what this means for Apple, the company. I’m a lot more selfish than that: I just care about what it means for me.

See, I was thinking about getting a cheap PC laptop. It would be nice to have a machine just for testing websites in — Virtual PC runs a mite slow. Now I’m not going to buy that laptop. Instead, this is the little bit of extra encouragement I needed to invest in a new Intel-based iMac.

Apple wins because I’m buying a Mac. Microsoft wins because I’m going to buy a license for Windows. Dell (or some other PC manufacturer) loses.

Still, I’m probably not the target audience of this move. It warms my heart to read Greg Storey’s… er, story… of a friend who’s switching. Well, maybe switching isn’t the right word anymore. Ambi-OS-trous might be more accurate.