Tuesday, August 26, 2003


23 and counting

When Alexander the Great was 18 he commanded the macedonian cavalry in the battle of Cheronea. When he was 20 he became king of Macedonia. When he turned 23 he was well inside Persia, had already won at Halicarnassus and had already solved the Gordian Knot Riddle.


By the age of 20, Charles XII, of Sweden had already defeated both Denmark and Rusia


At age 21 Mozart had already traveled all of the european courts at least twice as a gifted musician


I became 23 last sunday and the only thing I could do was throw a party. It was very nice tough. A few open-listers attended, and some of them stayed until sunrise.


It was very nice to see a lot of people I had not seen in a while. As an ode to getting old I received news that a friend of mine is getting married next july with his 4 year girlfriend. The thing is, this guy is exactly my age. We graduated from the same school in the same class, yet I don't see myself getting married in the near or far future. Not because I don't want to eventually be married, but because I don't see it as a part of my right now. Will I ever?, let's hope so


Expect pictures to be posted here soon

Sunday, August 03, 2003


Run, Forrest, run

Today, after Montoya's unidisputed victory in the F1, I had a race of my own to run.
In Bogota's very own Maratón. The starting point was on Plaza de Bolívar, and the day was rather rainy, not a downpour, but a small shower, but it kept on during the whole race.


I ran the 21Km marathon which is the big one, by Bogotan standards (A marathon is 42Km long, but none are held in Colombia). It was very well organized, with poles marking every kilometer and water or gatorade every two or three kilometers.


Right at the start the race was a huge croud of people and there was no possibility of advancing at any speed that was duifferent from that of the whole group. It wasn't until Parque Nacional, a kilometer and a half ahead, that the mass of people got sparser and some breathing room was possible. I had run the same race last year, and I felt better this time. The rain was not an annoyance, but an aid for not dehydratating, except for the occasional poodle of muddy water that got splashed and went into one's own tennis shoes.


Jogging is a masochistic sport. Right in the end I only wished for the race to end, from kilometer 17 up to the end, my legs were killing me. I could breath fine and I had enough energy to go at a faster pace, but my legs were unable to keep the rythm. I finished in 1:54:07, which is not really good but it beat my previous mark of 1:59:53. Yee Hay


The best part of the whole event was to see all of the people, both participants and public. Despite the continuous rain, troughout the whole race, a lot of people was shouting and cheering, and a lot of car drivers were angry at the race, which closed the roads for them and made the wait for several hours for the whole croud to pass, and I cannot describe the feeling when a little difference of height in the terrain (such as going down 72nd avenue) permitted the view of a huge river of people as far as the eye could see on both directions. That is really overwhelming.

Wednesday, July 30, 2003


Sincierto

Pues me quedé con las ganas de escuchar a 4AM en vivo. Eso me pasa por llegar a las nueve y cuarto a un concierto que comienza a las ocho y treinta (y que en realidad sólo comenzó hasta como las diez y treinta). En fin, me tocará conformarme con oir las canciones bajadas por MP3. Igual, terminé metido en "La tienda del Café" en Usaquén dónde, entre otras cosas, no venden café.


Ya casi cumplo seis meses en el trabajo. Eso es muuuuuucho tiempo. Hasta ahora, haciendo un balance:


Cosas Buenas:

  • He conocido una cantidad de gente, y visto una cantidad de maneras de ver el mundo

  • Definitivamente hacer software si es lo mio

  • He podido estar involucrado, de manera relativamente cercana en un proceso de negociación del estilo de "cuánto vale esto", "cuánto nos demoramos haciendo aquello"

  • He tenido la oportunidad de jugar con gran cantidad de software y hardware(todo de La misma gente, pero que mas da


Cosas Malas:

  • Corbata los lunes, martes, miércoles y jueves !!!!!!

  • Tener que contarle a una maquinita que es lo que uno ha estado haciendo


Según eso las cosas buenas son "profundas" y las malas puramente operativas, por lo que el balance, teniendo todo en cuenta, es muy bueno.


El domingo es la Maratón de Bogotá. No he podido entrenar, por circunstancias diversas, pero igual la voy a correr. Espero hacer menos de dos horas en los 21km.


Raro escribir en español, mejor sigo haciéndolo en inglés

Sunday, July 13, 2003

Compilation at last Several random thoughts

  • I wanted to write a very long rant about what I've been doing at work, but found it is not easy to do so, without going into specifics that I'd rather not have published on the Internet, so I'll just have to say we made a bold move that forced a great change, and that now there is a great challenge ahead for me/us and that I'm very happy about it.
    I have the opportunity of playing the role of architect - implementor - maker of policy - dirty coder - etc. And it is just great.

  • It look like vacation time makes bloggers very busy, and entries have been rather poor lately. However I have to comment on svigle's life threatening experience: It is weird, when I started driving I thought the worst thing that could happen to me in a car was that I crashed it and got into trouble (as in, trouble paying the reparation). It wasn't until a few years later when a friend of mine died on a car crash, thanks to large doses of alcohol on the driver of a large SUV who crashed the car he rode in, that I realized that driving, and cars can actually kill people, and can actually make one who is behing the wheel, a murderer. That is one of those things that have to happen close to you, for you to realize.

  • It would look much cooler on geek meetings if one said "Debian" when answering the perennial what's your distro question. It is more hackish, to say it some way. However I like my machine to be configurable only when I want to configure it. I want for the tools I use to be configurable. I like to configure my apache, or my version of mysql server, but I do not want to configure the X server. I know I use X, but I don't care about the number of Hz the screen runs on. The nice newbie like installation interface made those choices for me, and made them right. There's nothing worst than having to spend a whole week figuring out what makes X crash, because of installing it by hand (or from a bleeding edge testing branch). For me, Mandrake has done the job perfectly, I configured my system carefully where I wanted it carefully configured, but didn't configure it where I wasn't interested. I think that's the beauty of Linux and all it's wide spectrum of choices. You can decide what you want to control and what you want to leave as is.



Tuesday, June 24, 2003

kNOppix

As One of the best hackers I know notes in his blog, I had the pleasure of being invited to a Geek-fest. As awful as I might look in the pictures (I tend to do that, look awful in pictures) I had a great time. I got to meet the now very famous Juan Luis, and Arhuaco, in the costeñan flesh


Aside from that I got a fresh copy of knoppix. The next day I found out I hadd 11 gigs of wasted disk lying around, so I tried to install it. However, Alejo's CD seems to have become physically damaged on it's trip from his home to mine. Still curious, I downloaded the whole thing all over again. 36 hours later I had yet another knoppix CD. I have to admire the guys, that LiveCD runs like a charm. When installing, it asks almost nothing, which is perfectly good for newbies. After the installation finished and it allegedly installed LILO I rebooted and tested. The thing was nowhere to e found among the other four options in my boot. No problem, I just redid LILO, and up I went. One reboot later I was looking at a screen that said Debian and asked for my login.


All is well, the thing loaded KDE, no problems at all, all the hardware was correctly detected. However.... when I tried to logout, the thing just died, the screen started blinking (as a message telling me no info was coming from the CPU) and it did nothing. When I rebooted I expected e2fsck to make me wait, but nothing major, However, e2fsck quit on me and told me I had to manually rerun it. I did, and after correcting some 20 mistakes in the drives I entered again. Again very nice KDE3, again, on logout, the thing died, and again it sends the hard drive to hell. Being a little faint of heart when it comes to IDE disks I decided to leave knoppix's pretty KDE interfaces to the LiveCD, and remain with my very old, very graphic, very mine, very configured Mandrake 8.1.

Saturday, June 21, 2003

00:56:12

Last sunday I participated in a 12 KM run help by Bogota's very own, Clinica Palermo. The race started at the Clinic (Calle 47, Cra 22), went down Calle 26 up to Cra 68, and came back.



  • 00:00 Cesar Augusto Londoño calls the departure, and the race starts as a human mass of about 2500 people crawls slowly, like a huge white snail.

  • 03:25 The route takes us up Carrera 28's bridge, from there I can see a dense mass of people as far as my eyes get me

  • 05:00 The sun starts heating up and everybody seems to have obtained their position in the race, surpasses are less frequent

  • 12:00 The race really starts, I forget I'm running

  • 15:35 I am about to pass carrera 50's bridge and the leaders of the race are already coming back from carrera 68. They run in a "pique'e choro" kind of way, all the time.

  • 20:45I reach carrera 68, that marks the turning point

  • 35:00By now there is no huge mass of people, just a few runners scatterd here and there. On the other side of Calle 26 all the people that were walking the race started jumping to the side I was in

  • 47:05 We finally get out of carrera 26 and head into the parkway

  • 56:12 Yee hay. I'm glad it's over

  • finish + 15:00 It was a good race, we should do it again. Yeah, it was really great

Thursday, June 12, 2003

So I'm not me

UP until this day I was a believer. I belived in electronical transference, in working coperatively through IM/chat/mail, in coding remotely through the use of internet; in being able to exist in a virtual world, where you didn't have to be physically present in order to be a part of something. However, this approach has it's dangers, as I noticed today.


I admit it, I'm some kind of mentally retracted moron that can remember ascii codes for ñ, > and < (and it's entity representation for HTML), but that is unable to retain the moronic four number PIN for his savings account. So, as one might imagine, I forgot the darned number for the third time and the card got blocked. Since it was far too late to do anything about it, I went to the Internet, and found out what I had to do. The answer was simple: "Go to any of our offices with your Citizenship Card (what the hell, Cédula de Ciudadanía) and the card and we will fix your ordeal in no time.
I effectively went to one of their offices, the lady who I spoke to made me fill a form, with the number of the account and my signature, and faxed it to the office my account was residenced in (which was about 1 hour away by any means of transportation). The fax had to be returned from this office, accepting the change and telling me the new PIN (or the old one, I don't even know). Fifteen minutes later, the fax was not yet there so I decided to leave and come back later.
About two hours later the fax came back: It said the signature didn't match the one they had in their files. To put it in simple terms: I was not me.
So tomorrow, I'll have to go directly to see if me, in the flesh, is really me.
Luckily (or unluckily) the thing is stored by physical means, which allows the physical me to receive the new code, no matter what (or so I hope). But what about electronical stuff?
What happens when we forget the password because SSH automatically introduced it for us in our key? May God help us then

Thursday, June 05, 2003

I just remembered....
My kindashrink said I had no soul. Can you imagine? All the posibities that opens? I thing she meant for it to be a turning point in my life or some shit, but it hasn't been. I'll have to figure what to do in order to take advantage of not having a soul.
So what have you been doing?

I tought I had posted just a few days ago, but it wound up being about two weeks from my last post. But, what have I been up to? Geez. Looks like homo corporativus is taking his residence inside me. It seems like a million years ago when I was in school. Reading bluhelmet (whoever that guy is) reminded me of the time I was burning circuits, going to the novena in a hurry to buy that dammned PAL memory that would refuse to burn on the crappy PAL burner in labelec.


Problem with the job: You are always in the same place and your issues last longer. You have more time to solve them (the whole day, instead of the few mins you get), but they don't just die after a deadline. In school you either turned the paper in or didn't, but after the deadline it was gone. You knew that by may 14th all of it would be history.


Bored of meetings (most of the time I sleep through them), tool vendors telling developers that tools will do the job for them, wearing a tie


Happy with meeting a lot of interesting people, developing software, jogging in the mornings when I make it, not wearing a tie on fridays Salir a rumbiar sin pensar en la cuenta

Tuesday, May 20, 2003

Making software and talking about making software

I know everybody is going to say they knew it. I have to confess I was rather naive. I used to think that the process of building software was about building software.


I used to thing that, in good old fashioned hackerish style, good code should speak for itself, or, to put it in a broader canvas, a good work should need no other help than that of it's contents to be known. Turns out that twisted mixture of influences, known as reality, is not like that. If no other influences existed over the software process, probably it would be about making software, and not much else, just like painting should be about painting. However, when making software one has to think about the software being useful for somebody (which is a good thing) and, in a lot of cases, profitable (as in built on time and under budget), which is not a good thing from the purely theoretical point of view. To add to this already messy melting pot of interests, it is probable that software has to live with existing infraestructure (existing machines, existing software or existing user habits).


As a result of this too much time is spent on talking, talking to other developers, talking to software users, talking to vendors, talking to bosses, talking about the best way of doing things. When compiling a 52 line COBOL program meant punching a whole deck of cards and running it through a machine that only allowed two programs a day per individual, it was right to talk a lot about the software, to actually build it in paper before really building it. But right now, when the length of the cycle has shortened so much.... Is it still necessary to lay out all of the thing that are to be done before actually doing it? Is it even possible? Is it possible to think in advance about all the possible things that might be needed in a devolpment process, and to do so even before the development starts? Furthermore, is it even wise to try to do this?


I think not. I thing that we should use the fact that 90% of a program's functionality is built in 10% of the time (or 80-20, or whatever, numbers can be found to back up any division of those two figures) to our advantage, to let the code talk, because, what's better to demonstrate how a piece of software will work than the piece of software herself?


Talking about talking, today Colibri had 30 messages of people ranting, I don't even know about what. discussing if discussing was a good thing to do. That's our problem. If that time that was spent ranting or back ranting, was spent coding, or translating, or thinking, we would advance faster.


Software building doesn't work by consensus. A lot of very succesfull projects (GNU, Linux, Matanza, etc) work by dictatorship. Everybody can contribute, but there is a reduced core of technically skilled people that has the absolute truth on what goes in and what doesn't. You don't like it, you can fork it.


The amount of caffeine inside my veins will have to be rised as I head into another talk about talking about making software. Yee-hay

Sunday, May 11, 2003

Oh my God, he understands!!!!!!!

If I had to quote every paragraph of Paul Graham's latest release that I agree with I'd have to just transcript the whole thing here.


¿maybe?

Wednesday, May 07, 2003

On a political note, shame on The guerrillas responsible for these. How can they say it was the military's fault. They look like that nutcase that says "they made me do it" in front of the still warm body of his victim. A weblogish minute of silence for the victims, and a cry of war for the slaughterers.









I've been rather busy these days, between work, extra work, family matters and everything I hadn't had the time to review the blogs in quite a while. In the meantime, a holy war has formed between Some and then some. With the outcome of.... increased functionality for us, lazy users.


On my continuing meetings with that abstractuos entity called the client, today I went to a major bank like institution, to talk shop. Up until now the jobs I undertook where ones where I "had the ball", to say it in soccer terms. This means I was the dummy selecting the platform, developing the technology, choosing the framework, etc etc. With this one It has not been like that. It means a lot of requierements come from high above. What amazes me the most is the apparent lack of care, on behalf of the client, for the financial side of the thing. Back in small-website-made-from-scratch days the client was a tough sell, you had to take away every penny from him, and he would expect the delivered program to do everything from rocket science to calculating the net worth of the whole company with a single keystroke. Here it was different, they knew the thing was hard and were not concerned with the tab. They only wanted to know the size of the check they had to sign. The money stopped mattering, and it was the flux of information that became important, knowing what to expect and when to expect it, and having someone to blame if something happened (could this be what "software business" is about?).

Monday, April 28, 2003

We see the rise of agile software-development methods. Agile methods are a good thing because they address the social dynamics of small teams, for which the Rational unified method is silent. [Booch]

Good movies, bad movies and life going on

Good movies: Not movies, concerts really. Last friday I went to Alejo's to watch his recently acquired DVD from a David Gilmour concert. For those unfamiliar with him, David Gilmour is (was) Pinkfloyd's guitar, bass and one of the voices. Since I have the same hearing sensibility as a retired gunman I had failed to notice how many instruments were involved. It was amazing for me to see that a great piece like "shine on you crazy diamond" is indeed a one man show 75% of the time. Floyd rules, or, as Sergio likes to put it; manda.
Bad Movies: Saturday I got dragged into a film theather to see by far the worst movie I have spent my money on: A piece of shit called "The Dream Catcher". It is a mixture of "Alien", "Breakout", "The sixth sense" and "Independence Day". I cannot conceive how somebody could even try to mix aliens, farts and paranormal abilities. Please don't go see that.
Life goes on: Today I witnessed that invention organizational fellows like to call an audit. It was a mixture of medieval terror, quiet resignation and theather, all in one place, all in one day. Luckily my mortal soul was spared this time. On other news, tomorrow, for the first time, I'll get to meet face to face that multiple headed creature called "the client".

I want to study here


Wednesday, April 09, 2003


Carpe diem?
Pon amor en las cosas que haces, y las cosas tendrán sentido. Retírales el amor y se tornarán vacias. San Agustín
After about two months on the workforce I have to say that I've learned a lot, not only on the technical side, but on the personal one, and several things puzzle me right now:


  • Since I work at a relatively big company (on colombian standards) there is people from almost all age groups. Most of them have been with the company for about two years, but there are some of them that have been there since the dawn of times. Most of them see their jobs as something boring you have to do during the office hours so that friday can come and you can go drink, or you can pay the bills to sustain your wife/husband and kid/s. I don't want to think about work in this way. It is true, there are certain things that are a pain, but on average is a challenge and it is fun., and in the moment it starts not being it, it is time to move on to something else.

  • I don't know how you can live without hopes, or with extrinsecal ones, when all you have to expect is for the years to pass and for you to obtain your jubilation, so that you can go and enjoy all that you lost because you were working. I don't want to find myself just waiting for that, so that life is just an infinite sequence of boring days, where day n+1 is just like day n, and I'd rather be anywhere else.

Thursday, April 03, 2003

Unix Zen



  • Rule of Modularity: Write simple parts connected by clean interfaces.

  • Rule of Composition: Design programs to be connected to other programs.

  • Rule of Clarity: Clarity is better than cleverness.

  • Rule of Simplicity: Design for simplicity; add complexity only where you must.

  • Rule of Transparency: Design for visibility to make inspection and debugging easier.

  • Rule of Robustness: Robustness is the child of transparency and simplicity.

  • Rule of Least Surprise: In interface design, always do the least surprising thing.

  • Rule of Repair: When you must fail, fail noisily and as soon as possible.

  • Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.

  • Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.

  • Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.

  • Rule of Separation: Separate policy from mechanism; separate interfaces from engines.

  • Rule of Optimization: Prototype before polishing. Get it working before you optimize it.

  • Rule of Diversity: Distrust all claims for “one true way”.

  • Rule of Extensibility: Design for the future, because it will be here sooner than you think.


And shame on me, for reading Raymond. taken from here

Tuesday, April 01, 2003


A few quotes to go around with
(Taken from here)

Q: What's the difference between a terrorist and a methodologist?
A: You can negotiate with a terrorist.

Software should produce a tool to solve a genuine problem. Software is not an end in itself.
An elegant design is great but if the system doesn't achieve anything worthwhile then that's not really success.

Monday, March 31, 2003

The passage ritual
Ever since graduation day, two weeks ago, we (as in my fellow engineers and me) had planned to attend a large slaughtered pig ceremony with large quantities of alcohol, also known to the world as lechona de sábado en la tarde. It was a twelve hour celebration, featuring 388 beers, 7 bottles of aguardiente, a box of whisky (as in a box of bottles) and several runaway rums. Like every celebration of this nature, by 1:00AM half of the people was gone, and the half that remained was drunk. Several scenes that involved fighting took place, both men showing each other the fists and boyfriends and girlfriends giving each other the bird. Kind of makes you wonder about the future of civilization, if those who are said to be their "finest members" (yeah, right) are (first person, plural form, aka "we" ) involved in such celebrations.



I believe I had not said this befoire so here goes: My ex-kinda-shrink said I was "exogenic", which is a term that means that I seek for causes of bad things in the exterior, instead of looking towards the inside. She also said I was hollow on the inside. But hey, she also said computers are going to suck the living out of human beings, in such a way that coexistance of both humans and machines is not possible. However she did not say this in a "2001 Space Oddysey" kind of way, like something that is going to happen in the future. She said it like something that is going to happen right now. I tried to tell her that the apparent "randomness" of computer behavior (evident seeing the apparent unexplainability of Windows' Blue Screen Of Death) was not the result of an evil mind leaving inside the computer, but that of an evil mind living outside it, also known to the world as "the programmer".


Random unsolicited note:As time passes I see that I enjoy programming computers (or machines, for that matter) more and more, and that I like Beethoven more and more.


Thursday, March 20, 2003

Cries of war

Unavoidably so, the topic that comes to mind the easiest these days is war. However, I don't think that what is happening in Irak deserves to be labeled as war. Slaughter or killing frenzy seems more like it. No superpower in history had ever accumulated such a global influence in all fields as the US has today. Up until now, however the exercise of that power had to be, at least diplomatically, backed up by a set of values like "democracy" or "freedom" that where perceived as the founding values of the US society. After this, however, nothing stops a redneck texan, who had never gone abroad before his election as president from doing whatever he wants. Since US's military budget exceeds, by much, that of the next top five defense spenders, it is safe to say that no one in the planet can stand against the US war machine. Today it is Irak, because of it's oil or its euros or it's location. As Jorge Baron put it: "Y mañana desde cualquier lugar del mundo". Who knows? french wine is too expensive, german beer is taking a cut into the US market, colombian drugs are draining US dollars out of the US economy, Indian software programmers are working too much, the government in China is using too much non Microsoft software, the japanese are not opening their eyes when they talk to uncle Sam, the russians have too cold a weather. Anything can be a reason for war, so sit back and relax, the next one might be you

Friday, March 07, 2003

On commercial software

One of the consequences of industrial revolution was the conversion of town artisans into city workers. In medieval times craftsmen were respected and seen as an important part of a community. This was such an institution, that entire regions of countries were (and still are) known for their crafts. Such is the case with Nimes, in France, that is still known for it's clothing industry, altough most of the actual production is nowadays performed abroad, or with toledan steel works or Murano's cristalry. Craftsmen performed all of the work involved on their craft: They knew how to design it, how to build it, how to decorate it, and were responsible for selling it to the final costumer.
With industrial revolution, however, all of this changed. Craftsmen were not seen as an efficient mean of producing money and delivering goods an services in a resource efficient way, and labor was split among several workers, who didn't own whatever they made anymore. It was not a craft, but a mere job of repetition, that brought no pride to it's performer. The good being produced was not his, but belonged to whomever owned the factory.
This was good from a capitalist point of view: More goods were being produced, at a cheaper price, maybe even, of a better quality (debatable point). But the pride derived from making it was gone.
But this was not the result the capitalist aimed for, just a minor subproduct. What the capitalist wanted to do was to make labor cheaper. Instead of needing a genius craftsmen, that costed $1000, he could do ten times the work with 100 monkeys that costed $5 each. The craftsmen had to know it's craft, the monkeys, with help from machines could be almost brainless.
Software might be on the same path. Technology is slowly stabilizing. Right now it is not imperative to change computer every two years, as it might have been when significant breaktroughs in usability were being achieved. Changing from monochrome to color, or from no mouse to mouse, or from no sound to sound is far more exciting than just adding memory to be able to run the lates game. Besides, other than the gaming community, processor hungry genetic coders and freaks, most people use PCs for word processing (writing letters), spreadsheets (adding columns of numbers), e-mail and internet, which are more than covered (despite what latest windows sales people might say) by today's machines.
This non obsolescence that is just starting to attack (or benefit) PCs has been a companion for a while for bigger commercial applications, because of increasing power of machines, and high costs of migration. Companies can't afford to be changing their technological infrastructure every two years. Maybe not because of the cost of development itself, but because of the cost of teaching their monkeys how to use their new tool, with the learning curve that it involves.
Thanks to this, commercial applications have been done in the same way for a while now (and, in some market niches, will still be done in the same way for a while). The problems the programmers of such applications have to face are the same as three, four, ten years ago, so they know how to deal with them. The problem is not about "what to do" or "how to do it", that is already known. The problem is how to do it faster, cheaper, more productive. So, the solutions are the same as the ones that the industrial revolution brought: bring machines to help you and specialize labor, so that you can use a cheaper workforce to perform tasks.
In this case, however, machines are already there. You need to make programming faster and cheaper, so that a graduated rocket technician is not needed to program. The solution is simple: Bring hyperspecialized tools, that make programming code generation simple for the group of tasks you perform, and start churning out software like a madman.
Under these scheme of things, the strain is on resources and communication, instead of being on the technical side, so it becomes an issue of logistics and business administration, instead of being an issue of technical management of technology boundaries. You will still beed rocket scientists, to make the hyper specialized tools, but then maybe, you might cut a deal with a company of rocket scientists ( or one that has taken this "divide and conquer" technique one step further and can make hyper specialized tools with baboons, instead of monkeys) and buy the technology.
This might produce money, but it doesn't really produce knowledge, in the same way that fabricating bottle caps does not really produce knowledge. This is not bad, it is just a way of doing things but, are the aims of "producing knowledge" and "producing money" (in that order) contradictory? Let me pray they are not.