Archive for the ‘Software Development’ Category

Oh no you ditn’t

Tuesday, June 9th, 2009

There is nothing worse than trying to surf the web and being bombarded with adverts. Thankfully, I use AdBlock Plus with Firefox to prevent such problems, but when testing the full release version of Safari 4.0 I discovered a few things:

  1. That the growlmail plugin still doesn’t play nice with Safari 4.0.
  2. That Apple saw sense and got rid of the tab-bar-at-the-top-of-the-window-ness that I found so disturbing.
  3. That one of the sites that I frequent fairly regularly was whoring itself out for a few extra bucks. Disgusting.

Close, but no cupcake

Tuesday, June 2nd, 2009

I was quite surprised to discover that Android, the mobile device OS created by Google and now developed by the Open Handset Alliance, isn’t any of the things that I thought it was. Somehow, I had managed to convince myself that Android was a Linux based OS, which it isn’t, it utilizes the Linux kernel, but that’s it. In fact, it’s lack of support for the standard Linux libraries makes it pretty much impossible to recycle any existing Linux apps or libraries for use on it. I also thought that Android provided full support for Java, but it doesn’t, for some strange reason, Android doesn’t use established Java platforms like SE and ME, it just uses the Java syntax. Disheartened, I sought solace in the fact that Android was at least fully open source, so it would still have the full support of the open source community, even if life was more difficult without Linux and Java. I was wrong again, parts of the SDK are closed source. Maybe so, but at least Google can put their weight behind making sure that the end user can use their Android running device in whatever manner they choose (think tethering)… Oh this is just getting stupid, how can the Android license be so open that it allows third party providers to close it!?!

<sarcasm>Yep, I can really see the advantage of plumping for Google and Android over Apple and iPhone OS 3.0.</sarcasm>

@Mail: Sanitizing data inputs

Monday, June 1st, 2009

If you use @Mail and have experienced an issue where you can see from the folder manager that some of your folders have email in, but you can’t actually see the email when you select the folder (this will make sense to anyone who *has* experienced the problem), then you need to be aware of the fact that certain characters in the email content can break the XML output that the advanced view uses: switch to the basic or ajax view and your problem will disappear.

Reminds me of little Bobby Tables

WordPress notification emails (nom nom nom)

Monday, June 1st, 2009

If you are WordPress powered then you will be familiar with the notification emails that WP likes to send out. I completely failed to notice that I wasn’t receiving any of the afore mentioned emails when I set this blog up, indeed it was only when one of my readers (hi Chris) commented on my tardiness in moderating his comment, that I became aware of the problem. There are lots of people out there experiencing exactly the same symptom, and many more who will happily diagnose the condition and prescribe a multitude of PHP hacks and/or plugins to correct it, but do yourself a favour and try setting up an email address to match your blog first, e.g. wordpress@yourdomain.com. This fixed my problem, which stemmed from the fact that a new spam filter had been installed by my host as part of a service upgrade. The new spam filter is so voracious that it devours even slightly meaty content and apparently not having a valid from address is the email equivalent of Quorn, not really meat, but close enough to fool most people.

The List (I’m back bitch)

Wednesday, May 27th, 2009

That’s right, the blog that shudders at the thought of conformity is back and ready to take aim on, well, everything. My enforced absence from the blogosphere lasted only about a month, but lots of stuff sparked my interest in this time and so I ended up working on several posts simultaneously and so without further ado, I bring you “The List”. “What’s the list?” I hear you ask, well I’ll just starting counting things off of it and I’ll let you figure it out.

  1. You know those adverts for HD content on Sky, one has Wayne Rooney in, well if you don’t have a Sky HD box then you haven’t seen it in HD. And yes fuckwit, even if you’ve got an HD tele, that means you.
  2. Between the Lord’s selling their votes to the highest bidder, through the complete ineptitude of the Speaker and on to the MPs greedily playing the expenses system for everything they can get. You all suck and you all have to go. And before anyone suggests that a General Election should be postponed until after the investigation into expenses has been concluded, I’d like to add that even if an election is called tomorrow an investigation should still be performed and anyone found to have stolen money from the tax payer should be prosecuted, regardless of whether they have paid the money back. Floating duck island my arse. None of you are sorry for what you did, you’re just sorry you got caught.
  3. I know she’s covered by the previous item, but she needs a special mention. Did anyone really need any additional reasons to dislike Hazel Blears? Can everyone say tax fraud?
  4. I’ve been on a bit of a binge recently, I’ve been consuming books about software development, and in particular C++ software development, at quite a rate and Scott Meyers’ books were recommended by quite a collection of people (a hashmap?). A lot of what I’ve read so far makes perfect sense; I’ve come across lots of items that have made me cringe when thinking about my own code and plan to do some serious refactoring because of this, but two things (so far) have struck me as really wrong: variables with names like ‘a’ (sure you can get away with ‘i’ or ‘it’ in a loop, but how does naming a variable ‘a’ help anybody) and splitting the contents of header files into two separate header files, one for declarations and one for definitions (just no). Expect further posts on this subject.
  5. Did you see last weeks edition of Click, it was a Windows 7 special? First came the Super Bar, then came the new improved Live Search and finally multitouch, or the Dock, Spotlight and erm, multitouch as they are known to OS X users. So not that ground breaking then, especially as the only laptop that the BBC could find that supported multitouch was a Mac. You just know that these features won’t work as well in Windows 7 as they do in OS X and for that reason Windows 7 is on/in the list, well that and the stupid Window shaking thing – see what happens when Micro$oft try to think like Apple.
  6. I tried to find out how my attempts to repay my student loan were going this week, but unfortunately they only have records for up to March 2008. Fine, Focus RS it is then.
  7. E Stan Kroenke, the owner of the Denver Nuggets, decided that his team wasn’t going to do it in the playoffs and so booked the WWE to perform in his arena this past Monday night. Unfortunately for Enos, the Nuggets did make it to the playoffs. Uh oh, double booking. No biggie, just turf the WWE out, to hell with the fans. Douchebag (great word).

Like I said, I’m back.

I hate Josh, but I hate his boss more!

Monday, March 16th, 2009

I hate Josh. No not my little brother, I mean the “quirky” software developer described in Eric Spiegel’s harrowing tale of a borderline autistic douchebag developer that he had the misfortune to happen across.

Let me say right off the bat, that if I write something in five lines of code that is easily understandable and somebody else writes the same piece of code in one line, but it takes half an hour to dissect and understand, then that person is not a coding genius. I do genuinely believe that code can and should be largely self documenting, but just because you say it is, doesn’t make it so. The ability to write (hack together) obfuscated code is not one that I seek, I am after easily understandable, predictable, maintainable code and I would hope that you are too. For me then, the most poignant thing about Eric Spiegel’s article is not the fact that people like Josh exist, but the fact that Josh’s manager (and there are plenty like him) was completely complicit in his behaviour, worse than that, he was encouraging it.

It will always be quicker to have Josh hack up some quick fix solution to a problem then have another member of the team fix and document it properly. This is kind of a self fulfilling prophecy in that as more of Josh’s intractable code enters the code base, it will become less serviceable by the ‘regular’ members of the team, thus requiring more of Josh’s time (and intractable code) to fix it. There are several issues here, not least of which is that having one member of your team holding all of the knowledge in this way is pretty dumb, add to that the fact that the other developers on the team will quickly grow tired of attempting to maintain such a code base and will either up and leave, or worse still, fall into Josh’s bad ways themselves and you can begin to see the snowball forming. Sure it will cost you more in the short term to do things properly and it will look better to your boss/customer if you deliver working solutions in ridiculously short timescales, but ultimately it will cost you far more when you have to tidy up the mess and you *will* have to tidy up the mess.

I’m just saying.

They don't get *it*!

Monday, March 9th, 2009

Sometimes people don’t understand why I’m so anti Microsoft, but this week I came across a story which brilliantly illustrates my assertion that Microsoft don’t get *it*. One of the features that Microsoft added to Vista in the hope of persuading us it was secure was User Access Control (UAC),  that’s the thing that pops up all of those annoying… er… pop ups asking for your permission to do stuff all of the time. Most Vista users quickly found this to be a royal pain in the ass and began to suffer from pop up fatigue, in the end granting permission to anything that asked for it just to get rid of the popups, others looked for a way to turn UAC off altogether, even if it meant hacking their registry. Fast forward past Vista to Windows 7 and the geniuses at Redmond decided that UAC needed relaxing a bit, one of the ways that they did this (several routes around UAC have been found in the Windows 7 Beta so far) was to create a whitelist of files that can just bypass UAC. Do you see where this is going yet? Yep, by leveraging one of the pre-approved files and making some fairly standard API calls, you can have your possibly malicious code executed sans user permission. So the user gets all the hassle of the pop ups and none of the security goodness. Good job guys. It’s like building a nuclear bunker into the side of a mountain and then installing a couple of Velux windows to let some light in. Still at least Microsoft have added the ability to remove IE from Windows 7, that should keep the EU happy… except that you can’t remove it, you can turn it off, but it can’t be removed completely. Still, why would you want to, it’s not like Microsoft had to request that the world download an alternative browser when they found a huge security hole in IE! I wonder how many people downloaded Firefox, Opera, Chrome or Safari that week?

Talking of Safari, I have been using the beta of version 4 for a good couple of weeks now and have discovered that whilst the it is quick to render pages and execute Javascript, Firefox 3 is actually faster to download the content and provide me with a working page. I actually have another reason for falling back to Firefox, AdBlock Plus. I don’t know how I ever browsed the web without blocking adverts. Don’t give me any of that crap about stealing revenue from websites by blocking their ads, most adverts have to be clicked on to generate revenue and more importantly if your entire business model relies on ads then you have bigger problems than me not downloading them. Think of it as the equivalent to flicking over to Sky Sports News/Kerrang during the television ad breaks.

In other news, I’ve had some serious problems attempting to set up an IMAP account for a custom domain (area-78.com) with SMTP support, using SSL on incoming and outgoing connections. It seems to work over my Sky broadband connection, but chokes on an O2 broadband connection. Any ideas? Are certain ports more likely to work (I know that 25 is generally blocked to prevent spam)? Is anybody else using SSL, I mean I know it’s not perfect, but surely it’s better than nothing?

Post Tune: Ms Fat Booty, Mos Def, Black On Both Sides.

Is that Lint in your pocket (or are you just pleased to see me)?

Thursday, January 29th, 2009

Eclipse crashed on me today whilst I was Linting (I guess that’s a word) my code. I didn’t lose any work since I had just saved all of my files, but when Eclipse went fut, it did so without releasing the lock on my workspace (meaning that any subsequent attempt to launch Eclipse failed). I wasn’t that bothered by this fact as this had happened to me on older versions of Eclipse, I just navigated to the .metadata directory in the top level of my workspace and looked for a lock file to delete. There wasn’t one. Cock. Now completely bemused by this conundrum I spent a good five minutes Googling for a solution, only to find that the more recent versions of Eclipse use operating system locks instead of lock files – nothing to delete, but a quick reboot forces “dead” locks to be released. Back to Linting – yay!

I actually quite enjoy Linting, even if it is quite laborious; done properly, i.e. taking time to understand each problem before correcting it, rather than doing whatever it takes to shut the blasted thing up , it is a great way to refresh your knowledge of good (and more importantly bad) coding techniques and helps to highlight problems in code design. I’m still a bit of a Lint noob, but I now understand that whenever Lint highlights a problem, it is always right, even if it takes me a while to catch up to what it’s complaining about!

Anti-static

Tuesday, January 20th, 2009

Three things that I discovered this week that I love:

1. The Google guide to software: This guide makes so much sense and illustrates beautifully how a well intentioned software developer can sleep walk into a world of hurt. Mind you, I would also point out that I feel that static functions and singletons do have genuine uses (see the section on “Brittle Global State & Singletons”).

2. StackOverflow.com: You know the drill, you’ve come across a software conundrum, but can’t be bothered to consult that shelf full of dusty reference books (that only that one guy in your office ever touches). You do what any sensible person would do. Google it. Someone must have faced this problem before, surely? The first search result seems to be exactly what you are after. Excited, you click on through to the website, only to be greeted by some overly aggressive JavaScript that blocks your view of the solution and then attempts to extort some cash from you. Cock. You jump back to Google and follow the second link, discovering a multitude of suggested solutions, but without anyone actually confirming that any of them work. Well, stackoverflow.com is like Wikipedia for software developers. How did nobody think of this before!!!

3. This article by Joel Spolsky, particularly the last paragraph and the bit about managers being there to take care of all the extraneous stuff (I believe Joel uses the phrase “clearing the decks”) so that the people they employ can get on with doing the work that they were employed to do!

What is next generation?

Wednesday, December 17th, 2008

“Next generation” is a term that is used extensively in the world of video gaming, but I’m sick of hearing about it. Technology is always evolving, always moving forwards and what’s cutting edge today is a Sega Saturn tomorrow (zing!). I just don’t believe that the endless pursuit of better graphics: a few more FPS, a slightly higher resolution, is what the majority of gamers are after (hit me up with a comment if you think I’m wrong). Thinking about it, that whole “endless” thing sounds like a great way to sell consoles though (call me a cynic)

I recently purchased Far Cry 2, which had been billed as the first truly next gen game on the PS3 and whilst it is true that the graphics are breath taking (the African landscapes look stunning, especially when viewed in hi-def), it is not the whole story. For those of you not aware of the concept of the game, you play a bloke trying to track down some guy in the middle of a lawless part of Africa, where all communication is done with diamonds and bullets and where you must traverse all of the afore mentioned African territory completing missions in a Grand Theft Auto style setup. Sounds good doesn’t it? The problem is that you spend all of your time trying to get to the next mission, just to be set upon by the groups of low AI enemies that seem to sit around every corner – you can’t out run them, fighting them will leave you with no health and no ammo and taking an alternative route requires the patience of a saint. Assuming that you get to your mission, you are supposed to be able to tackle it in what ever style you want, but I promise you that you won’t be able to employ any Solid Snake stealth tactics – there is only one way, all guns blazing. If you run out of ammo, then toss your gun and pick up the one dropped by the guy you just, er… dropped, brilliant, except the same gun that he was just happily firing at you, will jam as soon as you try to use it. You can turn and run for cover, but expect to be struck down by your malaria, oh, didn’t I mention that you have malaria too and will be frequently struck down unless you treat it with pills that you can only get by completing missions – my bad. I think I’ve made my point.

Conversely, I still sometimes feel the need to get out my Sega Megadrive and Mega Bomberman and can lose entire days in a four player tournament with friends; the graphics aren’t rendered in high definition, or even in 3D, but I have never once noticed it, nor have I ever questioned the different colour kangaroos (you need to have played it) that you can get. If anyone knows how the dancing kangaroo works then please let me know!

I’m not buying the online functionality of the big three consoles as being next gen either, since this has been available over LAN/WAN to PC gamers for years. I will also be so brazen as to dismiss the Wii-mote, Wii-fit, Six Axis controller, etc, etc too, as they aren’t particularly ground breaking either – all of this technological progress so that you can run on the spot, or play virtual screwball-scramble?!? There is no reason why this sort of controller could not have been introduced long ago, in fact, it was – the dance mat and light gun existed way before any of this other stuff. Notice that I didn’t include the Wii itself, or indeed any of it’s games, in my list; I have nothing against the little console and applaud Nintendo for making games that people want to play, that people that normally wouldn’t be interested in computer games want to play, but I suppose it’s what they are good at. As a non-Wii owner I would particularly like to be able to play Mario Kart and Super Mario Galaxy and I guess that LittleBIGPlanet is the PS3s attempt at a title that is accesible to a wider range of gamers than the normal demographic addresses (having not played it, I’ll reserve my judgement).

What I want are games that are original, fun, interesting and challenging, good graphics are a brilliant bonus, but they can’t carry a game. My message to the games developers would be this, don’t just trot out a tarted up version of your prized title each year and think that it is good enough, nor should you look at what the other guy is doing and just do that. I saw an interview with the guys responsible for the new Tomb Raider game, they were trying to claim that they had come up with all of these new and innovative ways of controlling Lara (I’ve completed the first four TR games, so think I can use her first name), but I’m pretty sure that most of them were in Uncharted: Drake’s Fortune. Likewise, this years edition of PES is good, but not great and not as enjoyable as FIFA.

My point is this, wherever the fun is, that’s where you’ll find me* and as for “next gen”, don’t belive the hype.

*Currently that means hunting down random strangers on CoD5. Shoot first, ask questions later.

Post tune: N-Dubz Feat. Baker, Love For My Slum, Uncle B.