One of the great things about having an international event like @media taking place in London is that I get to see so many of my North American friends without having to cross the Atlantic. I made the most of the opportunity to hang out with Dan, Tantek and Shawn while they were in town. I even went so far as to abduct Jason and Joe and bring them down to Brighton.
Before bundling them on a coastbound train, Jessica and I showed them the treasures of the British Library, a collection to warm the heart of any typography geek. We browsed through documents ancient and new, peering at the letters written down for posterity (Scott’s journal always give me the heebie-jeebies, opened as it is on the last page which reads “For God’s sake look after our people.”)
Once we reached my adopted hometown, they engaged in all the usual tourist activities, mostly involving tea and beachfront promenading. Despite my best efforts, I couldn’t convince Jason to try jellied eels.
I have a tradition here at adactio.com. Whenever I have a guest over, I add them to my bedroll; kind of like a blogroll but with a higher barrier to entry. Needless to say, this bedroll is marked up with XFN to describe my relationships to each guest, and hCard to supply contact information.
Usually when I mark up somebody’s name, I can use fn
optimisation, like this:
<li class="vcard">
<a rel="friend met colleague"
href="http://joeclark.org/" class="fn url">
Joe Clark
</a>
</li>
Technically speaking, the n
property is required in a vcard (and hCard is a 1:1 representation of vcard) but when fn
is applied to a string like this, parsers can assume that the string before the space is the given name (Joe) and that the string after the space is the family name (Clark). This pattern fits the 80/20 rule pretty well: it works for about 80% of use-cases. There is an implied n
value.
This will work as long as there is a string with a single space in the middle of it. Jason’s name throws up an interesting case. There are two spaces in “Jason Santa Maria.” How should parsers interpret this? Is it safe to assume that “Santa” is a middle name? Clearly not in this case.
So I have to explicitly mark up Jason’s given and family name like this:
<li class="vcard">
<a rel="friend met colleague"
href="http://jasonsantamaria.com/" class="n url">
<span class="given-name">Jason</span>
<span class="family-name">Santa Maria</span>
</a>
</li>
Mind you, “Jason Santa Maria” is his formatted name so I can still add the fn
value:
<li class="vcard">
<a rel="friend met colleague"
href="http://jasonsantamaria.com/" class="fn n url">
<span class="given-name">Jason</span>
<span class="family-name">Santa Maria</span>
</a>
</li>
Jason has one of those double-worded family names, like Thomas Vander Wal. But it’s completely different to other three-word names such as “Mark Norman Francis”:
<li class="vcard">
<a rel="friend met colleague"
href="http://cackhanded.net/" class="fn n url">
<span class="given-name">Mark</span>
<span class="additional-name">Norman</span>
<span class="family-name">Francis</span>
</a>
</lI>
See, Norm!’s middle name is defined as additional-name
.
hCard still has enough semantic richness for me to add Jason’s middle name—which I happen to know is “Andrew”—should I wish to:
<li class="vcard">
<a rel="friend met colleague"
href="http://jasonsantamaria.com/" class="fn n url">
<span class="given-name">Jason</span>
<span class="additional-name">Andrew</span>
<span class="family-name">Santa Maria</span>
</a>
</li>
So hCard scales up pretty well to some edge-case scenarios. That said, there is no confirmation-name
property so I can’t easily add that particular bit of extra information. Jason’s confirmation name is… Andrew.
That’s right: his full name is Jason Andrew Andrew Santa Maria.
See, it’s traditional at confirmation time to choose a new middle name. But Jason obviously felt that he had enough words in his name. So his logic runs like this… “If, for my confirmation name, I choose the name Andrew—which is already my middle name—then it won’t actually count as a new name.” Alas, the system doesn’t quite work that way. And so Jason ended up with the same name (Andrew) repeated twice in the middle of his name.
I suppose I could double up both Andrews into a singe additional-name
field like this:
<li class="vcard">
<a rel="friend met colleague"
href="http://jasonsantamaria.com/" class="fn n url">
<span class="given-name">Jason</span>
<span class="additional-name">Andrew Andrew</span>
<span class="family-name">Santa Maria</span>
</a>
</li>
But that’s probably overkill and anyway, Jason probably doesn’t want to broadcast his full, somewhat repetitive name. So it’s probably best if I don’t even mention the whole “Andrew Andrew” thing. Forget I ever said it.
In any case, it’s my pleasure to add Stan to the bedroll. Joe was already on there: he has the distinction of being the only one to have stayed over at my previous flat as well as my current abode.
I wonder if I should make the bedroll more like a tag cloud: the more often you stay, the larger your name appears. Brian, Joe and Norm!—all of whom have stayed more than once—would then all appear in a larger font size while Elsa—who just napped on the sofa—would be rendered smaller.
Nah… silly idea. But I will keep the bedroll going when I move into my next flat which hopefully won’t be too traumatic a move. I’ll be looking at some more potential properties tomorrow. Wherever I lay my sofa-bed—and unfold it when my fellow geeks come to visit—hat’s my home.