Frustrations with Civilization 5

I enjoying gaming. Recently I’ve been hooked to this particular title,

Civilization V

It’s a really fun game and a wonderful time-pass. Though, if you consider that it’s possible to spend hours (18+) just playing around, it’s probably doing too good a job of it. I was warned by friends that it would be addictive and boy-oh-boy were they right!

In fact, I would gladly recommend it to any of my other friends if it weren’t for one thing – the game CRASHES!! Big time! One of the highlights of the game is that you get really, really involved with it. If you aren’t familiar, it’s about global domination. What makes Civ5 unique, is that it doesn’t necessarily involve conquest. I can spend hours thinking of diplomatic relations with other empires and all of a sudden – my system would CRASH!

This is UNFORGIVABLE. I paid good money for this game. Sure, there might be limitations to running it with all the bells and whistles, but on an intel i7 with an nvidia 540M, I fully expect to play the game without any hiccups at the lowest setting! And I can’t. It’s just so dis-connecting to be thrown out of the game when you’ve sunk a few good hours into your empire. I’ve waited for the latest patches and what-not, but as of now, I’m throwing in the towel. Perhaps I’ll try again after the next patch. Who know? But for the time being I think I’ll jump back to an old STABLE friend,

Civilization 4

It’s really sad that it came to this. Fraxis, I expect you to fix this mess.

internship interview – mistaken impression

Very recently I was attending an internship interview for a well-established company. I have good skills and was reflected on my resume, so things should go favorably, right? Well, it turned out that I wasn’t selected.

Why? Officially, I guess I’ll never know, but post-fact and having spent a lot of time thinking over the matter, I feel it was because I just wasn’t the kind of person they were looking for. My resume states that I have 3-4 years of experience in the embedded space with C programming. It’s a fine point, but one of the reasons I joined up my Master’s course was because I wanted to get OUT of that line of work. Don’t get me wrong, I love coding. But, in the embedded space, tools, most notably debuggers aren’t as robust as they are in the upper levels, aka application space and I wanted to move there. In fact, my more recent dabbling in C# reflects that.

That aside, there is one part of my interview performance that I’m personally disappointed with. As a software programmer, I really hate the idea of blind coding. More often than not, it almost always produces one of the most inefficient solutions you can think of and even worse, it will sometimes push you into a niche of inefficiency as you would be really reluctant to change your code.

I was nervous during the 3rd round of interview. That and I was hungry (I missed both breakfast AND lunch!). The result, was that I wasn’t thinking like my usual self. It was a very technical round and I did answer some of the questions my interviewer asked. There were others I had no idea about. Towards the end, he started asking me about problems involving pointers. I like to blame my stomach, but what happened was that I bungled that part. Then he started to ask me to try and write a solution. I, in a moment of lapse, blindly started writing some lines of code, without really thinking about what I was doing. A few moments later, my interviewer commented “… you start off by writing code without analysis? …”.

I was flabbergasted. The very thing I keep telling others NOT to do and here I go, getting caught red-handed! What caused me to do such a thing? Is it some innate part of me from my early school-days that makes me want to start off with code that I forget design?

I can speculate, but I’m not sure if I’ll ever know the answer. What I do know, is that I need more practice in my programming discipline. Badly.

Thank God for version control!

I wonder how many of you are familiar with version control software? If you are a programmer or coder in any capacity, then it should be a vital part of your workflow. When I used to work, we used SVN. Since I joined my Master’s course, I’ve missed it. Fortunately, in my first semester, there wasn’t too much coding required, so I got on by.

But, I still missed Subversion.

Recently, my professors have been throwing coding assignments to us. Personally, I enjoy them. I LOVE coding. But to do so without any kind of version control system, well, it was a deterrent.

Why not SVN? Well, it requires a server somewhere and as a student, I just don’t have those kinds of facilities any more. 😦 Sure, we have systems in the college, but when I’m in my room, there’s no way to remotely access those servers (assuming that they would permit external access in the first place).

Then I stumbled across Mercurial. It fit my needs perfectly! Just have a look at this history graph,

Mercurial in action

I was doing some experiments, when I realized that my current code structure was wrong. So, I just reverted back to an earlier state and continued coding from there! See those branches up there? THAT is the power of having a Version Control Software!