header image
Complex codes
January 24th, 2006 under Devel, rengolin, Technology. [ Comments: none ]

Why is it so difficult to cleanly finish complex code ?

I mean, why are all complex code so cluttered, with some routines full of hard-coded stuff that makes no sense at all while other routines are so cleanly written expecting the rest to be the same ?

There are some good answers to that and some of them are also good excuses (like lack of time and focus) but my question is deeper, I guess: is there any scenario where none of this excuses makes sense and the result is a perfect code ? Where no one else sees another way of doing it ?

I think this is something like “the dream of software engineers”, to produce a perfect code where you’ll never say later “I could’ve done better” as we always do to our own code two weeks later. The question is, should we run after the “perfect code” ?

Well, my humble answer is a big YES. Not only because I’d like to reach that nirvana level, but because I think we all aquire a lot of great stuff in the path. I can think of some excuses, why they are valid and when they’re not:

Money: Always the biggest of all. When you have a limited budget and a limited team you’ll never be able to make it perfect, specially when you have a business team pressing you to launch anything you got, even if it’s not ready yet.

Time: see money

Resources: When you have too few resources you obviously don’t have manpower enough to do the right code, unless you have infinite time/money, what’s never truth. But, when you have lots of people and lot’s of money and time, the administration of such team is exponentially dificult, and we run for the relativistic problem: each small new feature doubles your amount of money/time needed!

Planning: You can make as many plans you want, everything will be different at the end. I’ve seen many gurus with 30+ years of programming on their CVs getting totally wrong on their planning, even at earlier stages of development. After some point, the more you plan, the more you fail! the problem is to find the point. ;)

Refactoring: This is a good solution for eternal software like the core library of your company’s business (like search core libs for Google) but let’s face it, if you have the freedom to refactor a core library, will you just keep yourself to the basics or would you refactor the whole thing ? Do you think you have the humbleness of accepting other person’s code and point of view ? I would not dare to answer this question…

So, at the end, there will always be a problem in your code because it will always have someone else who will see things in a diferent way! Argh, did I prove myself wrong ?

Textmode window manager
January 20th, 2006 under rengolin, Technology, Unix/Linux. [ Comments: none ]

Remember Borland’s Turbo C++ lovely windows ? Would you use it as your window manager ?

This week I had the strangest need… Coming home on lab’s bus I turned on my notebook and was configuring initrd to show me just a plain 1024×768 console without graphics because I just wanted to edit some code on my way home. Of course I ended up just configuring my bootsplash resolution and initrd image but the first thing that poped up in my mind was exactly Turbo C++ lovely windows…

I mean, I could use Motor, from Konstantin (btw, a great Turbo C++ like IDE) but that’s not all about… Imagine you, opening curses windows for console, vim, tailing files, links ? Imagine you, configuring a background of green matrix letters, comming down in light and dark green, a window with ‘cal’ output and a digital clock just above, another window, backgrounded playing ‘cdp’ or ‘mp3blaster’, wouldn’t it be wonderful ?

There is (or rather was) one, called “wm” (for Window Manager, that simple) but was written ages ago and I’m trying to port it (or re-write) to modern Linux. Stay tuned.


Creative Commons License
We Support



National Autistic Society

Royal Society for the Prevention of Cruelty to Animals


End Software Patents

See Also

The information in this weblog is provided “AS IS” with no warranties, and confers no rights.

This weblog does not represent the thoughts, intentions, plans or strategies of our employers. It is solely our opinion.

Feel free to challenge and disagree, and do not take any of it personally. It is not intended to harm or offend.

We will easily back down on our strong opinions by presentation of facts and proofs, not beliefs or myths. Be sensible.

Recent Posts