19 de julio de 2008

Entrevista

Entrevista a Linus Torvalds:

"People need social rules. The same is true of projects. And you need some rules that can be enforced, so that people know up-front what they are getting themselves into. And note how I'm not saying that the BSD license is bad, or that putting something into the public domain (which is even more of a free-for-all) is bad. If it was what Hipp [autor de sqlite que puso su software bajo "public domain"] wanted for his code, then it was the right choice. So I think that anarchy is certainly ‘more free’ than having rules, but it is also pretty certainly also less productive, and I think that at least a certain class of programmers are going to be less interested in the project exactly because they don't see the rules in place to protect their work.

So not everybody likes the GPL, but a lot of people like it exactly because it puts certain safeguards in place. Are they the safeguards you would want? That will have to be your personal choice before you join a project that uses that license, but we can certainly look back and say that they seem to be conducive to productivity and success of the project."

(...)

"When it comes to distributions, ease of installation has actually been one of my main issues - I'm a technical person, but I have a very specific area of interest, and I don't want to fight the rest. So the only distributions I have actively avoided are the ones that are known to be "overly technical" - like the ones that encourage you to compile your own programs etc.Yeah, I can do it, but it kind of defeats the whole point of a distribution for me. So I like the ones that have a name of being easy to use. I've never used plain Debian, for example, but I like Ubuntu."

18 de julio de 2008

El señor de rojo

Siento ensañarme con estos temas, pero en la presentación de resultados de MS de este trimestre... Online Services Business: 4th quarter 2008: -488. 4th quarter 2007: -210 Google debe estar aterrorizado...

17 de julio de 2008

Gnome 3.0...¿malo?

A estas alturas ya habrán oido ustedes hablar de Gnome 3.0/GTK 3.0. Consiste básicamente en romper la compatibilidad y crear un escritorio Gnome mejorado, y una plataforma GTK idem. El caso es que Miguel de Icaza ha expresado su opinión al respecto y piensa que los planes de GTK 3.0 son malos. ¿Por qué? Esencialmente, porque parece pensar que romper gratuitamente la compatibilidad para dar hipotéticamente paso a una aparición de supuestas características nuevas y revolucionarias no tiene porque tener éxito, y sobre todo: Fastidia a los ISVs. Es decir, fastidia a las empresas que utilizan GTK como interfaz para sus propios productos.

Y en parte tiene razón. Es decir, no hay más que leer el famoso documento de Joel Spolsky "How Microsoft lost the API War" para darse cuenta de que romper la compatibilidad por el simple placer de hacerlo no va a traer nada bueno a la relación de Gnome con sus ISVs, aunque GTK 3.0 sea el toolkit más avanzado del planeta. Y sin embargo, el razonamiento de Miguel me parece erróneo. Si, la compatibilidad es importante. En parte es lo que convirtió a Microsoft en monopolio, y eso ya dice mucho de por si. Tener compatibilidad es la hostia. Pero...

Díganme: ¿Con quien tiene que mantener la compatibilidad Linux? Oh, si, hay compañías que usan Linux. Es decir: ¿Qué empresa puede resistirse a una cuota de público del 1%?

Por si no lo captan, se trata de ironía. Seamos sinceros, los ISVs que utilizan GTK son más bien....pocos. Y no parece que haber conservado la compatibilidad en GTK 2.x todo este tiempo haya ayudado gran cosa a que ese número aumente de forma significativa. Es bastante evidente que la razón primordial que aleja a los ISVs de Linux es la falta de usuarios. Y la falta de usuarios es primordialmente una consecuencia de no ser una alternativa muy atractiva a Windows.

Empezemos por el principio: Solvéntense en GTK y Gnome todos los problemas que impiden que el escritorio Linux sea el primero del mundo. El primero por delante de los demás (¿por qué aspirar a menos?). O como mínimo, tan bueno como el mejor (creo que todos estaremos de acuerdo con que los escritorios Linux actuales no llegan ni a eso). Entonces, pero solo entonces, el respeto por la compatibilidad será importante. No ahora. La compatibilidad es buena cuando se trata de conservar lo bueno. Conservar lo malo no va a servir a Linux de nada. Me dirán que Windows 9x era una caca y que su éxito se debió en parte a la compatibilidad: falso, aunque la implementación de windows 95 dejara que desear, la funcionalidad que ofrecía de cara al usuario era revolucionaria. La novedad de la GUI era igual de rompedora aunque se colgara cada cinco minutos.

Además, no se pueden aplicar los mismos principios a todos los casos. Miren a Microsoft: Necesita conservar la compatibilidad para no espantar a la gente a las plataformas alternativas emergentes, pero al mismo tiempo necesita innovar -lo que implica romper la compatibilidad en mayor o menor grado, miren lo de Vista- para no quedarse atrás de esas plataformas. Linux sin embargo está en la privilegiadísima posición de poder romper la compatibilidad en el escritorio a todos los niveles que se le antoje, porque solo le importará a los cuatro frikis que lo usamos. Eso da libertad de creación total a los programadores. Es más, miren OS X, considerado generalmente como el mejor escritorio tecnológicamente hablando: ¿Podría haber surgido OS X como evolución de OS 9? ¿O si hubiera tenido como requisito inicial no romper la compatibilidad? Dificil hubiera sido, lo que está claro es que no surgió de ahí: Al irse de Apple y fundar Next, Steve Jobs tuvo la oportunidad de crear un sistema operativo de escritorio de cero, sin importarle un carajo la compatibilidad con nada. La compatibilidad con OS 9 solo se añadió posteriormente y mediante emulación, y la API Carbon se implementó encima de la base que ya había sido creada. Paradójicamente el abandono temporal de Jobs puede considerarse como una clave del éxito actual de Apple (¿qué seria de Apple, del iPhone, sin OS X?

En resumen, no creo que la obsesión por satisfacer a los ISVs de Miguel de Icaza - quien curiosamente en su día fomentaba el cambio radical de usar Mono- sirva a Linux de mucho. Puede servir -y sirve- en el software para servidores, donde existe una amplia base de usuarios, pero no en escritorio. Por supuesto, esta es mi opinión, ustedes son libres de no estar de acuerdo conmigo y por tanto de equivocarse.

11 de julio de 2008

Virtuales

Exactamente así han sido las previsiones de crecimiento de VMware: Virtuales, porque han tenido que corregirse a la baja. En Ars Technica tienen un magnífico artículo sobre el tema.

En realidad no es que ni la virtualización ni VMware estén en peligro. Yo diría que se trata de madurez. Las previsiones de crecimiento eran de un 50%. No se puede crecer a esa velocidad, a la que han estado creciendo todos estos años, ininterrumpidamente. La correción será por debajo del 50%, pero seguirá siendo alta.

Otra cosa es como será el futuro. Como el artículo señala, VMware lo tiene crudo: Aunque técnicamente es el líder en el sector de la virtualización, Windows con su Hyper-V -liberado recientemente- y Linux con Xen y KVM ya han alcanzado a VMware en las funcionalidades básicas, gracias en gran medida a la virtualización por hardware añadida por Intel y AMD a sus micros. Todo este tiempo VMware ha estado cobrando caro, pues la ausencia de otras ofertas le permitía mantener esos precios. Pero ahora que todas las plataformas incluyen virtualización, lo va a tener más dificil.

El problema de VMware para el futuro se resume fundamentalmente en que su supervivencia está muy estrechamente ligada a las posibilidades de la virtualización como tecnología. Es como una mina (siento que no haya podido ser una analogía con coches): Una vez que llegues al fondo de la veta, se acaba. La esperanza de VMware es que la mina de la virtualización sea mucho más profunda, para poder seguir cavando por delante de sus competidores. Si la mina de la virtualización ya han sido explotada en gran parte, VMware no podrá ir más allá del fondo, y algún día sus competidores le darán caza.

La otra alternativa es abrirse a otros mercados, pero eso ya tendría que estar sucendiendo en este mismísimo momento. Y hasta donde yo se, no ha sucedido. Personalmente, le veo poco futuro a VMware.

8 de julio de 2008

Revelada la ubicación del cadáver de Nina Reiser

Hans Reiser finalmente ha conducido a la policía al lugar donde enterró a Nina, su ex-esposa.

No es día para hablar de un asesino. Descanse en paz Nina Reiser, asesinada a sus 32 años. Esperemos que su familia y sus hijos sean capaces de sobrellevarlo.

6 de julio de 2008

Lo que traerá Linux 2.6.26

Faltan unos días para que salga Linux 2.6.26. He aquí el resumen de las principales novedades en español.

  • Read-only bind mounts: Desde Linux 2.4.0 se soportan los montajes "bind" (a través del parámetro --bind de mount), que son una especie de enlaces simbólicos a nivel de VFS que permiten tener un solo directorio en dos ubicaciones distintas. Por ejemplo, si tienes un directorio /foo, con mount --bind /foo /bar tendremos en /bar un directorio con exactamente los mismos contenidos que /foo. Sin embargo, hasta hoy si /foo era un directorio al cual se podía acceder en modo lectura/escritura, heredaba incondicionalmente esa propiedad. En 2.6.26 se podrá especificar que /bar este en modo de solo lectura al margen de lo que haga /foo. Esto es útil en casos como virtualización con "containers" pues permite mostrar al usuario virtualizado directorios a los cuales no podrá escribir aunque sea root. Tambien es útil para FTPs, chroots, etc. (PD: En el post sobre 2.6.24 anuncié está novedad por error; lo que había en esa versión era tan solo una preparación de lo que ha venido ahora)
  • KVM portado a PPC, S390 e IA64: La solución de virtualización completa KVM ha sido portada a esas arquitecturas.
  • Soporte de redes wifi "mesh": La IEEE está trabajando en un estándar para redes mesh wifi, 802.11s. Llamadas en español redes en malla (¿por qué esa palabra me recuerda a Batman?). Se caracteriza por basarse en que cada nodo encamina sus tráfico de red a través de cualquier nodo que esté a su alcance, pudiendo prescindir de ese modo de un servidor central y soportando sin problemas que un nodo desaparezca, pues simplemente se utiliza otro. Gracias al proyecto open80211s y las empresas que lo apoyan, en 2.6.26 habrá soporte preliminar de los borradores de este estándar.
  • Soporte de PAT (Page Attribute Table) en x86: Esto no es algo que afecte directamente al usuario, pero es interesante porque consiste en utilizar una característica de los x86. Se trata de un sustituto/complemento de los MTRR. Los MTRR permiten configurar como se va cachear un rango de la memoria, lo cual es necesario por vaya a saber usted qué razones. Puede que alguno recuerde haber tenido conflictos con los MTRR y las X. Bien, pues PAT consiste en lo mismo: configurar como se va a cachear parte de la memoria. La diferencia es que en vez de configurar un rango, con PAT se configura ese aspecto individualmente para cada página de memoria (4KB). Lo cual es más flexible y además no tiene las restricciones de los MTRRs, que no podían configurar muchos rangos de memoria a la vez. Esta característica no es precisamente nueva en los x86: los parches actuales en Linux se empezaron a desarrollar en 2006, y hay rastros de implementaciones preliminares de Enero del 2001. En gran medida porque tampoco se trata de algo tan importante, y los MTRRs cumplían su función sin demasiados problemas.
  • 'Securebits' para cada proceso: Creo recordar que uno de los creadores de Unix admitió que los suid fue el mayor error de diseño que cometieron. Los sistemas derivados de Unix llevan décadas intentando librarse de ellos sin demasiado éxito. Para ello se inventó una cosa denominada "capabilities". Se preguntarán algunos: ¿pero no tenía linux "capabilities" desde hace tiempo? Eso mismo pensaba yo, y es cierto que las tenía, pero limitaciones prácticas hacían imposible la construcción de un sistema que prescindiera de los suid y utilizara "capabilities". Parece ser que en 2.6.26 se elimina esa limitación, haciendo posible construir por primera vez un sistema sin suid.
  • KGDB: Durante años, Linus Torvalds se ha negado rotundamente a meter un depurador de kernels en el núcleo: "When things crash and you fsck and you didn't even get a clue about what went wrong, you get frustrated. Tough. There are two kinds of reactions to that: you start being careful, or you start whining about a kernel debugger [..] I happen to believe that not having a kernel debugger forces people to think about their problem on a different level than with a debugger. I think that without a debugger, you don't get into that mindset where you know how it behaves, and then you fix it from there. Without a debugger, you tend to think about problems another way. You want to understand things on a different _level_." (email completo). Sin embargo, muchos otros desarrolladores llevan años queriendo tener uno. Ahora que Linus se mete mucho menos en decisiones y deja que la comunidad decida más a su aire, finalmente se ha conseguido meter KGDB.
  • Memtest: Todos conocemos memtest. Pues ahora Linux tambien está implementando uno que se activa pasando un parámetro. No es su objetivo -en principio- sustituir al memtest que todos conocemos, en realidad este memteste es muy, muy simple y mucho menos capaz. Pero al poder distribuirse con el kernel es muy práctico.
  • Semáforos genéricos: Hasta la introducción de los mutexes, los semáforos eran utilizados en partes del código muy críticas en cuanto a rendimiento. En el mundo linux eso significa que la implementación de los semáforos se codificaba independientemente para cada arquitectura soportada, optimizado con ensamblador. Sin embargo, tras la introducción de los mutexes los semáforos no se utilizan en casos que se necesite rendimiento crítico. Por eso se ha podido hacer una implementación genérica que elimina 7365 líneas de código.
  • Mejor soporte de webcams: Existe un estándar "USB Video Device Class" (UVC) para webcams que es implementado por muchas cámaras actuales (ej: iSigth) y lo será de casi todas las del futuro. Con la inclusión del driver que lo implementa, Linux añade soporte para una importante variedad de webcams existentes en el mercado.
  • /proc/PID/mountinfo: Con las recientes evoluciones en el VFS (como por ejemplo, las "bind mounts") en su objetivo de evolucionar hacia Plan 9, /proc/PID/mounts se ha quedado obsoleto y se hace necesario un nuevo archivo que describa con más detalle los puntos de montaje.
  • /sys/class/bdi: En 2.6.24 se incluyó un mecanismo que pasaba a regulaba la cantidad de memoria "sucia" (que se tiene que escribir al disco) que puede generar cada proceso independientemente para cada dispositivo, no globalmente. Ahora en 2.6.26 se puede tunear el mecanismo en ese directorio de sysfs.
En fin, esto es lo principal, hay muchas otras cosas, como unas mejoras de rendimiento de RAID y del journaling de ext3, y de FUSE, y soporte del OLPC y de la aceleración 3D de las ATI r500, y muchos drivers nuevos. La lista completa está aquí.

4 de julio de 2008

Rebelión.org y Wikipedia

Al igual que ocurre con el estudio de la Naturaleza, hay dos formas de contemplar la política: dogmas o análisis empírico. Los dogmáticos adoptan una ideología política proclamándola como camino único hacia el bienestar. El análisis empírico adopta unos objetivos -libertad y bienestar del ser humano- e intenta analizar racionalmente en qué medida se acerca cada ideología al objetivo. Rebelion.org y demás páginas "revolucionarias" desgraciadamente son dogmáticas. Eso es lo que les ha llevado a tener una disputa en la que han concluido que la Wikipedia es un medio de propaganda imperalista.

El meollo del asunto es el siguiente: A un bibliotecario se le ocurre banear todos los enlaces de la wikipedia que apunten a rebelion.org, citando el SPAM como motivo. Rebelion.org se entera, mira el historial del tipo, le encuentra no-se-qué pro-israelí (en el enlace pone que reconoce el estado de israel, se declara monárquico, y piensa que...¡Marx era un mal pensador!). Conclusión: Wikipedia es imperalista y está a favor del genocidio palestino.

Les recomiendo el primer enlace. La cantidad de gilipolleces, sin perdón, que se dicen sobre el sistema de funcionamiento de la Wikipedia, relacionándola con el imperalismo, no debe perderse. Vean, vean:

"Si vamos a la Wikipedia, y vemos el artículo sobre la misma, esta misteriosamente "bloqueado", nadie puede ni teniendo según su juego, "fuentes verificables y neutrales" criticar a este proyecto. Lo mismo suceden con todo tipo de artículos relacionados. Si intentamos introducir un articulo de crítica no tardara en más de 5 minutos en ser eliminado, y posiblemente nuestra cuenta también. Claro, el hecho de centralizar a la población en la Wikipedia, y como al mismo gobierno de EEUU, presentarlos como defensores de la libertad y la democracia. Ese apoderamiento, monopolio, y centralización, no tienen otro trasfondo que la clara dominación, la hegemonía, el reescribir la historia a antojo. El condenar a todo libre pensador y crítico de estas formas de totalitarismo encubiertas, en "terroristas" o "vándalos". Y en su poder como legitimo poseedor de la más justa verdad".

La persona que escribe esto ignora unas cuantas cosas. O mejor dicho: no sabe, que para ignorar hay que saber de antemano. Entre otras cosas, que la Wikipedia no se apodera ni monopoliza de nada, si la lees es porque TÚ quieres, asi que no la visites y deja a los demás en paz. Segundo, poder borrar modificaciones de la gente es necesario para preservar la objetividad, ¿quien te dice que tu modificación es la correcta? Más cosas: la capacidad para corregir errores. La Wikipedia no dice en ningun lado que ellos sean una fuente de objetividad absoluta. Precisamente por eso existe la wikipedia, para contrastar entre miles de personas. Y para contrastar, ha de ser posible mantener pensamientos diferentes que pueden estar, por que no, equivocados. Es totalmente posible que el tal AleX esté baneando a rebelion.org injustamente. Sin embargo, la wikipedia puede corregirse de haberse cometido un error. Y se corregirá si lo es, no lo pongan en duda.

Condenar por eso a la Wikipedia como "medio imperalista" es de estúpidos, así como lo es decir que todos los bibliotecarios son igual que ese. Del mismo modo que se cometen errores en contra de la opinión de rebelion.org, tambien se cometen otros a favor de ideologías como la de rebelion.org. Muchos. Pero no he oido a rebelion.org decir "Oigan, están manipulando a nuestro favor". Y no digamos en la propia rebelion.org, donde han ocultado la liberación de Ingrid Betancourt y publicado, sin embargo, uno donde se asegura que las FARC iban a soltar a Ingrid hoy mismito, pero que el malvado EEUU ha intervenido la operación para dejar bien al gobierno de Colombia. Claro. ¡Y esta página se atreve a hablar de objetividad!

Y si no es un error banear a rebelion.org, que podría no serlo (el SPAM es una acusación que no tiene que ver con ideologías), pues no se corregirá. Sus posturas suelen ser tan estúpidas y sesgadas que al menos la Wikipedia no pierde absolutamente nada con ello, eso está claro.