Since the only way to truly learn a programming language is to write real, useful applications in it, I need ideas for such applications, given the technologies I am trying to get used to. My current choices are:
* For Ruby on Rails, a personal accounting/budget application. Since I've given up on booking all my personal finances in detailed double-entry ledger (it takes too much time and does not create new money after all), I would still like to have an automated way to control my finances. It is boring stuff, and no chance of being a new hit in the market, but at least will be useful for myself.
* For OpenGL, I plan to write something like a crude traffic simulator, for cars or maybe for trains. Given a coordinate description of tracks or streets, plot the map and run a simulation on it. Make a railway simulator would be a bit more difficult, but much more fun for myself, since I love trains. In the other hand, in the case of a car traffic simulator, it could be fun to add scriptable driver behavior etc.
* For Cocoa and Qt, my current plan is to write a simple financial calculator, not like HP-12C, but more like this one. Once the desktop versions are working, a lot of derivatives can be made, in order to learn Cocoa on iPhone, Qt on Maemo, Mac OS X widget in Objective C, and so on.
I am sure that there are better applications, useful for many other people people besides me, waiting to be written, but I am a bit short of ideas. Anyone with good suggestions is invited to comment.