Icons have a long history running thru hobo marks, trademarks, and of course the icons seen in Xerox, Lisa, and Mac software. The image at right is from a beautiful collection of icons drawn by Gerd Arntz, though he adopted the term isotypes (International System of Typographic Picture Education) for his. There is an venerable collection of tiny icons, picons, at the university of Indiana which were collected from contributions and, I assume, the x-face mime headers in usenet postings. For example here is the one I used for years. That collection is interesting since it includes icons for objects other than people, including websites. Favicons might have leveraged picons. But Microsoft, what can you do?
There are some fun hacks to generate arbitrary icons for a object; these mostly work by computing some value based on the object’s description (a hash say) and then using the digits you get to guide the generation of a drawing. For example this number a81e249865bc3d694fd0ab99e6e69f453213967e denotes a body of code stored in a repository. We can map that into assorted icons as so:
Those examples are a wavatar, an identicon, a monsterid, a barcode, and a qr-code respectively, and if you poke around it’s not hard to find code and webservices that will generate these for you.
You can use these to put eye candy all over you user interface. You could give every blog posting a icon, every blog, every user, every paragraph… For example, it would be nice if the git browsers showed one of these along with the harder to recognize hash codes. Obviously there is lots of fun to be had inventing additional icon generators. For example it would be cool to have one that uses one of those plant growing algorithms; that could then be used to create a series of icons effected by the deltas done to document or source code repository. You could pluck your object icons from a large collection of icons. There are quite a few large public collections out there. You could also pluck random bits out of larger photos or illustrations.
Icons are just another kind of metadata and there are some fun things that could be done, say with distributed hash tables, to create global repositories for iconic representations for URI. Managing the rights to set these would be entertaining.