As I mentioned in my previous post, I started a new learning project where I want to try out my hand at web development.

I completely fell in love with Django as it is very easy, very Pythonic and very powerful web framework. In no time I had a simple web application running, where I could keep track of personnel, their salaries, vehicles and such. After my colleague showed some simple tricks with JavaScript that I could use to make the site more informative, I decided that it was time to learn more about client side programming too.

I knew some buzzwords and looked into jQuery, Bootstrap and AngularJS in quick pace. In the end I ended up choosing a less mature, but somewhat more interesting tool: Dart. While Dart is less mature than JavaScript and has some wrinkles here and there, it seemed good enough for my purposes. I didn’t know anything about client side programming (except that it has something to do with manipulating the page content on the fly), but searching for tools to install and writing a simple page that queries RESTful service to load data from database took me only 2 hours.

If you’re interested seeing some Dart code, have a look at unexpected-raptor repository.

I have been working with Dart couple of evenings now and somewhat starting to get a feel of the language. Being able to mostly ignore types is nice and the ability to enforce typing where it matters is nifty. It’s like having the best of both worlds without all the other cruft. Futures are interesting concept and easy enough to use.

So far I have been using Dart only on the client-side and most likely I won’t be using it on the server-side anytime soon (I have perfectly well working Django application there after all).

New learning project

I learn by doing and I have never really learned anything about web development. So in order to fix that, I started a new hobby project (as if I didn’t have enough of them already) unexpected-raptor.

Unexpected-raptor is a web site written with Python and Django. The goal is to write a tool that helps me to manage our group’s BattleTech games. BattleTech is really great and fun game, but running a full mercenary company by hand can get a bit tedious because of all the calculations that need to be taken care of in-between of games.

Since writing a straight conversion of the rules into digital form would be breaching the IP rights of the respective owners (I seem to recall that Microsoft actually owns the rights for digital games), I’m writing a more general system that can be configured to take care of BattleTech too.

This is not the first of it’s kind, there exists multiple products that do various parts of the process. But since I’m doing this to learn web development and not to game (although that’s a nice bonus), I’ll be rolling out yet-another-tool.