06 January 2008

Why can't del.icio.us do A to Z?

I struggled through the alphabet as if it had been a bramble-bush; getting considerably worried and scratched by every letter. After that, I fell among those thieves, the nine figures, who seemed every evening to do something new to disguise themselves and baffle recognition. But, at last I began, in a purblind groping way, to read, write, and cipher, on the very smallest scale. ~ Charles Dickens, Great Expectations, Chapter 7
My alphabet starts with this letter called yuzz. It's the letter I use to spell yuzz-a-ma-tuzz. You'll be sort of surprised what there is to be found once you go beyond 'Z' and start poking around! ~ Dr. Seuss, On Beyond Zebra
Librarians are perhaps overly given to the love of alphabetical order, and many of us have a hard time with today's casual lack of concern about whether McTavish should precede or follow Macdonald, or whether St. Boniface should interfile with Saint Boniface. We still cringe internally when we watch an analphabetic patron fumbling through a dictionary or encyclopedia. Anti-alphabeticists like Mortimer Adler have complained that resorting to the alphabet is an evasion of intellectual responsibility. In his new book, Everything is miscellaneous, David Weinberg fondly recollects Adler's pique in his description of the digitized and "miscellanized" third order of information, in which alphabetization is quickly going the way of Ptolemaic cosmography.

Everyone still likes a good list, and the fact remains that many lists are easier to use when they are alphabetized, like the phone book (despite its making a hash of initialisms), or Wikipedia's List of countries, or Google Reader's list of subscriptions. For the users of these tools it is second nature to find items according to the arbitrary order of our alphabet. del.icio.us itself recognizes this archaic institution, by default providing its users with its famous alphabetical array of tags. The mega-cool tag cloud is fundamentally alphabetical. Finding a tag is much simpler when you can do it at a glance rather than typing blindly into a search box. That is why I find so irksome the complete inability of del.icio.us to alpha sort links within tags or without. When del.icio.us was being coded it was decided that the list default would be reverse chronological order, with no alternatives allowed. It's absolutely crazy-making. Alphabetical sorting is on most users' wish lists, and it has been promised by the folks at del.icio.us. Perhaps 2008 will see the release of the new Delicious 2.0.

What to do in the meantime? I have a simple need. I want to be able to sort a list of blogs by student nurses that I have gathered under the tag blogs.nurschool. There are about 50 items that I would like to list alphabetically by blog title. A simple matter it seems, but impossible for del.icio.us. I could copy the chronological list I get when I click on the tab and do the sort manually. But that's silly. Surely there is some other way, I thought; and I set out to find it.


A Greasemonkey approach to sorting del.icio.us bookmarks: Del.icio.us alpha sort

As a user of the Firefox add-on Greasemonkey, I immediately started searching for a script that might do the job. Greasemonkey allows users to install scripts that add new functionality to web pages. (If scripts are not your thing, move on the next section.) I quickly found one called Del.icio.us alpha sort, which places a control at the top of the page permitting the user to toggle between alphabetical and chronological sorting of links — something del.icio.us programmers should have added in the first place. The problem is that it doesn't work properly. When I tried the script it would do the alphabetical sort only for one page — which works up to a point, that is, if you have 25 items or less in that tag. But, in all fairness, should the user be required continually to adjust the number of items appearing on a del.icio.us page to accommodate for this programming deficiency? The maximum number of bookmarks on one page is one hundred. What if you have more than one hundred bookmarks to be sent to a list? I quickly uninstalled Del.icio.us alpha sort without experimenting further. This script is not ready for prime time (it also slows down del.icio.us) and I don't have the hacking ability to improve on it. It really is time for del.icio.us programmers to incorporate alphabetical sorting into their code.

It occurred to me later that Del.icio.us alpha sort might conflict with Pagerization, my favourite Greasemonkey script, which turns a website's page-by-page results into an unbroken scrolling list with no annoying "next page" links needing to be clicked in order to proceed. Some of the sites that can be "pagerized" are Google (Search, Image, News, Group, Video), Yahoo, Wikipedia, YouTube, del.icio.us, Twitter, and digg. Sadly, PubMed does not allow itself to be pagerized. For my tenosynovitic forearm's sake I would never give up Pagerization. This extraordinary bit of code is worth the small effort of installing Greasemonkey. I did try Del.icio.us alpha sort with Pagerization disabled; but it still failed to alphabetize more than the first page. Having wasted an hour or two on this futile experiment, I moved on.

Turning to the del.icio.us Help pages

I went to the Developer section of del.icio.us Help. There we are promised the ability to "access data and build cool stuff." I must say, in most cases the del.icio.us help pages truly are helpful. Sure enough, under the HTML section I found something I could work with.

A simple URL with a few added "arguments" creates a reasonably attractive bulleted list in reverse chronological order of your most recent del.icio.us bookmarks. In the following simply replace USERNAME with your del.icio.us identity, and replace XXX with the number of links you want to list:

http://del.icio.us/html/USERNAME/?count=XXX&extended=body&extendeddiv=yes
&tags=no&rssbutton=no&bullet=bull

The count is limited by default to 15. To list more items add the appropriate number after "?count=".

I used these arguments to refine my results:

&extended=body : includes the full descriptive note for each bookmark
&extendeddiv=yes : starts the note on a separate line under the bookmark link &rssbutton=no : removes the default orange RSS button at the bottom of the bookmark list
&bullet=bull : adds a standard round bullet before each bookmark link (I prefer this to the del.icio.us help site's suggestion of "&bullet=raquo", which produces a right-pointing quotation mark or guillemet (»))

Using the above URL you get a result that looks like this:

BioMed Central | Abstract | 1471-2105-8-487 | Userscripts for the Life Sciences
Discusses userscripts that aggregate information from web resources. Examples of enriching web pages from other resources, and how information from web pages can be used to link to, search, and process information in other resources.
2008 Web Predictions - ReadWriteWeb
Like, yeah! "People engaged in the new web will do some really awesome stuff that we'll all be in awe of."
M A B - Mozilla Amazon Browser
Can now be run as a remote application. http://www.faser.net/mab/chrome/content/mab.xul
Partners in a pandemic - www.universityaffairs.ca
May 2005. Medical researchers from Winnipeg helped discover how the AIDS virus is transmitted in Kenya because they were in the right place at the right time.
Top 10 Medical Breakthroughs - 50 Top 10 Lists of 2007 - TIME
University of Manitoba researchers involved in the #1 medical breakthrough. Circumcized men in Africa 50% less likely to be infected by HIV.
MedlinePlus: Health Literacy
"... the ability to understand health information and to use that information to make good decisions about your health and medical care."
Show me the data -- Rossner et al. -- The Journal of Cell Biology 17 Dec 2007
Critique of impact factors. "We hope this account will convince some scientists and funding organizations to revoke their acceptance of impact factors as an accurate representation of the quality—or impact—of a paper published in a given journal."
Web 3.0 and medicine -- Giustini 335 (7633): 1273 -- BMJ
Logically, web 3.0 should bring order to the 21st century web in the same way that Dr John Shaw Billings’s Index Medicus brought order to medical research back in the 19th century.

If you want to a list of bookmarks for a particular tag, then simply add the tag name after your user name:

http://del.icio.us/html/USERNAME/TAGNAME?count=XXX
&extended=body&extendeddiv=yes&tags=no&rssbutton=no&bullet=bull


This hack allowed me to gather all 50 or so nursing school blogs together in an unalphabetized list. Not bad, but still offensive to my instinctive need for this list to be alphabetized.

No help from del.icio.us Export (but good for a complete backup)
Another way to get a list of links is the standard export procedure found in del.icio.us Settings. Unfortunately, you can only create an enormous list of all your bookmarks, and there is no option as to their order, which is reverse chronological. This feature is useful if you ever want a good backup of your bookmarks, however, or if you want to import them back into a browser (heaven forbid). Go to Settings, and click on "export/backup" under the Bookmarks heading. You are given the option of including your tags and notes. del.icio.us will generate an HTML file of all your bookmarks that you can save to your computer. Eminently simple, but frustrating for my purposes.

Finally getting an alphabetical list (but is it worth the trouble?)

The URL for producing a bulleted list was helpful, but del.icio.us provided no method for getting my list in alphabetical order. I remarked above how in our "miscellanized" world alphabetical order is terribly passé. I can only continue to demur. I live by the English alphabet, and could not tolerate the loss of the time-honoured sequence of its 26 letters. I cannot fathom why the del.icio.us designers left out the alpha sort. Of course, I can alphabetize any list manually, including the tag-delimited list that del.icio.us provides. But what if I had hundreds of items, instead of fifty? Surely there is some way out of the tedious omnium-gatherum of just-one-damn-link-after-another.
After considerable effort, here is one method I found to get a set of my del.icio.us bookmarks into a usable alphabetical list. This goes beyond the hobbled and unavailing alphabetical listings for tags allowed by the new del.icio.us Firefox extension.

In del.icio.us Help, under the section for Developers, click on API, then click on posts. This section is marked by a rather ascetic and elitist assumption that the intrepid enquirer who has ventured this far needs no further condescending explanations or instructions. We are sternly informed that del.icio.us APIs are done over https and require HTTP-Auth. Furthermore, "this document and the APIs herein are subject to change at any time." Accepting my subordinate status and having informed myself a bit better about APIs, I persisted and found something I could use.

The first https URL in the posts section allows you to "get" all the bookmarks for a certain tag. (At least I assume it gets all of them. There is another URL that also returns all your bookmarks, but which can be filtered by tag. I used both and the results were the same for my selected tag. However, each URL returns information in a slightly different order. The "get" URL works better for my purposes, which I will explain below.)

Use this URL to create an XML file for your specified tag, adding your chosen tag name after the equals sign:

https://api.del.icio.us/v1/posts/get?&tag=TAGNAME

Type the URL into your browser. After you press Enter you will be prompted to enter your del.icio.us ID and password. The next step is to save the resulting XML file to your hard disk and then import it into Excel. (I used my old home-computer version of Excel XP for this experiment, but any version of Excel will do the job.) Using the Data|Import External Data|Import Data command, I brought the contents of the XML file, correctly separated into columns for each data field, into a spreadsheet.

Once the title of each bookmark is in an Excel cell, it is a simple matter to use Excel's Sort command to alphabetize the list. Delete columns with extraneous material. I chose only three columns to use: bookmark title, URL, and accompanying note.

Highlight the data and copy it to the Clipboard. You can then paste the spreadsheet data into most word processors. In Microsoft Word use Paste Special to copy the data into a formatted table. A little more fussing will be required, but at least the list is alphabetical. The downside is that your bookmark titles are no longer hyperlinked, but have their URL hived off into a separate cell. To get anything like the bulleted list illustrated above, you must now highlight each bookmark title and manually create the link by pasting in the appropriate URL.

That seems like a lot of trouble. In fact, it's hardly worth the effort, and actually makes manual alphabetization of the HTML output start to look attractive. With all my best efforts exhausted, I found I really hadn't come very far. For all its benefits, del.icio.us makes it extremely difficult to create alphabetized link lists. If I have missed a glaringly obvious hack or a deus ex machina solution, will some kind reader let me know? Otherwise, I shall just have to wait until del.icio.us delivers on its promise to include alphabetical sorting in its long awaited new user interface.


Ten enhancements on my del.icio.us wish list

It has been four months since the new version of Delicious (finally dumping the trendy but annoying internal punctuation) was announced. Alphabetical sorting was promised and is eagerly awaited by the faithful. Here is my wish list for ten more improvements to what has become an indispensable tool. Do you have any others to add?

1. Increase the character limit on descriptive notes. They are never quite long enough to hold the text I want to include. I have to waste time trimming and editing. And fix the bugs, please. My cursor occasionally disappears in a note field.

2. Number all pages instead of only including 'earlier' and 'later', which forces us to click through every page. In the alphabetical sort, provide a clickable alphabet selection list for quick navigation.

3. Allow unfettered scrolling through all bookmarks, with no page divisions.

4. On-the-fly bundle creation and allocation. Call them categories instead. We're grown up now.

5. We should be permitted to set a permanent or session-defined defaults. Example, a setting for not sharing as well as sharing our links. Sometimes I want to bookmark a series of daily-use links that would be of no use or interest to anyone else. It's tiresome to be forced to click the do not share checkbox for each. In the same way, we should be able to set permanent or session-only default tags that are applied to each new bookmark.

6. Deleting items should be easier. Allow users to delete with only one click, or with a keyboard shortcut. (In the meantime I am using an excellent Greasemonkey script called del.icio.us delete now.) Highly recommended if you are the type who likes to clean house from time to time.

7. Importing any del.icio.us list into a spreadsheet or word processor should be simplified.

8. Allow users to set desired text, background and highlighting colours.

9. Let's see contextual search implemented in the new version. If I don't specify what I want, del.icio.us should search whatever I am currently looking at — my own bookmarks, bookmarks from my network, or all bookmarks.

10. Reduce the amount of clicking required by introducing a range of keyboard shortcuts for searching, bundle creation, tag renaming, easy deletion, etc.
Clover learnt the whole alphabet, but could not put words together. Boxer could not get beyond the letter D. He would trace out A, B, C, D, in the dust with his great hoof, and then would stand staring at the letters with his ears back, sometimes shaking his forelock, trying with all his might to remember what came next and never succeeding. On several occasions, indeed, he did learn E, F, G, H, but by the time he knew them, it was always discovered that he had forgotten A, B, C, and D. Finally he decided to be content with the first four letters, and used to write them out once or twice every day to refresh his memory. Mollie refused to learn any but the six letters which spelt her own name. She would form these very neatly out of pieces of twig, and would then decorate them with a flower or two and walk round them admiring them. None of the other animals on the farm could get further than the letter A. George Orwell, Animal farm. Chapt. 3. Penguin Books; 1968.

3 comments:

Britta said...

Thanks for posting these details about your thought processes - this is interesting and helpful for me to read as the person who wrote most of those Delicious help pages. :) Yes, built-in alphabetical sort is coming in the future - you're right that this should be easy, not multi-step hard like it is now - and we're thinking about adding improved export options too.

The new version will also have some of your other wishes: (1) 1000 characters for notes instead of the current 255 characters, (2) numbered page navigation [more like Flickr] instead of "earlier" and "later" links, and (9) contextual search.

It doesn't yet include the rest, but I can try to help explain why: (3) this could cause issues for users with very large numbers of bookmarks; (4) we've definitely been thinking about letting people make bundles on-the-fly, but we haven't figured out a reasonable user-interface for that yet; (5) we want to be careful about complicating the bookmark-saving process; (6) deleting items can't be *too* easy or people might do it accidentally; (7) yes, this is on the todo list; (8) this is a possibility for the future, but it's a lower priority than a bunch of other stuff.

Anyway, it's still useful to hear what you want for the future of Delicious even if we don't plan to implement those things exactly - every piece of feedback that goes into my brain comes out again somehow in Delicious eventually!

-Britta Gustafson, Delicious community manager intern

Wake Tech said...

"Librarians are perhaps overly given to the love of alphabetical order..."

Actually, librarians are overly given to the love of subject classification. (and catalog librarians are obsessed by it.) Alphabetical order just helps tidy the collection up after it's been sorted by Dewey or Library of Congress categories.

This actually applies to Del.icio.us bookmark management, of course. We're all becoming amateur classification specialists and learning about the inefficiencies that crop up when classification labels aren't standardized.

Thanks for your interesting post. I'm sure many of us are benefiting from your tips

Robert L.
North Carolina

Yemila said...

I'm not super tech savvy, and I may have completely misunderstood what your post was about, but I too was looking to alphabetize my del.icio.us tags in order to create a list of resources for use (althoug mine are going to be republished rss feeds on a library webpage).

Here's what I did:

Go to my del.icio.us page and click on the tag I want to make into a list (form your post:blogs.nurschool). Grab the feed url for the tag you need(either by clicking rss icon in address bar or using the bookmarks>subscribe to this page option then copying the url out of the address bar).

I am not a programmer, so I took the feed url and plugged it into a javascript converter. I used feed2js.org. Once you're at feed2js.org, click the build tab, enter the url of the feed you just grabbed from del.icio.us into the box, and click no under "show channel" option. I also typed "0" under the "show/hide item descriptions" option because I don't need them for my purposes.

At this point I clicked generate javascript because I actually need it. It seemed from your post that you don't need it. You can go straight the "preview feed" button. This will show you a hyperlinked list of all your del.icio.us urls in a pop-up window. Highlight the whole page (using ctrl+a)and paste into word.

Once in word, highlight just the urls you want alphabetized, and use the table>insert>table option to put them into a table. Use table>sort to alphabetize, and presto: an alphabetized list of links to your tagged blogs in del.icio.us.

By now, del.icio.us may have a way of alphabetizing directly I haven't picked up on. If you've found it, let me know! If not, see if this works for your purposes.