Jan 262008
 
No Gravatar

So there I was this morning, wanting to add a submission to the sporks qdb when I made a thinko and typed in the wrong URL instead: irc.mware.ca (the IRC server for sporks) – to my surprise a site opened. I later found that irc.mware.ca is a DNS round-robin and I had actually hit ottawa3 – other servers in there are apacheless or give the message ‘fnord’ and other weirdnesses (well they do belong to sporkers) – but ottawa3 constains somebody’s gallery (I didn’t find out whose) – but I must dissagree, those ferrets look exactly like bats making love in a hammock to me.

irc.mware.ca

Jan 242008
 
No Gravatar

So the other day, I stumbled on a flash ‘make a cartoon’ page, sorry I lost the URL. But what came out of it, is that Silvia loved it, and spent some time doing herself a new avatar there. The result:

SilviaCartoon

I just love those little devil horns she added… makes you think, accurately enough ;) , that she is a very naughty girl sometimes. Not to mention that ‘I like gorillaz’ mouth – I never thought I would say this – but she makes gorrilaz look kissable ! Actually not just kissable, but this post is getting too long so there is no room to ellaborate…

Jan 082008
 
No Gravatar

Yes, there is a problem with writing [tag]well designed code[/tag]. It’s not a technical problem, it’s a human problem. Perhaps it’s more of a [tag]geek[/tag] problem than anything else, but it’s real enough.
What are (some of) the attributes of well designed [tag]code[/tag]  ?

  • It is highly reusable
  • It employs a common, standard design across the project.
  • It follows known algorithmic best-practices.

And why do we do that ?

  • It makes code less prone to bugs
  • Bugs that do appear are much more easily fixed
  • It makes it much easier to extend the functionality of the code later

This is just a short list of the things that make for well designed code, and the major reasons why it is important to follow the rules of good design. Things like avoid global variables, use object oriented code, abstract away from implementation details in a library to the very greatest possible extent (in theory, a simple library change should allow you to do such a thing as switch to another kind of database server with zero impact on your other code).

So what is the problem ? Well it is like this. When you first start a project, and you follow these rules it is a highly creative and enjoyable experience. You are designing every step of the way, figuring out just how to apply the rules to your specific needs. What tables does your database need ? What should be the class structures you use to abstract it ?
But now skip ahead a year. Your project is stable, it’s working well – there are hardly any known critical bugs and your core features are all there. Your customer calls you to ask a new feature. Adding it is so simple, just add a table to hold the requisite new data, create a class to manage it, and then code the feature into your frontend. Much less work than when you did a feature of similiar complexity back in the start of the project. Exactly the purpose for which you took the time to design the code well…. only problem is… well it’s not hard enough. You spend about an hour being creative to work out how the modifications to the interface should look, the process-flow for the new functionality (from a user point of view) and all that is pretty creative. But it’s over in an hour, then you spend a much longer time implementing it. Sure it’s much less than it was at the beginning since all the hard work is already done – but it’s still long, and it’s extremely boring.
There, I said it, it’s boring to extend well written code. It just doesn’t have any real creative impact.
In the project I am using as an example for the post, my library contains about 30 classes for tables as well as all the code needed to handle the database-basics (connecting and issuing queries and such) once-off. So the classes basically consist of get and set methods (which is good practice) – thousands of them. And they are all, literally, almost identical. The typical set method has one line, and between any two, the only difference will be three words – and they will change identically per method (e.g. the name of the identifier being set).
The get methods are no different, except that the occasionally contain a typecast to get from the database-string to the real datatype.

It’s all very good for the project, but rather bad for the job-satisfaction.
All in all, I am not saying don’t write good code because you’ll get bored. Firstly because in a bigger organization you can usually pass most of the drudge on to the juniors (who need the practice) while focusing on the design part (which remains new and creative at all times), and secondly because if you take as long to add a feature to a mature project as you did when the project was new – you’ll end up with absolute time-management havoc and unhappy customers (just ask Microsoft), and worst of all, you’ll spend nearly all your time trying to fix bugs.
In the end, programming remains one of the most satisfying, fun and creative jobs you can have. Unfortunately it is, by it’s very nature, particularly attractive to people who love a challenge – especially as it remains challenging no matter how good you are at it – but sadly, this becomes less true for a certain project, the more mature that project becomes.

This is, ultimately, an unsolvable side-effect. Extreme programming, [tag]agile[/tag], or any other methodology intended to create better software, ipso facto reduces the challenge when working on established code (that is, in a very real sense, their purpose). It is just not something people usually say (probably for fear that newbie programmers will decide that writing good code is for chums).

Despite our frequent jokes, bad code is still ultimately a bad thing. We may say ‘it was hard to write, it should be hard to read’ – but in fact, we all know deep down, that if you do your job well, the real problem is that it actually isn’t that hard to write (for a programmer anyway).

So, with this not-entirely-serious rant complete, I declare the first silentcoder blog post of 2008 officially completed.

Dear Manto

 Uncategorized  No Responses »
Oct 062007
 
No Gravatar

It must really suck to be you. The whole country hates you – and for what ? All you ever tried to do was your best. Granted your best wasn’t exactly brilliant, but surely you should get some points for effort right ?
Then that political voice of (t)reason [tag]Zapiro[/tag] goes and names you Doctor DoLittle ! I mean what an insult. You may well be the hardest working member of cabinet (although in itself that is not hard to achieve), slaving away for the common good while dealing with such tough medical challenges as root-worm in the garlic-garden and the multiple-resistant-TB strain.
After all, that was a WHO policy that you implemented that caused it. Not your fault if the ground-staff made a pig’s ear out of the implementation. You aren’t the one who passed the affirmative action laws.
Then, as if your life wasn’t hard enough, what with the old liver failing your 2IC decides that she is supposed to make a difference to the life of the average South African by improving medical service delivery and attempting to get a sane HIV policy passed. You can’t afford that ! No wonder you got her fired, who could blame you !
How will you pay for your Sandton-designed dresses if you go around giving free anti-retrovirals to people. Anyway, it harms their kidneys. The last thing you want is to have bad kidneys and  AIDS ! And what infected mother would possibly want to prevent transmission to her unborn child ! How could they want to lose this unique bonding opportunity of knowing they will probably both die within two years !

Better two happy years together than life as an orphan I say ! Well done that Minister !
I am reminded of Douglas Adams’ visionary statement: “You cannot expect to solve any major problems with just potatoes”. You certainly knew that. You suggested potatoes, beertroot and garlic ! And it was [tag]African potatoes[/tag] to boot. None of those colonialist, imperialist European potatoes for your patients. They are going to die – they should at least be patriotic enough to do it while eating local delicacies.

The treatment action campaign goes and tells us that our infection rate is well over 20% now ! Of course you know better because STATS-SA says it’s only 11% and we all know how competent they are. In the last census, they were wise enough to figure out that the could save a lot of money by not counting the migratory tribes in the Karoo – after all, it costs a lot of (very expensive) petrol to go and find their towns, and for all you know, it won’t even be there anymore – they are migratory after all. Everybody knows the TAC’s figures are biassed – after all they are all a bunch of gay, poor, sick people with a colored leader (not even a proper member of the [tag]Xhosa Nostra[/tag]) – they would say anything to try and make you increase the budget for [tag]HIV[/tag] treatment and prevention !

And as for those pesky, pinko, liberalist journo’s who think the people have a right to know if their Minister of health is seriously ill and has an undisclosed criminal record for shoplifting – they should just get with the times. The ANC stopped being liberalist when [tag]Mandella[/tag] retired and that’s almost a decade ago, liberalism is so last Tuesday. Don’t they know that the proper purpose of the free press in present day South Africa is to pucker their lips, get down on their knees and apply those lips to the sphincters of government officials ? How unhygienic it must be to be one of the only members of the cabinet whose rectal regions are not properly kissed clean by the guardians of the public trust ! Makes you feel… less than fresh doesn’t it.

Well dear [tag]Manto[/tag]. I am writing to let you know that I am with you all the way. It may be all the way to hell in a hand basket but I’m with you anyway. We all are. We don’t have a choice because the [tag]president[/tag] will never fire his cronies.
Now come out from under his desk, stand on the lawn outside [tag]Barragwanath[/tag] and tell us how high the levels of service are, and if you say it enough, we’ll forget about the babies put in cardboard boxes because there wasn’t a budget for [tag]babybeds[/tag].

Yours sincerely
A.J. Venter

Aug 102007
 
No Gravatar

For the first time in nearly a decade (9 years to be exact), my [tag]hair[/tag] is not hanging below my shoulders. In fact, though still long by typical South African male standards, they are shorter than they have been in a long time. Cut into layers with an easy natural style. I like it. After all these years, it was time for a change. Just in case anybody wonders though  – this change does not mean that my love for [tag]hairmetal[/tag] is in any reduced, that is impossible.
These pix were taken shortly after the actual cut while I was braaing a chicken for dinner.





Jul 302007
 
No Gravatar

I felt in a [tag]funny[/tag] mood today, decided to make up one of those [tag]top 10[/tag] lists, picked an appropriately [tag]cynical[/tag] topic, made a list, blogged the results. I hope to inspire some dark-comic smiles.

10) You woke up this morning floating down a river… in a different country
9) Your significant other had a gender-change last night… and chose to let you ‘find out for yourself’
8) Alcohol seems to have no effect on you
7) You just drove over a cliff… that wasn’t there yesterday.
6) You’ve been hit by lightning 42 times…. since lunch
5) You woke up this morning in a full body cast… asking what happened merely causes the nursing staff to break out in giggles.
4) You’ve just been attacked by a dinosaur.
3) You seem to be the first person in 150 years to develop the black plague.
2) A giant grasshopper swarm ate your garden and lawn yesterday – nobody else lost a leaf.

And my number 1 sign that $DEITY hates you:
1) You’ve just been told that your life insurance is cancelled due to ‘imminent disqualification’

Jul 262007
 
No Gravatar

So last night we went to see [tag]transformers[/tag].
Whaaaaoooooooooooooooooo   !!!!!!!!!

It isn’t deep. It’s not very art. In fact the way the autobots talk just like in the cartoons… it’s almost juvenile… only it’s not just juvenile. What it is, is one hell of a lot of fun. The “Sam’s happy time” scene had me screaming with laughter.
[tag]Michael Bay[/tag] took on one hell of a challenge. Take a series of characters popularized by a Saturday morning cartoon inspired by a series of toys, and while staying true to them, make a real movie that adults can also enjoy (keeping in mind most Transformers fans are now adults), I think he pulled it off, by offsetting the transformer’s formulaic dialogue and storyline with a very sharp satire of typical teenage adventure movies, war movies and political intrigue.
Basically if there is art in there, it’s in a very subtle satirizing of modern effects-mad Hollywood and their creations.
The effects guys here certainly had a great time, and of course any movie where the geek gets the girl has automatic kudos from me. Of course there is one major interesting thing about this. Most movies come out, and inspire action figures. This time, we had action figures, which inspired a cartoon which then inspired a movie… it’s completely backward !
In the end though, I come back to the conclusion I started from. The movie is serious fun. Not just funny, fun. This much fun would normally cost you a lot more than a movie ticket. Go see it.

.