Nightmare scenarios, universal parables, and debugging

Posted on Jul 18, 2010 ramblings programming

Do you ever get the feeling that you are a subject in some sort of roundabout moralistic parable that is designed to encourage humility and patience in others? For me the most probable cause for this mindset is when a seemingly reasonable task becomes unreasonably complicated and that in finding a solution for the said task I have forced to become a more rounded, knowledgeable, and enlightened individual. Often in these cases, the cause of the problems is due to someone else’s laziness which further enforces the feeling that the moral of the story is that in a greater cosmic sense, slacking off will only create more work for others, in some form or another, at some point in the future.

Changing tack slightly, I find the worst thing about developing a large piece of software is the nagging feeling that somewhere in the core foundation of your application is a subtle design problem that is going unnoticed (Be it a performance issue, or a platform issue, or simply an incorrect assumption as to what is and isn’t possible) and that at some point in the future it is going to rear its head as a unsolvable problem that is going to render the entire application as a worthless piece of junk. Its more an unfounded nightmare scenario because thinking rationally, I can quite quickly evaluate the probability of this happening as remote. The reason being that up until now I have never experienced such an issue, and in the end every bug I’ve ever had in software was solvable or could be satisfactorily worked around. However, just because something hasn’t happened yet doesn’t mean that it can’t happen.

Now to subtly link the two previous ideas together in a thrilling conclusion filled with sage wisdom, I get onto the problem I had today. I was finding that my game engine was taking over 30 seconds to load when using the Visual Studio 2008 debugger. Of course this made debugging an incredibly frustrating exercise in tedium, and because this is a project that I work on haphazardly in my spare time I wasn’t sure it this was a new issue, or if the engine had simply been getting slower and slower and I had just never noticed. This was this as an incarnation of the nightmare scenario, was my game engine just a slow and bloated piece of shit? Well thankfully no (not yet at least anyway). It turns out that having a bunch of break points set (possibly old invalid ones etc…) causes visual studio to hang for an arbitrarily long time until it gets its shit together and actually loads the program for debugging. Why it does this… no idea (though it reeks of slack coding), but the solution turned out to be simple. Click Debug->Clear all breakpoints and voila, the engine loads up in less than a second.

The ironic thing is is that in wrapping both the problem and solution for this issue in a pile of worthless prose, I have effectively made it much harder for anyone else who is looking for a simple solution to find it, and hence I am perpetuating the very feelings of frustration I was complaining about earlier. A sobering thought indeed, but for better or worse its written now, what would be the point of deleting it?

Bus ride

Posted on May 12, 2010

Public transport provides a unique and mostly missed opportunity to engage in meditative contemplation and compile strange internal narratives. Obviously some trips are more interesting than others, and trips on dark rainy nights are the most interesting of all.

This trip starts with one of those oddly insignificant and yet poignant moments, a goodbye to a pre-friend. When I say a pre-friend, I mean someone who you meet during a social activity or obligation where you don’t really know anyone else, someone who after said activity you are unlikely to ever see again. During this brief time you get just enough time to get past some of the initial formalities of talking to someone, the who are you’s, what do you do’s etc. and strike up somewhat of a pre-friendship, have a few laughs before going your separate ways shortly after. Its more than a quick chat to a stranger, but its not enough to register as anything more significant. Now goodbyes are always anticlimactic, but these are particularly so. You exchange a few pleasantries and have one of those awkward well, this is it, see you around… kind of moments, and its all over.

Its an interesting microcosm of a real friendship, but the goodbye has quite a different feeling. The emotions of a real goodbye are much stronger and seem to weigh the experience down. The feeling of these goodbyes leaves one feeling surrounded by a vague halo of positivity, that unmistakable feeling that the world is a pretty good place.

Then you don your headphones and hit the play button, isolating yourself from the sounds of the real world, isolating that feeling - that moment in time for a little while longer. You ride slowly through the neon rain washed streets and let your thoughts wander with the mood of your music, music which you’ve heard before but now seems to sound a little different. Like all things, the feeling will eventually fade away, but its imprint will remain in the music, and in future, every time you listen to it you’ll always be taken back to that unique place and time.

Catastrophe and the cure

Posted on May 11, 2010

Sometimes it happens that the universe gives you a heads up before it decides to fuck with your proverbial shit. Case in point, a few weeks ago I decided to check up this website to make sure everything is still ticking along, but as happens from time to time code atrophies and the home page was displaying my unhelpfully worded error page. Nothing major that an app pool recycle didn’t fix, but it got me to thinking… I really have no idea when my sites are up or down, and that perhaps this was a bad thing.

So naively I thought there would be an abundance of simple command line apps that poll a website and send an email if anything is amiss, but much to my chagrin there was nothing but cheap crapware and online subscription garbage, so I had to go DIY on the issue. The result can be found here. It runs on my home serve and polls my websites every 15 minutes or so and sends out a panic email if anything is wrong (i.e a non 200 http response, the presence of unexpected content, or required content being missing). Its configurable etc. but its pretty raw and simple as I didn’t want to spend a whole lot of time on it.

Then as fortune would have it, one day after setting this up my webhost experienced a major database issue and the site went offline, and lo! I got an email telling me such, so that I could write emails of self righteous fury and indignation.

Better living through statistics

Posted on Jan 31, 2010

When working on this new site I wanted to drop IE 6 support, mainly because I couldn’t be bothered with all the extra work it was going to entail. But before I decided to drop support, I decided I’d have a look at my old sites visitor stats just to be sure that it was a small enough percentage of my visitors that it wouldn’t be a big deal.

Not surprisingly I found that IE 6 users accounted for only around 4% of my sites total page views, also unsurprisingly firefox was the most popular browser for visitors of my site at around 28% of page views. However what did surprise me was that the second most popular browser to my site was Opera mini with over 20% of page views. Now in hindsight this makes sense as most of this sites traffic comes from people downloading uTorrent mobile, a j2me mobile phone application, however I had never really thought about optimizing my site for mobile users, or really even testing that the site looked okay in mobile browsers. So with this knowledge in hand I decided to use the time and effort that I would have had to spend on hacking in support for IE 6, to make some of the pages on my site more mobile friendly. Now if you visit the apps pages on this site using a mobile device, you will see a skin that is more optimized for small screens ;)

Walden 2.0

Posted on Jan 30, 2010 ramblings

In the classic novel ‘Walden’, Henry David Thoreau went to live by himself for over 2 years in a hut near the secluded Walden pond. He did this, not to live in total isolation, but rather to live at arms length from society in a simple largely self sufficient manner, in order that he could look upon his own life and the lives of others with a greater objectivity and understanding, or as he more poetically put it.

> “I went to the woods because I wished to live deliberately, to front only the essential facts of life, and see if I could not learn what it had to teach, and not, when I came to die, discover that I had not lived.”  

Now in 1845 it was hard enough for him to achieve this goal, and now it is almost certainly impossible in 2010 to live in isolation, at least in the traditional sense. But what of the the meta lives that we all live out in various online communities?

In the beginning, the web was intended to be a platform where most people would self host a (largely static) website, over time this has evolved (particularly with the advent of web 2.0) and now we have a situation where the vast majority of internet users communicate through a handful of large sites run by a third party (the google, facebook, myspace, digg, twitter etc.).

I see a definite parallel between this loss of independence online and the loss of independence bought about by modern society. Now there are a number of good and valid reasons for this happening, the main one being that over time people tend to specialize as it makes society more efficient, and we resort to trade to fulfill the needs which we don’t have the skills to do ourselves.

It makes sense that most non-technical people wouldn’t develop or host their own personal site/forum/blog, just as I wouldn’t consider trying to generate my own electricity or grow my own food (well I have considered it… but I’m probably not going to actually do it). However as someone who does have the technical knowhow, it begs an interesting question: Should I bother with the hassle, or should I just sign up to facebook?

It’s not that I have anything against facebook or other web 2.0 services, but like Thoreau before he went to the woods, I’m not really sure whether this loss of independence (and by proxy loss of privacy) is a good or bad thing, but I’m willing to stay out in the wilderness for a while longer in order to make up my mind.

Latest tweet