martes, 10 de junio de 2008

Mi ordenador es libre

El trabajo de los programadores es producir programas de ordenador (o software). Esto es todo lo que suelen saber los no iniciados sobre el tema.

La gente corriente no suele conocer nada de la técnica con la que se crean los programas, más allá de que la herramienta utilizada es un ordenador. Sin embargo todo el mundo tiene unas nociones más o menos profundas (o vagas) sobre otros temas más familiares, por ejemplo: cómo se construye un edificio, o un coche, o cómo se produce la electricidad. Forma parte del saber común o cultura general.

Pues bien, me propongo aclarar algunos conceptos sobre el tema. No se asusten, que va a ser un artículo muy ligero, de verdad.
  • El software lo crean (escriben) programadores humanos, con la ayuda de herramientas que también son otros componentes software escritos por otros humanos, que también usaron herramientas software, que... y así sucesivamente. Si, pero ¿qué herramienta usó el primer programador? La respuesta, claro, es: circuitos eléctricos (hardware). Es decir, el primer ordenador se programó modificando directamente su hardware. La evolución ha sido espectacular, no me lo negarán.
  • Los ordenadores no entienden el lenguaje humano, es decir, no es posible decirle a un ordenador "programa el Windows y cuando acabes me avisas". De hecho no es posible decirle nada porque un ordenador no tiene ninguna inteligencia, es sólo una máquina muy sofisticada que ejecuta las órdenes que se le han programado (los seguidores de las películas de Terminator explicarán que el fin de la Humanidad ocurrirá cuando un ordenador tome conciencia de su propia existencia, pero eso es otra historia).
  • Los programadores escriben los programas en un lenguaje mucho más reducido que el lenguaje que habitualmente hablamos pero también mucho más preciso, conocido como lenguaje de programación. El programa hay que traducirlo al lenguaje que entiende el ordenador (y ya hemos visto que entiende no significa comprende, si se me permite el juego de palabras). La traducción se realiza con otros programas (¿recuerdan las herramientas de las que hablábamos antes?) llamados compiladores.
  • Para fijar términos hay que aclarar que el programa original escrito por el programador se denomina código fuente y el resultado de la tradución, código ejecutable.
Lo importante es recordar que...
...una vez que el código fuente ha sido traducido al codigo ejecutable ya no se necesita para nada el primero.
De esta pequeña verdad ha nacido toda la potente industria informática y también un movimiento social que se rebela contra ella.

Software privativo y software libre

(Nota para puristas aficionados: usaré el término software privativo y no software propietario porque es el utilizado por la Free Software Foundation y porque esta última expresión es un anglicismo horrible).

Lean y asómbrense: El software que han comprado no es suyo. "¿Cómo que no? -- dirán algunos -- Si tengo factura y todo." Pues no. Y si no se lo creen pueden comprobarlo en el acuerdo de licencia que han aceptado al instalar cualquier pieza de software privativo (ese tocho de texto que aparece durante la instalación y que nadie lee). Lo que han adquirido es una licencia de uso, que les permite utilizar el software para los objetivos y en el contexto que el fabricante considera oportunos, pero nada más. Ni siquiera tienen (normalmente) el derecho a revenderlo. Y mucho menos a modificarlo para adaptarlo a sus necesidades específicas. De hecho, tampoco pueden ni siquiera intentar comprender cómo funciona por dentro.

Si estas condiciones se aplicaran a cualquier otro producto estoy seguro de que no lo querríamos comprar. Imaginemos que compramos un coche y el fabricante nos impone la condición de que sólo lo podemos utilizar los días laborables y en autopista de tres carriles, y que debo repostar únicamente gasolina de marca Repsol. Además, el coche no es mío sino que sigue perteneciendo al fabricante hasta el fin de su existencia y la tapa del motor está cerrada con una llave que no me entregan.

¿Suena poco razonable, verdad? Pues eso mismo que no aceptaría para su coche sí que lo está aceptando para su ordenador.

¿Hay alternativa? Afortunadamente, sí.

Se denomina software libre al que no impone ninguna de las limitaciones anteriores a su usuario. El término fue inventado por Richard Stallman, el fundador de la Free Softwre Foundation y se aplica al software que otorga a su usuario las siguientes libertades:
  • Libertad 0: Ejecutar el programa para cualquier propósito.
  • Libertad 1: Estudiar y modificar el programa.
  • Libertad 2: Copiar el programa para compartirlo con otros.
  • Libertad 3: Mejorar el programa y publicar las mejoras de forma que todos se puedan beneficiar de ellas.
Las libertades 1 y 3 requieren el código fuente (¿se acuerdan de él, no?) porque no es práctico ni a veces posible entender y modificar el programa a partir del código ejecutable.

Una vez explcado lo anterior, ya podemos decir que se denomina software privativo al que no es libre, es decir, el que no respeta todas las libertades anteriores.

El conflicto

El sector de la industria informática que se dedica a la producción de software basa su modelo de negocio en la imposición de restricciones al software que comercializan. Y la mejor forma de hacerlo, aparte de imponer unas condiciones de utilización con muchas limitaciones es no entregar el código fuente al usuario sino solo el código ejecutable. De esa forma será físicamente imposible la modificación del software (ojo, porque legalmente ya es imposible por la licencia de utilización).

Y los lectores que no son programadores dirán "Y a mí ¿qué? No tengo los conocimientos para modificar un programa".

A lo que se puede responder que tampoco tienen los conocimientos para arreglar un coche pero sí que tienen la libertad de llevarlo al mecánico que mejor les parezca (o a tunearlo como les apetezca sin que el fabricante se lo impida). Es decir, el usuario podría recurrir a un programador para que le adaptase el programa a sus necesidades específicas (por ejemplo, de una pequeña empresa) aunque él personalmente no sepa como hacerlo. Hablamos de la existencia de libertad, no de que haya que ejercerla siempre en primera persona.

La industria del software privativo ve al software libre como una amenaza muy seria para su negocio y por tanto se emplea a fondo para desprestigiarlo por todos los medios a su alcance. Por ejemplo, dicen que es inseguro porque todo el mundo puede ver cómo están hechos los mecanismos de seguridad, pero la verdad es que los hechos demuestran que el software más inseguro no es aquel que está más a la vista sino el más usado (el caso de Windows e Internet Explorer ilustra lo que pasa cuando todos los hackers y productores de virus del mundo se empeñan en atacar al mismo objetivo).

En este enfrentamiento no existen buenos ni malos, sino dos formas de entender el negocio. No se trata de promover la desaparición del software privativo, sino de hacer entender a la gente que no es necesario prescindir de las cuatro libertades de la FSF para disponer de buen software. Lo cual no quita que haya casos en los que es necesario recurrir al software privativo aun a pesar de sus inconvenientes.

Un ejemplo

Los no expertos, cuando compran un ordenador no saben cómo escapar a al llamado (irónicamente) Impuesto Microsoft, que consiste en la obligatoriedad que tiene el vendedor de ordenadores de incluir en el precio una licencia de uso de Windows. Es decir, en el precio que usted ha pagado por su ordenador ya le han cobrado el Windows, y les aseguro que es muy difícil (pero no imposible) comprar en España un ordenador sin Windows. Yo mismo estoy escribiendo esto en un portátil que venía con una licencia de Windows Vista (y que me cobraron) pero yo uso Linux. No suele haber escapatoria, así que no queda más remedio que aceptarlo y pagar, y luego ya con el ordenador en nuestro poder instalar lo que uno quiera.

Pero no quiero hablar de Linux (aunque recomiendo vivamente que lo prueben. Yo uso Ubuntu por si alguien se anima) sino de otro producto de Microsoft: Office. Esta suite ofimática se ha convertido en el estándar de facto en las empresas, fundamentalmente por el hecho de que Microsoft se ha ido ocupando de arruinar a todos sus competidores (¿alquien se acuerda de WordPerfect, Lotus 1,2,3, etc. ?). Es lo que tiene contar con unos bolsillos muy profundos.

En las empresas se usa Microsoft Office normalmente de forma legal, lo que significa que se está pagando por cada puesto en el que está instalado un montón de dinero, que además hay que volverse a gastar cada dos años más o menos que es cuando se publica una nueva versión. En los hogares, sin embargo, debido a su precio es habitual se usarlo de forma irregular (es decir, instalado sin licencia).

En ambos casos las quejas son las mismas: que Microsoft Office tiene demasiadas características muy sofisticadas que el usuario medio nunca va a utilizar. Es como si Microsoft se dedicase a engordar su producto para justificar que se adquiera la nueva versión.

Pues bien, existen varias alternativas libres y también gratuitas que funcionan en Windows y en otros sistemas operativos. Una de ellas es OpenOffice (o más correctamente OpenOffice.org). Se trata de una suite ofimática equiparable en calidad y características a la de Microsoft (aunque sí que es cierto que Microsoft Office es más avanzado en algunos aspectos) que tiene todas las funciones necesarias para el usuario medio-avanzado. Les animo a probarla y ya me dirán si no es cierto.
Como conclusión y dado que lo mejor es predicar con el ejemplo, diré que yo personalmente utilizo únicamente software libre en mi ordenador. Se trata de un portátil HP que adquirí nuevo con una licencia de Windows Vista que nunca he usado, porque inmediatament instalé Linux (Ubuntu) que ya trae incorporado el OpenOffice. Y para mis trabajos de desarrollo utilizo también herramientas libres (Eclipse, GIMP, etc.).

La ventaja (aparte de la inmejorable relación calidad/precio, ya que el precio es cero) es que puedo disponer de las últimas versiones de software en cuanto se publican. Pero lo mejor de usar Linux es que en Linux no hay virus. Increíble, ¿verdad? Pues es cierto. Lo repito: en Linux no hay virus.

Mi ordenador es libre ¿y el tuyo?

sábado, 31 de mayo de 2008

La oferta y la demanda

El modelo de oferta y demanda, también conocido como "Ley de la oferta y la demanda" es el que rige la fijación del precio de los bienes intercambiados en un mercado libre. Precisamente, un mercado libre se define como "aquel en el que los precios de los bienes se fijan por el libre acuerdo entre compradores y vendedores" por lo que la definición tiene algo de autorreferente.

Lo contrario de un mercado libre es un mercado intervenido, en el que los precios son influidos o fijados por un agente externo. Ejemplos que nos rodean:
  • El estado fija los precios máximos de un producto básico como la electricidad con el objetivo de contener la inflación.
  • La OPEP fija un precio mínimo del petróleo a base de mantener baja la producción.
En ambos casos el funcionamiento del mercado y, por tanto, la relación entre comprador y vendedor, se ve distorsionado por la intervención de un tercero. Cuando el estado fija los precios máximos de la electricidad está provocando un déficit a las compañías eléctricas, que dejan de tener interés en invertir para mejorar la red. Y cuando la OPEP impone un precio alto de venta del petróleo está asfixiando a los países consumidores, ya que al no haber competencia no pueden comprar más barato.

Pero ¿cómo funciona la fijación de precios en un mercado libre?

Imaginemos un mercado de venta de un producto cualquiera, por ejemplo trigo. Los compradores y vendedores se reúnen todos a la vez en la plaza del pueblo para cerrar los tratos, pero pronto se dan cuenta de que esto por sí mismo no funciona: un comprador que quisiera hacer el mejor trato tendría que hablar con cada uno de los vendedores para conocer su precio y así poder decidirse por el menor. Y cada vendedor tendría que hablar con cada comprador para poder elegir la oferta mayor.

Los compradores y vendedores deciden que intervenga un tercero que hará las veces de árbritro, facilitando las interacciones entre compradores y vendedores para que se llegue rápidamente a la fijación de un precio y se puedan realizar las transacciones.

Y comienza la compraventa:
  • Los vendedores se colocan a la izquierda del árbitro y los compradores a la derecha. El árbitro se sube en un estrado más elevado que le permite ver a ambos grupos, y coloca una pizarra de forma que esté a la vista de todos.
  • El árbitro escribe un precio en la pizarra ¿Cuál precio? Da lo mismo, como ahora veremos.
  • Previamente se ha acordado que los compradores dirán "¡compro!" cuando vean un precio al que querrían comprar, y los vendedores dirán "¡vendo!" cuando vean un precio al que querrían vender.
  • Los vendedores miran el precio escrito. Supongamos que es un precio demasiado bajo (p.ej. 10€), por lo que ninguno de ellos dice nada. Sin embargo los compradores estarían encantados de comprar a ese precio, así que todos dicen "¡compro!" sin pensarlo.
  • El árbitro escucha muchos "¡compro!" pero ningún "¡vendo!", así que se da cuenta de que el precio es demasiado bajo. Borra la cantidad y escribe otra más alta, p.ej. 20€.
  • Ahora escucha muchos "¡vendo!" y ningún "¡compro!", por lo que sabe que el precio es demasiado alto. Así que baja a 18€.
  • Y ahora ya hay algunos compradores que estarían dispuestos a pagar 18€, así que se empiezan a escuchar algunos "¡compro!" aislados, aunque muchos menos que los "¡vendo!". El árbitro vuelve a bajar, esta vez a 16€.
  • En ese momento el árbitro escucha el mismo número de "¡compro!" que de "¡vendo!". Se ha producido el equilibrio entre oferta y demanda, así que toca una campana para declarar abierta la contratación.
  • Los compradores y vendedores cruzan sus operaciones a 16€. Por supuesto no todos los presentes compran o venden, sino sólo aquellos a los que 16€ les parece un precio interesante para comprar o vender.
  • Tras unos minutos el árbitro toca de nuevo la campana para dar por finalizada la contratación. En estos momentos ha cambiado de mano una cierta cantidad de mercancía al precio de 16€, y el proceso puede volver a empezar.
  • Algunos de los compradores que compraron a 16€ estarían dispuestos a vender a mayor precio, así que se cambian del lado de los compradores al de los vendedores.
  • El árbitro escribe 17€ y escucha muchos "¡vendo!" (todos los compradores que compraron a 16€ y todos los vendedores que no pudieron colocar su mercancía a ningún comprador en el periodo de contratación). También escucha algunos "¡compro!" ¿Quiénes? Pueden ser compradores recién llegados o compradores que no pudieron comprar a 16€ en el periodo de contratación.
  • Y así indefinidamente.
Lo que he descrito es el funcionamiento rudimentario de una bolsa de valores. Ahora se utiliza la contratación electrónica (Mercado continuo) pero los principios son los mismos: cuadrar la oferta y la demanda para fijar el precio de los bienes.

Como se aprecia, en un mercado libre no puede existir el concepto de precio objetivo sino que sólo existe el precio de mercado. El precio de los bienes depende de su abundancia o escasez y de lo que los compradores estén dispuestos a pagar por ellos.

Piénsenlo la próxima vez que oigan decir que las grandes superficies inflan los precios de los productos o que el gobierno debería intervenir (más) los precios de la electricidad.
  • “Es de necios confundir valor y precio”. Quevedo
  • “El precio es lo que se paga. El valor es lo que se obtiene”. Warren Buffet

martes, 13 de mayo de 2008

El problema de Monty Hall

Se conoce como "el problema de Monty Hall" una paradoja lógica que a todos nos resultará familiar.

Monty Hall es el nombre del presentador de un famoso programa concurso de la televisión estadounidense llamado Let's make a Deal, emitido durante los años 60 y 70. Su mecánica consistía básicamente en ofrecer al concursante que eligiera uno de entre varios regalos ocultos. Luego se le daba la posibilidad de ir cambiando su regalo por otro de los restantes o una cantidad de dinero, y finalmente el concursante ganaba lo que contuviera el regalo con el que finalmente se quedaba.

¿Les suena? Seguro que sí. Muchos concursos televisivos emitidos en España se basan en un esquema parecido, por ejemplo la sección de La Subasta del famoso 1,2,3 o más recientemente el exitoso Allá tú.

En todos estos concursos el presentador normalmente ofrece al concursante intercambiar el regalo elegido por otro de los restantes o por una cantidad de dinero. Y aquí viene la paradoja.

Veamos:
  • Supongamos que inicialmente hay 3 cajas (A, B, C), una de las cuales contiene 1000 euros y las otras dos una patata.
  • Elegimos la caja A.
  • El presentador, para darle más interés, decide abrir la caja B para demostrar que contiene una patata (por supuesto, él sí que sabe en qué caja está el dinero y siempre abre una vacía). En este momento quedan la caja A en nuestro poder y la caja C sin abrir.
  • Y ahora viene el dilema: el presentador nos pregunta si queremos quedarnos con la caja A o cambiarla por la caja C.
  • La pregunta es ¿Cuál es la mejor elección? (si es que hay alguna mejor)
Intuitivamente casi todo el mundo responde que da igual, ya que hay el 50% de probabilidad de que el dinero esté en cualquiera de las dos cajas. Cierto ¿no...?

Pues no (por eso es una paradoja).

Pero antes de intentar explicarlo tengo que decir que la mejor manera de convencerse es probándolo en vivo. Se pueden tomar 3 naipes (2 del mismo valor y otro distinto que represntará el premio) y con la ayuda de un amiguete que hará de presentador intentar reproducir el juego en una serie de jugadas (50 serán suficientes) eligiendo siempre la misma alternativa (por ejemplo, quedarse siempre con la carta elegida) y luego repetir otra serie con la alternativa contraria (cambiar siempre la carta por la oculta). En seguida se apreciará cuál es la opción que proporciona mayores probabilidades de ganar.

Y ahora la explicación: lo mejor es cambiar de caja siempre ya que eso amplia claramente la probabilidad de ganar premio.

¿Por qué es así? No voy a intentar explicarlo mediante complejos estudios probabilísticos, que se pueden encontrar muy bien documentados consultando los enlaces que proporciono al final. Aquí va mi explicación sencilla que espero sea entendible:
  • Situación inicial: cada caja tiene 1/3 de probabilidad (digamos el 33% para aproximar) de contener el premio.
  • Elegimos la caja A, que recordemos que tiene el 33% de probabilidad.
  • Quedan las cajas B y C, cada una con el 33% de probabilidad, por lo que lógicamente entre ambas reúnen el 66% de probabilidad.
Es decir, hasta aquí tenemos que A=33% y B+C=66%
  • El presentador abre la caja B, que está vacía.
  • ¿Qué nos queda? Aquí viene la paradoja.
  • Normalmente la respuesta será que la caja A tiene el 50% de probabilidad de premio y la caja C el otro 50%.
  • Pero lo que ocurre de verdad es que la probabilidad del 66% del grupo B+C se sigue manteniendo aunque la caja B esté abierta (ya que no hemos cambiado ninguna otra premisa del problema).
Aunque sea chocante, lo cierto es que A=33% y B(abierta)+C=66%. Recuérdese que nada ha cambiado excepto que B está ahora abierta. Podemos asimilarlo a que C "hereda" la probabilidad completa del 66% ya que sabemos que B está vacía y ya no se puede elegir pero sigue formando parte del grupo B+C.

Por lo tanto, aunque cueste creelo, la probabilidad de que C tenga premio es del 66% frente al 33% de A.

Lo mejor es cambiarse a C, sin duda.

Y como siempre habrá algún incrédulo, les animo a que hagan la prueba que les propuse más arriba si tienen un rato libre y un amigo dispuesto, o en su defecto que consulten los enlaces que les proporciono. Seguro que ellos lo explican mucho mejor que yo.