Monthly archives: June, 2007

Class inheritance (without victims)

The extended or derived class has all variables and functions of the base class (this is called ‘inheritance’ despite the fact that nobody died)

From the PHP official documentation

Stupid robots generating the Spanish Congress’ website

The thing to speak about this week in Spain is the end of the football league. But I don’t follow it!!

Let’s restart: the thing to speak about this week in Spain, regarding the “web world”, is the new website of the Spanish Congress, This new version was worth a bit less than 200 thousand euros. And it’s probably the worst HTML I’ve ever seen… just thousands of lines of tag soup. Just try to see the source code (right click in the page, and “View Source Code”)… even if you don’t know anything about HTML, you can see some really weird things, like a thousand of lines of CSS definitions that are stupid. It’s quite impossible to do it worse!

The truth is that it’s quite clear that some kind of robot has generated all this tag soup. Humans are not in this magnitude of stupidity. Finally, all the government’s websites must follow (by law) standards and usability guidelines: I guess they haven’t any idea of what this really means.

“Welcome to Spain”… What a shame!

“Tomato plants” sorting algorithm

Yesterday I was trying to program a Heapsort algorithm in C, just as a practice to remember how C was (as rough and pure as I remembered). It’s an interesting sorting algorithm, which doesn’t use extra memory, and has a good time complexity, O(n log n). In theory it is as good as the popular Quicksort, but it does have a weird behaviour with almost ordered lists (unsorting the items and resorting them later), using more time than Quicksort uses. This is the reason for its short popularity.

This behaviour has induced me to think about similarities between computer algorithms and nature algorithms. Some algorithms have somehow an inspiration from nature, like the Bubble sort which, as its name suggests, imitates bubbles inside a liquid. Others don’t reflect nature, and this maybe is not too good.

New plants growingI have a lot of tomato plants growing on my balcony. There are too many small plants. Some of them will grow quicker, stealing the soil’s energy from others. Some will not have enough energy to develop. Natural selection. Energy movements, randomness, and quicker first states remind me of something like Simulated annealing. It’s not a honest algorithm, meaning its result is not perfect, and maybe some items get better positions that they should. But it’s an interesting path to develop…

“Part of the inhumanity of the computer is that,
once it is competently programmed and working smoothly,
it is completely honest.”
Isaac Asimov

P.S: … or maybe I must keep my mind disconnected on Sunday morning, and spend the time watching some brilliant animated shorts.

Client requirements applied to national flags

A good example of what a client can suggest to change…
National flags with clients’ comments (Flash animation)
Sadly true!

Found via: Information aesthetics

Ubuntu rules

I can claim:
Ubuntu is the OS with the quickest and painless installation that I’ve ever installed in a PC

· I need only some hours to install Ubuntu (with some extra programs).
· I used to need a weekend to install Windows (with the pain of looking for drivers).
· I used to need some weeks to install older Linux versions.

I’m not the kind of geek who installs the OS of his computer offen. I normally install it when it’s really necessary (normally once every 2 or 3 years). But seeing the installation of Ubuntu, I can’t understand how people still think that Linux is complicated…

Alternative ways for interviewing candidates

Working hard in the officeNowadays almost all the companies use standard methods for interviewing candidates. They still use some common techniques like tiers of technical tests to find the perfect person… who can have an incredible CV and outstanding skills. But later he could be a complete fool, or he doesn’t fit in the company atmosphere. During my University days I saw people getting better results (than me) in the “Nets” subject, without really knowing what is an IP address! And while working in different places, I’ve seen the same: people without really good tech skills being really good coworkers (trying to learn every single day, trying to create a nice office mood…), and people with impressive knowledge avoiding to share it, or being incredibly selfish. What I’m trying to say is that maybe it’s good to do some filtering regarding technical skills, but later you must focus on testing the person, and not in testing the professional.

Example 1: could be a dream place for working. Specially if you love music, web and charts. Yesterday I was looking at their job offers and it was nice to find as a requirement: “with something that passes for music taste ;). Brilliant!!

Example 2: Some weeks ago my manager was interviewing some candidates for an “HTML layout specialist” position. I suggested him to ask them “are you lazy?”, and they should answer “yes” because “the lazy programmers get the things done quickly, and try to do the things in a neat way, to finish quickly”. Of course it was somewhat of a joke. But he got the hidden idea. And finally we hired a chemist, with some experience in HTML Strict mode and mad as a hatter, instead of a telecommunications guy with an overfull CV (mostly filled with glossy titles) and having bad manners during the interview. Eventually, he fits perfectly in our department, so it was a good decision.