
The BBC has an interesting news report, Warning sounded on web’s future, on the worries of Tim Berners-Lee about the spreading of disinformation using the web. The article also touches on other related topics such as extending the reach of the web and improving the web’s usability.
Regarding the problem of publishing insincere or unfounded information on the web, Berners-Lee cites a recent campaign started because of the activation of the Large Hadron Collider. Specifically, some groups used the web for communicate invalid beliefs about the world being destroyed by effect of the LHC. This use of the web is, in first instance, unethical. Further, it may transmit fears, and additionally, the information posted by such groups has no scientific grounds. This a typical example of misusing a system.
This kind of problem arises because of the web’s intrinsic nature. The web is a different system… a system which is now inevitably linked to the behavior and trends of human society. The web is an open and complex system. It’s open because we can add as much information as we want, and it’s complex because it’s composed of a huge amount of producers and consumers of information, and their interactions. There is other factor that shapes the web complexity: evolution.
Read more »
By admin
We all know what happens when a project’s deadline is not met. Besides firing someone, hard, dry heroes appear. Lonesome, ruthless and distrustful heroes which brings the peace only revolvers can conquer. Sometimes, the guys with the money hire them as the ultimate saviors: they have bothered to come here, from the farthest west, to rescue the project. They are irresistible: they are the cowboy programmers. It’s men’s time.

But wait a minute. I remember that, according to Brooks’s law, “adding people to a late software project makes it later.”
Cowboy wisdom #1: Yeah. But “if you don’t add people to a late software project then it has been canceled.”
Do they indeed come from the farthest west? Not necessarily. Perhaps they have been members of the team since the start. Frequently, cowboy (cowgirl) programmers are not external newcomers. They are hidden (or not) in the core of the team. And they are important contributors to the flaws of the project. Blame managers, though, for accepting them in and for trusting their nonsense advices.
However, I’ve also seen a lot of fellow programmers to crumble under the project’s pressure. In such circumstances, they awaken their hidden alter ego, and happily wear their hats. I have met several of such outlaws, and in the following, I pay tribute to this lovely and legendary figure of programming.
>> The Truth about Software Development Life Cycle (SDLC)
Cowboy programmers are the absolute reference for everything. Masters of all trades (although they don’t have any clue about SDLC, but who cares?) Analysis, Design, and related topics are for sissies, and for allowing professors of Computer Science who are bad at mathematics to make a living. SDLC is a pony. Cowboys ride horses.
Requirements Elicitation anyone? What for? Cowboy programmers know what customers want. Besides, filling myriad pages with arrows and boxes is a complete waste of time: we should be coding instead! That’s why the project is late!
Cowboy wisdom #2: Reading too much Software Engineering books has rot your mind. Welcome to life, boy.
>> Learning to Code
Cowboy programmers have no time for thinking. Their code is rushed, but effective. Optimizations are for compilers. They just get the things done. How to reverse a string? Here’s your answer, enjoy it:
char* rev_str(char* str)
{
int str_l = strlen(str);
char* r = (char*)malloc(str_l);
int i = str_l-1;
while (*str)
{
r[i] = *str;
str++;
i--;
}
r[str_l-1] = 0;
return r;
}
Please, don’t rush into believing that Cowboy Programmers don’t comment their code. They do. And they do it excessively. The main difference, perhaps, is that their comments are what is known as auxiliary comments. Let me explain. Imagine that our cowboy programmer finally accepts that his code contains a bug, and decides to use a function of some library. These are the germane comments our cowboy introduces in his code:
char* rev_str(char* str)
{
/*
int str_l = strlen(str);
char* r = (char*)malloc(str_l);
int i = str_l-1;
while (*str)
{
r[i] = *str;
str++;
i--;
}
r[str_l-1] = 0;
*/
return lib_str_reverse(str);
}
Note how the old code turns into auxiliary comments which nicely explains what lib_str_reverse(char*) does.
Cowboy wisdom #3: He that is without sin among you, let him first cast a stone…
>> The Dusty Road to Testing
For the cowboy programmer, the notion of “testing” implies the possibility of his code being buggy. Only people with poor self-confidence do tests. People who think of performing tests should be politely removed from the project. If we were to run tests in our project, our cowboy could not make the smallest change in the project without rerunning all sorts of tests. The project is late, remember?
Cowboy programmers always believe that their ideas and code are perfect. Any fiasco in the deliverables is a consequence of bugs in the code of someone else. Fear not, our cowboy even has solutions for such problems.
Cowboy wisdom #4: Did you learn in school what a watchdog is? It’s a program that restarts the hardware if it seems to be wedged. Do you know what was the first piece of code I wrote just arriving here? Do you know?
>> Spawns Everywhere
Finally, other important trait of cowboy programmers is their disrespect for the code of other programmers. They will introduce changes everywhere, at will, always bitching about others’ incompetency. Their code will dangerously spread.
Cowboy wisdom #5: I’m a mac daddy.
Nowadays, they are very, very healthy. Long life the cowboys.