Here comes a number of tips & tricks I have found very useful when writing LaTeX documents:
Subversion has the ability to output a log file in XML format. I think it would be pretty straightforward to implement an application in Ruby (mabe with use of Amrita), that creates some nice looking statistic about the repository.
On a side note, I have a personal subversion repository that contains everything I have accomplished during my study of Software Engineering in Hagenberg. This dates back to somewhere in 2000, and so far I am at revision 3628, and the repository uses about 500MB. It is a bit strange that 5 years worth of work can fit on a single CD
SuperMemo is the only application I know of that tries to improve ones memory. The problem is that it is not free, and only works in Windows.
The idea is to write an application similar to supermemo called donofo (= do not forget), but written in a platform independent language (Ruby or XUL), and with mathematical based optimizer. Although the SuperMemo developer has done a lot of research, he seems to have not much of programming experience. The optimizer should be based on mathematical sound methods (bayesian networks?), I am pretty sure this can be done without stuff like neural networks or lots of parameters gathered through trial and error.
Python has a quite interesting programming challenge. Unfortunately it is not possible to do the challenge in any other programming language, because in the later levels it starts to depend on special libraries that are only available in Python.
The idea is to create a similar challenge that does not depend on a programming language. Ruby probably should be a very practical choice to get through all levels, but It should also be possible with Perl, Python, Java, or whatever. This would also be a very entertaining way to teach programming. It could work like a game with different episodes: string episode with 10 levels, an OOP episode, etc.