Learning New Languages

I haven’t done any personal projects in a while. Trying (again) to learn Spanish and also going through the process of trying to throw out or sell as much stuff (books, CDs, marbles, clothes, old uni notes, hard drive content; you name it) as possible, strangely takes a lot of time away from anything.

There are two projects I really want to do. One is a game project that I started a few months ago and involves Unity3D (finally) and Open Street Maps data, the other is some kind of web app using the latest web technologies out there; it could be JQuery, GoLang, node.js or AngularJS. For a long time I’ve always wanted to do a music related web based app, but perhaps it would be best to merge this game idea into the web app. Either way, there’s stuff to learn.

My day job is with C++ and that language is old. It takes a long time to do anything and to do anything safely (i.e. bug free). Combine that with having to work on an old code base (5+ years old) that has had a 50+ plus devs working on it who having various levels of ‘giving a shit’ and you can imagine it not being very fun to work on. There has not been a test case culture so there’s no way of knowing if your new piece of code is going to break something and the version of Qt that we’re using is too old to take advantage of the new UI templating and the tests that go with it.

It’s not so much fun and is the reason why I try and placate myself by making personal projects (if I can dare to look at a screen after a day of work).

The web dev world fascinates me. They make pretty things and always seem to be on the bleeding edge of technology. It all seems more modular and giving users a new version is just a few scripts away. You don’t see that much is the C++ world, especially with embedded. So this is why I’ve been meaning to look into these web things and try the modern approaches to ‘making shit happen’.

I started with node.js and made some callbacks happen. That was interesting; I hadn’t done javascript in ages. Then I started with GoLang and made a parser for a flat database file (from some music app). That was certainly different. I liked how the character encoding is built into the language but how the language is structured is pretty strict, which is strange to me.

I played with some jquery at the fantastic Try JQuery website and then realised later that it’s more suited to web sites, rather than web apps. Oh well, so I’m now in the process of working my way through the AngularJS ebook. As soon as I read about the $emit and $broadcast event propagations, I can finally articulate why reading this stuff is such a great idea. Qt uses signals and slots and I’ve been involved in using a project that uses global broadcasts of messages across threads. Now it’s an opportunity to see how something is ‘the same, yet different’. Will AngularJS provide a better implementation for passing messages and data about?

If you don’t know about it already, Packt Publishing is a fantastic source of reasonably inexpensive computing related ebooks (or published copies if you so wish). If throwing away so much of my stuff has taught me anything, is that books = clutter. I wish I could just digitise the lot because they take a lot of space. I have 3 boxes of sheet music filling up a cupboard! It would be great if all that was digitised, although, a few of those books almost seem like collectors items. I love text books (especially ones with a decent index), but I just can’t see me using that Artificial Intelligence: A Modern Approach, second edition by Russell and Norvig any time soon. (Hey look, I just found a scanned version from a university site)

Anyway, Packt just did an awesome $5 ebook sales so I got an AngularJS, Unity Shaders and a Unity Multiplayer ebook. Sweet.

So now it’s time to finish this brain dump post and get back to the coding.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s