Un emulador Gameboy Color escrito en JavaScript

Cuando JavaScript apareción en 1995 como parte del Netscape para permitir cierto tipo de animación dentro del bastante estático HTML de aquel entonces nadie penso que dicho lenguaje que corria únicamente dentro del navegador terminaría convirtiendose en una suerte de lingua franca de la web y permitiría llevar la interacción de la web a niveles de borrar practicamente la frontera entre el escritorio y el navegador. No hace mucho Fabrice Bellard presentó un emulador de PC, que permite entre otras cosas cargar un kernel de Linux en el navegador. Me he encontrado el día de hoy con un proyecto Open Source llamado GameBoy-Online (escrito por Grant Galitz un jóven programador de 19 años), que permite emular el GameBoy Color dentro de un navegador que soporte Canvas de HTML5.

Existe una versión de prueba publicada por el autor en su website y es alli donde he probado Tetris (que descargue desde aquí). Lo he probado tanto en Google Chrome como en Firefox 3.6.17 y funciona bastante bien, la usabilidad es la misma que se obtiene en un emulador que corra en el escritorio. Un detalle interesante es que cuando inteté correrlo en mi Nexus One, no me mostraba la opción de File (que permite cargar los juegos desde el almacenamiento local).

De todas formas un proyecto muy interesante y que podría decirse extiende un proyecto educativo anterior que Imran Nazar inició en su blog llamado "GameBoy Emulator in JavaScript and HTML5", en el cual en cada uno de sus post describía cada una de las partes del emulador. Información que resulta útil si se desea escribir algún otro tipo de emulador. O si por el contrario se desea entender el código del proyecto GameBoy-Online.

Tal vez la potencia que ha alcanzado JavaScript y HTML5 es lo que está haciendo converger todos los sistemas operativos en el browser, el primero en aparecer fue Google Chrome OS, pero ahora me he enterado que incluso la última versión de Mac OS X Lion permite el bootear el sistema operativo en un modo de sólo browser, que básicamente es lo mismo que Chrome OS. Sin embargo la cosa no queda alli, al parecer el desarrollo de aplicaciones para Windows 8 será en JavaScript y HTML5, según he encontrado en algunos forums de desarrolladores Microsoft, aquí lo que dice BitDisaster sobre el tema. Abonando además la teoría de que Microsoft abandonará .Net en favor del desarrollo en JavaScript y HTML5, ayer apareció un pequeño post en Electronista titulado "Desarrolladores critican la dependencia de Windows 8 en HTML5 y JavaScript". Por otro lado un punto de vista más moderado es el que postula ArsTechnica en un un post de ayer sobre el mismo tema que titula "Por qué Microsoft ha aterrorizado a sus desarrolladores sobre el código para Windows 8" y deja claro que Windows es aún el rey de los escritorios, pero la desesperación de Microsoft por entrar al mercado de los móviles la está obligando a tomar este camino que no por ser arriesgado, significa que el gigante de Redmond no pueda ganar mucho con este nuevo paradigma. Además recordemos que la promesa de Microsoft para Windows 8 es que el mismo sistema operativo correrá en todos los dispositivos y veo difícil que aplicaciones .Net (debido a lo pesado del runtime) puedan correr en móviles o tablets con procesadores ARM.

Mi duda es ahora que tenemos Android y iOS en los móviles, Windows en los escritorios y HTML5/JavaScript en la web, cual de estos tres caminos terminará siendo el que la mayoría de los usuarios (mercado) decidirá seguir en el largo plazo. Definitivamente cada uno de ellos tiene sus propias fortalezas y debilidades, pero como dice Connor MacLeod: "Sólo puede haber uno".

Una disputa entre ayatolás del software libre

El viernes pasado (27 de Mayo 2011), Daniel Olivera uno de los miembros más visibles del proyecto Ututo renunció de manera pública a la FSF (Free Software Foundation) y culpó de está renuncia a la manera de actuar hipócrita que tiene la FSF y su política de buscar la paja en el ojo ajeno.

El texto del correo en el cual Daniel Olivera renuncia a la FSF y expresa sus razones lo he conseguido a través de la lista del grupo de usuarios linux de Peru (PLUG) y como creo que es de interés para todos lo copio aquí:

El 27/05/11 06:49, Richard Stallman escribió:
> Me dijiste hace unos años que eliminías los blobs en Linux
> directamente.  Hacerlo así sería adecuado para evitar los blobs.
>

Richard estoy cansado de esto, tengo problemas mas graves que estos a nivel personal.
Haz lo que quieras, porque parece que el movimiento de sofwtare libre
opera como los nazis en su epoca que hacia que las personas solo
pensaran en denunciar a los supuestamente sospechosos.
Es una verguenza ya este movimiento. Realmente quiero salir del
movimiento de SL, No quiero que se diga que opero de esta manera que
considero totalmente carente de etica.
Creo que me dedicare a hacer sistemas operativos por mi propia eleccion.
Estos ataques constantes por molestar unicamente a ututo me tienen cansado.

Desde este momento personalmente rompo toda relacion con la FSF y
contigo. Realmente estoy cansado, tengo problemas graves personales que
resolver que no solo me alcanzan a mi sino a mi esposa e hijos.

Se termino mi participacion en el movimisnto de SL, asi lo anunciare.
Proyecto UTUTO seguira su curso con mi participacion pero yo me retiro.
Quienes hacen Proyecto UTUTO decidiran como quieren hacer las cosas yo
aceptare la desicion de la mayoria.

> Alguien me dijo que Ututo contiene blobs en Linux, específicamente
> estos (aunque la lista no pretende ser completa):
>

Alguien que es tan cobarde que no tiene nombre, y que necesita un metodo
a escondidas para proceder.

>     drivers/media/dvb/dvb-usb/af9005-script.h
>     drivers/net/appletalk/cops_ffdrv.h
>     drivers/net/appletalk/cops_ltdrv.h
>     drivers/staging/wlags49_h2/ap_h2.c
>     drivers/staging/wlags49_h2/sta_h2.c
>     drivers/staging/wlags49_h2/ap_h25.c
>     drivers/staging/wlags49_h2/sta_h25.c
>     sound/pci/cs46xx/cs46xx_image.h
>     sound/pci/cs46xx/imgs/cwc4630.h
>     sound/pci/cs46xx/imgs/cwcasync.h
>     sound/pci/cs46xx/imgs/cwcsnoop.h
>
> Dijo que las versiones anteriores de Linux, también disponibles en
> Ututo, también tienen blobs.
>
> No lo he averiguado personalmente.  ¿Es verdad?
>
> Si esto es verdad, es un problema grave, mucho más grave que lo de
> Google Translate.
>

Hasta siempre pero esta es la ultima comunicacion.
A partir de ahora no contestare mas ninguna de tus correos o de alguien
de la FSF

No contento con su renuncia Daniel Olivera ha inciado un blog (el mismo día de su renuncia) y en el se despacha a sus anchas sobre la FSF en varios post donde denuncia:
  1. La FSF tiene un doble estándar en el uso de distribuciones, por ejemplo mientras públicamente desaconseja el uso de Debian o Ubuntu, usa estas distribuciones que contienen software no libre en sus propios servidores (enlaces aquí, aquí y aquí).
  2. Denuncia que el movimiento del software libre está corrupto porque le exigieron retirar el link a Google Translator en su website (enlace aquí).
  3. Denuncia que no es posible cancelar una suscipción a la FSF si no es hecha personalmente, al parecer a través de la web no es posible cancelar una suscripción (enlace aquí).
  4. Denuncia el hecho de que la FSF usa PayPal un servicio de cobro a través de la web que no sigue las reglas de la misma FSF (enlace aquí).
  5. Denuncia que la FSF recibe donaciones de dinero en efectivo de empresas que ella misma critica por no seguir los lineamientos de software libre (enlace aquí).
  6. Denuncia que para FSF está bien el uso del SaaS, pero no para sus miembros porque en ese caso estarían promoviendo el software privativo (enlace aquí).

Richard Stallman Daniel OliveraQué es lo que opino de todo esto, pues muy simple tenemos a dos ayatolás discutiendo quién es el más fiel seguidor de la sharia, mientras le convino a Daniel Oliveros la promoción que hacía la FSF de su distribución linux, todo era felicidad, hacía reuniones en las que participaba Stallman hasta no hace mucho, sino como explicar esta noticia borrada del portal de Ututo pero chacheada por Google "Proyecto Ututo: Ameno almuerzo con Richard Stallman" (la fecha 17 de Marzo de 2011).  Es decir hace apenas dos meses tenían amenos almuerzos, pero cuando Stallman parece insinuar que de no reparar el problema con los Linux Blobs, su distribución podría no ser recomendada por la FSF, el fuego arde en la pradera.

Por supuesto en su blog y públicamente, Daniel Olivera señala como la razón de la ruptura el hecho de que Stallman deseaba que el link a Google Translator sea removido de la página de Ututo. De que también hay hipocrecía en las palabras de Olivera no me cabe la menor duda, las donaciones que recibe la FSF no son nuevas, es más durante el juicio entre SCO e IBM sobre código robado de Unix y puesto en Linux (juicio que terminó perdiendo SCO), la FSF fue llamada como testigo por parte de IBM y de eso ya hace mucho tiempo, nada de lo que denuncia es nuevo y todos lo sabían. Es más cuando Stallman tuvo una disputa con Miguel de Icaza, Daniel Olivera apoyó a Stallman y en ese momento todos los puntos que ahora critica a la FSF y que según él lo llevan a una "NECESARIA RENUNCIA" ya eran públicos.

Lo cierto es que la FSF es irrelevante desde hace ya bastante tiempo, es más la única pieza de software clave desarrolada por la FSF el GNU Compiller Collection (GCC), ha sido reemplazado por el uno de sus fork EGCS que se terminó convirtiendo en la versión oficial del compilador desde Julio de 1999. La diferencia básica entre Stallman y Olivera es que mientras el primero no tiene un OS, y se dedica a vender el tema abstracto de la libertad del software. El segundo tiene todo invertido en su OS Ututo, por lo tanto ahora se quita la camiseta del FSF y probablemente se coloque la mucho más genérica del Open Source; sin embargo el problema para Olivera es que en esa arena (la del Open Source) lo que cuenta son los resultados y no las palabras por que es el mercado el que decide, en lo personal no creo que Daniel Olivera tenga éxito con su distribución sin el endose de la FSF.

¿Por qué el chico nuevo no puede programar?

El día de ayer en TechCrunch apareció un post de similar título, que describe la frustación de muchos gerentes de proyecto que tienen que lidiar con la realidad de programadores que sencillamente son incapaces de generar código y sólo complican la culminación del proyecto. El autor de dicho post Jon Evans, señala como responsable del caos al proceso de selección de programadores realizado por el departamento de recursos humanos que dice sólo seleccionar al top 1% de los candidatos, pero si eso es cierto entonces por que estos desarrolladores élite no pueden llevar a término la más simple de las tareas.

Los cuestionamientos de Evans al proceso de selección de programadores no son nuevos, ya en el 2007 Jett Atwood de Coding Horror, se preguntaba "¿Por qué los programadores no pueden programar?" y sobre el mismo tema tres años depués hacía otro post titulado "Los programadores que no programan". Pero como dice Evans claramente en su post es un problema con el proceso básico de selección, el parrafo que considera resume toda la problemática es este:

"Entonces, ¿en qué debe consistir realmente una entrevista [de trabajo]? Permítanme ofrecer una propuesta humilde: no entrevistar a nadie que no haya logrado algo. Jamas. Los certificados y los títulos no son logros, me refiero a proyectos del mundo real con usuarios del mundo real. No hay excusa para que los desarrolladores de software no tegan un sitio web, una aplicación o un servicio que puedan mostrar y decir: "Yo lo hice, ¡todo con mis propias manos!" en un mundo en el que Google App Engine y Amazon Web Services tienen servicios de nivel básico gratuitos, y todo el costo de registro como desarrollador Android para poder publicar una aplicación en el Android Market es de $ 25"

El problema es que la mayoría de departamentos de recursos humanos asumen que si alguién tiene un título o certificado, automáticamente significa que dicha persona es capaz de programar y como en todos los blogs que he mencionado líneas arriba la constante es que la gran mayoría de personas que se presentan a una plaza de programador y tienen un título de ingeniero, master o incluso PhD, son incapaces de escribir el programa más sencillo.

En lo personal, me parece que no solamente es el proceso de selección el que falla en este caso, sino también el proceso de educación de los programadores, la educación como he dicho antes se ha convertido en un negocio y por lo tanto busca como todo negocio del siglo XXI, satisfacer las necesidades de sus clientes, en este caso los alumnos que pagan sus pensiones para recibir un título, ojo no he dicho pagan sus pensiones para ser educados. El problema básicamente es que muchos de los profesionales que actualmente existen en el mercado creen que su educación los ha capacitado para desarrollar un rol determinado, cuando en realidad sólo han recibido un conjunto de conocimientos que sirven a lo mucho para pasar exámenes, pero no para crear riqueza.

El único consuelo para todos los graduados peruanos de las numerosas escuelas de ingeniería informática, sistemas o computación, como deseen llamarlas, es que al igual que ellos los graduados de otras universidades alrededor del mundo tampoco saben programar. Pero como dice aquel viejo refran: "Mal de muchos, consuelo de tontos".

Nokia ha muerto, pero nadie se lo ha dicho.

El día de hoy (27 de abril 2011), Nokia ha anunciado oficialmente que despedirá 4000 empleados a nivel global en un periodo comprendido entre hoy y finales del 2012. Además sorprendentemente Nokia ha transferido a Accenture (una compañía de desarrollo de software muy próxima a Microsoft) todo el proyecto Symbian, incluyendo a sus 3000 empleados, cuando digo transferir estoy haciendo uso correcto de la palabra, no es un error de la traducción. Nokia no ha podido vender el proyecto Symbian, nadie ha querido comprarlo, ni siquiera sus mismos empleados.

Cuando el nuevo CEO de Nokia Stephen Elop, hiciera público su comunicado interno donde comparaba la situación de la empresa con la del trabajador de una plataforma petrolera en el mar del norte en llamas que se enfrentaba ante la difícil situación de permanecer en la plataforma y morir incinerado o saltar al mar y morir congelado; finalmente la historia termina con el salto al mar de noche y el milagroso rescate posterior del trabajador. El comunicado completo puedo ser leído en Engadget. Luego de hecho público ese comunicado a inicios de febrero, todo el mundo concordaba en que Stephen Elop era brutalmente honesto, muchos decían que si los banqueros en Wall Streer hubieran actuado así, no nos encontraríamos en la actual situación. Luego vino el acuerdo con Microsoft por 1000 millones de dólares en inversiones durante los próximos cinco años a cambio de que Nokia se embarque en el proyecto Windows 7 para móviles, algunos comenzaron a ver a Elop como un caballo de troya introducido por Microsoft para ganar el control de la transnacional finlandesa, otros hablaban de una simbiosis perfecta en al cual todos ganaría. Hoy día queda claro que no es ni lo uno ni lo otro, Elop es el tradicional gerente que sólo desea presentarle números azules al directorio a cualquier precio.

Por qué Nokia está muerta, pues básicamente porque ha externalizado todo su departamento de Investigación y Desarrollo a Microsoft, que dicho sea de paso es la opción más cara de todas. La cereza en el pastel es que el market share de los teléfonos Windows 7 está cayendo y 1 de cada 2 nuevos smartphone vendido es Android y 1 de cada 4 es un iPhone, detalles en el blog de Nielsen.

Sin un departamente de Investigación y Desarrollo, que diferencia a Nokia de un fabricante chino o taiwanes cualquiera, el problema es que las plantas de producción de Nokia están en Europa y pagan salarios europeos. La reducción de personal es sólo el primer paso de un largo camino que pasa por la externalización de la producción a China, más reducciones de personal y continuas reducciones salariales de la gran mayoría de los empleados (CEO, directores y gerentes exceptuados), para finalmente terminar con la venta de la compañía a otra gran transnacional.

Android el smartphones más usado en USA

He tenido unos días muy ocupados que me han mantenido alejado del blog, pero no podía dejar de comentar la noticia de que Android es ahora el sistema operativo de smartphones más usado en USA, tras haberle arrebatado el primer lugar a Blackberry. Todo esto según unas últimas estadísticas presentadas por comSocere del uso de plataformas móviles. Hace poco más de un mes Nielsen Wire, también daba como la plataforma más usada a Android, con lo que los resultados de comScore sólo confirman una tendencia.

No cambió la tendencia el hecho que Apple ahora venda también su iPhone en Verizon, alli tiene un competidor de gama alta llamado HTC Thunderbolt que se vende mucho mejor que los iPhones en los distribuidores de Verizon, según un reporte de la firma consultora BTIG que ha sido divulgado por el portal de noticias AndroidCentral.

El cuadro que resume el cambio en la composición del mercado de smartphones en USA entre noviembre 2010 y febrero 2011 es este:

comSocre Marzo 2011

El papel que está haciendo Microsoft es realmente malo, luego de haber gastado cientos de millones de dólares en el lanzamiento de Windows 7 para móviles y el trato con Nokia que le costo mil millones de dólares, para perder 1.3% del mercado en tres meses es un indicativo que Microsoft es tan malo tratando de entrar a las plataformas móviles como lo es Google tratando de entrar al universo de las redes sociales. Otra cosa que queda claro,  aparte de la limitada visión estratégica de Steve Ballmer (actual CEO de Microsoft), es la gran visión de Eric Schmidt como CEO de Google, ya que el compró el proyecto Android en agosto del 2005 y al cabo de 5 años terminó convirtiendose en la clave del éxito en el sector de móviles para Google.

Al parecer lo que muchos analistas temían que es el hecho de que Apple sea superado por los fabricantes de equipos compatibles con Android está pasando, si Apple no hubiera comenzado a ditribuir sus teléfonos a través de la red de Verizon, tal vez en estos momentos estaríamos viendo un declive de su cuota de mercado. Pero como sucede con todo en las TIC, el efecto network tiende a favorecer al que posee la cuota de mercado más grande, haciendo esta más grande. Sucedió con la PC y Windows, con Google en el segmento de buscadores  y con Facebook en el segmento de las redes sociales. Al parecer ahora la homogenización en la plataforma de móviles ocurrirá alrededor de Android. Si tan sólo Apple hubiera sido menos obsesiva en tratar de controlar toda la plataforma (hardware/software) y hubiera permitido que existan equipos compatibles con iOS, pero queda demostrado que Steve Jobs no es tan inteligente, ni visionario como muchos creen; despues de todo es tan sólo uno más de los que vuelven a tropesar con la misma piedra.