Why do people keep IMing me to ask if they can Skype me? After all, no one SMSes me to ask if they can call me on my cell.
To me this is all wound up in issues of offline vs. online etiquette. It’s pretty well-accepted that if you call someone on their mobile phone and they don’t want to take the call, they can refuse without being overly rude. In fact, it’s usually unclear whether someone zapped you as opposed to having their phone off, not hearing your call, etc. With Skype, on the other hand, it’s pretty blatant. You push that big red button and turn your virtual nose up at the caller in a very unambiguous way.
Instant messaging, on the other hand, is soothingly asynchronous, so the person can ignore your message and answer much later, or type a quick note (”in meeting”, “on phone”, etc.). So polite people tend to ask permission asynchronously via IM before imposing their synchronous Skyping on you (or forcing you to snub them).
Not the most efficient practice, however. The solution: put a third (blue?) button next to the green (answer call) and red (bug off) buttons in Skype. If you press this button, the caller should continue to hear a ring tone, but it would be muted on your end. Simultaneously, a chat window with the user appears. So you can type “changing the baby” or “sharpening the Ginsu knives” and opt out of the call without seeming impolite. Of course, you could always refuse the call and then chat manually, but putting an easy-to-push button on the UI would “institutionalize” this so that, psychologically, people would have less reason to hesitate before placing a call.
I’ve written a new essay about what digital media companies can learn from the open source movement:
When I was growing up in the 1980’s, copy protection was a big deal in the software world. It was widely assumed that if people could freely create perfect digital copies of their software and distribute them to others, it would be impossible for software companies to make any money. As a result, loopy schemes ranging from non-standard floppy disk formats to hardware dongles (hanging in ever-lengthening daisy chains off your serial port) were dreamed up by vendors desperate to protect their revenues.
My other, equally clear memory from this period is the frustration experienced by users who had legally acquired a software product only to struggle with the willful crippling that its creator had inflicted on it. Since vendors were distributing floppy disks (and later CD-ROMs) that they had intentionally broken in order to prevent copying, it is hardly surprising that things went awry with unnerving regularity. It was often impossible to make backup copies, despite the fact that PC hardware back then was far less reliable than it is today. And God forbid you should upgrade to a new computer; moving all your existing software onto it was the stuff of nightmares.
Read the whole essay here
After playing some more with Scrumptious, I discovered that the features for adding and removing tags weren’t working very well.
(For those interested in technical details, it seems that the problem was that I was loading the tags that the user has for a URI from the RSS feed into an RDF data source. Then I was manipulating the data source in memory as the user added/removed tags. But apparently in-memory modification doesn’t work on a remote data source, so the list of tags wasn’t changing. And since this list is used with every update, if you added two tags, the second add would overwrite the first one, among other problems. I fixed this by copying all of the user’s bookmarks into an in-memory data source, which can be manipulated just fine using the RDF API.)
Besides fixing this, I also added a couple of new features. Firstly, the list of tags now displays not just all popular tags for the current page, but also any tags that you have used. This way you can remove tags from your bookmark even if they aren’t popular. Secondly, I added a text box at the bottom of the form that you can use to add new tags as free text, so you aren’t limited to adding popular tags. To use this, just type the name of the tag you want to add into the text box and click the Add button.
There is one remaining problem, which is that del.icio.us takes a long time to update the RSS feed for your bookmarks. This doesn’t matter as long as you leave the Scrumptious sidebar open, since I load the bookmark feed once at the beginning and then make further changes in memory, so the list stays up-to-date. But if you go to a page, add a couple of tags, close the sidebar and reopen it, the bookmark feed is reloaded and you might not see your changes. The worst part is that if you then add another tag, your original changes will be lost. I’ll try to find out why this is and whether there is a reasonable workaround. In the meantime, if you close and reopen the sidebar, make sure that the list of tags for the current page is correct before making any further changes to it.
The new version can be installed by clicking on the link in the original Scrumptious post. If you are using the sidebar and encounter any other bugs, please let me know and I’ll do my best to fix them.
My last post about Matt Biddulph’s demo, which shows del.icio.us functionality layered on another website, inspired me to produce a quick-and-dirty prototype in the form of a sidebar for Mozilla browsers. Seeing as this is the first thing I’ve ever written using XUL+Javascript (the standard Mozilla development tools), it didn’t turn out to be as quick as I had anticipated. But rest assured, it’s plenty dirty!
Open it by choosing View -> Sidebar -> Scrumptious (or press Alt-S). Click on the “Load Tags” button to see all the popular tags for the page currently visible in the browser. This is already pretty cool, but that’s not all! By double-clicking on a tag, you can see all of the popular websites that have been bookmarked with that tag (if any). And if you want to create a bookmark for the current page, or add a new tag to your existing bookmark, just right-click on the tag and choose “Add Tag” in the popup menu. Your del.icio.us bookmarks will be updated accordingly.
I didn’t follow the template of Biddulf’s demo exactly because the del.icio.us API doesn’t let you retrieve bookmarks for an entire website, just for a single webpage. But I think that the list of overall most popular websites for a tag is also a good indication of what the tag is being used for, and so the data presented by the sidebar should be of use in selecting tags for a page. Obviously showing what tags other people are using is a big help, and likely (for better or worse) to accentuate the general power-law nature of a site like del.icio.us, since the impetus to use already popular tags becomes even stronger.
I have a bunch of comments to make based on my experience writing this sidebar. Let me first of all thank Joshua Schachter, the creator of del.icio.us, for the great job he did, particularly in providing an open API so that extensions like this are possible. Also, I used the existing Mozilla del.icio.us sidebar as my starting point and viciously gutted it, which was of invaluable assistance to me as a XUL newbie. So thanks to the whole team who produced that sidebar and especially to Christian Hellsten, who seems to have written most of the code. In fact, I used the same preference settings for Scrumptious that they use for their sidebar, so if you are using the latter already you won’t have to reenter your del.icio.us account information.
(The rest of this post is pretty technical so stop reading and go play with Scrumptious if you don’t like TLAs.)
The most obvious thing illustrated by this sidebar is the power of web APIs to enable existing applications to spawn a rich ecosystem of extensions. Certainly this is the case with del.icio.us. I found a whole page of related applications while surfing around with Scrumptious.
A more subtle observation is the dissonance between open APIs and the web’s client/server model. An application using an API can hammer on a website far more effectively than a mere mortal surfing in a web browser. In fact, the original Scrumptious (which I completed a couple of days ago) had a more dynamic user interface which automatically displayed all the tags and popular URLs for any pages you landed on, without you having to explicitly ask it to. But Joshua was understandably concerned about the load this might produce, so I modified it to be more parsimonious with its API requests. This is the same problem that Wikipedia is experiencing: it’s much easier for a community of users to create tons of content than for them to serve it up afterwards. I’ve already argued that Wikipedia would benefit hugely from a P2P architecture, and this is perhaps even more true of del.icio.us. But I’ll leave that for another post.
An intriguing Flash-based thought experiment, created by Matt Biddulph, sets out to illustrate how del.icio.us could be used to enrich existing websites. The demo is undeniably cool stuff, but my first reaction was probably not what was intended. The BBC clearly has the resources to do consistent, ubiquitous semantic tagging in-house. Wouldn’t it be even cooler to be able to exploit these professionally-authored tags alongside those created by del.icio.us users?
It would make a lot of sense for the BBC and similar organizations to annotate their pages with tags manually and provide search functionality to browse their websites by keying off the relevant tags. This would provide the same functionality as that shown in the Biddulf demo, but with much greater precision. All that would be needed is a way to embed tags directly in a webpage rather than storing them on a separate site. And what do you know, this is exactly what is provided by the HTML meta tag. If you view the HTML source of the BBC homepage, for example, in the document header you’ll see the line:
<meta name=”keywords” content=”BBC, bbc.co.uk, Search, British Broadcasting Corporation, BBCi” />
Using this approach, tags could be placed in each content page and viewed using the del.icio.us interface, which could be embedded in the page as in the Biddulf demo. Voila! The semantic web is now a reality.
Why this hasn’t happened already is explained well in this Many-to-Many post by Clay Shirky. I think Clay is spot-on in his assertion that tagging must require little specialized knowledge if people are to make the requisite effort. But this still doesn’t explain why large organizations like the BBC don’t tag up their pages, since they could easily develop an internal tagset for their specific domain that could be used with minimal effort. This is more likely due to the lack of convenient ways to query these tags using existing search engines. Google’s Advanced Search, for example, offers options to search anywhere in a page, in the title of a page, in the text of a page, etc., but not in a page’s keywords. The result is basically a Catch 22 situation: people don’t tag pages because there’s so little benefit from doing so, and search engines don’t bother to offer querying via tags because so few pages are tagged usefully.
Del.icio.us is perfectly positioned to bootstrap this process by including the tags present in a webpage’s HTML meta element in its bookmark’s tags so I can always access the bookmark via the tags that the page’s author chose, if any, along with those chosen by the community at large. Already this would provide considerable motivation for folksonomy-friendly folks to tag up their pages. This in turn might induce search engines like Google to offer a del.icio.us-like interface for the entire web, based on these tags. Del.icio.us could then use Google’s web service API to fold this content into its lists of bookmarks, so you would see the top Google matches for each tag alongside standard del.icio.us content.
This is the best illustration that has occurred to me so far of why there doesn’t have to be the tension between folksonomy and more formal tagging that many seem to be taking for granted.