27 de enero de 2006

Como ser idiota y que te paguen por ello haciendote consultor de seguridad

Si señores, la veda esta abierta. La prueba la pone este artículo de eWeek - que por otra parte, es un excelente sitio de noticias y no suelen tener deslices de este tipo - en el que nos cuenta que el cambio de Apple a x86 va a hacer a Mac OS X más vulnerable

Lo divertido, es evidente, comienza con el título. Uno se para a pensarlo dos veces y llega a la conclusión de que como ese cambio va a afectar a la mala o buena calidad del código de Mac OS X. Dejando a la mente que se interne por vericuetos senderos, se le ocurre a uno que quizás se refieran a la capacidad de marcar la zona de memoria destinada a la pila como no ejecutable - algo que los PPC tienen y que x86 nunca tuvo porque siempre fue una (y siempre tendrá algo de) mierda, hasta que AMD lo incorporó y lo vendió a la gente como "protección antivirus". Protección contra ejecutivos drogadictos es lo que necesitan los usuarios. En fin

Volviendo al tema, Intel siguió el ejemplo de AMD y incluyó tambien la protección - hay que joderse - "antivirus", solo que Intel lo llamo "Execute Disable Bit", para que la gente viera que la mayor empresa de procesadores del mundo en el 2006 es capaz de hacer lo que hacía multics a finales de los 60. Pero no incluyen el juguete, creo, en todos los procesadores, y a estas alturas con la mezcla de nombres de productos de Intel uno ya no sabe cuales lo tienen y cuales no. Pero el Core Duo lo tiene. Y si Mac OS X usaba esa capacidad en los power, en este tambien es de esperar que tambien lo haga en el core Duo, asi que esa protección no debe ser (lamento no poder dar más detalles sobre el tema, pero es que tengo suspendida física de primero y ya se sabe que para hablar de estas cosas la física...)

Eso lo se yo mirando un poco en google. Pero el del artículo debe ser chino y debe sufrir la censura del gobierno chino, porque dice: ""Every part of memory is executable by default," Grenier said. "Just about every place you can stick data into memory, you can get it to execute". O sea, se cree que el core duo no tiene lo que tiene. Pues vaya. ¿Veis porque es malo el comunismo? Porque luego los expertos chinos no pueden hacer buenos estudios

Pero eso es al final. Si uno mira al principio del artículo, encuentra que las razones reales son otras: There are many more malicious hackers who understand the x86 architecture in-depth than understand the PowerPC. And attackers have access to hundreds of documents and examples of how to exploit common vulnerabilities on x86, whereas exploits for PowerPC are far fewer, Friedrichs said.

Claro, como no había caido. Un tipo que sabe explotar un buffer overflow en una plataforma x86 no tiene ni puta idea ni capacidad para aprender a ensamblar en ppc sin hacerse una carrera, no te cuento nada de echar un vistazo a www.power.org y la extensísima documentación de apple e IBM y a otros exploits ya existentes. Y el argumento continua "With Complex Instruction Set instructions, there are more of them, and they do more for you. It's just simpler to read and write to CISC systems and get them to do something," she said.. Claro. Claro. Esta todo clarísimo. Si es que CISC te abstrae más del procesador, y es más sencillo escribir exploits. El que las plataformas RISC se caracterizen por un menor número de instrucciones de mayor simplicidad que permiten un mayor número final de combinaciones no influye en este razonamiento. Ya ves: Toda la vida creyendo que en windows muchos gusanos funcionaban porque se crean cuentas con permiso de administrador por defecto, y al final va a ser que la razón real es que el visual studio se lo pone más fácil a los crackers para hacer virus, mientras que en linux como los IDEs son una mierda, pues no es lo mismo. Si es que hacer usar vim a los crackers es inhumano. Y no te cuento nada de emacs.

Algunos informáticos tienen vocación de físicos y no se dan cuenta

...y no les gusta que diga que estudiar física en informática es absurdo. Los físicos se meten a informáticos, y los que estudian informática sienten pasión por estudiar cosas que no son de informática, porque asi les considerarán mejor que a los telecos. La ciencia de la computación, señores, no es "la construccion de un sistema informático de los pies a la cabeza". Si la electrónica, física, matemáticas y telecomunicaciones son carreras separadas de la de informática, es por una buena razón: porque cada disciplina del saber tiene su campo más o menos definido y sus bordes más o menos difusos con otras disciplinas:p ara la química es muy importante la física, por ejemplo (o eso creo), y para la informática lo son las matemáticas. Pero siempre tiene una identidad claramente definida que es en la que debe centrarse especialmente. Por eso no somos matemáticos ni debemos saber todo sobre matemáticas.

Me hace mucha gracia eso de "en general un teleco puede hacer el trabajo de un informático". Me hace gracia porque no me extraña en absoluto. Debería algo asimilado a estas alturas en el sector. Porque es verdad.

La gran mayoría de los informáticos que salen de las facultades tienen un nivel de conocimientos deplorable. Y asi está el mundo: Proyectos que se alargan, programas que no son usables para los clientes hasta la versión 2.5 por la cantidad de fallos: para que contarselo aquí a personas que han llegado aquí a través de un feed RSS que su cliente de RSS baja cada x minutos para comprobar si hay actualizaciones en vez de poder mirar una "fecha de última actualización" en el protocolo y ahorrar ancho de banda. Es decir, chapuzas. Las vemos cada día y afectan a todos. Vemos esas chapuzas cuando utilizamos un CreateProcess de la API de windows y miramos la documentación de sus 10 parámetros (y esto lo hace la mayor empresa de software del mundo) .

¿Que ocurre? Pues que un teleco, obviamente, tambien puede hacer nuestro trabajo. Hacer chapuzas, las puede hacer igual un teleco que un informático. Y un físico, y un matemático. No hace falta demasiado: Librito de "aprende C++ en 10 días", y a correr: el código que haga un matemático despues de leer dicho libro y un par de holas mundo y una lista doblemente enlazada en C que no de violaciones de segmento no será de calidad muy inferior a la de un informático medio recien salido de la universidad, y será similar a la de un informático medio despues de un poco de práctica en el mundo real. A los telecos les meten el contenido de ese "aprende C++ en diez días" en la carrera asi que se libran de comprar que compran los matemáticos.

La invasión laboral que sufrimos los informáticos por parte de los telecos, físicos, matemáticos etc es debido a que es totalmente cierto que cualquier teleco puede hacer el trabajo de un informático medio leyendose un libro de mierda un fin de semana (no literalmente, espero que la gente haya captado la analogía). Si durante la carrera se preparara mejor a un informático, pues no sería un genio, pero sería mejor informático. Y siendo mejor informático logrará estar un peldaño mas arriba de los telecos, físicos y matemáticos. Y eso, señoras y señores, no se consigue metiendo física como asignatura troncal de la carrera (si alguien lee este post por primera vez, llegado a este punto probablemente le interese el post "padre" que le dió origen: Porqué pienso que no se debería enseñar física en las facultades de informática - y no, no hablo de quitar teoría para meter práctica, todo lo contrario, meter más teoría relacionada con la informática y quitarla la que que está relacionada con la informática como la física)

Por supuesto el informático experto dirá que no, que él es experto y que tambien hay telecos haciendo competencia (de hecho puede que haya algunas personas que sin gustarle el tono de este post, intente buscar la excepción a todo esto echándomela en cara, sin darse cuenta ya a estas alturas de lo que me importa es la informática en general, lo común y lo típico no las excepciones, podría incluso jugarme el cuello a que alguien se intentará lucir por eso del quedar bien y pondrá un post sobre ello "haciendome ver la luz"). Pero eso es culpa nuestra, por haberles dejado entrar y haberles dejado ganar experiencia: Porque la carrera es un mundo, pero el mundo laboral es otro muy distinto, y hasta un carpintero puede acabar siendo un informático experto si le das años para adquirir experiencia. Una vez que un teleco trabaja como informático gana experiencia y aprende porque el trabajo real te enseña informática por las buenas o por las malas (no te enseñan las bases matemáticas etc. pero te enseñan a ser informático y a hacer lo que hay que hacer, que no es poco). Y una vez que gana experiencia ya es un poco más informático. Y su curriculum se alarga, y con esa experiencia como informático tiene más probabilidades para conseguir otro empleo como informático (la experiencia laboral lo es todo). Y una vez que consigue otro empleo como informático, comienza la cadena de nuevo. Y al final, te encuentras a un teleco que ya no es un teleco: Es un informático. Incluso puede que sea bueno (comparado con el nivel medio, claro). Y si un teleco, matemático o físico se mete a informático y llega a ser buen informático, como dijo alguien en el planet de augcyl (siento no recuerdar quien fue), bienvenido sea al club. Que bastantes informáticos malos hay ya como para desestimar a los buenos.

Lo que cuenta para reducir el intrusismo profesional no es el nivel de formación del mejor de la clase de informática ni las excepciones a la regla, sino el nivel de formación del alumno medio que estudia en una universidad media y que aspira a un trabajo medio. Si el nivel de formación del alumno medio no es bueno, das más oportunidades a un teleco. Cuanto más alto, se lo pones más dificil. La mejor oportunidad (que no la única) que tenemos los informáticos para luchar contra el "intrusismo profesional" son los años de universidad. Hacer que para que un teleco pueda hacer programas de la misma calidad que un informático medio necesite hacerse otra carrera, que no valga con un cursillo de programación en java. Gracias a cosas como las clases de física, la informática está lejos de ese objetivo. Haciendo lo que decia mi primo en el comentario del post anterior (estudiar mas cosas de las que estudian los telecos) solamente se lo pones (aun) más fácil. Joel Spolsky tambien tiene un buen artículo sobre ello: Un artículo sobre las "universidades java" que usan java para todo porque está de moda: "The lucky kids of JavaSchools are never going to get weird segfaults trying to implement pointer-based hash tables. They're never going to go stark, raving mad trying to pack things into bits.

Y la culpa es nuestra. Y no me firmen con la gilipollez de que no solo física deberiamos estudiar sino tambien mucha más física y por si fuera poco química para parecernos a otras ingenierías y sonido e imagen para hacer el cimbel y aprender el proceso de fabricación de la fibra óptica. Son ustedes los que hacen que esta profesión de asco, no yo. Y no olviden contar todo esto a sus amigos ingenieros, asi cuando vaya yo por la calle y vea a gente riendose de mi, sabré perfectamente a quien y a quien no tengo que ignorar, que a veces tener una conversación para adivinarlo se hace demasiado pesado

26 de enero de 2006

¿Te gusta youtube pero no puedes descargar los videos? KDE powah (R) al rescate

Es bien conocido youtube, un sitio donde la gente sube videos, análogo a google video

La "pega" que tienen estos sitios es que no te dejan guardar el video de manera local - quieren que entres en su web a verlos. Utilizan flash como reproductor (Macromedia, que estúpida has sido, tantos años con una tecnología de gráficos vectoriales revolucionaria como flash y ahora todos te van a comer el mercado) para reproducirlos y lo tienen bien montado: En el código html ves que incluyen un archivo swf, pero ese archivo no es el video, el reproductor tiene la lógica suficiente como para bajarse luego el video. Yo incluso he intentado ir al cache de firefox y cojer el supuesto archivo del video que se baja el reproductor, y no funciona. Lo tienen bien montado. No quieren que la gente se baje videos, quiere que la gente visite la página

Pero aquí llega KDE con su Powah (r): un tipo que ha creado un script de kommander que te permite guardar esos videos e incluso pasarlos a avi. Kommander es una especie de lenguaje script que utiliza tecnología de KDE como DCOP (sorpresa, sorpresa) para funcionar. Dudo mucho que sea ilegal, porque al fin y al cabo el copyright es de los videos no de youtube

25 de enero de 2006

blogs que leo

A imitación de Javier Santana: Blogs que leo

  • Planet de Augcyl, donde postean....mucha gente, podría hacer una lista pero para eso están las suscripciones de la derecha dandole al enlace :P. Menos el de Ramón Rey, que está supuestamente en el planet pero que no salen los posts xD

  • Osnews, slashdot, barrapunto, lwn.net, planetkde.org, planet.mozilla.org, kerneltrap, : Sin comentarios

  • Página no oficial de Joaquín Sabina (RSS): Página hecha por un chaval con Wordpress, que le da mil vueltas a la oficial. Suele añadir "noticias" con todo lo relacionado con Joaquín Sabina, no solo conciertos y entrevistas sino por ejemplo los sonetos que publica Sabina en la interviú (ejemplo: uno de hace poco dedicado a Federico Jimenez Losantos). Creo que es la única página que he visto que utiliza algo como wordpress para crear una página que no tiene absolutamente nada que ver con un blog y le queda bien

  • The register: Esta página parece aburrida, pero se te acaba haciendo impresindible. En primer lugar porque de aburrida no tiene nada, está hecha por hijos de la gran bretaña y se nota por la típica ironía (ejemplo, han titulado a este titular "Motion Picture Ass. of America makes ass of itself"). En general se orientan al tema empresarial, suelen anunciar los resultados financieros de las empresas y cambios de CEO y todo eso, pero todo ese cotilleo es interesante si quieres estar enterado de hacia donde va la informática (inevitablemente está controlada por empresas). Tambien es la página que mejor te cuenta cuando AMD y Intel sacan algo, los precios, los nombres, lo tal, lo cual, muy detallado.

  • www.spamusement.com: Una página de un tipo que hace comics graciosos basándose en los títulos de los mensajes de spam que recibe. Como se puede deducir, es un descojono padre

  • www.kernelplanet.org: Planet de los pocos desarrolladores del kernel que bloguean (la mayoría conservan la dignidad y algunos probablemente preferirían morir antes de tocar XML). Merece la pena aunque solo sea por el blog de Dave Jones y Dave Miller

  • Blog de Mark Russinovich de sysinternals.com: suele hablar de temas técnicos de Windows de la misma manera que lo hacia un geek guru de linux. ¿Alguien ha oido del tema del rootkit de Sony? Pues salió de este blog

  • The Old New Thing
  • : Blog de Raymond Chen, uno de los mejores ingenieros de Microsoft. Da igual que odies a Windows, este tipo es igual que el de sysinternals, un geek puro y duro que suele postear sobre por qué se hizo tal y cual cosa en windows 95 o XP, por qué tal API se hizo asi, y que escribió un blog para quejarse que los de marketing de microsoft le hicieron poner su nombre en la presentación powerpoint de una charla, porque decía que él había ido a hablar del tema de la conferencia, no de si mismo, y que su nombre no pintaba nada en la presentación. 100% de sustancia.
  • Blog de Larry Osterman: Como el anterior, pero menos "interesante" aunque interesante igualmente, parece que este tipo se encarga del subsistema de audio de vista

  • Arstechnica: Este sitio ha ganado muuuchos puntos últimamente, especialmente con los análisis de CPUs de Hannibal

  • http://news.netcraft.com: Noticias de netcraft: Para enterarme como va el tema de los servidores web cada mes. Los servidores web siguen siendo el corazón de la WWW, pocas cosas hay más interesantes que saber como se mueve ese mercado.

  • Blog de los desarrolladores de Internet Explorer: Me gusta enterarme de que cosas pueden ayudarles a mantener o a perder el monopolio del mercado de navegadores, que es tambien el núcleo de la WWW

  • Blog de Jonathan Schwartz, CEO de Sun. Las que somos fans de esta estrella del rock no podemos dejar de estar suscritas a este ídolo de masas

  • Blog de Scott Adams, creador de Dilbert: Si has leido algún libro sobre Dilbert seguramente te interesará leer un blog que está escrito en el mismo estilo. Si no lo has leido deberías leer alguno de sus posts, como por ejemplo éste en el que argumenta como según la teoría de la relatividad de Einstein, la teoría de la evolución de las especies de Darwin es falsa

  • http://blogs.sun.com/roller/page/dp: Este tipo de sun blogea sobre las novedades que traen las actualizaciones de opensolaris, por eso le tengo

  • http://blogs.sun.com/roller/page/alanc: Alan Coopersmith, trabajador de sun en el campo de X.org. Sun lleva años acumulando cosillas propias de su fork propio que se llama Xsun, y la liberación de opensolaris ha hecho que Sun se de cuenta que no tiene ningún sentido lo que ha hecho durante años y ahora Alan Coopersmith se dedica a ir metiendo poco a poco las cosas de Xsun. Una de las cosas que ardo en deseos de que metan en X.org es el transporte de memoria compartida: Teóricamente debería ser más rápido que el transporte via sockets unix que utiliza X.org hoy, aunque por lo visto en el mundo real no tiene tanta ventaja, aunque eso es tema para otro blog

  • Blog de DVD John

23 de enero de 2006

viajes por el tiempo

Vaya por delante que yo de estos temas, ni puta idea, aunque me "guste" hasta cierto punto la física (por eso de que logra explicar el sitio en el que vivimos). Lo cual no es obstáculo para que afirme que tener que estudiar una asignatura de física en 1º de informática de sistema es una soberana memez que se hace por que 1) los que deciden las asignaturas son unos completos imbéciles 2) por presión de imbéciles de otras ingenierías a los que no les gusta que haya una ingeniería donde la física tiene tan poca relevancia, y meten física para poder callarles la bocaza 3) porque los que deciden las asignaturas la meten como una "prueba" para los nuevos alumnos, en plan: "un buen universitario debería poder aprobar esta asignatura aunque no tenga sentido en esta carrera". Es decir, lo mismo que en el punto 1) (si a alguien interesa, tengo Física de primero suspensa y por mis huevos que no vuelvo a hacer un examen de física en mi vida, aunque por eso no pueda terminar la carrera). Pero bueno, este blog no habla de eso. Al fin y al cabo siempre podemos hacer como Alan Cox hizo: Buscar por todas las universidades de Inglaterra hasta que encuentres una que no tiene física (en una entrevista dijo como todo lo que había estudiado en la universidad - matemáticas, electrónica - le había acabado por ser útil alguna vez, pero ya ves tú los estragos que ha causado en su carrera no saber las leyes físicas que rigen el comportamiento de los electrones en un transistor). De todos modos, sigo pensando lo que cada vez para mi es mas claro cada día que pasa o que paso por la facultad: El mundo avanza a pesar de las universidades, no gracias a ellas.

El tiempo. Que decía que según Einstein, se puede viajar en el tiempo. Según Einstein y según la realidad, vamos. Que si te acercas a la velocidad de la luz, la parábola de los gemelos, etc etc, todo eso.

Mis conocimientos de física y astrofísica y todas esas mierdas no pasan de ahí (física de segundo de bachillerato). Pero nunca he tenido claro lo de los viajes en el tiempo: Hay dos tipos de viajes en el tiempo, hacia atrás y hacia alante. Lo de Einstein permite "viajar" (en realidad no es viajar, pero bueno) hacia adelante. Pero nunca he sido capaz de entender como eso podría permitir viajar hacia atrás. No se puede, que yo sepa: Decía el tipo de la silla de ruedas que la mejor prueba de que era imposible viajar al pasado, era que no estabamos recibiendo continuamente visitas de viajeros temporales en el futuro. Al menos que la humanidad se vaya a ir a la mierda antes de inventar la máquina del tiempo, claro (algo totalmente posible tal y como están las cosas)

Pero andabame preguntando yo: Vale, está claro que no recibimos visitas de viajeros espaciales que vienen del futuro. ¿Pero que pasará el día que seamos capaces de viajar al futuro? (es decir, viajar al futuro mas de lo que lo hacemos al montarnos en un coche a 120 KM/h, que es tan poco que no se puede medir). El día que inventemos la "máquina del tiempo" será muy divertido, porque viajeros del futuro no recibiremos. Pero viajeros del pasado recibiremos unos cuantos, porque una vez inventada la "nave del tiempo" la gente podrá viajar al futuro. Gente con enfermedades incurables o curiosidad yéndose 300 años más adelante a ver que hay. Tal vez no sea tan buena idea iventar la "nave del tiempo". Y cuando ocurra, sabremos a quien echarle la culpa: A Star Treck.

19 de enero de 2006

Necesidad absurda del día

...que no he conseguido resolver. ¿Alguien sabe si existe algún reproductor de video para linux que permita hacer bookmarks en una determinada posición de un video? Tengo un DVD de "nos sobran los motivos" al que tengo que estar moviendo manualmente todo el rato al comienzo de "y sin embargo". Y me he puesto a buscar y resulta que no he encontrado ningun reproductor de video en linux que haga eso

El problema de hacerlo en un DVD es que sería muy típico darle al bookmark y que el DVD no estuviera metido. Pero los programas de video podrían pedirte "Inserta el DVD XXX" (donde XXX es un nombre cualquiera, no necesariamente uno porno). Y si el video está en el disco duro y le borras, no es muy diferente de tener un bookmark a una página web que ya no existe.

Por cierto, odio profundamente a los reproductores de video. Me encanta como cuando totem no tiene un codec de video te da un error de "no se ha podido leer el medio" o algo así. O quizás ni siquiera era totem. ¿Tanto cuesta decir algo coherente del tipo "El codec para visualizar videos ASF no se encuentra instalado en el sistema"? Maldita sea, file reconoce un montón de formatos de video con la información de /etc/magic, no veo por qué los programas de video no pueden hacer lo mismo, incluso utilizando la salida del propio file. Y cuando se muestra ese error, o intento abrir un video de la lista de videos recientes que es un DVD que no está en el lector, no hace falta indicarme el error con un popup. Cuando hay un fallo, el mismo reproductor de video tiene un espacio en negro gigantesco (puesto que no ha podido reproducirse el video) que sirve para dibujar esa información en un par de widgets incluyendo un botón y aun te queda sitio de sobra para conectarte a la wikipedia, bajar un imagen de un cuadro de picasso y pintarla ahí para que el usuario tenga un poco más de cultura.

Y metidos ya en el asunto, iba a cagarme en el Windows Media Player, que si que dibuja cosas en ese espacio, pero se pasa 3 pueblos. Cuando te pones a escuchar música con el windows media player normalmente no te quedas mirando la ventana. Y uno pensaría que aprovechando que el windows media player, aprovechando que no se está utilizando el hueco del video para nada, pondría en ese hueco - el hueco más grande de la interfaz del programa - información útil: Listas de reproducción, portadas como en amarok, información del artista, enlaces a tiendas de música online, controles de reproducción y volumen más grandes. Pero no: Utilizan ese hueco para dibujar uno de esas mierdas de graficos bailones que no usa nadie y que por alguna razón oscura todos los reproductores de música implementan (yo la música la escucho, no la veo, ¿alguien me puede explicar para que sirve exactamente esa basura?). Asi que cuando miro la interfaz del windows media player, me encuentro con rayas de colores que supuestamente se mueven al son de la música (digo supuestamente porque me he pasado mucho tiempo intentando buscar relaciones de lo que se oye con el movimiento de las rayas y solo la encuentro cuando hay cambios muy bruscos en la música, apostaría a que el movimiento podría ser totalmente aleatorio y ajeno a la música y nadie lo notaría), y la lista de reproducción está arrinconada a la derecha, y los controles de reproducción perdidos abajo del todo. Y para colmo, a falta de información útil te incluyen widgets para que puedas cambiar el tipo de gráfico bailon, que uno ya no sabe si lo dicen en serio o es que has encontrado un huevo de pascua en el que los desarrolladores se rien de ti a la puta cara. Y si te descuidas, alguien diseñará un nuevo tipo de gráfico bailón, grabará como se mueve mientras suena "Imagine" o alguna canción famosa de esas, y lo llevará a una de esas ferias de arte moderno y dirá que es arte y que significa no se qué chorrada. Redios, esta gente va a hacer que acabe odiando a todo el mundo.

18 de enero de 2006

Correción: Core Image ya está aquí

[Warning, este es el típico post rollo que trata de analizar como funcionan las cosas que a nadie le importa como funcionan y que solo les gustan a los geeks]

En mi lista de "cosas que van a suceder 2006" uno de los puntos es que Apple sacaría un sistema análogo a XAML/edje. Hoy pensando un poco he recordado que básicamente, Apple ya añadió eso en Tiger, o al menos la tecnología para poder hacerlo.

Supongo que tendría que haber explicado cual era mi "predicción" exactamente. XAML y edje son cosas que incluso a día de hoy nadie usa. La idea que tratan de implementar aun no se utiliza en el mundo de los ordenadores a día de hoy.

El objetivo es poder utilizar toda la potencia de las tarjetas gráficas de hoy en las aplicaciones. Algunos pensaran que eso ya ocurre hoy en Mac OS X, porque con Quartz está todo acelerado (o lo estará cuando se incluya la aceleración 2D que estuvo a punto de entrar en Tiger). O que Xgl en linux hará lo mismo. O que portar GTK completamente a cairo utilizando el backend opengl aprovecha todo. Nada más lejos de la realidad: Todo eso está muy bien. Pero ahí precisamente está el problema: Aceleran APIs que fueron diseñadas para dibujar cosas con tarjetas lentas y cutres. Es decir: Está muy bien que se acelere el dibujado de un cuadrado. Pero lo que no se ha hecho y está aun por hacerse es diseñar APIs que permitan utilizar toda esa potencia de las tarjetas en las aplicaciones. Las APIs de hoy en día dibujan ventanas y widgets y todo lo que quieras. Pero no van más allá: Si se diseñara una API de cero pensando en tarjetas modernas, no se limitaría a crear widgets y a aplicar transparencias. Te permitiría aplicar ciertos efectos que podrían ser útiles (o no, algunos efectos no tendrán sentido al igual que hoy tampoco tiene sentido hacer una ventana 100% transparente para que el usuario no la vea).

Como digo, debería haber sido más claro al hablar de lo que "predecía". No quería decir XAMl, quería decir Avalon: Avalon es lo que permite a XAML ser así. XAML es básicamente un dialecto XMLsiano para diseñar interfaces en el que puedes decir: "Quiero el botón que se pulsa por defecto al pulsar enter tiemble con un efecto de ola". Es una especie de Glade con esteroides. Y edje, más de lo mismo, es una especie de lenguaje que al decirle que haga algo, utiliza el resto de tecnologías de Enlightenment 17 para aplicar ese efecto automáticamente. Avalon y evas son el equivalente de Core Image de Apple, no XAML y edje

No se 100% como es XAML, pero si he utilizado versiones de CVS de E17. Y no se 100% como funciona edje a bajo nivel, pero espero poder describirlo correctamente: Edje básicamente es algo análogo a glade, un archivo con una descripción de como debe ser la interfaz. La diferencia como he dicho antes, es que va más allá de poder describir unos simples widgets, te permite describir efectos que se van a aplicar a esos widgets. Esas descripciones son los "archivos EDC" (Edje Data Collections), que en un mundo perfecto se crearían con una herramienta de creación de interfaces. Si a alguien le interesa la sintaxis de esos archivos que se lea la documentación, aquí no viene a cuento. El caso es que ese archivo EDC se "compila" y se obtiene un archivo EET, que es un archivo binario que contendrá todas las imágenes, fuentes e historias que haga falta, incluida una especie de bytecode. Luego, la API de edje te permite conectar a esos objectos con el código, al igual que se hace en glade. Y al igual que pasa en glade, puedes sustituir un .eet por otro que tenga los mismos nombres de cosas, etc. ¿Que significa esto? Que en Enlightenment 17, las aplicaciones utilizan esto como sistema para suministrar "themes", y he tenido la oportunidad de cambiar entre themes que hacían que engage (el equivalente de gdm y kdm) cambiara radicalmente de aspecto, themes con efectos totalmente distintos (naturalmente, alguien dira que GDM y KDM tambien pueden, pero compara una tecnología genérica que es base del sistema y utilizable por cualquier programa a la API de GDM, que básicamente se trata de un XML donde especificas como tiene que ser "el botón de salida" limitado por todas partes e implementado como solucion cutre y rapida solo utilizable por GDM)

Bueno, y ahora quiero decir por qué estaba equivocado. Resulta que Apple añadió en Tiger core image. Y el caso es que Core Image proporciona toda la tecnología capaz de utilizar ese tipo de efectos en las aplicaciones. Lo que no tiene es algo análogo a XAML o edje. No se si Apple sacará algo análogo a edje y XAML (el por qué lo empiezo a dudar, más adelante). Tampoco importa: A día de hoy, un programa de Mac OS X puede decirle a Mac OS X Tigerque la transforme con 4 líneas de código, y tener un efecto como este:


Es como una especie de Photoshop integrado en el sistema, de manera casi literal: Se trata de implementar los típicos filtros y efectos de los programas de dibujo como recurso a disponibilidad del programador. Puedes decirle que aplique un efecto a una zona de la imagen. Etcétera. Mac OS X tiene a día de hoy alrededor de 110 filtros diferentes, y tiene APIs para que las aplicaciones incluyan los suyos propios - como es habitual, todo está perfectamente documentado, merece la pena echar un ojo a la guía de programación de core image. Tambien pueden aplicarse filtros a videos. Las capacidades son infinitas. Por cierto, el hecho de que Windows y Apple estén incorporando este tipo de tecnologías debería servir de pista a aquel que quiera hacerse rico escribiendo programas de dibujo: No empiezes a crear programas de retoque fotográfico por muy de moda que estén las fotografías, porque en un par de años cualquier aplicación que trabaje con imágenes podrá añadir un botón que aplique efectos fotográficos en cualquier lado.

¿Dije antes infinitas? No, las capacidades no son infinitas. El modelo de Core Image parece aplicarse solamente a imágenes. No parece aplicarse a Widgets (quizás tampoco debería), y lo más importante: No parece poderse aplicar como sistema para crear "animaciones", tan solo se aplican filtros a cosas. Enlightenment 17 tiene la capacidad de decir que sobre una superficie se aplique continuamente un efecto brillo similar al del metal que deslumbra. Eso va más allá de lo que puede hacer Core Image. Pero Core Image está ahí de serie y eso pone a Apple delante de todos. Ahora puedo rectificar y predecir que junto a la activación por defecto de la aceleración 2D de toda la interfaz, lo que Apple sacará es algún tipo de API complementaria que permita aplicar animaciones. Las capturas de video de Windows vista muestran efectos de animación realmente interesantes, y se que Mac OS X no va a quedarse atrás, asi que espero con ansias saber qué se está cociendo en Mac OS X 10.5 (¿o bordará la jugada Jobs y conjugará el cambio a intel con la salida de un Mac OS X 11.0?).

Y como broche final, la razón por la que creo que Apple no creará un lenguaje para diseñar interfaces análogo de Edje/XAML: Las animaciones y filtros son acciones que los elementos de la interfaz "sufren" sobre si mismas. XAML y edje se acercan peligrosamente y cruzan la barrera de lo políticamente correcto: No es bueno mezclar el diseño con algo que "se ejecuta". No es bueno mezclar el diseño que dice donde está un widget, con el efecto que debe hacerlo dar vueltas cuando se pulse, eso es tarea del código.

Supongo que XAML y edje en su "ceguera" piensan que las animaciones forman parte del sistema, pero mi sentido arácnido unixero me dice "KISS, KISS" y eso significa que el diseño de la interfaz es el diseño de la interfaz y debe utilizarse para diseñar interfaces. ¿Que luego quieres aplicar animaciones sobre esa interfaz? Bien, pero no mezcles las cosas. XAML aparte de mezclar el diseño de la interfaz con las reacciones que los widgets deben sufrir lo hace con XML. Por supuesto se pueden conectar las partes de XAML con código y no se hasta que punto llegan, pero tener que decir en un archivo XML lo que deben hacer las cosas me parece absurdo, XML no se pensó como "herramienta de programación de efectos". Ojo, que edje, en sus .EDC tiene varias secciones, y hay una que puede que precisamente hace eso, pero llegado a este punto las cosas se ponen muy abstractas y pensar y discutir cual es la "manera correcta" de hacer las cosas sin tener idea del tema (probablemente Javier Santana que parece darle al tema de la programación de juegos tenga mejor opinión de estas cosas, los juegos llevan décadas de ventaja en experiencia en estas cosas, los escritorios están dando los primeros pasos). Pero yo creo que los aspectos estáticos y dinámicos de una interfaz deberían ir por separados. Para describir los aspectos estáticos XML va bien, pero lo otro lo más lógico hacerlo en el código, y creo que esa es la ruta que Apple va a tomar: proporcionar APIs que permitan hacer esas cosas

17 de enero de 2006

"cosas dichas por adelantado" 2006

No se han visto muchas predicciones por ahí, no tantas como solían verse otros años, predicciones de cosas que iban a pasar. En general siempre he pensado que las predicciones son una mierda, y que quienes las escriben son idiotas. Por eso yo no voy a predecir nada: En vez de eso, voy a decir cosas que van a pasar, que es ligeramente distinto.

  • Gnome se centrará en Mono. Ahora que Fedora finalmente ha aceptado incluir mono, la pelea "mono vs java" se acabará resolviendo a favor de mono, no de forma oficial (C# no será un "lenguaje oficial" sino un binding muy usado). Gnome tiene miles y miles de lineas de código C suyos que cuesta hacer evolucionar un huevo y parte del otro. Con mono Icaza se dió cuenta - a buenas horas - que programar aplicaciones para escritorio en C es un disparate, asi que la única salida de Gnome es tirar de Mono. No por elección, sino porque es su única alternatica. Se harán buenas aplicaciones gracias a mono, y ese será el valor de Gnome.
  • Las consecuencias de KDE 4 revolucionarán el mundo linux, dado que a día de hoy parece ser el único entorno de escritorio linux en desarrollo (no lo digo yo, sectores de gnome dicen que es posible que no haya un gnome 3.0 sino que se siga extendiendo 2.x, windowmaker está estancado en los 90, Enlightenment no quiere ir más allá de hacer un sistema de ventanas, y asi todos. Solo KDE mantiene en desarrollo verdaderamente activo sus pilares a día de hoy que yo sepa). Como consecuencia KDE seguirá teniendo una base tecnológica impresionante.
  • LLVM se integrará en GCC y demostrará que es una idea mil veces mejor que las "máquinas virtuales" estilo java/C# (bueno, esta es más para el 2007)
  • Se sabrán cosas sobre Mac OS X 10.5, y apple sacará algo análogo a edje/XAML
  • Despues de que tras 30 años Apple haya empezado a saber vender de verdad y ayudado por la pérdida de valor de la API Win32 de Microsoft, las ventas de Macs incrementarán sus ventas de forma sustancial y convertirá a Apple en un jugador de más peso de lo que es hoy, y como consecuencia extenderán sus actividades a más campos.
  • Como consecuencia de lo anterior, y de su lucha con google, y con IBM, y con Linux, y con Sony, y con Sun, y con Oracle, y con Openoffice, y con todo cristo, Microsoft no recuperará la posición que tuvo en los 90. Office 12 no le ayudará a mantener ese 30% de ingresos, la xbox 360 será eclipsada por la PS3, Linux seguirá evolucionando, Google seguirá jugando a lo suyo. Microsoft será víctima de las ansias de sus inversores y seguirá decayendo
  • A pesar de todo, Windows Vista saldrá. Y a pesar de todo lo que le criticamos y del ridículo que han hecho estos últimos años y de que tendrá un monton de fallos y de cosas absurdas que nos harán seguir prefiriendo no tocarlo, tendrá sus saquito repleto de cosas buenas y dará en las narices - una vez más - a linux en el tema de escritorio.
  • Se publicarán o al menos se oirán noticias sobre esas iniciativas que estaban surgiendo sobre la aplicación del concepto de bittorrent al streaming de video/audio (poder distribuir video a miles de personas sin tener una conexión de varios GB/s ni granjas de servidores). Si no existen algoritmos capaces de hacer que el streaming distribuido de video en tiempo real sea una realidad, esperaré 5-10 años a que las redes mejoren la latencia (el verdadero inconveniente creo yo) y lo volveré a predecir
  • A alguien se le ocurrirá de una puñetera integrar bittorrent como sistema de descarga de paquetes de forma oficial. ¿Ubuntú, donde estás tú?
  • Me aburriré y gracias a FUSE haré un "bittorrentfs" para montar sistemas de archivos remotos, en el que un "cat ~/sistemadearchivosremoto/archivo" hará que automaticamente un cliente bittorrent se ponga a descargarse el archivo de forma transparente. Montaré una distro que no esté basada en paquetes, en la que todo el software esté ya instalado por defecto pero que se baje automaticamente via bittorrent según se va necesitando (y se cachee localmente). Todo el mundo pensará que es una gran idea y todas las distros y sistemas operativos se rendirán a mis pies, me haré rico y mataré a Bill Gates
  • Spam VOIP
  • El DRM y las patentes seguirán avanzando.


Y esto es todo por hoy.

16 de enero de 2006

Zealots de Apple

¿Dónde está vuestro mac Intel de más de 3 Ghz? Ya que Apple se cambió a IBM en parte por "no poder suministrar un micro de 3 Ghz", es de esperar que Intel si que lo haga, verdad?

13 de enero de 2006

"Cada Mac es un Media Center"

O un centro multimedia, que diría Cervantes.

Lo de los media center se ha puesto muy de moda. Hasta la omnipotente Microsoft ha sacado una versión exclusiva de Windows para ello. Y la xbox y la playstatin 3, no son en realidad más que "medias center". Lo del media center es algo que todos los ejecutivos quieren que pase. Hay que recordar, que antes de que Netscape diera el golpe y que la burbuja de internet empezara a incharse nadie pensaba que internet iba a ser "revolucionario". Según he leido, lo que todos los medios anunciaban como la "Next Big Thing" a principios de los 90, era la "televisión interactiva". Vamos, que esto no viene de ahora. Ahora vuelven con lo mismo, diciendo que los media center son la "Next Big Thing", la gente viendo las fotos de su cámara digital en la tele y esas cosas. Y que los ordenadores de escritorio van a perder relevancia, etc.

Yo al principio, tambien me dejé llevar por la emoción. Tiene sentido, y tal, consolas con internet, comprar música online a través de la consola para descargarlo al reproductor multimedia conectado a la misma, etc. Pero con el tiempo dejó de emocionarme tanto. Sobre todo porque jamás, jamás de los jamases me he creido aquello de los ordenadores de bolsillo iba a sustituir a los ordenadores de escritorio. Nadie escribe documentos en un procesador de texto en nada que no sea un ordenador de escritorio. Al contrario, yo siempre he creido que el futuro del ordenador - ya está ocurriendo - es "un ordenador en cada habitación de cada persona", porque tiene más sentido. La gente no va a descargar las fotos de sus borracheras de la camara digital en una consola para verlas en el salón de su casa mientras su padre lee el periódico en el sofa. La televisión que está en el salón de la casa siempre fue y será algo de "solo salida" y de interactividad limitada: Nadie quiere interactuar demasiado con una televisión, porque muchas de las cosas que te permite la "interacción" son cosas personales que no quieres hacer en un entorno "colectivo". En resumen: La gente en realidad no quiere "interactuar" con la tele más allá de lo que hacen los mandos de tele y de la televisión digital.

Ahora bien, Bill Gates y HP y todos los grandes del sector piensan lo contrario, que las consolas y las medias center son el invento de la década, y aquí viene lo curioso: Echemos un ojo a la "sencillez" de los media center de esta gente: Lo han diseñado todo como un producto aparte. Bye bye, computer. Comprate una consola nueva, un media center, lo que sea, pero compra algo nuevo. La ruptura es tan radical, que incluso te hace falta un sistema operativo diferente para poder tener un media center (sistema operativo que curiosamente no está de venta al público, sino solo a los fabricantes que fabrican medias centers).

Y ahora echemos un ojo al estilo que Apple ha introducido en sus equipos: "Cada Mac es un media center". La idea de Apple es conseguir los mismos objetivos que los media center de la competencia, pero hacerlo de una manera radicalmente diferente: Utilizar los mismos ordenadores, el mismo sistema operativo, y convertirlo en un media center. La alternativa a los media center de Apple es el Front Row + Apple Remote. Software para funcionar de media center + mando. Tanto en el imac como en el nuevo MacBook lo incluyen, y es de esperar que lo vayan incluyendo en otros aprovechando el cambio a Intel (he escuchado a Maqueros quejarse de que para qué narices incluia el macbookpro infrarojos, ahora ya se sabe para qué y supongo que el imac tambien lo llevará) . Incluso el Mac Mini, que pueda parecer un "media center que compras por separado", no es más que un ordenador normal con Mac OS Xsin pantalla. Tan solo tienes que enchufar la salida de video a la entrada de video de la tele, y olvidate de tener que comprar un "media center" y pagar la licencia de un "windows media center": Apple concibe el media center como una extensión mas del ordenador. La idea de apple tiene el potencial de poder utilizar el reproductor DVD del portatil como reproductor de DVD, música o lo que sea. Nada de cambio radical, ni de las fumadas de hogar digital de Bill Gates. Conectas tu portatil a la tele, le pones el adaptador de corriente, cojes el mando (aka: apple remote) y tienes todo lo que tienes en en media center, pero sin ninguna imbecilidad. A mi la idea de Apple me parece mucho mejor, sinceramente.

¿Y porque tanta diferencia? Yo solo me lo explico de una manera: Microsoft y HP y compañia piensan en términos de dinero. Como todo el mundo sabe, en este sistema económico tan bonito teóricamente pero tan envenenado por los de siempre que llamamos capitalismo, lo que importa no es cuanto dinero ganas ni lo rentable que seas, sino cuanto dinero puedes ganar con respecto al año anterior (para que los de siempre se hagan ricos en la bolsa). Microsoft tiene la gran mayoría del mercado de ordenadores personales: No puede crecer más en ese mercado, lo tiene todo y lo ha explotado de todas las maneras posibles. Y los inversores le presionan para que siga creciendo. Por eso se mete en buscadores, consolas, servidores y medias center: Porque busca mercados para seguir creciendo aunque eso signifique enfrentarse a toda la industria, víctima de su propia codicia similar a como Ungoliant mató a los Árboles e intentó devorar los Silmarils de las manos de Melkor (analogía friki, pero válida). Para todas esas empresas los medias center no son una manera de vender, sino de explotar una vez más al consumidor, abrir un mercado nuevo y crear necesidades que no existen a través de la publicidad y el control de la moda, y seguir creciendo. Apple no es que no sea una empresa y sea radicalmente diferente - los muy cabrones apoyan las patentes de software - pero en Apple la innovación y el pensar en el usuario tiene muchísima más importancia que en todas esas empresas. Para los curiosos, ver las páginas del frontrow del imac y del MacBook

¿Opiniones sobre esta mierda de post?

12 de enero de 2006

dynticks

El blog de Dave Jones es interesante porque es uno de los pocos hackers del kernel que se dedican a blogear y además de eso sobre cosas relacionadas con el kernel. Trabaja para redhat y como buen redhatero, mantiene cosas de Fedora, y entre ayer y hoy ha contado uno y dos de los trucos que utiliza para encontrar bugs. Eso de usar métodos absurdos para encontrar bugs es una de las cosas que menos se suelen hacer, pero es muy interesante

Pero lo más interesante (al menos para mi) es el último, sobre dynticks. Dynticks es una cosa bastante curiosa, que ahora mismo mantiene Con Kolivas (ese médico que sin tener ni puta idea de programar nada le entro curiosidad por el kernel y tan solo 6 meses despues de aprender las cosas básicas de C se puso a reescribir partes del gestor de procesos). Como explica Dave Jones la idea es simple: En vez de llamar al timer en una frecuencia regular para ver si hay algun temporizador que atender, espera a que el siguiente "temporizador" del kernel expire, sin estar mirandolo todo el rato como si estuviera haciendo "polling". Como desventaja tiene que es peor para el rendimiento o peor para la latencia o algo asi, por eso solo se activa despues de un tiempo de estar "idle"

Como ventaja, como comenta Dave Jones tiene que ahorra energía: Menos "ticks", menos trabajo, mas tiempo para descansar. A él le llega a ahorrar 2 Watios, y según cuenta hay algún que otro temporizador que se activa con demasiada frecuencia que se podría mirar a ver que hay (hay algunos que no se pueden arreglar, como dice ahi parece que la especificación USB es una puta mierda y no se puede hacer nada). Es muy interesante, porque durante la mayor parte del tiempo la frecuencia con la que se llamaba al timer del sistema eran 1000 Hz (mil veces por segundo), en vez del de 2.4 que era 100. Las ventajas son de latencia: Menos tiempo de respuesta. Las desventajas, que el estar a 1000 implica la pérdida de un poco de rendimiento (se cambia demasiado de contexto, se "ensucia" el cache del procesador, etc, razón por la algunos servidores usan HZ=100). Otra desventaja de tener HZ=1000 era que se consumía más energía, lo cual era malo para los portátiles, razón por la que muchos portatiles tambien se volvieron a 100 HZ. Con dynticks, los portátiles podrán disfrutar de HZ=1000 (minima latencia) mientras que se ahorra más energía de lo normal cuando no se esté haciendo nada. Dave Jones nos recuerda que Windows XP no tiene nada similar y que consume más que linux con dynticks estando "idle", y sinceramente me extrañaría que lo tuviera Mac OS X, es un "truco" demasiado. Que conste que si no recuerdo mal, Linus propuso hacer esto de una manera distinta y algo más sencilla (cuando el sistema no esté haciendo nada, contar solo ticks en el kernel cada X número de ticks, o algo asi)

11 de enero de 2006

Apple se pasa a x86: Machacando a los zealots de Apple

(Update: los que piensen que este post es una mierda se verán obligados a decirmelo vestidos de esta manera)

A pesar de que ayer me enteré de la noticia en cuestión de segundos gracias a atender a la keynote en vivo por chat.

En primer lugar reiterar lo que ya dije en otras ocasiones: Las razones que Jobs dió en su día en el anuncio y las que dió ayer para pasarse a x86 son razones completamente absurdas. PowerPC es una de las arquitecturas del momento - de hecho, IBM es el fabricante de chips que más ha crecido en el 2005 batiendo a todos los demás - y nadie con cabeza se creería las excusas de Jobs

Para empezar NADIE se cree eso de que los micros de Intel van a ser el doble o triple mejores que los de la competencia en cuanto a potencia/consumo (ej: rendimiento desde el punto de vista del consumo). Puede ser un poquito mejor. Puede ser un 10% mejor (o peor). Un 20, 30, 40 siendo muy extremistas. Pero no un 200-300% mejor. Eso no hay quien se lo trague, excepto los miles de zealots de apple que religiosamente ahora se pasan a criticar a una arquitectura que curiosamente siempre fue mejor que la x86 hasta ayer por la noche. Es especialmente no creible despues de que IBM haya sacado un dual core antes que Intel (la chapuza del pentium D no cuenta) y micros de bajo consumo perfectamente capaces de funcionar en un portatil de Apple. Repito: La excusa del rendimiento/consumo es totalmente falsa, y no justifica ni de lejos un cambio de arquitectura. El intel core duo es sin duda un buen procesador, pero los G5 de IBM son perfectamente capaces de competir con el: Recordar que el G5 es un derivado del Power de IBM, y que IBM vende muchos servidores con Power, y que el G5 está lejos de ser un "bicho raro del que nadie se preocupa". Muchas de las "novedades" del centrino orientadas a ahorrar energia como la "microfusión de operaciones" estaban en el G5 desde el día 1. Si apple no ha sacado portátiles con G5, es porque no le ha dado la real gana, señores zealots, no por razones técnicas.

Otra de las razones ab-so-lu-ta-men-te falsas es lo de "IBM no ha sido capaz de producir un micro de más de 3 GHz". Y siento insultar, pero es que en este caso es la verdad: Para tragarse esta, hay que ser verdaderamente idiota, muy idiota, nadie con una mínima capacidad de análisis se tragaria esa basura. Intel es el único fabricante que ha ido claramente más allá de los 3 GHz, nadie más ha necesitado un micro de más 3 Ghz para ser competitivo. Para los Mac-rtzianos que hayan vivido a su bola en el mundo "G5 mola, x86 caca" durante años, decirles que durante el 2005, AMD ha puesto en jaque a Intel hasta el punto que los directivos de Intel lo han tenido que admitir (tiene que pasarlo muy mal una empresa para que su CEO diga, en palabras textuales, que su linea de productos ha sido muy floja en el 2004/2005). AMD ha tenido micros más potentes que consumían mucho menos y funcionaban de manera muchísimo más eficiente en entornos SMP. Todos esos progresos, señores zealots de apple, los ha hecho AMD con micros de menos de 3 Ghz. De hecho, el micro más reciente de AMD, el FX-60 dual core, orientado a jugadores que esperan las máximas prestaciones, funciona a 2.6 Ghz. AMD tambien tiene uno de 2.8, pero creo de 3 aun no ha sacado ninguno: Porque no le hace falta, y es el lider del rendimiento con o sin watios del mercado con sus micros de menos de 3 Ghz. El G5, con sus menos de 3 ghz, era tan competitivo como lo eran otros. Solo un imbécil pediria a IBM un micro de más de 3 Ghz. De hecho, sabiendo que Jobs anunció que iba a sacar equipos con un G5 a más de 3.0 Ghz, y que un año despues anunció que IBM no le había dado la satisfacción de poder cumplir esa promesa, me viene ahora a la cabeza que Jobs es MUCHO más listo que todos nosotros, y que todo el cambio a Intel estaba muy premeditado, y que lanzó esa promesa de los 3 GHz para distraer la atención y convencer más fácilmente a los zealots que sabía que le iban a creerle

Y dicho eso, decir que Intel ahora mismo está sacando unos micros nuevos perfectamente aceptables, y que el "switch" no es malo en si. Pero el G5 tampoco es un mal procesador, y Jobs es un tipo un genio, pero un genio no solo a la hora de hacer productos, sino de saber venderlos, y engañar a miles de personas a pensar que el G5 es una puta mierda solo para justificar el cambio. Que la gente acepte que las razones del cambio son puramente filosóficas, no técnicas. Mi opinión es que Apple simplemente quiere cambiarse a x86 porque estamos en una época en la que discutir sobre juegos de instrucciones ya no sirve de nada. En los 80 si sería interesante, pero hoy en día el valor de los ordenadores está en otras cosas.

9 de enero de 2006

El fin de los discos duros

Hacía tiempo que quería escribir esto pero por fin me he decidido, tras leer un artículo en slashdot donde se habla de que hay gente que predice que la memoria flash va a tomar el mercado de los discos duros. El artículo incluye la opinión de un directivo optimista - es un directivo de una empresa que fabrica memoria flash dando una opinión en un artíclo que habla sobre el futuro de la memoria flash, que esperabais - pero para una vez, y sin que sirva de precedente, estoy de acuerdo con él. Hasta voy más allá: Creo que en el plazo de 10 años, este tipo de memorias mandarán a la mierda a la tecnología de los discos duros

Antes de nada, hay que decir que este tipo de predicciones se han hecho siempre, al igual que otras: Los procesadores con varios cores, por ejemplo. Sistemas operativos como BEOS se crearon pensando que los ordenadores multiprocesador para usuarios estaban "a la vuelta de la esquina". Y en el fondo tenían razón: Estaban a la vuelta de la esquina. Por desgracia para ellos, la vuelta de la esquina han sido 10 años. La sustitución de los discos duros por la memoria flash es igual: Siempre ha estado "a la vuelta de la esquina" Pero aun no ha aparecido.

¿Y por qué siendo consciente de esto pienso que lo hará? Por una razón muy sencilla, al igual que los multiprocesadores, y al igual que pasará con la transparencia de red de plan 9 y otras de sus ideas, y otras ideas de otras cosas, algún día tiene que llegar el momento. Son buenas ideas, y siempre se acaban haciendo realidad, aunque se tarden décadas (y casi siempre, al menos en el software, se retrasan por la maldita obsesión con la compatibilidad). Y creo que ha llegado el momento de que la memoria flash tome el lugar de los discos duros. No hay más que fijarse en el estado de los discos duros. Para empezar: Son, junto a los CDs y a los DVDs, el último resquicio que queda de los tiempos en los que los ordenadores eran mecánicos (los que estudien electrónica sabrán mas de las épocas y del transistor y todo eso, a mi como informático francamente nunca me han interesado demasiado el rollo de los transistores ni las clases de electrónica. Y por favor, esas personas que estudian electrónica que se abstengan de ironizar sobre qué hace el informático chulo este prediciendo cosas sobre temas de electrónica y física :P). El procesador y los chips no van con engranajes ni dan vueltas ni hacen todas esas cosas raras. Los discos duros han estado ahí porque no hemos encontrado una manera mejor de almacenar tanta información de manera más eficiente.

Y el que los discos duros sean de naturaleza mecánica causa muchos problemas al software. El brazo de los discos duros para moverse tiene que vencer la inercia o como carajo se llame, y eso está ahí y por mucho que se mejore la física impone sus límites. A día de hoy, el tiempo de acceso de un disco SATA cualquiera (mirado en una tienda online) está sobre los 8-9 milisegundos. Un procesador de 3 GHz ejecuta 3.000.000.000 (tres mil millones) de instrucciones por segundo. Eso significa (si las cuentas no me salen mal) que un solo acceso al disco duro supone 24.000.000 de ciclos potencialmente perdidos esperando al disco. Bastantes. Y esta diferencia de velocidad se ha ido incrementando: Con los años, los ordenadores se han hecho "más lentos", la velocidad de los procesadores se ha incrementado vertiginosamente y la de los discos duros no mejora - no puede mejorar sustancialmente. La diferencia se incrementa con cada nuevo procesador que se saca al mercado. Y no, la multitarea no arregla este problema mágicamente como me han comentado. De hecho la multitarea, aislandola en este caso particular, se podría considerar con un parche a los defectos de los discos duros. Cuando un proceso se tiene que pasar 24 millones de instrucciones esperando a una petición de disco es cuando surge el problema. Y si el siguiente proceso que se ejecute para rellenar el hueco hace otra petición al disco, hará que el brazo se tenga que mover, perdiendo aun más tiempo. Haz esto de continuo y te las verás con el caso del arranque del sistema operativo, en el que el disco se pasa 1 minuto (en linux) yendo de un lado a otro y los procesos se pasan esperando un tiempo precioso.

Como digo, esto causa problemas, muchos más de los que la gente se cree. Todos sabemos que cuando más lento es un sistema es cuando tiene que tirar del disco. Gran parte de la arquitectura de gestión de memoria de todos los sistemas operativos modernos se basan en un solo principio: Los discos duros son lentos, y evitar un solo movimiento de brazo significa 24 millones más de ciclos aprovechados. Todo el concepto de "cache" y "buffer" del kernel se basa en esto. Se han diseñado e implementado complejísimos algoritmos para evitar movimientos de los malditos brazos del disco duro. Y siguen diseñandose e implementandose: hasta el 2002 no existían algoritmos como clock-pro o cart (clock-pro y cart están siendo implementados para linux). Y no entremos en la memoria virtual: Mover a swap una página que se va a utilizar dentro de poco significa tener que mover la página al disco y traerla de vuelta cuando se necesite de nuevo, asi que hay que tener mucho cuidado con que el algoritmo elija a las páginas adecuadas. Es un tema complejísimo, y no hay nadie que lo haga bien, solo hay sistemas que lo hacen menos mal.


Y bueno, aparte de esto, vamos con la predicción en si: ¿Si siempre ha sido asi, porque iba a cambiar ahora? Pues por que creo que existen signos evidentes de que los discos duros se están quedando, despues de tantas décadas, obsoletos

En primer lugar, porque su mayor ventaja y la razón real por la que tiramos de ellos - la capacidad - ha dejado de ser una ventaja. Me explico: Los primeros ordenadores que yo usé no tenian disco duro, sino que cargaban msdos de un disco de 5.25" (360 KB, si no recuerdo mal). En aquel tiempo había discos duros de 20 y pico o 50 MB. En tiempos de windows 95, los discos duros andaban por los 2 gigas, y windows ocupaba ¿100, 200 MB?. Un tamaño más o menos importante, y se te acababan los 2 GB rápido, siempre había algo que lo llenaba. Pero a día de hoy, en un disco de 200 GB, un windows XP aproximadamente ocupa 1.5GB: Ni tan siquiera un 1% del tamaño total. ¿Música? Podemos meter días, meses de música. ¿Películas? Puedes llenarlo, pero ya puedes bajarte películas de cojones. La música y el video son las maneras más eficientes que tenemos de llenar discos duros. Puede que 200 GB se puedan llenar. Pero en cuanto se incrementen los tamaños un poco mas, a 1 TB o así ¿con qué lo vamos a llenar, siendo realistas? (Y estamos hablando de escritorios, el mundo empresarial va por su lado, ya se que los estudios de video necesitan mucho espacio y que Microsoft y la CIA necesitan muchos teras para guardar la información de nuestra vida privada) El video no ocupa cada vez más, los codecs reducen los tamaños de los archivos finales y aumentan la calidad en cada versión, y las películas siguen durando dos horas o lo que duren. Seamos realistas: Una vez vencidos el video y la música, nos estamos estamos quedando sin cosas con las que poder llenar discos duros. Algunos frikis que lean esto tendrán un raid de varios teras lleno de porno, pero en el mundo real a la gente con sus discos duros de 100 y pico GB les vale (lo único que se me ocurre que podría llenar un disco duro es la propia "realidad"; es decir, la descripcion de escenarios 3D de juegos, y dudo que vaya a ocurrir.)

Y luego está la tecnología básica. Como decía antes, el brazo del disco tarda mucho en moverse, y el plato tambien. Hay tecnologías que mejoran eso, pero ya están explotando el sistema a límites bestiales: sistemas de complejidad enorme que prolongan la larga agonía. Aquí se puede ver un mensaje de un tipo de maxtor a la lista del kernel (siempre digo que la lista del kernel es única), donde admite sin ningún rubor que la presión que están metiendo a la densidad de los platos y a los sistemas que se utilizan va a producir que los discos duros esten continuamente remapeando sectores y haciendo copias de seguridad de un lado a otro y reescribiendo sectores porque pierden "intensidad" y los datos se van a la mierda. Y en ese post tambien la contestación de H. Peter Anvin - webmaster de kernel.org y creador de syslinux, el gestor de arranque que utilizan todos los CDs de las distros - donde pone en evidencia la realidad: Esos esfuerzos por remapear sectores y demás historias no son "impresionantes esfuerzos de maravillosa ingeniería", son la prolongación de una tecnología muerta. La tecnología esa revolucionaria de escritura perpendicular no creo que resuelva la papeleta a largo plazo (ojo, la tecnología consiste en poner los campos magnéticos en posicion perpendicular al plato, para que quepan más, si eso no es explotar algo a su límite no sé que lo será). Los sistemas mécanicos basados en grabar campos magnéticos en platos no tiene futuro.

¿Conclusión? Los discos duros empiezan a dar señales de agotamiento, y no hay vuelta de hoja. Esto unido al hecho de que ya no se necesitan grandísimos tamaños de almacenamiento va a desembocar en lo siguiente: Dado que la gente ya no necesita espacio, se fijará en el rendimiento: El tamaño no vende, y las empresas tendrán que hacer marketing de algo para vender, y la gente comprará lo que el marketing le diga. Mientras tanto, las tecnologías basadas en flash tendrán tiempo (repito que he dicho "en el plazo de 10 años", tiempo de sobra para que se investiga y se descubran cosas) para lograr aumentar sus tamaños. Empezarán por surgir "minidiscos duros flash" - ya están surgiendo, les hay de vaarios gigas incluso - que los fabricantes de sistemas operativos utilizaran para acelerar la carga y funciones básicas del sistema. Con el tiempo irán incrementando su tamaño, y como ya no hay una necesidad infinita de tamaño, llegará un punto en el que empiezen a surgir sistemas sin discos duros tradicionales. Entonces surgirá otro paso curioso: La unificación de la ram y el "dispositivo de almacenamiento secundario". Esto no es ninguna fantasmada, ya está ocurriendo hoy en los pocketpc y móviles y todos estos dispositivos embebidos: Tradicionalmente los programas han de llevarse a la ram para ejecutarse, pero con memoria flash no tienes porque hacerlo y gastar memoria en una copia del programa, puedes ejecutarlo directamente desde la memoria flash. Lo otro tiene su lógica en un sistema con discos duros mecánicos por cuestiones de rendimiento, pero con un disco basado en flash no debería ocurrir, y en linux ya tenemos soporte para que estas cosas desde 2.6.13. Y bueno, asi acabarán los discos duros. Usaremos discos basados en memoria flash, los sistemas operativos simplificarán y eliminaran gran parte de sus subsistemas de I/O (para qué tener "IO elevators" con memoria flash, un simple "prefetch" será suficiente). El rendimiento de nuestros sistemas se multiplicará al no tener que esperar millones de ciclos a que ningun brazo se mueva. A diferencia de los discos duros, la memoria basada en flash puede acceder de una punta a otra de la memoria sin tener que desplazar un brazo.

Lo que le falta a mi predicción es la parte donde explico como las memorias flash conseguirán alcanzar la capacidad de almacenamiento, resistencia a reescrituras y abaratamiento de precio suficientes. Esa es la parte que surgirá por propia inercia del capitalismo: Hay mucho dinero que ganar, y alguien lo hará. Alguno pensará que soy demasiado optimista, pero yo no lo creo: No creo que el ser humano, el mismo ser humano que fue capaz de inventar un artilugio que mató a decenas de miles de personas simultaneamente en centésimas de segundo en Hirosima y Nagasaki, que ha mandado un robot a marte y que ha conseguido calentar unos grados un planeta entero sea incapaz de hacer que una puñetera memoria flash sea grande buena y barata. No, si hay dinero de por medio.

7 de enero de 2006

Hay muchos imbéciles en España

Que alguien me explique quien le ha otorgado a este payaso el poder legislativo o judicial. Por que ya me explicarán a mi por qué el Ejercito va a tener que tomar esas decisiones por iniciativa propia. Digo yo. Manda cojones que España tenga que pagar el pan a un ejército tan "profesional" que "defiende" los valores de España tan bien. Señor payaso, que el ejército hace lo que le mandan, no lo que le da la gana. Y usted no es tan buen payaso como para mandar nada

google da la campanada

Google Pack, http://pack.google.com

Si señores, google acaba de sacar un pack de software que incluye:

  1. Mozilla Firefox with Google Toolbar
  2. Adobe Reader 7
  3. Ad-Aware SE Personal
  4. GalleryPlayer HD Images
  5. Google Desktop
  6. Google Earth
  7. Google Pack Screensaver
  8. Google Talk
  9. Google Toolbar for Internet Explorer
  10. Mozilla Firefox with Google Toolbar
  11. Norton AntiVirus 2005 Special Edition
  12. Picasa
  13. RealPlayer
  14. Trillian
La verdad es que desde el punto de vista del software libre, no es tan bueno (mucho programa propietario), pero seamos justos: Para windows, no hay programas que compitan con los que salen ahi, excepto firefox (que nadie mencione a gaim por favor) y si los hubiera estoy seguro de que google los hubiera usado

La otra noticia es que google pondrá en video.google.com shows de TV, en competencia directa con itunes...pero a quien le importa :P

5 de enero de 2006

Por supuesto que el P2P baja las ventas de CDs

Quiero decir: Algún día tendrá que hacerlo, ¿no?. Algún dia las ventas de CDs tendrán que desaparecer (aunque a dia de hoy las ventas de CDs suban en vez de bajar). No se pensaran esos ejecutivos de las discográficas que vamos a pasarnos toda la vida cargando con CDs y DVDs.

Siendo Internet lo que es - un hito histórico similar a la imprenta - a algunos les cuesta coger el truquillo y entender de que va esto. Sobre todo teniendo en cuenta el estado de la ciencia de la computación: Programas dificiles de usar, que hay que instalar, que cascan, etc etc. Entiendo que musicos grandes como Javier Krahe con sus 62 años diga en una entrevista que eso del "pirateo" no le parece demasiado bien (no entiendo sin embargo que lo digan el canto del loco, que se jactan de usar internet y consolas y tal y cual, ni que lo diga Alejandro Sanz)

Internet es para la música la mayor innovación en cuando a medios de distribución desde la invención del fonógrafo y el gramófono. Desde la invención de eso hasta la llegada de internet, todo ha sido lo mismo (por cierto, es curioso como en su día utilizamos el cassete; con su acceso secuencial claramente inferior al aleatorio del gramófono, para que digan que la tecnología siempre avanza) pero con distintos materiales. Internet permite librarse de las ataduras de los medios físicos (que son tantas, que prefiero no listar)

Estaría bien hacer una investigación sobre como fue la introducción del gramófono en la vida de la gente. No tengo ni puñetera idea, pero puedo imaginarmelo. Hasta entonces, creo que no se había inventado nada que permitiera "grabar" los sonidos. Y no se como sería la música entonces, pero debía ser muy triste, sin poder escuchar lo que hacían grandes músicos aquí y allá, al menos que no tuvieras la suerte de estar físicamente en uno de sus conciertos. Y como digo, llegó el gramófono. Y la gente lo compró, y lo usó.

Y podría jugarme el cuello a que los músicos de entonces se ciscaron en el gramófono exactamente igual que la gente se cisca hoy en internet. El gramófono permitía hacer copias de la música de los músicos, incluso copias ilegales (no me he documentado absolutamente en nada de esto, pero no necesito documentarme para saber ciertas cosas: el ser humano es egoista y ruin por naturaleza y con el paso de los siglos no hemos cambiado, y si se podían hacer copias ilegales para gramófonos estoy seguro de que se hicieron). E imaginate a los músicos: Yo me les imagino poniendo el grito en el cielo porque a ver que iba a pasar con eso del gramófono, que la gente escuchaba a su música de gratis, y se quejarían al gobierno y demás, claro. Y asi se inventó el copyright, me imagino (y como analogía, asi se han inventado el DRM, solo que el DRM, al darse cuenta de que el copyright es incapaz de asegurar los derechos de los autores en medios como internet, han intentado la absurdísima idea de intentar controlar los medios tecnológicos que se utilizan para reproducir)

Yo no se como explicárselo a los músicos. Creo que aun no se han dado cuenta. No se han dado cuenta de que se acabó la absurda restricción de sacar las canciones de 12 en 12. No se han dado cuenta que se acabó la absurda restricción de tener que ceder los derechos de tus canciones a una discográfica multinacional para que te publiquen el disco y te hagan promoción. No se han dado cuenta de nada. No se han dado cuenta que por fin internet les permite ser libres - aun más libres - a la hora de hacer su música. Y se de buena tinta que muchos músicos, el día que se enteren de que tienen esa libertad al alcance de la mano, se darán con un canto en los dientes y preferirán que les cuelguen de un madero a renunciar a esa libertad que les concede internet. Mientras tanto, habrá que esperar, porque al fin y al cabo los músicos, quitándoles lo de la música, son gente normal que de informática ni puta idea, y que por muy grandes que sean su mente está sujeta a ciertas imposiciones de la sociedad, incluida la de que para sacar su musica tienen que sacar un CD.

Y en el futuro los ingresos, sabe dios como vendrán, pero no vendrán de la venta de CDs. Las ventas de CDs no tiene futuro alguno. Si se siguen vendiendo CDs hoy en día es por dos razones: 1) gran parte de la población no sabe que es eso de internet 2) a la gente le gusta comprar CDs originales de los grupos pensando que un disco producido en cantidades industriales por unas máquinas que estampan de manera sistemática logotipos de los grupos en un CD tiene algo de "especial". ¿Que tiene de "especial", exactamente? ¿La composición química de la tinta? Oh, mira, he comprado un trozo de plástico que tiene la firma de Sabina impresa. Manda huevos. ¿De qué narices me sirve a mi un puñetero CD cuando en mi mierda de reproductor MP3 caben más canciones? ¿Por que comprarme una de esas mierdas de cambiador de CDs que se ponen en el maletero que cuestan una pasta y donde caben 12 CDs originales y con un mecanismo excesivamente complejo y propenso a los fallos, si puedo comprarme una radio que lee MP3 que tiene una ranura de CD en el frontal y que tiene 12 albumes en MP3? (y que nadie me venga con la imbecilidad de la calidad, si quieres escuchar música bien lo último que haces es escucharla dentro de un maldito coche y te conformas con lo que hay o usas un formato mejor que el MP3)

Asi que eso, señores de la SGAE y músicos que apoyan las ventas de CDs. Los CDs se irán a la mierda. Y las discográficas - excepto las que sepan coger el último tren, que las habrá porque los de las discográficas hijoputas son, pero de tontos no tienen un pelo - tambien. Y los artistas que se agarren a ellos se irán con ellos. Y la cultura será un poquito más libre. Y algunos no se alegrarán, pero yo si

3 de enero de 2006

Microsoft se HA SUPERADO

Ya se que todos hemos visto y oido historias de horror sobre fallos de seguridad y virus en windows. Pensareis que Microsoft no puede ir más allá. Pues no, nada de eso. Se han superado:

Resulta que en tiempos de Windows 3.0 Microsoft diseño algo llamado "Windows Meta Files". Pues bien: Esos archivos tenían la opción de poder incluir código en la imagen que se ejecutaba en circunstancias especiales. Y como ya habreis adivinado, los "Windows Meta Files" se han seguido incluyendo en todas las versiones de Windows. Hasta en la 2003. Y sin saberlo, apostaría a que en el código actual de Vista.

Pero ojo, porque esto tiene mucha mas miga. Echad un ojo a esta captura de f-secure. Es totalmente imposible darse cuenta de nada con solo mirar la imagen. Y lo divertido de la imagencita es lo que dice el texto: "When the HappyNewYear.jpg hits the hard drive and is accessed (file opened, folder viewed, file indexed by Google Desktop), it executes and downloads a Bifrose backdoor"

Si, señores, es lo que parece: Ya no hay que abrir archivos, ni nada. Tan solo con que se abra el directorio, o que un indexador como el de google mire en su recorrido por el disco duro a ese archivo. La razón creo que es que la mierda esa de WMF tiene alguna relación con el diseño del subsistema gráfico de Windows, el GDI y todo eso. Asi que supongo que en cuanto una imagen intenta "renderizar" o mirar algo del archivo, se ejecuta el código que incluye la imagen. Si la renombras a jpg da igual, porque windows detectara que es WMF y ejecutará el código igualmente. Y esto, señores y señoritas, funciona en todos los Windows del mundo

Pues esto no se acaba aquí. Microsoft ha publicado el aviso 912840 para informar de la vulnerabilidad. Para informar. Porque parche, lo que es parche, no han sacado aun. Dicen que hasta el día 10 de Enero - martes - nada. Y ojo, porque en realidad no estamos hablando de un "bug", sino más bien de una "funcionalidad" de los archivos WMF, asi que no me extrañaría que como parte del proceso de correción de este bug tuviera que eliminar esa funcionalidad. Pero no todo está perdido, porque ha habido un tipo que ha sacado un parche el solo. Si señores: untio ha sacado un parche para esto antes que Microsoft. Y todos los medios están aconsejando instalarlo (a pesar de ser un parche de terceros, etc etc) por la que puede avecinarse, alucinados por la tardanza de Microsoft y agarrándose al clavo ardiendo que es el parche de ese tipo. Por que ya hay worms corriendo por ahí. Tanto ruido ha hecho esta vulnerabilidad, que hasta los grandes de la prensa se están haciendo eco. Y Microsoft lleva una semana desde que se confirmó la vulnerabilidad, y el día que saquen el parchen habrán pasado dos semanas, y ya hay cantidad de virus pululando por ahí. Y como Windows 98 ya ha salido del periodo de soporte, puede que no saquen parche para él.

Pero no os penseis que esto se ha acabado, nada de eso. Volvamos a la parte técnica, la del aviso de seguridad. Si uno lee la sección de FAQ que pone Microsoft, se encuentra con estas joyas:

Does this vulnerability affect image formats other than Windows Metafile (WMF)?
The only image format affected is the Windows Metafile (WMF) format. It is possible however that an attacker could rename the file extension of a WMF file to that of a different image format. In this situation, it is likely that the Graphic Rendering engine would detect and render the file as a WMF image which could allow exploitation.

If I block .wmf files by extension, can this protect me against attempts to exploit this vulnerability?
No. Because the Graphics Rendering Engine determines file type by means other than just looking at the file extensions, it is possible for WMF files with changed extensions to still be rendered in a way that could exploit the vulnerability.


Lo dicho, todo una joya. He oido de fallos y historias raras de Windows, pero esta se lleva la palma. Una compañia que se jacta de poseer el 90 y pico por ciento del mercado de ordenadores mundial y que tiene unas arcas inmensas es incapaz de crear productos ni medio decentes. De una compañia que se jacta de poseer el 90 y pico por ciento del mercado de ordenadores mundial yo, sinceramente, esperaría algo más, no esta chapuza monumental. Menuda verguenza. Yo no me lo explico, esto es el equivalente a entrar a un supuesto hotel de lujo y encontrar que al pasar la puerta tan solo hay un descampado lleno de barro, mierda y chabolas. Y lo peor, es que más que comparaciones estoy haciendo descripciones.

1 de enero de 2006

"Try rebooting yourself"

No he podido evitar poner esta genial tira de Scott Adams (sus libros son estupendos, sobre todo si no cometes el error de comprar las versiones horriblemente traducidas) sobre los fallos producidos por la estupidez de los usuarios. Una manera muy sutil de decir RTFM: