Writing GUIs was never my forte and AFAIR the only "graphical" thing I've ever made (that I was actually proud of) was the user interface for a "pronounceable password generator". That was back in the college (1992?) where the assignment had been to create a password management system that would reduce the probability of having the users picking up bad password. Most students formed teams and build complex systems with Windows GUIs and dictionaries and rules to check password strength, and databases to record the passwords in use, so that you wouldn't choose it twice and stuff like that.

 

Being lazy to write any sort of persistence logic or complex GUI, I followed a different path. I worked on a algorithm that would produce completely random 10 characters words that would be nevertheless pronounceable (in English), so that you could actually memorize them. That resulted in about a dozen billion combinations of letters which was quite ok, but the fun stuff was that the system didn't have to keep any record at all about your choice (that would make the whole system less secure anyway) and the GUI collapsed to a single page with a text window in the middle. By pressing <space> the password generator was activated and passwords started rolling in that window at high speed (like symbols would roll in a slot machine). Pressing <space> a second time would stop that and the last ten password would show on the screen. You would start the engine again, until you had found a password that made your fancy. <esc> stopped the program and cleared the screen :)

 

That was coded in C, with the only non-standard C library call the gotoxy(int x, int y) from the Borland library. My solution to the problem was stupid enough to have a good chance of being useful and I got the 2nd best grade with a fraction of the code the other teams wrote. Most importantly I completely avoided having to learn Windows GUI programming :)

 

Now why I'm saying all this? While looking into making available through the jmx-console the memory pool information provided by the MemoryPoolMXBeans introduced in JDK5, I came across this text diagram that explains what the various memory pool metrics mean, in particular init, used, committed and max. The simple text diagram was so much nicer than the text explanation that I thought I should give it a try; for old time's sake :)

 

You can see the result here.

 

Text Rulez! :)

 

dimitris@jboss