I was in a discussion on twitter last night about the ‘joys’ of visual studio, and how frustrating it was with (what should be) basic functions crashing in a great big ball of fire. This guy responded with a comment in a similar format to a commandment:
Properties are set in stone. Thou Shal not rename, nor shall thou covet the name of another property
This cracked me up laughing, so I challenged him to come up with a complete set. And here they are for all your April Fools pleasure!
1 – I am Struct, the class and the instance. I have freed you from the bondage of x86 assembler. You shall have no other assemblers b4 me.
2 – You shall not write your own compiler, or disassembler, or interpreter. For the CLR is all you need, If you try 2 map it you will go mad
3 – Thou shall not blame me for your errors of logic. Nor will you blame the build system. M$ Hath given you all that you need to deliver.
4 – Remember the Beer O’Clock. For labouring over code forth to long will cause you to overlook your own stupidity.
5 – Honor your team lead. For it is his ass that will beith on the line when your “I had a bad day” code gets into the release.
6 – You shall not murder. Except where a person usith an abbreviated type in the nameth of a variable. ie bIsItNew. Or usith an empty catch
7 – Thou shall not combine multiple frameworks that perform the same function. Nor multiple versions of the same framework.
8 – Tho shall steal, lots, where tho can. If one didn’t want there code stolen they wouldn’t have blogged it.
9 – Tho shall not use Exceptions as program flow control. Nor shall tho assume success unless it has been proven. For these are false.
10 – Properties are set in stone. Thou shall not rename, nor shall thou covet the name of another property.
These are straight from the tweets themselves, and I hope they give you many LOLs, as they certainly did for me 🙂 Happy April Fools everyone!
Its been a while.
Life took a crazy turn for the worse since my previous entry, as my wedding with my fiance drew closer and closer we were thrown into what I call ‘Wedding Overdrive’. But I digress, and will make a post about that another day 🙂
My writing urges come in dribs and drabs… For a certain time I simply wont blog, as I have nothing to blog about, and then there are other times (like right now) where things just flow into my mind. Whats worse is when they flow into my head at work and Im racing to make a quick note of what goes through my head (usually just the title of the entry, as hopefully I’ll remember the gist of my entry when I get home), and send it off to my home email.
On friday I was looking into a pretty big enhancement of an area that you could say forms the backbone of the application. While I was peering into the abyss of said application I couldn’t quite understand what I was looking at (understandable, given in the 3 years our company has worked on this contract we have only touched this area for minor enhancements).
And then it clicked.
My first expression and feeling was one of horror. Horror that an application could actually consider storing and moving data around this way. My second was a twisting in my gut, as I honestly dont know whether or not I should admire the author of this section of the application, or condemn him (or her!) to some sort of programmers hell.
A side note here, we ALL do horrible things in the course of our career (and I am certainly no angel!), and the point of doing these horrible things is to learn from it. I, myself, have looked back at sections I have worked on and just gone ‘wtf Adam… seriously wtf’. But thankfully, I have people that point these things out and go ‘wtf Adam… seriously wtf’.
I just find it hard to believe this made it past all sorts of rigourous QA and testing processes, and the thing that grinds my gears the most is the fact that in its stupidity, its actually quite elegant!
Yep, you read that right, elegant. I know this might (and does) seem like a contradiction here, but bear with me… Yes, the way this area works is extremely confusing (to the point where im writing doco at the moment to help those poor future devs who have to support this area), and by far one of the most confusing ways possible to do it, but when you see past the confusion… Wow (the good kind of wow). You can almost understand what was going through that poor, overworked developers head when he (or she!) was writing this. But, by gosh, there are faaaaar simpler ways of going about a simple process such as this, and now I (with the help of my TL) get to re-write it!
Dont think Im looking down on programmers that dont live up to my godly (*cough*, /heavy sarcasm) expectations, as this entry is more of a satyrical look at how the most simple things can be turned into horribly over-complex beasts that take the better part of a day (or longer), just to understand, let alone re-write. And how these people sometimes actually succeed (its been ‘working’ (for lack of a better term) for a good 5 years now, so obviously they did something right), at which point you almost have to admire the way in which they did such a stupid thing. Elegant Stupidity ftw.
Have a good one 🙂
Anecdotes are fun things arent they?
Now, you might think the title of this post somewhat grim, but its actually an… ahem… ‘adaptation’ of one my favourite sites which specialises in these anecdotes, mainly in regards to I.T.
My particular title refers to a developer’s code. When the code breaks, it dies. However, there are things worse than death (or failure, as the true site from which I ripped off my title states)…
The Daily WTF (Worse Than Failure… of course! What were you thinking?) is a site dedicated to various developers and consultants sharing their ‘wtf’ moments with the rest of the world, giving us tired old (or young) developers something to chuckle at during the blessed quiet periods of our week/month (rare enough, but it does happen).
I have been recently working with a section of the application my collegues and I support, that is, shall we say, less than consistent with the rest of the application, and very much a true ‘wtf’ section (thats right, section). Never in my life have I seen such ‘coding skills’ put together in a mish-mash of methods and procs, double/triple/quadruple(!) nested inner joins and various hideous perversions (borrowing from the Daily WTF’s terminolgy) in one collected place (apart from Daily WTF of course). It got me thinking though…
Noone is perfect.
Thats right, everyone at some stage in their career will do something so stupid, so ‘beyond logic’ that the developer that comes in after you will sprout stomach ulcers like weeds after opening that first class you’ve created. I think the only thing we can do is pray its not too bad and that you have commented the crap out of your work to give the poor dev a starting point. I know Ive done one or two things that Ive come back later on and simply scratched my head, deleted it all and re-done the section.
Its very hard dealing with someone else’s crappy code, but like I said everyone at some point in their lives will write something horrible… If you are lucky, you can go back and re-write it properly (or god forbid, make it worse) before anyone notices, otherwise…
Well, I guess we’ll see it around the Daily WTF 😛