¿Por qué se cuelgan los ordenadores? (I)

Si se ha preguntado alguna cuál es el origen del extraño nombre de este blog, Segmentation Fault, hoy está de enhorabuena (tal vez no…): lea este post entero y lo entenderá todo… Antes de nada quiero decir que no soy muy partidario de dividir las entradas, pero en esta ocasión no veo otra posibilidad… Sxim me dejó éste nuevo post en bandeja, cuando a raíz del post sobre el reparto de CPU, preguntaba:

¿Qué decimos técnicamente cuando decimos que «un programa / el ordenador se ha trabado»?

Seguro que al menos una vez se le ha colgado el ordenador. Y casi seguro que habrán sido más de una (y más de dos… :-P) Pero voy a empezar con una mala noticia… por desgracia, los cuelgues son algo propio e inseparable de la informática. Ayer existieron, existen hoy, y con toda probabilidad, seguirán existiendo mañana.

¿A qué nos referimos cuando decimos que el ordenador «se cuelga»? Hay muchas formas en que un equipo puede dejar de responder: puede ser que los programas fallen en cadena. También puede ser que el Sistema Operativo deje de funcionar por algún motivo. Puede ocurrir que sencillamente el equipo deje de responder y haya que reiniciarlo… cualquier cosa.

¿Y qué produce un cuelgue? Bien, no podemos señalar a nada ni nadie como causante de la catástrofe: los motivos tenemos que buscarlos en un montón de factores. Pero como todo en la informática, vamos a dividirlos en dos partes: hardware (el cuerpo del ordenador) y software (el alma del ordenador). Hoy vamos a empezar con éste último:

El software

Tenemos que ver al ordenador como una máquina muy compleja, con un montón de cables y circuitos complicadísimos. Para regir todo esto, necesitamos al Sistema Operativo (SO). Bien, los SO son programas gigantescos y muy enrevesados, así que podemos considerar normal que se equivoquen al gestionar esa enorme complejidad electrónica. Los SO tienen que tener lo que llamamos mecanismos de protección del sistema, que impiden que los programas se influyan unos sobre otros (de forma no deseada, se entiende).

Los programas guardan muchos datos que necesitan para funcionar, y mantienen éstos datos en memoria (podemos verlo como una consigna de un supermercado o de un aeropuerto), y para acordarse se quedan con la llave, en la que viene el número de taquilla en que dejaron una información. Por ejemplo: «el nombre del usuario está en el armarito número 9». Cuando el programa quiere recordar cómo se llamaba el usuario (para saludarle), toma la llave de la consigna 9 y la abre. A éstas llaves se les suele denominar punteros en informática.

Hemos dicho que debemos evitar que los programas se molesten unos a otros, y para ello, es necesario que mantengan separados sus armaritos y que no confundan sus llaves (a nadie le gustaría que le robaran la mochila en el híper, por ejemplo…). Bien, pues tenemos nuestro programita con sus datos identificados señalados en un enorme manojo de llaves. Ahora imagine que otro programa abre por error una taquilla y modifica el contenido, o que nuestra aplicación pierde una llave, o el número de la llave se altera… cualquier catásfrofe que se le ocurra. En la cruda realidad, éstos desarreglos significan generalmente errores críticos de ejecucion: el programa esperaba encontrarse otra cosa en su taquilla, y simplemente, falla.

¿Por qué se colgaban más los sistemas Windows? La explicación es que los Windows antiguos (95, 98…) no sabían hacer frente a un programa que trataba de abrir otra taquilla. Sencillamente se lo permitían, como si no fuera su problema… pero sí lo era. Los procesos empezaban entonces a fallar en cadena, por lo que tarde o temprano ocurrían dos cosas: o bien los armarios del SO eran alterados (pantalla azul), o bien el ordenador se quedaba sin recursos para atender las excepciones devueltas por los programas (bloqueo del sistema). Lo estoy contando a muy grandes rasgos, la realidad es generalmente mucho más complicada y menos novelesca…

Sin embargo, a partir de los Windows serios (NT, 2000, XP…) ésto se solucionó. De hecho, si usó W98 y ahora usa WXP, verá que el segundo es mucho más estable que el primero. En el caso de los Unix y los Linux, cuando un programa intenta acceder a una taquilla ajena, es fulminado inmediatamente y se produce un error. Unix tiene unas bases muy modulares, y por norma general, un fallo local no suele afectar al resto del sistema. Así, cuando un programa ejecuta una operación no válida, se produce un error denominado (agárrese) Segmentation Fault. En español, viene a ser «violación de segmento», que quiere decir que un proceso ha intentado acceder a memoria fuera de la que tiene reservada (fuera de su segmento, para entendernos…)

Sin embargo, es injusto decir que los errores o los cuelgues se produzcan exclusivamente a causa del software. Muchas veces, la culpa la tienen los dispositivos físicos: procesadores que no funcionan, fuentes de alimentación que no dan más de sí… todas estas cosas las vamos a analizar en la siguiente entrega. ¡Hasta entonces!

Actualización: Ya puedes leer la segunda parte del post.

Sobre estadísticas y otros cuentos

Ahora que hay mucho bloguero recién llegado :-D voy a aprovechar la coyuntura para explicar qué es eso de las estadísticas, qué ofrecen y cómo puede uno añadirlas a su blog (y al final, propina). Es algo muy sencillo, pero lo mismo que habría explicado por email puedo hacerlo por aquí y que sea útil a más gente.

Un servicio de estadísticas es algo que contratamos quienes mantenemos una web, un blog o lo que sea, para poder analizar cuántos visitantes tenemos, y en ocasiones algunos parámetros de éstos visitantes que pueden interesarnos.

Yo utilizo StatCounter, que desde mi humilde punto de vista funciona francamente bien y es bastante completo. Los hay mucho mejores, pero tal vez no estén libres de publicidad ni sean gratuitos, como es el caso… Así que voy a dar cuatro notas sobre cómo contratarlo e incluirlo en la plantilla del blog, para que todos podamos tener nuestras bonitas y flamantes estadísticas.

Lo primero es acceder a la web del proveedor (en este caso www.statcounter.com) y allí proceder al registro. En éste caso, creo recordar que hacen falta muy pocos datos personales. Una vez hemos completado la solicitud, podemos elegir qué tipo de contador queremos. En el caso de mi blog, en principio preferí reservarme el número de visitas, así que simplemente hay una imagen publicitaria. Está situado al final, y queda así:

Lo que hay que hacer es tomar el código que nos propone el proveedor y copiarlo en la parte de la plantilla en la que queramos que aparezca el botón con el logo o con el contador. No doy muchos detalles sobre el proceso porque me pareció bastante intuitivo, pero si alguien necesita una ayudita, estoy a su disposición :-) La cosa, en uno de esos esquemas que tanto me gustan, queda así:

El que sepa un poco de HTML verá que se puede quitar la imagen y el enlace (a mano o eligiendo el modo invisible), pero StatCounter proporciona un servicio gratuito de bastante calidad, por lo que mi opinión es que hay que apoyar este tipo de comportamientos (cada vez más escasos) dejando la imagen y el enlace. Llegados aquí, vamos a resumir el procedimiento:

  1. Como siempre, tener una copia de la plantilla «por si acaso».
  2. Elegir el contador que más nos guste y tener bien claro el código que hay que copiar.
  3. Elegir el lugar del blog donde queremos insertar el botoncito e identificarlo en la plantilla.
  4. Copiar el código con cuidado y delicadeza, sabiendo lo que hacemos.
  5. Probar la plantilla y hacer las modificaciones oportunas para que quede todo bien.
  6. Guardar la plantilla.

Y de la que estoy, aprovechemos para comentar otra cosilla: las votaciones de Qualitativo. La cosa es muy muy sencilla, aquí no hay ni siquiera que registrarse. Sólo es un código que hay que copiar, así que una vez en su web nos vamos a «ejemplos», seleccionamos dónde tenemos el blog, y ahora sólo hay que copiar y pegar (podemos modificar lo que queramos directamente sobre el código: color, texto… todo eso).

La única dificultad está en localizar el pie del post, pero basta con leer el código de la plantilla atentamente. Normalmente basta localizar la etiqueta que muestro subrayada:

Al principio hay que lanzarse un poco, pero en cuanto hagamos cuatro cambios vamos a ver que en realidad es muy sencillo. El contador y el script para puntuar la web son dos ejemplos muy buenos de funcionalidad que podemos añadir al blog con muy poco esfuerzo. Quizá haya dado por hechas muchas cosas, si alguien tiene problemas que por favor lo pregunte, me comprometo a ayudar en la medida de mis posibilidades.

El reparto de procesador

Cuando escribí el post sobre la secuencialidad, nunca pensé que terminaría escribiendo ésto. Sin embargo, creo que es una muestra más del enorme nivel de mis idolatrados lectores… en concreto, Ñita preguntaba:

Aun así, yo tengo una pregunta sobre ésto: ¿Cómo decide el procesador qué instrucción tiene que atender en cada momento, para que todos los programas que se están ejecutando tengan «su oportunidad de progresar en la vida»? xD
Es decir, ¿va rotando entre los programas que tiene abiertos..?

Nuestra lectora no va nada desencaminada, pero hay que aclarar que el procesador no decide nada: toda la responsabilidad para gestionar la multitarea recae sobre el sistema operativo (SO), quien asigna a los programas el tiempo de procesado con arreglo a unos parámetros.

Para entender ésto, tenemos que ver al procesador como un recurso: un bien limitado que todos los programas quieren utilizar y que sólo el sistema operativo gestiona, decidiendo qué programa se ejecutará y cuál no. Es como el director de orquesta.

Hasta hace unos años, los sistemas seguían un enfoque de «reparto no apropiativo», que consistía en que los programas utilizaban el procesador hasta que terminaban lo que hacían, o lo cedían voluntariamente a los demás. Sin embargo, este enfoque está basado en que la gente es buena, y por lo tanto no resultaba muy fiable… El enfoque de los sistemas operativos modernos se llama «reparto apropiativo», porque los programas no se quedan con el procesador por mucho que quieran, es el SO quien se encarga de arbitrar su uso. O sea, que es el SO quien se «apropia» del procesador cuando los procesos se ponen pesados… Ya sé que la intuición nos lleva a pensar que los nombres están al revés, pero se lo aseguro: están bien así.

De acuerdo con ésto, en la actualidad los programadores (me voy a incluir…) diseñamos las aplicaciones como si fuesen a ejecutarse ellas sólas en la máquina, aun sabiendo que no es cierto. Luego, será el sistema operativo quien de forma transparente, se encarga de pasar el turno a los programas.

Antes de seguir, cabe señalar que los programas cargados en el ordenador suelen denominarse procesos. Aquí lo vamos a usar como sinónimo de programa, aunque no sea muy correcto. También, muchas veces utilizamos CPU (Central Processing Unit, Unidad Central de Procesamiento) en vez de procesador.

Aquí un tema muy interesante del que se habrán dado cuenta los lectores más despiertos… Un sistema operativo no es más que un programa, así que… ¿qué pasa si un programa no «suelta» el procesador? Y es que para que el sistema pueda quitar de la ejecución a un programa, antes necesita ejecutarse él… ¿cómo lo logra? Digamos que el sistema operativo deja una «bomba de relojería» (una interrupción, que se llama) en el procesador. Cuando la bomba explota, el ordenador salta a ejecutar el código del planificador del sistema operativo, que se encarga de guardar los datos con los que estaba trabajando el programa y de seleccionar el siguiente «afortunado».

Visto de otra forma, es como si el sistema operativo permitiera a los programas usar su baño, y que la puerta del baño sólo puede abrirse desde dentro. Para asegurarse que nadie se queda a vivir, pondría un mecanismo en la puerta para que, transcurrido un tiempo, se abriera…

Una vez que el SO ha expulsado al programa que estaba ejecutando su código, hemos dicho que se pone a los mandos de la nave, y decide qué programa será el siguiente (normalmente habrá varios esperando). Esta decisión no es nada sencilla, y hay varias técnicas para decidir a quien se le deja el procesador… ahí van algunos, muy brevemente:

  • FCFS (First come, first served). Se ejecuta primero el que lleve más tiempo esperando.
  • RR (Round Robin). Consiste en un turno rotatorio. Se pone un tiempo máximo y se retira a los programas que lo exceden. Es el algoritmo que usa Windows…
  • SPN (Shortest Process Next). Se ejecuta primero el programa que se estima que va a durar menos… es como cuando te dejan pasar en la tienda porque sólo vas a llevar un pan.
  • SRT (Shortest Remaining Time). Ejecuta un programa que llegue a la «cola» si el tiempo que va a tardar es menor que lo que le queda al que está ejecutándose.
  • HRRN (Highest Response Ratio Next). Es algo más complicado, tiene en cuenta el tiempo que lleva esperando el programa y lo que estima que va a tardar para ser más justo.
  • Por Realimentación (no hay siglas :-P). Es también muy complicado, así que no lo voy a intentar explicar. Basta decir que es que usan los Unix (y por tanto, la mayoría de los Linux) y que funciona a las mil maravillas.

Hay algunos más, pero son realmente complicados. Aparte de lo dicho, los sistemas operativos suelen dejar que se asignen prioridades a los procesos (luego haremos un experimento con ésto) y otras técnicas.

El problema es que se nos puede ocurrir un algoritmo fantástico y muy justo, pero si es muy complicado gastaremos más recursos en calcular qué programa es el siguiente que en la ejecución de los procesos propiamente dicha… así que hay que encontrar un equilibrio entre complejidad y efectividad.

Bien, ¿Hacemos una prueba? Botón derecho sobre la barra de herramientas, así:

Ahora nos vamos a ir a la ficha «Procesos». Cuántas cosas… Menú «Ver – Seleccionar columnas…». Ahora marque éstas opciones:

Bien, ahora tiene ante usted una lista como la que se muestra debajo, donde tiene el nombre del programa que se está ejecutando, el tiempo que ha durado la ejecución de su código hasta el momento (vea qué poco necesitan en general). El otro parámetro cuantifica el uso de CPU, y el último nos dice qué prioridad tiene asignada el proceso.

Según esos valores los procesos de su equipo irán recibiendo más o menos CPU ¿No se lo cree? Cambie la prioridad de algún programa… Windows le dirá que se ande con cuidado, que la puede usted liar… no crea, no es para tanto, aunque por si acaso, guarde lo que esté haciendo…

Y ahora póngase a cambiar las prioridades de todo, súbasela a los programas que quiere que acaben antes. Después, intente dejarlo todo más o menos como estaba, o simplemente reinicie el sistema… esas cosas se le siguen atragantando al amigo… :-)

Si ha llegado hasta aquí, un premio: los programas que sirven para controlar a los dispositivos, como el ratón, tienen prioridades muy altas… ¿Se ha fijado que a veces en Windows no funciona nada y sin embargo puede seguir moviendo el ratón? Bien, es por ese motivo. Así que cuando piense que su ordenador va a bloquearse, en vez de teclear y mover el ratón compulsivamente, aleje sus manos y espere. En la mayoría de los casos se arreglará, pero lo último que necesita su equipo es que lo cargue más…

La prueba definitiva

Hoy les voy a dejar con una reflexión sencilla pero soprendente, en forma de expresión matemática. Seguro que han oído hablar de la famosa relación calidad – precio, que viene a expresar la conveniencia de adquirir o no un producto.

Simplificando en extremo, entre dos productos de misma calidad, elegiremos el de menor precio, y entre dos del mismo precio, el de mayor calidad. De modo que cuanto mayor sea esta relación, se supone que mejor va a ser el producto. En cualquier caso, la famosa relación puede expresarse así:

cp.jpg

Y ahora agárrese a la silla. Vamos a pensar en Linux: su calidad puede ser cuestionable, pero es gratuito, así que su precio es cero. De modo que tendremos:

infinito0.jpg

Como bien sabrán nuestros técnicos y matemáticos, cualquier cosa entre 0, en términos de análisis, puede considerarse infinito:

inf.jpg

Tal vez a alguien le sorprenda ésto, sabiendo que no se puede dividir entre 0. Sin embargo, es completamente cierto. Si quiere, haga la prueba con la calculadora: divida algo, por ejemplo 1.000 entre algo muy pequeño, por ejemplo 0,000000000000001. Ahora añada algún cero decimal al divisor y compruébelo: cuanto más se aproxima a cero el divisor más se acerca a infinito el resultado (ya me perdonarán los matemáticos por la explicación, pero es lo mejor que se me ocurre para ser accesible a todos)

El caso es que ésto demuestra matemáticamente que es mejor usar Linux, ya que la relación calidad – precio de Windows, por muy buena que sea, siempre será un número finito… lo cual no representa nada frente a la relación infinita de su competencia :-)

¡Chúpate esa Bill!

Secuencialidad simultánea

Seguro que en este momento, se encuentra usted realizando varias tareas simultáneamente en su ordenador. Por ejemplo, tiene abierto su cliente de correo, un procesador de textos y el navegador de Internet. Piénselo: mientras escribe un correo, edita un documento y navega por la red, y todo al mismo tiempo. Imagine que se aburre y decide abrir un juego. Está utilizando cuatro programas a la vez. ¿A la vez?

Todos utilizamos muchas aplicaciones al mismo tiempo cuando usamos el ordenador. Sin embargo, ésto es relativamente reciente: hasta la aparición de los sistemas modernos los ordenadores nunca fueron antes capaces de ejecutar varios programas al mismo tiempo… ésta característica, surgida a finales de los 70, se conoce como multitarea, y es la capacidad que tienen las máquinas de hacer muchas cosas a la vez, o mejor dicho, de simular que hacen muchas cosas a la vez.

Así que su ordenador le engaña: puede parecerle que los programas se ejecutan todos simultáneamente, pero un ordenador sigue siendo una máquina secuencial: esto quiere decir que sólo puede ejecutar las instrucciones de una en una. Aunque como lo hace muy muy rápido nos da la impresión de que lo hace todo a la vez… y si lo piensa, verá que la idea es muy sencilla: imagine que ordena a su computador que ejecute The Gimp y Firefox, así de seguido… Su sistema operativo (Linux, Windows o lo que use) se encargará de ir «intercalando» instrucciones de uno y de otro, de tal modo que parezca que se están ejecutando a la vez.

Y ahora llega lo más interesante, que es el porqué de todo esto: el éxito de estas técnicas se basa en lo que llamamos escalas de tiempo: lo que para nosotros es un instante, para un procesador funcionando a 1 GHz puede ser una eternidad. Así, vamos a suponer un ordenador, donde:

  • una instrucción tarda en ejecutarse 1 microsegundo (0,000001 segundos)
  • una lectura o una escritura en un disco duro tarda 1 milisegundo (0,001 segundos)
  • un intervalo entre dos pulsaciones de tecla dura 0,5 segundos

Son datos normales y corrientes de cualquier ordenador anticuado. El tiempo de referencia que tomamos es el tiempo que tarda en ejecutarse una instrucción: para nosotros ese tiempo apenas es inteligible, no podemos sentir su paso, ya que nosotros pensamos en el tiempo en unidades mayores, más acordes a nuestros parámetros biológicos.

De hecho, pensamos en segundos. Así que vamos a considerar que una intrucción tarda 1 segundo en ejecutarse (es decir, lo mismo, pero en otra escala de tiempos). Entonces tendríamos que, en nuestro computador «humanizado»:

  • una instrucción que se ejecuta dura 1 segundo
  • una lectura o una escritura en un disco duro tarda ¡17 minutos!
  • un intervalo entre dos pulsaciones de tecla dura ¡¡6 días!!

¡6 días! Y eso que pensamos que tecleamos tremendamente rápido :-P ¿se imaginan al ordenador? Cada seis días le llegaría una carta «Han pulsado la S»… podría enviar la respuesta, llamar a la pantalla tranquilamente para que mostrara una S, escribirla en la memoria, incluso guardarla en el disco duro… y aún así le sobrarían varios días. Podría dedicar todo ese tiempo para ejecutar el Firefox, el buscaminas y todos esos programas que teníamos trabajando…

En las diferentes escalas temporales de los humanos y los ordenadores se encuentra la razón del éxito del llamado tiempo compartido (varios usuarios utilizando el mismo equipo) y de la multitarea (varias aplicaciones sobre el mismo ordenador). Cómo se organice nuestro procesador, cómodamente sentado en su despacho, para atender a tantas peticiones es otra historia, y esa historia no es nada sencilla (puedo asegurárselo… :-P)

Blogstorm

Siempre me ha hecho mucha gracia el término inglés para «brainstorm», que viene a ser lo que aquí conocemos como tormenta de ideas. Digo que me hace gracia porque traducido literalmente significa «tormenta de cerebros» y me encantaría ver una :-P

Superado este horrible «»chiste»», quiero advertir de que algo se mueve en el panorama bloguero… yo desconocía este fantástico mundo hasta hace relativamente poco tiempo. O mejor dicho: sabía que existían los blogs, pero no que hubiera blogs tan encantadoramente apasionantes como los que he podido descubrir.

Personalmente, me enganché de verdad a esto a partir del momento en que descubrí CPI. Desde entonces mi lista de marcadores ha ido aumentando de forma constante, hasta hacerse muy poco manejable :-P pero no me importa en absoluto. Un día decidir dar el salto, y dejé aparcada la literatura en estado puro para dedicarme a la divulgación. Y de momento la cosa no va mal.

Y digo que algo se mueve porque en los últimos tiempos he sido testigo privilegiado de la eclosión de dos nuevos blogs: por un lado el de Misslucifer, con No se me ocurre ningún título. Ya el título (más bien su ausencia) es prometedor, y uno se siente muy contento sabiendo que ha tenido parte de culpa en ello :-) Y por otro lado tenemos Neuronas de Silicio, chips de gelatina, interesantísimo y ambicioso blog al cual deseamos toda la suerte de este mundo… ;-)

Un servidor no quiere terminar este post sin un agradecimiento generalizado a toda la comunidad bloguera, por la cantidad de cosas nuevas que ha aprendido en los últimos tiempos por su culpa. Y también, por qué no, por la extraordinaria acogida que ha tenido este humilde blog intruso…

Una de textos-encadenados-entre-blogs

Bueno, recojo el guante de Mikel y Shora… Odio profundamente la palabra «meme», y aunque no tengo ni idea de los motivos que inspiran tal odio, me niego a reproducirla (vaya, creo que ya lo he hecho)

Cuatro trabajos que he tenido
Lo que se dice trabajar trabajar, no he trabajado nunca… de momento me dedico a estudiar, y como la cosa no va mal del todo, mis padres parecen conformarse con eso y no me presionan :-P

Cuatro películas que puedo ver una y otra vez
1. Pulp Fiction, de Quentin Tarantino
2. El Señor de los Anillos, de Peter Jackson
3. La Guerra de las Galaxias, de George Lucas
4. Con Faldas y a lo Loco, de Billy Wilder

Cuatro lugares donde he vivido
1. Santander
2. Salamanca

Y ya. He pasado algún mes por otras latitudes, pero no considero que haya vivido allí…

Cuatro programas de TV que me gusta ver
1. Las noticias
2. Redes
3. Buenafuente
4. Los Simpons

Cuatro lugares donde he ido de vacaciones
El destino típico internacional es Francia, donde tengo preferencia por las regiones de
1. Valle del Loira
2. Bretaña
3. Pirineos – Provenza

Y como destino nacional maravilloso y muy recomendable, la bella tierra de
4. Cataluña

Cuatro de mis comidas preferidas
1. Tortilla de patatas
2. Hamburguesa con mucha mucha cebolla
3. Chuleta (ummmm… chuleeeeetaaa) con patatas
4. Ensalada con un montón de ingredientes raros

Cuatro sitios web que visito a diario
1. Google :-P
2. Éste blog, por qué voy a negarlo. Uno siempre aprende algo nuevo leyéndolo ;-)
3. Otros blogs
4. Mi lista secreta y archivada de webs-de-visita-diaria

Cuatro lugares donde preferiría estar ahora
1. De copas :-P
2. En San Francisco
Es un viejo capricho (junto con Las Vegas). A ver si alguno de por ahi nos invita un día… :-)
3. En Barcelona
4. En Noruega (ambición frustrada…)

Cuatro trabajos que me gustaría tener
1. Trabajador en una enorme y despiadada multinacional informática
2. Ingeniero en Google. Tienen masajistas, piscinas, billares y los ingenieros juegan con Lego. O eso he leído…
3. Ingeniero del MIT, de la IEEE y hasta de la OSI
4. Ingeniero en la ESA o en la NASA.

Ya sé que apunto muy alto, pero los sueños sueños son… sería maravilloso.

Cuatro famosos que he conocido
Lo que se dice conocer… he intercambiado saludos y palabras con algunos miembros de grupos musicales, creo que ha sido lo máximo… en concreto me marcaron
1. Dani Filth, cantante. No tiene nada que ver con las fotos, impresionante…
2. Los de Moonspell. No nos entendíamos mucho en aquella mezcla de catalán, castellano, portugués e inglés, pero bueno…
3. Ivahn, de Sugarless… Una historia curiosa: estuvimos hablando con él antes de un concierto sin saber quién era (era la primera vez que íbamos a escucharles y fuimos por la insistencia de un amigo…) Incluso le contamos algún chiste malo y nos metimos con él… Luego dijo que tenía que irse y se metió en el local. Y cuando empezó el concierto apareció y era el cantante… Después del concierto nos fuimos de bares y les encontramos por la calle con la furgoneta parada, y nos pidieron que les ayudáramos. Vaya noche.
4. Creo que la anterior vale por dos :-P

Cuatro platos que detesto
1. Sesos
2. Pisto
3. Alubias (¡las odio!)
4. Menestra

Cuatro electrodomésticos que tengo fuera de lo común
1. Tiraflexor
2. Máquina de tensar vientos (imprescindible)
3. Transfuncionador de contínuo
4. Orzogüey

Cuatro posibles primeras impresiones que doy
1. ¡Qué alto!
2. ¡Qué serio!
3. ¡Qué borde!
4. ¡Qué jevi!

Cuatro copas favoritas
¡Todas! No bueno, siento debilidad por:
1. Cerveza: Budweiser, Franciskaner, Judas, 666
2. Sangre Vikinga: Ron, naranja, vino, licor de melocotón, azúcar
3. Ron con cola (Brugal si es posible)
4. Vodka con Red-Bull (ya, es veneno puro, pero mola)
Vaya, me acabo de dar cuenta de que tengo un problema :-P

Cuatro víctimas / verdugos de esta cadena:
El que quiera :-) Pero seguro que a Sxim le parece bien, así que me permito apuntarle con el dedo… ¡y si alguien quiere sumarse será bienvenido!

Un paseo por los Linux

Sí, es en plural: los Linux. Tal vez alguien piense que hay un sólo Linux, al igual que un sólo Windows. Pues no. Hay un montón de Linux, y cada uno usamos el que más nos gusta. Esto de varias versiones de lo mismo puede sonar un poco raro, pero para entendernos, es como si IBM tuviera su Windows, HP el suyo… y pudiéramos elegir uno, el que más nos gustara. A estas «versiones» de Linux se les da el nombre de distribuciones, y explicamos en qué consistían hace un tiempo, en éste artículo.

Normalmente uno tiene su distribución favorita y es la que usa. Sin embargo, hace un tiempo me propuse el reto de probar todas las más populares, con el objetivo de encontrar de verdad la distribución más adecuada a mis necesidades. Un mes después, muchos cafés, muchas horas de descarga y muchos cd’s grabados, estoy en condiciones de presentar un resumen de las conclusiones que he extraído. Vaya por delante que son puras opiniones.

Mandrake

Es la que tuve siempre en mi equipo. Instalación comodísima, configurable 100%, y disponible en nivel principiante y experto. Algunos problemillas en el particionado, pero todo solucionable. Llevaba utilizando esta distribución desde hace mucho tiempo con buenos resultados. Además, en general, está muy cuidada desde el punto de vista estético. Sus principales defectos vienen por el reconocimiento de hardware, como en todos. Pero por lo demás es perfecta. Mi nota: un 8.

Mandriva

Sucesora de Mandrake: instalación muy sencilla, aunque daba algunos problemas al particionar. El diseño, desde mi punto de vista es bastante hortera, aunque esto es una opinión. Apenas permite modificar algunos parámetros del sistema, un fallo que me parece imperdonable. Por lo demás, sigue siendo igual de potente, salvo en el hardware. Me sorprendió que apenas tuviera cambios respecto a Mandrake… Mi nota: un 7.

Suse

La distribución del simpático camaleón. La instalación más sencilla que he visto nunca, casi es más difícil instalar el buscaminas. Eso para mí es definitivo, porque una de las cosas que más perjudicaban a Linux era la complejidad de la instalación. Tanta facilidad de uso afecta a la versatilidad: apenas puede configurarse nada al instalar. El diseño, en general, es impecable. Le costaba un poco funcionar en mi equipo, incluso llegó a colgarse en una ocasión (primer cuelgue de un Linux en mi equipo en cinco años…) lo que considero una herejía. Es muy fácil de usar, pero como siempre, ésto le resta potencia. Para empezar es perfecto. Mi nota: un 8

Fedora

Un diseño un poco tristón, pero muy eficiente. La instalación es lo más complicado, no es gráfica (actualizado) en su totalidad y hay que controlar un poco de particionamiento, así que no es recomendable para principiantes. Por lo demás está muy bien: buena detección de hardware y un buen conjunto de herramientas. Quizá un poco complicada de administrar. Mi nota: un 7

Ubuntu

Al final es con la que me he quedado. Se la puede bajar uno en un modesto CD, con dos opciones: instalable o «live» (utilizable sin instalación). La ventaja de ésto es que se instala en un vuelo y luego podemos añadir toda la funcionalidad extra que necesitamos. La deteccción del hardware es excelente y me tiene muy satisfecho. Tiene dos defectos: el primero es que le cuesta reconocer las particiones Windows (aunque al final se consigue) y el segundo (para mí), que utiliza Gnome por defecto, y un servidor es fan de KDE, pero eso se arregla rápido. Yo le doy un 8.

Debian

En realidad es la madre de todos los Linux (Ubuntu está basado en parte en Debian). La instalación de la versión 3 era un infierno en modo texto con compilación del núcleo incluída. Yo lo intenté (y de hecho lo conseguí), pero pronto desistí de utilizarla en serio, por la cantidad de tiempo que tuve que invertir en configurarlo todo. No sé si ésto habrá cambiado, pero si un día lo hace, las puertas de mi equipo están abiertas.

Y para terminar, algunas valoraciones generales… Ya sé que le doy mucha importancia a la estética, pero personalmente opino que algo que miro durante diez horas al día tiene que ser por lo menos bonito… Por otro lado, sigo viendo los fallos típicos de Linux: las instalaciones para ingenieros y la detección insuficiente de hardware (hay que ésto no es culpa de Linux sino de los fabricantes). La administración ha mejorado mucho, aunque sigo viendo un problema de centralización en la configuración de las opciones: todo está demasiado disperso, y opino que el esfuerzo de desarrollo tendría que centrarse más en éste tema.

Me parece destacable el gran avance de las últimas KDEs respecto a Gnome, y pronostico que con el tiempo sólo se usará la primera. ¿Puntos a su favor? En mi opinión un diseño claro, razonablemente parecido a Windows, un buen paquete de aplicaciones (ejem) y unas características interactivas muy interesantes.

Nota: Por si a alguno le parece relevante, estas son las características de mi equipo: IBM Thinkpad. Intel Centrino 1,4 GHz. 512 Mb de RAM, 40 GB de disco duro. Tarjeta de red, adaptador inalámbrico, módem… lo típico. Es una cosa modesta, pero para Linux va de sobra… si no se lo cree, pruébelo :-)

123.5

Vía Sxim’s Labs me llega un desafío… se trata de algo muy curioso, todo un fenómeno que se propaga de blog en blog. Esta vez consiste en:

  1. Tomar el libro más cercano
  2. Abrirlo por la página 123
  3. Buscar la quinta frase o el quinto párrafo
  4. Postear esa frase

Como me parece singularmente curioso, voy a recojer el guante. Tomo el libro más cercano, que se titula Java, Fundamentos de Programación (muy bueno, por cierto), y que es de Judy Bishop. Voy a la página 123, y al párrafo 5… y dice así:

BufferedReader in = Text.open(System.in);

También es mala suerte que justo coincida con un fragmento de código, pero es lo que hay :-P Ahora en teoría hay que pasar el «reto» a más blogueros, pero como en esto cada uno es muy suyo y publica lo que quiere, voy a dejarlo abierto… ¡que siga quien quiera!