OK, since f2o.org is being weird, I might as well post here instead of on the blog..
001. Hashbrowns 2.0, codename: Potato Juice
Made hashbrowns for the 2nd time ever, with much better results.. must've been the better recipes and tips I found this time:
010. Devhelp
Got annoyed by libxml2's online docs (though the search engine is useful), and figured there should be a way of using
Devhelp to view them.. Fortunately, 1) the same online docs (mostly?) are available as the libxml2-doc Debian package, 2) Devhelp comes with tools to help create devhelp books (which are basically XML indexes to HTML docs).
So, to get libxml2 docs in devhelp, run /usr/share/doc/devhelp/tools/html2funcs.py on the docs directory (e.g. /usr/share/doc/libxml2-doc/ on Debian). This generates an index file, which indexes all the functions referenced in the HTML docs. Whack all that into a root node, an example of which you might find in other places, such as /usr/share/gtk-doc/html/gtk/gtk.devhelp.gz. You can optionally add a nice 'table of contents' using the node, with appropriate sections. For an example of the final product, see
libxml2.devhelp.gz.
Once the magic devhelp file is done, shove it somewhere appropriate, like /usr/share/doc/libxml2-doc/libxml2/ and set the DEVHELP_SEARCH_PATH env variable. (Read on for a better explanation of the search path)
Hey presto, I was browsing libxml2 API docs and example code in devhelp.. so I figured, why not try it with the XMMS2 docs? Unfortunately, html2funcs.py doesn't like Doxygen HTML files - or maybe it likes them too much, since it appears to index every hyperlink present.. To do the job, we have to resort to trustly old Doxygen XML data. Some mysterious, yet awesome, hacker named 'Roel' figured this part of the puzzle
way back in 2003 - an XSL stylesheet! A few hacks and fixes later,
doxy2devhelp.xsl was born. To figure out how to use it, check the
README which explains a bit more about the devhelp search path and so on.. One 'bug' about the stylesheet, however, is that the resulting book has multiple references to functions - once in the C file, once in the header file and once on the module description page.. however only one of the references takes you to the right description! Anyway, for an example xmms2 devhelp book, see
xmms2.devhelp.gz.
011.
Visiblob Whatah decided to evolve his crazy 'irc visualisation' widget into something more general.. and turned it into a recently-played songs visualiser! The
description reads:
"Visiblob is a new way of representing queues. The basic idea is that all data in the queue can be represented as 'blobs' on a main circle. As each blob takes up more of the queue, its size grows. The more recently a blob was placed into the queue, the closer to the center it will appear."
I was struck by the sheer simplicity of the MPD version of the visualiser, so I quickly hacked a version it to use XMMS2. You can
see the result here:
http://bur.st/~eleusis/visiblob/.