Shoes is a tiny but highly effective graphical user-interface library for Ruby, written by a person who calls himself "why the lucky stiff" (yep, I know...) which generates cross-platform programs that can be run under Windows, Mac OS X or Linux. Its presentation is highly eccentric and its documentation unconventional and not easy to use. Programming in Shoes is easy though once the penny has dropped about how it works (if it ever does). Shoes employs a page metaphor similar to that of HTML, in which content added to a page just flows automatically downwards. Actually Shoes modifies this metaphor slightly by providing two types of container structure called Stacks (which range objects vertically) and Flows (which range multiple Stacks horizontally) into which you place buttons, text boxes and other interface objects. Nevertheless it differs greatly from ordinary GUI programming in that there's no dragging-and-dropping of components into a workspace, no XY coordinate positioning or dealing explicitly with windows. I've taken a number of tools that I'd written in Ruby for command-line use - including an equation solver, a matrix calculator and a tool for comparing file contents - and given them GUIs using Shoes. The source for four of them is here for download via the links at the right: to see them working you'll need to install Shoes, the Windows version of which is attached to this page below. Get Mac and Linux versions from the Shoes website.