I have been trying to come up with side programming project for my “free time” this summer. I have a lot of things that I want to learn how to do and experiment with and I know the best way to learn anything is just start messing around with it to get it working. I tried to come up short list of the things that I really want to learn because they are holding me back.

  • Webservices – I have been looking into this a lot recently because a lot of website’s now have a webservice that allows for excellent access to your data. I have come up with a couple projects (in my head) that would tie into a couple webservices that already exists. I think that in the future this is going to be something that will really be used by businesses.
  • TinyXML – I have wanted to learn how to use TinyXML and I have actually started using it in a project at work. I think this is a really useful way to quickly pass information around. TinyXML has advantages over some other XML parsers because of it’s small size and zlib licence. I can use TinyXML to parse the output from a webservice without adding XML paring to my own program.
  • cURLcURL is another open source project that allows programs to access resources via HTTP. I was going to use this to send the XML files generated by TinyXML to the webservice. I’m still looking at this but it’s really neat.
  • SQLite - On FLOSS Weekly #26 Randall and Leo talked with the the developer of SQLite. Basically, it’s another small open source program that basically acts like an embedded SQL server. It’s used on most embedded devices like cell phones (including the iPhone and iPod Touch) because it is so small and efficient.
  • GTK+ – Whatever I develop from now on is going to be cross platform. I’m stuck with Windows on my tablet for right now but I still want to develop and work on my desktop. GTK+ seems like it is supported on most OSes (including the OpenMoko phones). The other option is I could implement my own GUI using SDL (which I may actually do if I’m really feeling spry).
  • Reading Binary Files – We really don’t go over how to read binary files in school. I realized that although we highly use text files in my classes I don’t think I have ever read a binary file outside of the small ID3 tag reading program. I realized a couple months ago that this is really hurting me. I just need to find a couple resources online to learn how to actually read the binary files. :-)

So at this point my possible projects are:

  1. An online lifestreaming application. I really want a way to display what I do on the web from all of my various sites (Digg, Facebook, Flickr, Twitter, etc). I have a couple ideas that I think could really improve the existing services.
  2. A photo organizer. I want to have an Aperture like application that works on Linux and Windows. Something that can easily sort and organize all the pictures that I take while allowing for a quick way to upload the images to Flickr like services.
  3. A class organization program. I have been messing around with this for a while and I’m on my second version of doing this. I started out with a website but then when I didn’t have web access I could access the information. Currently, I have a desktop application that doesn’t allow me to see the information anywhere except for my laptop. Now I know that ideally I need both a website and a desktop application. With this I will need to implement both the webservice and the desktop application though.

Anybody have any input?