One aspect of hCalendar has been bothering me and a few other microformats developers for a little while now: the fact that dates are encoded and displayed in ISO8601 format, e.g. 2005-01-25 or just 20050125. This may be perfectly readable to programmers and other folks familiar with numbers and modern date formats, but it is certainly not the easiest thing for most other humans to read and understand. People are much more familiar with dates like: January 25 or 1/25 or 25-1.
My first instinct was to try the <object>
tag, since it has a nice mechanism for providing data within its 'data' attribute, and fallback plain text inside the element itself, e.g. (simplified for sake of discussion):
<object data="20050125">January 25</object>
This worked great in typical modern browsers, except for one: Safari (v1.2.1). Unfortunately, to put it mildly, Safari's <object>
support sucks. It doesn't handle <object>
fallbacks, it doesn't know when not to handle <object>
mime types that it doesn't support, it doesn't support display:inline
on <object>
, and it doesn't do proper intrinsic sizing of <object>
replaced elements. These are all trivial to reproduce bugs. If anyone working on Safari is reading and needs test cases, I'll gladly provide them, or heck,
just check out the draft W3C HTML4.01 Test Suite which includes
several <object>
tests which even the nearly five year old IE5/Mac handles without difficulty, natch. So back to the drawing board, since a solution to this problem should work in every modern browser.
Ironically, one of the root causes of the problem pointed directly at the logical solution which seemed obvious as soon as it occured to me.
Humans don't think of dates and times in terms of fully qualified year, month, date, hour, minute, second, time-zone values. Humans think of dates and times in terms of only that which is necessary. The day, or the day and the month, or perhaps just the hour. What do all these have in common? They are all abbreviations for a fully qualified date and time.
Lucky for us, XHTML has an element for abbreviations: <abbr>
.
Thus, the ISO8601 date 20050125 should be marked up as:
<abbr title="20050125">January 25th</abbr>
I've updated both the hCalendar specification, and my Events roll at the right accordingly. View source to see more examples.
In the future one could imagine a CSS rule and perhaps a CSS property or two that would automatically transform and present such ISO8601 dates from 'title' attributes of <abbr>
elements into whatever datetime format the user preferred (e.g. for their locale, American vs. European etc.), rather than the default human readable abbreviation provided by the author.
My iBook is all fixed and working just fine. Data restored and it is fully operational. With any luck, this motherboard will last me through SXSW this year :) But more to the point, I should be able to catch back up with regular posting.
And in that regards, Adam Rifkin and I are co-hosting an informal microformats dinner this Wednesday night (I suppose that is tonight isn't it?) from 7-9pm at Crepes on Cole (located at the intersection of Carl and Cole in the Cole Valley district of San Francsico, nearest transit is MUNI N-Judah).
Are you a Web implementer that is interested in solving real problems quickly, rather than theoretical problems eventually? We'd like to encourage frank discussions between coders and web designers alike, in order to design and create standards that work for both. Data that can be efficiently parsed and elegantly presented.
And besides, Crepes on Cole has delicious San Francisco style crepes.
I told you we'd been coding on even
more cool new features. Introducing Technorati Tags. All your tagged stuff (blog posts, photos, links) in one convenient place. See details of how it works. In short, to tag your posts, just create links from your post to the respective Technorati Tag page(s), and add
rel='tag'
to those hyperlinks to indicate to Technorati that you intend those links to express a tagging relationship between your post and the respective tag(s). E.g.
<a href="http://technorati.com/tag/code"
rel="tag">code</a>
Recently we built two really cool new features, but we've been so busy (coding even more new features), that we haven't even had time to blog about them!
The first is Technorati Quick-Claiming, specially built for users of Tucows' Blogware blogging tool.
In short, if your blog software supports RSD (Really Simple Discoverability) and one of many popular blog tool APIs, you can claim you blog on Technorati by simply entering your blogging tool login info. Joey deVilla has done a great job of explaining Quick-Claiming Your Blogware Blog in Technorati. He's also provided a more technical treatment on The Farm, Tucows' Developers' Hangout.
Second, you might have noticed me experimenting with little search boxes at the top of the next column over in my blog since sometime this past September. Notice the new one at the top. This past November, when Technorati shipped a completely rewritten keyword search functionality, I also wrote a similar search box for Technorati (which I promptly coined the searchlet, and someone entered into wikipedia mere weeks later).
The Searchlet presents the option of searching "this blog" (meaning your blog), or "all blogs", for either keywords or URLs automatically. In addition the Searchlet does something that no other search box can do: It returns the most recent, comprehensive, thorough, and freshest results from blogs and feeds, no matter what the format (XHTML, RSS, Atom, etc.).
The Searchlet went through several iterations in the weeks since, and finally got good enough to privately (or not as the case would be) test it out with a few folks like, Robert Scoble, and Doc Searls. It spread quickly from there. We made a few tweaks, and now any Technorati member can easily add a Technorati Searchlet to their blogs. The Technorati Searchlet page will automatically generate the custom XHTML 1.0 Strict code for your claimed blogs, and Searchlet previews so you can even play with before copying and pasting the code into your blog template(s).
Monday morning my iBook broke, again. I spent most of the rest of day diagnosing it (bad video hardware), and then copying off the essentials (target disk mode still worked), and prepping the machine with simple admin account for turning in for repairs.
The next morning I went to the San Francisco Apple Store, signed in at the "genius bar", and patiently waited my turn. After demonstrating the problem and clearly stating the diagnostic steps I took, the genius bar person graciously took my iBook, handed me a printout and sent me on my way. I decided to check my email before leaving, and they started changing the show at the auditorium for some recent announcements from the keynote at MacWorld Expo just blocks away. Moments later a huge mob showed up at the store, grabbbed square green iPod shuffle boxes as fast as the store workers could hand them out, and bumrushed the cash registers. Sheer madness.
Hmm... 1GB seems too small to be useful for a music collection. Now, the Mac mini, that's an interesting little box. Reminds me a lot of Mac Cube (which I actually thought was a nice little box), but a lot less expensive. I wonder if it is quiet enough to put in an entertainment center as a dedicated music server with storage?
Congratulations to the winners of the Technorati Developers Contest!
Well done, contestants.
The Technorati crew has been working very hard, even during the recent winter vacation, to bring you keyword watchlists.
In short, use Technorati to search for any keyword, and then create a watchlist feed for that keyword to find out whenever any blogger mentions that keyword.
But wait, there's more! You can also do Boolean searches for keywords and have those results turned into an RSS watchlist.
See David Sifry's announcement for details and a timely example, and Boingboing's coverage as well.
We're very proud of the new keyword watchlist feature. It's one of these things which we almost had ready to launch several times over the past month or so, but kept holding back until we had banged on it and got enough little details right to have something we thought was sufficiently deserving of end users' attention. There is something to be said for making sure a product or service is sufficiently polished before launching it, and I hope you find this to be true with Technorati's keyword watchlists.
Update: see David Sifry's followup on watchlists and answers to Roland Tanglao's questions.
Last thursday Robert Scoble hung out with us at Technorati, and arranged a geek dinner at Chaat Cafe (dinner followup). Afterwards Matt Mullenweg hosted an after-party (post-party cleanup, party followup). Nicole Lee took photos.
Thomas Hawk summed up the dinner venue:
The dinner venue was actually pretty perfect. There was some concern earlier about the cost of Lulu's being prohibitive and this was the second choice apparently. The cost was reasonable and I thought the food was pretty good as well. The restaurant was definitely scalable and it seemed more efficient with such a large group for everyone to order at a counter and then have their food brought out for them.
Enough said.
Scoble posted an XFN Friendly followup, wherein he took some liberty with XFN values. Michael Eakes noted a possible danger of losing context, and Phil McCluskey followed up with The Semantic Context of XFN. There really isn't any danger nor chance of corruption; these issues were all considered in the design of XFN 1.1. The answer is a few things. For comments, simply disallow commenter setting of 'rel' attributes. For spiders/engines such as RubHub,
follow the spec, which, for the rel="me"
value, says Required symmetric
, which means that in the general case, there must be a "me" relation from source to destination and back to the source in order for the semantic to be implied. One way to present this in the user interface is to only show bidirectional "me" relations, or perhaps group all such sites as part of an identity consolidation at the top of the results page for the particular URL, rather than listing them intermixed with other relations.
More posts about the dinner and afterparty: Steve Sloan writeup 2 3. Christopher Carfi writeup. Michael Eakes writeup. Renee Blodgett writeup and social commentary.
All in all, a great time was had by all. Thanks again to Scoble and Photomatt for an excellent evening of hanging out with friends and colleagues.
A UCLA-Veterans Affairs study finds that curry spice may help fight Alzheimer's (at least in genetically altered mice). Good enough for me. Bring on the koorma curry and yellow curry with vegetables!
Via Jason Kottke. Seattle Times: Plugged into it all, we're stressed to distraction. Much of this article rings true for me. Here are a few things I've done to cope:
Then I started using iChat/AIM once I started running MacOSX 10.3, and found out that way more people I knew were available on AIM than on MSN Messenger. Quite double-edged though, as many more people found me available as well. Not only that, but the AIM usage I experienced seemed, shall we say, less conscious of the interruption costs asked of those being invited.
So now if I am deep in thought or in the middle of a task requiring a higher than usual level of concentration, I throttle back my response time to IM invites. I wait longer to accept invites, depending on who from, how important it seems (e.g. are they just sociably saying "hello", or do they actually need help?), and how "available" I feel I am at the time.
I have set up several profiles ("Vacation", "Weekend", "Work", "Meeting", "Normal") on my cell phone which, depending on the profile, ring for only particular sets of people (via caller ID). These profiles are similar to the shades of gray lists that I mentioned for email. Such lists are iterative, adaptive efforts. Some people know how to respectfully use cell phones, and some people don't. Sometimes they learn over time. Sometimes they can be taught by varying the response time to their inevitable voicemails/invites etc.
What techniques have you developed to reduce cognitive overload and context switching costs?
Dan Gillmor has a new role.
Speaking of progress on resolutions, I've hacked up an Atom feed of my posts. Try it with your feed aggregator of choice and let me know if you have any problems.
Last year's resolutions and results:
It's somewhat interesting to look at a couple of the resolutions I wrote the year before as well:
Some completions, much progress, and plenty for the year ahead.