dic 13

Llevo usando una tablet TouchPad de HP desde mediados de Agosto. Si, si, justo esa: la que HP comenzo a vender con WebOS a precio de iPad, que luego rebajó y acabo poniendo a precios de saldo, casi suplicando que se la quitaran de las manos. Esa que esta en estado de zombie: es un no-muerto que camina. Esa que el anterior CEO de HP, Leo Apotheker (un genio en esto de quebrar empresas, por lo visto) decidio cancelar de un plumazo, dejando a propios y extraños con cara de tontos.

El caso es que en Agosto me propusieron desarrollar algunas Apps para WebOS, el S.O. de la TouchPad. Y no pude negarme. La idea de aprender un nuevo lenguaje (JavaScript), con un framework de desarrollo desconocido (Enyo) sobre un S.O. del que habia escuchado maravillas (pero nunca había probado) y poder cacharrear con un nuevo chisme me hicieron aceptar sin pensar. La unica condicion que puse era poder disponer de un dispositivo real sobre el que probar, y poder quedármelo. Y así ha sido: ahora soy el orgulloso propietario de una TP de 32 GB, con la que estoy muy contento.

En tres meses he desarrollado tres aplicaciones que ya estan en la tienda de aplicaciones de HP para la TouchPad (HP App Catalog). Por motivos de acuerdos de confidencialidad no puedo decir cuales son. Busca las tres mas bonitas, y esas son las mias :-) . Por si alguien no lo ha pillado, repito: en tres meses, partiendo desde conocimientos nulos en todo (S.O., lenguaje, framework, herramientas) tres aplicaciones acabadas. WebOS / Enyo es un entorno increiblemente sencillo, potente y productivo para desarrollar, cuando le coges el tranquillo. Es una autentica pena que se cargasen este S.O. Pero asi es la vida.

Y antes de seguir hablando de mis experiencias y usos de la tableta, quiero dejar este punto bien claro. WebOS esta muerto sin posibilidad de resucitar. Seguira existiendo, en una medio vida, mantenido por una fiel comunidad de aficionados. Pero no va a existir ningun “comeback” triunfal de WebOS, ni va a destronar a iOS, ni nada de nada. He visto esto mismo montones de veces en el tiempo que llevo alrededor de esta industria. Lo vi cuando Amstrad acabo comprando Spectrum, que en su epoca fueron de los pioneros en las micros. O cuando Amiga sucumbio ante Windows. O cuando OS/2 Warp desaparecio de escena. O, año tras año, cuando se anuncia, ya de broma, que sí, que de verdad este va a ser el ano de Linux en el Escritorio y se va a desbancar a Windows.

Ser mejor tecnicamente que otros no es garantia de exito. Vender mucho y con buen margen si. Eso es lo que tendrian que haber pensado antes de sacar la HP TouchPad. Pero da la impresion de que Leo queria que la tableta fracasase rapidito para quitar “esta tonteria de Palm” lo antes de la idea que tenia de la nueva HP, una empresa enfocada solo al sector profesional. Al final, Leo ha dejado de ser CEO de HP antes que WebOS muera, pero el daño ya está hecho. Ahora deshojan una margarita para ver cómo malvender Palm. Al final, WebOS creo que acabará siendo Software Libre. Como Maemo o Meego. Ambos, dos excelentes productos. Y sí, con esas cotas de popularidad.

(Nota: esto lo había escrito antes de que HP anunciase que, efectivamente, va a liberar el código de WebOS y Enyo. Pero a día de hoy no se conoce ni el proceso, ni la licencia, ni nada)

El caso es que disfruto mucho con mi TouchPad. Su factor de forma es parecido al del iPad 1. De hecho, las fundas de iPad 1 son compatibles con la TouchPad. Usan el mismo display (1024 x 768, el mismo del iPad 2 por cierto). Y tiene muchas cosas chulas. Por ejemplo, al conectarla por USB aparece como una unidad mas y puedo intercambiar ficheros sin limitacion. Puedo usarla de disco USB de 32 GB, lo cual no esta mal. Creo que esto, para un usuario no avanzado es un problema. Para un geek como yo, es una puerta abierta al cacharreo.

Otra cosa que me encanta es que puedo pasar los videos de iTunes directamente ya que reproduce sin problemas H.264. Asi que puedo ver los vídeos de la WWDC o de formacion de Stanford simplemente copiándolos. Y tiene algo que odio, pero que debo reconocer que he usado en no pocas ocasiones para ver video: Flash. Puedo ver videos directamente en la pagina de YouTube o en Vimeo sin problemas. Y es una gozada cuando no quieres bajarte nada, directamente te vas al video y listo, lo ves en streaming. Comiéndote la batería, eso sí.

Cuando te compras la TouchPad viene en una caja con todo muy “apretado”. Y vienen pocas cosas: la tableta, un cargador de pared (que es también cable USB para sincronizarla) y poco más. Pero aprovechando que en Septiembre estuve en el iOS Dev UK tuve la suerte de encontrarme en un Carphone Warehouse un teclado inalámbrico HP y la base de carga TouchStone. He grabado este vídeo mostrando la tableta y sus accesorios. Grabado con el iPhone 4 y poca luz, pero creo que se ve.

Como se puede ver en el vídeo, la TouchPad admite “dual boot” de WebOS y Android. Tengo instalado CyanoGen Mod 7 con un Android 2.3.7 que va francamente bien. Aunque la experiencia no es igual de pulida que en WebOS, pero está bien el poder usar más de un S.O. en la TP. Si no encuentro suficientes juegos para los niños, reinicio en Android y listo.

Si puedo y tengo tiempo, voy a seguir desarrollando mis propios proyectos para WebOS 3.0 / Enyo. Quiero profundizar en JavaScript y aprender Node.js. Igualmente, me gustaría tener una App con mi nombre en una segunda Store. Y así, irlas colonizando todas :-)

Tagged with:
ago 27

Si no te quieres leer todo este rollo, puedes ir a GitHub y bajarte el código fuente.

Este año he tenido la gran suerte de que se me presenten muchos proyectos, a cual más interesante y excitante. Desde una oportunidad para trabajar como Genius en una Apple Store hasta la posibilidad de integrarme en una compañía fantástica de desarrollo móvil, como es Mobivery. Oportunidades realmente estimulantes, que me hacen pensar que estoy vendiendo la moto de forma inconsciente, porque tampoco soy tan bueno programando. Aunque sí que me merezco los sueldos más altos que se puedan pagar :-)

No me he arrepentido de no aceptar estas ofertas porque volví de las vacaciones con mi “vocación emprendedora” más fuerte que nunca. Con ganas de hacer cosas, y sobre todo, de programar. Y parece que el Karma me ha recompensado, ya que se me planteó la posibilidad de desarrollar para la plataforma WebOS, y concretamente para la tableta de HP/Palm TouchPad. Tenía muchas ganas de conocer otra plataforma de desarrollo móvil, y, aunque ya me había hecho el “Hello World” con QT para Maemo y no acabo de encontrar ganas para explorar Android, no me lo pensé y acepté. Con una condición: quería un dispositivo para hacer las pruebas. ¡Me encantan los chismes!

He dedicado Agosto a aprender sobre el desarrollo de WebOS, a la vez que iba desarrollando la App para el cliente. No tenía ni idea, nunca había visto nada de WebOS (aparte del S.O. a nivel de usuario, y a través de vídeos). Empecé viendo vídeos sobre el desarrollo con Mojo, hasta que me di cuenta de que para la nueva versión del S.O. WebOS (la que viene con la TouchPad) es necesario desarrollar con el framework Enyo. Me instalé el SDK y el emulador, y me lancé a probar ejemplos. Me registré como desarrollador en Palm. Era divertido. Salvo cuando no lo era. Apenas hay ejemplos de Enyo por ahí para mirar, casi ningún tutorial, y en StackOverflow muy pocas preguntas / respuestas. Me quedaban los propios foros de Palm.

A esto hay que sumarle que yo no tengo ni idea de JavaScript. Cuando digo ni idea me refiero a que podía usar una biblioteca de funciones, pero sin conocer el lenguaje. Esto tiene fácil arreglo y me he lanzado a aprender JavaScript.

Y entonces llegó el bombazo: HP abandona la producción de dispositivos con WebOS, vende de forma apresurada las TouchPads para quitarse de en medio el Stock, y dice que quiere vender su parte del negocio de venta de PCs. Muy divertido. Incluso he bromeado en Twitter, viendo mis últimas adquisiciones y su posterior destino (Nokia N900, HP TouchPad) sobre mi capacidad gafe para hundir una empresa. Aunque pocas bromas: el proyecto que estaba haciendo entró en soporte vital, y estuve unos días esperando a ver qué pasaba. Finalmente se ha decidido concluir las Apps y subirlas a la tienda española, que se abrirá espero en Septiembre / Octubre. un alivio, porque realmente me gusta el desarrollo con Enyo, me parece un cambio tan radical desde Cocoa que me permite mantenerme fresco programando todo el día: un rato Cocoa y luego Enyo / Javascript.

Pero hay muy pocos ejemplos sobre Enyo. Así que, tras sufrir unos días con una parte de la App, he decidido crear un pequeño ejemplo de una App con un menú fijo a la izquierda, y con vistas que van cambiando según se pulsan las opciones de menú. Nada espectacular, pero hasta dar con la tecla de cómo combinar los Enyo.Pane con los Enyo.SlidingPanel me ha llevado un rato. Así que, si quieres probar la app, te instalas el SDK (lo necesitas para tener la librería Enyo), te bajas el código fuente del ejemplo de GitHub, y lo pruebas con un navegador WebKit (Chrome o Safari). También puedes usar el código como esqueleto para tus nuevos proyectos con Enyo, si es que te animas.

Os dejo unas capturas de la App, para que la veáis en acción:

Primera opción de menú

Primera opción de menú

Segunda opción de menú

Segunda opción de menú

Lo más complicado: el menú y los sliding Panels

Lo más complicado: el menú y los sliding Panels

Tagged with:
ago 16

Esta es la vida del informático. Da igual los años que tengas: la sensación es que nunca tienes ni idea de nada. Avanza tan rápida la industria que, por mucho que hagas, siempre te quedas atrás. Y hay que tomar decisiones. Los tiempos aquellos de poder ser un “informático renacentista” que sabía de hardware, de software, de todo un poco, pasaron. Yo hace tiempo que desistí de aprender ciertas cosas (como BB.DD.) y me centré en otras. Si no enfocas sobre un tema, no hay manera.

Por eso te recomiendo que sigas mi “método” sobre cómo aprender, en general, mientras avanzas en tu carrera profesional como informático:

  • asúmelo: siempre va a haber muchas más cosas que NO sepas, que las que sabes. Aunque ahora aprendas Ruby, mañana necesitarás Java. O JavaScript. O C++, Clojure, o lo que sea. Nunca lo vas a saber todo. Y no pasa nada.
  • hablar estas cosas y admitir las propias carencias frente a nuestros compañeros nos quita un gran peso. Porque la mente es mala, y constantemente te dice “mira que no saber CSS, seguro que todos estos ya hacen transformaciones CSS3 mientras duermen, y tú aquí, sin tener ni zorra idea de nada, mira que eres torpe…“. Nos machacamos sin piedad, y resulta que cuando preguntas no todo el mundo está tan avanzado. Es más, si tienes esta inquietud, probablemente tú ya sepas algo: “sólo se que no se nada“. Uno de los motivos por los que voy a las NSCoder Night es por hacer esta “terapia de grupo”.
  • no te dejes llevar por el agobio, o el estrés. Sí, vale, que tienes que entregar el proyecto para ayer: entonces usa Google (o mejor, stackoverflow). Pero márcate unos objetivos cada año, y aprende o profundiza en algún aspecto que te sirva y te interese: un lenguaje de programación, dominar un IDE, ver qué sistema de control de versiones te gusta más, patrones de diseño, UML, etc. Si tienes esos objetivos marcados y los cumples, cada año sabrás más que el anterior. No son importantes los años de experiencia, sino lo que experimentas durante esos años.
  • lee libros. Internet es fantástico para búsquedas de dudas, y hay muchos tutoriales. Pero muchos de ellos no se pueden comparar al material que encuentras en un libro: bien pensado, estructurado, con ejemplos. Además, leer un libro supone un esfuerzo y desarrollar una concentración que nos viene bien como programadores: cada vez somos menos capaces de concentrarnos durante un par de horas, por culpa de las interrupciones. Leer te obliga a trabajar esos conocimientos, y así a aprender.
  • una vez leas libros, busca vídeos del tema. En iTunes (y en Internet en general) hay vídeos de casi todo. Es bastante ameno ver cómo se hace algo, en lugar de tener que leerlo. Pero hazlo siempre después de leer el libro.
Estos son los pasos que suelo dar, y me han servido tanto para las certificaciones Java, como para aprender Cocoa Touch. Y este verano me ha surgido la oportunidad de poder empezar a desarrollar Apps para otra plataforma móvil, WebOS y el HP TouchPad. El problema es que (ver punto primero) no tengo ni idea de JavaScript. Solución: tirar de Amazon.co.uk (que a partir de una cantidad no cobra gastos de envío) y pedirme estos dos libros sobre JavaScript:
Libros JavaScript

Libros JavaScript

Tienen el visto bueno de los Tuiteros expertos en JavaScript (José Blanco y Luis Medel), así que deben ser la pera.
Con ellos voy a seguir explorando el Framework Enyo y WebOS, a la espera de que me llegue una unidad de pruebas HP TouchPad para depurar las Apps. Cuando llegue, pondré por aquí mis impresiones.
Tagged with:
preload preload preload