Learning C#

After my job on Sonja at Raytheon ended in late April I continued to be a Paragon Dynamics employee, using their “bench” program. No one was really sure what I was supposed to do while on the “bench”, but I had to come in to their office each day and put in 8 hours of desk time. Some of the time was spent helping Paragon with proposals, computer maintenance and even an office move. But most of the time was my own to fill and I used it to learn C#.

I think of the language as a mix between C++ and Java. It is managed like Java, and has a large set of convenience classes (.NET), but the feel of the language is closer to C++. The Visual Studio IDE is a beautiful piece of software and makes putting together graphical applications simple.

To really learn something, I just have to start using it, so I have written some small applications. A couple of them are good enough to make public, and a couple aren’t.

I re-wrote the Media Database which tracks your books and DVDs using Amazon Web Services to download book/DCD data. It now uses C# instead of Java, so it is faster. And it uses SQLite to store the collection instead of a bunch of little files.

I wrote a Gallery Builder for creating a web page out of a set of digital photos.

I wrote a program to convert an image (jpg, gif, png, etc) into an icon.

And last, and least, I wrote a color picker app that bring up a color dialog and then lists the RGB/HSB values, the web hex code, and the color name.

Thanks to Paragon Dynamics for continuing to pay me while I learned C#.

Land Bridges complete

William and I have completed the Land Bridges program. After playing a similar game, we were inspired to make the game with an AI. We imagined that the AI would be fairly easy to write and could play so much better than humans.

William wrote the interface to the game and created all the art. I wrote a back-end model of the game and the AI. The front-end of the game is written in Torque, a C++ game engine.

The AI was much harder than I expected it to be. The number of possible moves for the AI to consider was much larger than I initially thought, and it became impossible for the computer to “see” more than a couple moves into the future without trimming down the move tree.