When I search for a particular software application (Wt, CMake, etc), please show me, in the results page, the latest version and a link to the download page (or even to the file, if there is only one file to be downloaded) so that I do not need to enter the website, check if there is a newer version and, if there is, go to the download page. Here you have a mockup:

Mockup of Google showing the latest version of CMake in the results page

Mockup of Google showing the latest version of CMake in the results page

This is a common mistake I see every time an English speaker tries to speak Spanish, or a Spanish speaker tries to speak English.

  • Mister = Seor
  • Sir = Caballero

When in English you would say “Sir, your umbrella”, do not say “Seor, su paraguas” but “Caballero, su paraguas”. Also, never say “Gracias, seor” for “Thank you, Sir” but just a plain “Gracias”.

Hoy publica El Mundo un artculo titulado Apostar por el bilingsmo puede ocasionar un problema de tartamudez. El titular dice claramente que los nios bilinges son ms propensos a ser tartamudos.

Pero, es cierto?

Pues no.

Basta con leer el artculo para darse cuenta de que ni el periodista, ni los que han hecho el artculo, saben nada de Estadstica ni Inferencia Estadstica.

El primer error es la poblacin elegida para el estudio: slo nios tartamudos. Con ese punto de partida, es IMPOSIBLE y TOTALMENTE ERRNEO concluir que el bilingsmo lleva al tartamudeo. Para poder obtener esa conclusin habra que haber hecho el estudio con nios tartamudos monolinges, nios tartamudos bilinges, nios no tartamudos monolinges y nios no tartamudos bilinges. De esos cuatro grupos, slo los dos primeros estaban en la poblacin elegida para el estudio. Esto, de por s, ya anula todo el estudio.

Segundo error: slo clnicas y hospitales pblicos. Los padres adinerados llevan a sus hijos a clnicas privadas, as que la poblacin estudiada son nios pobres y tartamudos. Y quin suele encuadrarse entre los pobres tan pobres que ni haciendo un esfuerzo pueden llevar a sus hijos a una clnica privada? Pues los inmigrantes, claro. Que da la casualidad que suelen venir de otro pas, as que hablan otro idioma. Eso explica el bilingsmo de esos nios.

La nica conclusin vlida que se podra sacar de este estudio es que las familias pobres con nios tartamudos los llevan a clnicas pblicas, no privadas. Cualquier otra cosa es errnea o malintencionada.

Es increble que todava se publiquen tantos artculos, en peridicos y en revistas de prestigio, que pequen de la falacia del tercer factor (“Cum hoc ergo, propter hoc”).

Para terminar, un ejemplo de un estudio muy antiguo que pecaba tambin del proper hoc. Se hizo un estudio y se vio que aquellas personas que compraban muchos zapatos, tambin compraban muchos libros. Sera que lean mientras se ponan los zapatos? Mientras esperaban en la zapatera? Deberamos regalar zapatos para “fomentar” la lectura, como pareca concluirse del estudio? Pues tampoco: es simplemente que quienes compraban muchos zapatos eran gente con dinero, as que podan permitirse comprar ms libros. El estudio ni siquiera miraba si esos libros eran luego ledos: haba mucha gente que apenas compraba zapatos, pero iba a la biblioteca y lea ms libros que los “comprazapatos compulsivos”

I am adding Strigi support to an application using the Strigi socket interface (it’s faster than DBus and, in my case, easier to use). When using the socket interface, Strigi needs to to know where the socket should be created (for instance, /home/pgquiles/.strigi/socket) and it will search for indices in a subdirectory of that directory (/home/pgquiles/.strigi/clucene if using the CLucene backend, /home/pgquiles/.strigi/estraier if using the HyperEstraier backend, etc).

So I was telling Strigi the socket should be created in /home/pgquiles/.strigi/socket and to use the CLucene backend, thus indices would be looked for in /home/pgquiles/.strigi/clucene. Problem is, I was not getting any result back!

    std::string socketpath("/.strigi/socket");

    const char *homeVariableName = "HOME";
    char *home = getenv(homeVariableName);

    if( 0 != home ) {
      std::string socketpath = std::string(home) + "/.strigi/socket";      
    }

    socket.setSocketPath( (const char*)socketpath.c_str() );

Notice the subtle error with block-scoped std::string socketpath hiding method-scoped std::string socketpath. Due to that, Strigi tried to use a socket from /.strigi/socket (which did not exist) instead of the right one, so it did not even try to look for indices!.