Saturday, August 6, 2011

BookmarkBuckets

Over the years, I have accumulated a fair number of website URLs. In one form or another, I've kept links to music videos, webcomics, essays, computational complexity blogs, artwork, and anything else that I found to be worth saving. Some of these links I organized in a OneNote web app on SkyDrive (so that it could easily be accessed from many computers). However, I wanted my own system, so that I could easily include screenshots of each page (a crucial feature for me - even if the thumbnail is too small to see content, just the color scheme can sometimes trigger one's memory of the website).

My requirements:
-Thumbnail screenshots of the webpage
-Easy to organize bookmarks into folders, not just tags
-Ability to export bookmarks and titles to simple plain-text
-Ability to sync bookmarks between machines
-Quickly navigate, rename, open, delete

My first thought was to create some non-trivial web application, maybe with some new UI concepts to browse the data. I could use a service like thumbalizr to get thumbnail. However, as Larry Wall says, for a programmer, laziness is a virtue, and I didn't want to spend very much time on what would probably be a program only I cared about. (There being many existing apps like readitlater, etc).

Then came the idea.

I will use metadata embedded in a normal .jpg image as my file format, and organize the bookmarks as normal files in Windows Explorer! Each bookmark is represented by a .jpg image that is a screenshot of the website. The name of the file is the name of the site. The url is stored in exif metadata within the image, a standard format that can be read by many programs. Now 90% of the work is done for me - navigating, renaming, moving into folders. Syncing between machines can be done with Dropbox or Skydrive. Exporting to plain text can be done with a simple Python script. To open in a webpage, I drag the .jpg into the "bookmarkbuckets" window and the url will open in one's default browser.


1) Start with a plain text file with urls and titles on alternating lines, or a folder of .url files.
2) A short lnzscript file runs which opens each url in a browser and takes a screenshot as a .jpg image.
3) Bookmark buckets modifies the .jpg image to add the URL in exif data. It also adds the title.
Now, these .jpg files are all are needed. One can rename and categorize as needed.
To open the corresponding webpage, drag the .jpg and drop it into the "bookmarkbuckets" window.
(Bookmark buckets can also export all links back to a tab-delimited file).

It's worked well for me. I'll release to the public under a GPL license in the future.



Postscript:
It seems to me that there are (or were) 3 usages of bookmarks:
1) a shortcut to a commonly accessed page
2) a way to remember a less-commonly accessed page
3) a way to put aside a webpage in order to return to it later
(I made this list in 2007)
I note that these have changed over the past few years:
Shortcuts like the awesome bar, and Google instant have all but eliminated the need for 1.
Apps like instapaper and readitlater address 3.
I'll try to make Bookmarkbuckets effective for 2.

No comments: