05 mayo 2007

Portátiles por menos de 100 dólares

El proyecto OLPC (One Laptop Per Child) pretendía crear portátiles de bajo coste, que pudieran llegar a cualquier lugar desfavorecido del mundo. Según las directrices del visionario Negroponte, debían tener un precio cercano a 100 dólares, para que fuera cada gobierno el que los comprara y los distribuyera en sus escuelas.

Debían ser, además, equipos capaces de funcionar en sitios en los que no existiera electricidad, por lo que el primer prototipo tenía una manivela para cargar la batería. El fabricante, el taiwanés Quanta (que parece ser el mayor fabricante del mundo, que crea portátiles para casas como HP, Dell y Acer) optó también por una pantalla dual, capaz de trabajar en color y en blanco y negro, incluso sin iluminación posterior, para reducir el consumo, y con detalles como la posibilidad de seguir leyendo la pantalla mientras el procesador está suspendido, para actuar como si fuera un libro. El sistema operativo sería de código abierto, basado en Linux, y los equipos contarían con 256 Mb de memoria RAM y 1 Gb de memoria flash en lugar de disco duro (puedes ver más detalles -en inglés- en la información publicada por Quanta y la presentación -en español- del proyecto en su página oficial, laptop.org).



Pero resulta que los costes de fabricación están ahora mismo en el entorno de los 175 dólares (puedes ver artículo original en 20 minutos) y se habla de que sería necesario una demanda de al menos 3 millones de equipos para rebajar esos costes hasta el valor esperado. En mi opinión, aunque haya claramente más de 3 millones de personas en situación de subdesarrollo, no es tan fácil que los países en vías de desarrollo vayan a hacer una inversión tan grande...



Además, se ha hablado que hay conversaciones con Microsoft para que este equipo pueda trabajar con Windows, lo que ha parecido mal a muchos de los defensores del proyecto. A mí también me sentaría mal después de que el señor Gates hubiera despreciado con anterioridad el proyecto con frases como "ten un ordenador decente donde puedas realmente leer el texto y no te sientes allí dándole cuerda mientras intentas teclear" (nota original en 20 minutos, de marzo de 2006). A lo mejor no se da cuenta de que no todos tienen su holgura económica. Un año después parece haber rectificado su postura y habla de un paquete de software que contiene (nota original en PcWorld, en inglés) Windows XP Starter Edition, Office Home and Student 2007, Windows Live Mail, y alguna otra aplicación por un precio de 3 dólares (sí, tres) para estos países desfavorecidos (¿será ese el software que pretende incluir en la máquina de OLPC?).

Pero el caso es que hay otros países con capacidad de producción y que han tomado ideas. En un artículo de 20 minutos (descubierto gracias a barrapunto) se habla de que India pretende llegar a fabricar portátiles a 10 dólares (el desarrollo tardará cerca de dos años) y que de momento ya tiene un modelo por 47 dólares.

A ver si alguna de estas iniciativas termina de cuajar y la "aldea global" se hace realmente global, no sólo una "aldea de países desarrollados"...

02 mayo 2007

Operaciones frecuentes con arrays

Hay una serie de operaciones que son muy frecuentes cuando uno tiene una serie de datos almacenados en un array. En ocasiones se trata de "operaciones reales", y otras veces son ejercicios casi "puramente académicos", destinados a ayudar a afianzar conocimientos a la gente que comienza a programar.

En cualquier caso, es una duda habitual de programadores que comienzan, por lo que vamos a ver las operaciones que más se repiten. En los casos supondré que tenemos un array que no está totalmente lleno de datos, y que los datos existentes están al comienzo del array.

Definir un array: reservamos espacio y "anotamos" que todavía no hay ningún dato.

#define MAXDATOS 100

float datos[MAXDATOS];
int cantidadDatos = 0;


Añadir un dato al final: si queda espacio, lo guardamos en la última posición y aumentamos el contador.

if (cantidadDatos < MAXDATOS) {
datos[cantidadDatos] = valor;
cantidadDatos++;
}


Ver si existe un cierto valor: si el array no está ordenado, habrá que recorrerlo de principio a fin hasta encontrar el valor o ver si el array termina.

encontrado = 0;
for (i=0; i < cantidadDatos; i++)
if (datos[i] == valorBuscado) {
encontrado = 1;
break;
}



Hallar el valor máximo (en una lista no ordenada): podemos comenzar asumiendo que el máximo es el primer valor de la lista y entonces comparar con todos los demás para ver si alguno es mayor que él (estamos dando por sentado que hay al menos un dato en la lista).
maximo = datos[0];
for (i=1; i < cantidadDatos; i++)
if (datos[i] > maximo)
maximo = datos[i];


Hallar el valor mínimo: similar al anterior.


Eliminar una posición de la lista: habrá que mover "hacia atrás" todos los datos que existían a continuación del que eliminamos, y entonces "anotar" que hay un dato menos (ni siquiera haría falta "vaciar" el último dato).

for (i=posicionABorrar; i < cantidadDatos-1; i++)
datos[i] = datos[i+1];
cantidadDatos--;


Insertar un valor en una posición: habrá que mover "hacia adelante" todos los datos a partir de esa posición (deberemos empezar desde el final), y finalmente guardar el dato.

if (cantidadDatos < MAXDATOS) {
for (i=cantidadDatos; i >= posicionInsertar;i--)
datos[i+1] = datos[i];
datos[posicionInsertar] = nuevoValor;
cantidadDatos++;
}



Ordenar los datos: hay muchas formas de ordenar. Normalmente las más sencillas son también las menos eficientes, pero como no buscamos eficiencia, sino entender una forma simple de ordenar, podríamos utilizar el método de "la burbuja": en la primera pasada se compara el primer número con el segundo, y se intercambian si están en orden incorrecto; luego se compara el segundo con el tercero, el tercero con el cuarto, y así sucesivamente. De esta forma, al final de la primera pasada ya tenemos el último número colocado al final. Luego repetimos con los n-1 restantes, para obtener otro número, y así hasta terminar. Se trata de dos bucles "for":


for (i=0; i < cantidadDatos-1; i++)
for (j=i+1; j < cantidadDatos; j++)
if (datos[i] > datos[j]) {
temporal = datos[i];
datos[i] = datos[j];
datos[j] = temporal;
}

01 mayo 2007

Piratas, pero no tanto

Un reportaje de "ElPais.com" vuelve al manido tema de la piratería.

http://www.elpais.com/articulo/cultura/Bajarse/musica/Internet/considera/pirateria/elpepucul/20070430elpepucul_4/Tes

El titular dice "Bajarse música de Internet no se considera piratería. Los españoles creen que los bienes culturales son demasiado caros y, aunque están en contra del 'top manta', no ven censurable intercambiarlos en la Red"

En mi opinión, lo importante en sí no es el artículo, porque ha habido miles como éste, ni las estadísticas que digan que casi un 70% de los encuestados consideran exageradamente caros los CD y sólo un 0,7% de ellos considere baratos los videojuegos. Tampoco veo especialmente importante el título, aunque no es una muestra representativa del resto del artículo, en el que también se dice "Casi nadie piratea. Sólo el 8% de los encuestados usa copias ilegales de CD, DVD o videojuegos [...]".

Para mí, lo importante son las opiniones de la gente, que da puntos de vista sobre los que muchas veces el periodista parece no haber recapacitado (ni los gobiernos, ni la SGAE...).

Por citar algunos:

- "Que ilegalicen la publicidad excesiva y enganosa, la mentira y manipulacion de los politicos, las empresas armamentisticas, la especulacion y la sobreedificacion, ... y mil actividades mas que solo satanas entiende por que son legales [...]"

- "Es mucho suponer que alguien, cuando se descarga música, películas o libros desde Internet, es que pensaba comprarlos."

- "Los artistas que cobren por TRABAJAR, esto es, por interpretar su musica, currandoselo, en directo, y no por trabajar una vez cada dos años. Por lo demás, cuando compro una cosa me siento legitimado como PROPIETARIO para prestarla y, si me apuran, para venderla.[...]"

- "Yo, personalmente, sigo comprando música. Si me bajo algo y realmente me gusta, suelo comprarlo. [...]"

- "Me hace mucha gracia cuando las empresas hablan de los miles de millones en pérdidas que les producen las copias ilegales. Bueno, creo que cualquiera con 2 dedos de frente sabe que si el público tuviera que pagar lo que se pide por los programas de software, a música o películas, no lo haría. Nadie pagaría millones por los programas de su ordenador, tiraría con 3 ó 4 baratos, sin actualizar o gratuitos.[...]"

- "A todos aquellos artistas que desean cobrar por su trabajo: creo que es una aspiración legítima, es la que tenemos todos. Pero la solución, como ya se ha señalado, es justamente la difusión al máximo de vuestro producto, y luego obtener las ganancias de las actuaciones en directo (a las que acudirá más gente cuanto más se haya divulgado vuestro trabajo). [...]"

- "Claro, y también hay que ir al cine a ver las últimas películas de Philip Garrel, Nobuhiro Suwa, Jacques Rivette, Hong Sang Soo, Claire Denis, Chantal Akerman, Bela Tarr, Tsai Ming Liang..., y me canso de escribir. Ay, no, se me olvidaba que no se han estrenado en España ni nunca se estrenarán... Menos mal que es una cuestión de cultura..."

- "¿Por qué si veo una película en el cine luego el precio del DVD es el mismo para mí que para el que no ha ido al cine? [...]"

- "Piratear es subir el precio del suelo dejando la vivienda en manos sucias, entregar la sanidad y la enseñanza al cápital privado, piratear es pemitir que los especuladores gobiernen las ciudades [...]"

- "Pagar 20 euros por una porquería de cd en la que suele venir una canción de éxito y unas cuantas que no valen para nada es un robo. [...]"

- "El problema es que muchos artículos "culturales" no valen lo que se pide por ellos [...]"

- "Definición del DRAE: pirata: 1. adj. pirático. 2. adj. clandestino. 3. com. Persona que, junto con otras de igual condición, se dedica al abordaje de barcos en el mar para robar. 4. com. Persona cruel y despiadada. No dice nada de los que intercambian archivos digitales. ¿O es que somos crueles y despiadados? [...]"

- "En este mundo donde los artistas ven un 0.05% de cada disco o cosa que hagan, este tema solo le importa a las discograficas. ¡Que les den! Los musicos hoy ganan dinero de otras formas [...]"

- "Lo que es una pasada es que cueste lo mismo comprar un disco en I-Tunes/Yahoo, etc. (que no hay inventario, ni tienda, ni nada) que comprarlo en una tienda."

- "podrian poner unos precios justos y dejarian sin efecto la pirateria.nadie compraria un disco copiado por ahorrar 5 euros"

- "No he vuelto a descargar musica desde hace dos años. Espero que los artistas lo hayan notado. Tampoco he comprado discos: no puedo. Simplemente no les escucho. Espero que tener un oyente menos les proporcione una gran satisfaccion."


¿Y mi opinión? Ok, como este es mi Blog, me mojaré y opinaré.

Me gusta probar las cosas antes de comprar. Pero si me gustan las compro. Mejor dicho, si justifican su precio, las compro.

Por ejemplo, cuando rebajan ciertos DVD hasta precios cercanos a los 5 euros, los compro. De hecho, tengo muchos DVD originales. Y casi todos son de películas que ya he pagado antes por ver en el cine.

Cd de música no suelo comprar, por varios motivos: es raro que me gusten más de 2 o 3 canciones, por lo que la mayoría que tengo son recopilatorios, y además, incluso cuando están rebajados, la relación precio/esfuerzo de desarrollo de un CD comparado con un DVD me parece totalmente injustificable. Ni siquiera suelo comprar canciones sueltas: cuando lo intenté, me pareció exagerado el precio final al que me salía mi cd hecho de canciones sueltas, en el que yo tenía que poner el soporte (+canon para la SGAE), la caja, imprimirme una carátula...

En cuanto al software, he comprado algún que otro programa que he usado con frecuencia (después de probarlos), utilizo muchas herramientas de código abierto, he ayudado en la creación/traducción de más de una... pero (por ejemplo) no pienso pagar 100 euros al año por una nueva versión de Windows que no aporta nada nuevo, así que seguiré mucho tiempo con el XP que traía mi portátil (y que pagué, claro), alternándolo con un maravilloso Linux. Sólo espero no encontrar que un día mi línea aparezca en alguna estadística de piratas porque alguien haya descubierto que a veces descargo ficheros de 700 Mb... porque ¡¡¡ Son versiones de Linux, gratuitas !!! (concepto desconocido para los señores de la SGAE, y que sé que me traerá problemas como este país siga así...)