El lamentable estado de las herramientas de desarrollo Android

Advertencia: si le tienes mucho cariño a Google, mejor que no sigas leyendo. Si desarrollas Apps como es mi caso (para iOS y Android) y no tomas como dogma de fe todo lo que dice Google (ni Apple, ni Microsoft, ni nadie), adelante.

Segunda advertencia: leed el update de abajo del todo, por favor. Para que os hagáis una idea de lo grave que es este asunto…

Ahora mismo estamos en pleno Google I/O, la conferencia para desarrolladores de Google. Se están presentando muchas novedades de consumo, lo que me parecen muy bien. Hay incluso un nuevo lenguaje visual llamado Material (que, por desgracia no veremos mas que en los Nexus, ya que los fabricantes se lo van a cargar; y aún así habrá que ver en qué Nexus y cuándo).

Todo muy bien, pero ¿qué pasa con las herramientas de verdad para desarrolladores?

Estas herramientas, no nos engañemos, son: el compilador, el lenguaje y el IDE. Eso es lo que usamos el 90% del tiempo mientras desarrollamos Apps. Pues parece que, en 2014, todo sigue como en 2013. En la edad de la piedra. En el más absoluto desprecio de Google hacia sus desarrolladores.

Sí señores: desprecio. No es de recibo las herramientas que proporciona Google, insisto, en 2014. Revisemos.

El lenguaje de programación

Es Java. Ni creado ni controlado por Google. Conste que no odio Java (he invertido mucho tiempo en aprenderlo y certificarme como para no tomarle cariño). Pero seguir en Java 6 cuando ha salido Java 8 con un montón de novedades interesantes me escuece. Mucho. Quiero esos tipos opcionales, clausuras y funciones de primer orden. En Android. Y lo quiero ya. Llámame caprichoso, pero creo que ya toca avanzar.

Seguir con esta versión de Java se debe seguramente al litigio que Oracle le está ganando a Google sobre la copia de Java para la máquina virtual Dalvik. Es ese el motivo de aguantar mientras puedan con Dalvik, cambiar a ART (el runtime que se va a usar a partir de ahora) y en cuanto puedan (probablemente la I/O de 2015) presentar el desarrollo de Android con Go. Que es un lenguaje creado por Google. Lo cual, por cierto, tampoco me disgustaría.

El cambio de Dalvik por ART no se debe a que incorpore 64 bits. Ni a que sea más óptimo. Si Dalvik es ya abierto ¿por qué no incorporar esas novedades y mejoras en la máquina virtual que ya tienen todos los Android? Probablemente por huir de un barco que se hunde. Y además: ¿para qué darle a todos los que están haciendo clones de Android (Nokia X, Amazon, Barnes & Noble Nook, Aliyun) estas mejoras? Me juego algo a que al final ART sólo lo podrán usar los miembros de la Open Handset Alliance. ¿Open?

IDE

Controlar el lenguaje es algo importante para crear un buen ecosistema de desarrollo. Microsoft creó C#, escribe su runtime, compilador y tiene el que probablemente sea el mejor IDE de todos: Visual Studio. Apple escribe su propio IDE, Xcode, que es una maravilla (como editor es mejorable y le faltan refactors, pero en Xcode se pueden hacer cosas que Eclipse no hará en la vida y Android Studio dentro de 100 años; ante las dudas ver un Storyboard, el diseñador de efectos de partículas con SpriteKit, los PlayGrounds de Xcode 6 o los Gauges). Apple influye poderosamente en el compilador, llvm, hasta el punto de haber creado un nuevo lenguaje de programación (Swift) para avanzar tras usar casi en exclusiva Objective-C los últimos 20 años.

Google, por contra, empezó creando un plugin de Eclipse para añadir algunos refactors, un asistente aquí y allá, un visualizador del XML de los layouts y poco más. Eclipse ni es de Google, ni Google puede influir en su desarrollo para hacerlo más Android. Luego, esperaron a que la comunidad demostrase que IntelliJ Idea era una alternativa viable para el desarrollo Android y propusieron Android Studio con mucho bombo y platillo… en Mayo de 2013. Es casi Julio de 2014 y seguimos con una herramienta en versión Alpha, que no ha alcanzado aún la versión 1.0.

Excusas

No, no me valen excusas sobre “es que Google ya se sabe, pone las cosas en Beta y tal”. Google no es una startup montada por cuatro chavales. Es la compañía más valiosa del planeta. Tienen pasta y tienen cerebros. Lo que no tienen es ningún interés en mejorar las herramientas de desarrollo.

Google sólo se preocupa de aquellos productos en los que puede vender su publicidad. Todo lo que no sirva para imprimir anuncios, sigue el camino de Google Reader y del Dodo. Y como no pueden imprimir anuncios mientras compilas, tenemos lo que tenemos.

Modelos de negocio distintos

Hay que entender el modelo de negocio de cada una de estas tres empresas para comprender cómo actúan:

  • Microsoft quiere venderte licencias. Por eso hacen el software que hacen, sólo para Windows, porque quieren venderte las licencias de Visual Studio, Team Foundation Server y Windows. Lo tomas o lo dejas, pero son claros.
  • Apple quiere meterte en su ecosistema y venderte chismes, que es donde ganan pasta, no con software (que ahora lo dan gratis, desde el S.O. hasta Xcode pasando por la suite ofimática). Ellos quieren que te compres un iPad, un iPhone, un MacBook Pro retina con AppleCare y que sigas y sigas comprando sus productos. Hacen buen software para apoyar la venta de sus productos hardware.
  • Google vende publicidad. Es con lo que gana dinero. No es nada innoble ni lo de que avengonzarse, pero todo esto de ir de salvapatrias de los open y darse aires de ir curando el cáncer cuando lo que hacen es espiarte para vender mejores anuncios me resulta muy gracioso. Google nunca ha sido pro software libre.

Open no es Libre

Open no significa nada y me molesta el uso torticero que Google hace de este término. No dicen libre porque se le echaría encima todo el mundo del Software ídem, dicen open como en voy a tirarte las migajas de los repositorios de código fuente de Android para que veas lo bueno que soy.

Eso no es libre.

En un proyecto Software Libre se puede ver el código mientras se desarrolla, y no después. Se puede aportar código. Es una meritocracia.

Aquí tenemos un desarrollo totalmente propietario y cerrado creado por una compañía que libera código al terminar. Y, por cierto, sólo parte de ese código. Google Maps o Gmail no lo liberan. Ahí lo open no entra, que eso es parte de mi maquinaria de vender anuncios… Llevo usando, aportando y tratando de comprender a la comunidad del Software Libre desde el 94. Me molesta que la gente se confunda y crea que Google nos defiende de las “Megacorporaciones” como Microsoft o Apple. Como si ellos fueran Teresa de Calcuta.

Las tres son iguales: compañías que tratan de imponer sus productos en el mercado. Ninguna tiene como misión salvar al mundo. No le demos más vueltas.

Gradle

Así que para poner la guinda al pastel, tras usar un lenguaje que no es suyo y ofrecerte dos IDEs que tampoco hacen, han cambiado a Gradle, un sistema de construcción que tiene muy buena pinta, pero que de salida es muuuucho más lento que Ant. Es decir: tu proyecto en Eclipse compila más rápido que en Android Studio. Que sí, que se puede acelerar Gradle. Entonces ¿por qué no viene de salida ya configurado correctamente? ¿Por qué machacar a los devs que ya tenemos bastante al migrar un proyecto de Eclipse a AS? Es en estas cosas donde veo la desidia de Google.

Y ese es el meollo de la cuestión. Que el equipo de desarrollo de AS en Google deben ser un programador y un becario. Y el becario a tiempo parcial. Sólo así se puede explicar el ritmo de no-avance de la herramienta. De nuevo, sin excusas: si Apple puede en un año sacar una nueva versión de Xcode, digo yo que Google podrá. Pero claro, si pierdes el foco creando gafas, relojes, coches, drones y mil cosas más pero no vas a lo fundamental pasan estas cosas.

Costes

Y ahora es cuando alguien pensará: “ya, pero es que en Apple hay que pagar 80 € anuales y en Microsoft el Visual Studio de verdad cuesta pasta, mientras que en Google pagas una vez en la vida 25 dólares y ya”.

Efectivamente: ¿ves una tendencia?. Pagas por un producto == calidad. No pagas y no pueden ponerte publicidad == Google Reader, digo herramientas de desarrollo.

Tú es que eres un Fanboy de Apple

Vaaaale, venga, sí, soy un Fanboy de Apple. Los tiempos de compilación de Gradle me los invento. Y tener un IDE más de un año en Alpha es de lo más normal. O que para lanzar el emulador tengamos que andar con trucos como la aceleración Intel o usar Genymotion (de nuevo, nada de esto de Google). De paso, que nada de lo que usa Google Play Services (que cada vez son más cosas) no funcione en el emulador y tengamos que tirar de dispositivo también es un triunfo.

Quizá tu problema es que no has tratado de desarrollar con otro entorno que no sea Android Studio. En mi caso, sí. Uso Xcode, Eclipse y Android Studio a diario. Y antes usé Visual Studio, Aptana, Delphi, Turbo C y vim. ¡Hasta Blackberry ha hecho un mejor trabajo con Eclipse para BB10 que Google!

Creo que hablo con cierto conocimiento de causa. Pero si tienes argumentos en contra de algo que lo que digo (que no sean es que a mi me gusta más X en lugar de Y) sino cosas como “resulta que el roadmap de Gradle muestra que Z y Android Studio se puede mejorar de tal y cual forma” bienvenidos sean. Si quieres ponerme a parir, no comentes: escribe un post en tu propio blog. Gracias.

Y, por cierto ¿en qué parte de I/O se está hablando de las mejoras del lenguaje, IDE o compilador, más allá de ART?

Pues eso.

Actualización del 1 de Julio, 2014

Escribí esta entrada en el avión, mientras me dirigía al GCTIC a impartir unos talleres, uno de ellos de Android. El día antes tuve la precaución de copiarme el ADT Bundle que proporciona Google para todas las plataformas, por si alguien no lo tenía instalado. Tuve que usarlo: algunos de los asistentes no lo tenían instalado, y se lo proporcioné. Total, es descomprimir un ZIP en el que va Eclipse y el SDK. Es tan sencillo, que incluso escribí en este blog cómo crearte tu propio entorno de desarrollo Android portable con Eclipse.

Pues no. No era tan sencillo. Nada funcionaba. Lo instalé en mi máquina con cierta sonrisa de desdén pensando “novatillos…”. Y no. No funcionaba. Ningún ADT Bundle funcionaba. Ni en Mac, ni en Windows, ni en Linux. Pensé que estarían mal descargados y empezamos a bajarlos de nuevo. Hasta que nos dimos cuenta de que la culpa era de Google:

En la página oficial de descargas del ADT Bundle han colgado versiones que no funcionan

Y no avisan. A día de hoy puedes seguir bajándote una versión rota de ADT Bundle de la página de Google. Y sabiéndolo, no la quitan de en medio ni ponen un aviso. No. Juegan con tu tiempo. ¿Tienes una entrega de una App? Me da igual. ¿Vas a impartir un taller? No me importa. Soy Google, la prepotencia con patas, y me importa [inserta aquí un adjetivo colorido] mi comunidad de desarrolladores. Ellos son muy listos, que se busquen la vida. Total, la culpa es suya por fiarse de mi página oficial de descargas.

Eso sí, en su bug tracker sí que parece que lo saben. Y dicen que lo arreglarán en uno o dos días. Después de una semana.

Estoy harto.

j j j

Imparto dos talleres en el GCTIC: iOS y Android

El #CGTIC es el Foro de Nuevas Tecnologías de la Información y la Comunicación que va a tener lugar en Las Palmas de Gran Canaria este próximo fin de semana (del 26 al 29 de Junio). Y tengo la enorme suerte de poder asistir e impartir un par de talleres:

Esta es mi tercera visita a las Islas Canarias, y la tercera isla en la que voy a estar, tras Tenerife y Lanzarote. Muchas ganas no sólo de ir al GCTIC, sino de estar por Las Palmas al menos el Jueves y echar un paseo en condiciones. No tendré tiempo de mucho más (recordemos que voy a trabajar, no de vacaciones) pero la verdad es no que se puede ir a mejor sitio. Se puede estar igual de bien, pero mejor es complicado.

Ambos talleres son gratuitos, y el Foro ha tenido la amabilidad de hacerse cargo de los gastos de transporte. Aparte de esto, yo voy “de gratis” porque creo que hay que apoyar a la comunidad de desarrollo. Este año ya he participado en dos iniciativas similares: el Curso de iOS en Cádiz con el inimitable Jorge Galindo y el taller que hice con la ayuda del Ironhack en Madrid.

Si me ves, saluda. Y te invitas a algo. Si pongo cara rara, es que no estoy acostumbrado a que me saluden gente que no conozco ;-)

j j j

Que no se den cuenta de que eres tonto

Auto-equiquetarse. Hay gente que le encanta. En esta era de la velocidad, de tener que sonar ingenioso en 140 caracteres, de las “charlas de ascensor”, del speed-dating, parece que no hay tiempo para poder explicar quién es uno, qué hace, en qué puede ayudar. No hay tiempo ni de pensar. Por eso, y dado que las tarjetas de visita están demodé, hay que etiquetarse. En el perfil de LinkedIn. En la Bio de Twitter. En Facebook.

No vaya a ser que pase desapercibido y no se den cuenta de que soy tonto.

Y digo lo de ser tonto porque el contraste con cómo se etiqueta a sí misma cierta gente no puede menos que ser llamativo. Sir Tim Berners-Lee, el motherfucker que inventó Internet, físico de formación y premio Nobel de vocación se pone en los Hangouts de Google “Web developer”. Como un becario aquí en España, vamos. Y mientras, hay gente que se pone de etiqueta:

CEO de un blog

Esta me genera mucha ternura. Lo digo porque para ser CEO de un blog creo que basta con abrirse una cuenta en WordPress y empezar a escribir, ¿no?. ¿O me he perdido algo?. Bueeeno, aceptamos Tumblr como blog también.

Bueno, yo es que soy un antiguo y aún considero “Blog” a la bitácora personal, la página en la que a modo de diario escribe una persona que habla de los temas que le interesan. Y no el mega-portal de rumores donde se infiere cómo será el próximo iPhone a partir de fotos borrosas de una carcasa supuestamente tomadas en China (y nunca contrastadas). Mito de la caverna de Platón en acción.

Claro que, generar contenido requiere esfuerzo. Y que sea bueno, mucho esfuerzo. Generar bazofia de rumores y refritos es mucho más sencillo. Pero ya lo decían antes: “come mierda: cincuenta millones de moscas no pueden estar equivocadas”. Por eso, presentarse como CEO de un blog, si no eres el dueño de The Verge o estás en conversaciones con Time Warner para que te compre por unos cuantos millones, me parece una tontada importante. Bloguero es más normalito. Gafapasta, pero normalito.

Yo, por si te preguntabas, tengo una web. Desde hace diez años. Punto.

LION

LION == Linked In Open Networker. Es decir, el que no tiene criterio para selecciona su red de contactos y acepta a todo el mundo. O, como es mi caso, que acepto a todo el mundo porque sigo el adagio de un empresario sevillano: “el que un día te trae una mierda, al siguiente puede traerte un tesoro”. Vamos, que contactos nunca sobran. Que los uses o no, es otra cosa. Pero es mejor tenerlos para cuando te hagan falta que no al contrario.

Ponerte en tu perfil que eres un LION (buscad por Internet, os sorprenderá el montón que hay) me parece algo pretencioso. Y es forzar la máquina para decirle al mundo “hey, mirad qué popular soy y el montón de amiguitos que tengo, soy el que más muchos amiguitos tiene en el patio del colegio y tú no, chincha rabiña”.

En fin, con ver que en tu cuenta de contactos pone +500 ya se sabe que no tienes criterio…

KnowMad

Esta es de las últimas etiquetas que he visto últimamente. Como se describe aquí, es la contracción entre las palabras inglesas Conocimiento (Know) y Nómada (Nomad). Así que es un culo inquieto, como siempre se ha llamado a este tipo de personas. Yo mismo. Con curiosidad por las cosas, siempre aprendiendo, interesados por compartir y así aprender aún más…

Se ve que culo inquieto no quedaba bien en las tarjetas (era demasiado largo) y prefirieron algo más cortito. Y en Inglés, que siempre mola más.

¿Y tú?

Pues que acabo de descubrir que soy un Knowmad, LION CEO de un blog. Estoy pensando en ponerlo en mi BIO de Twitter. A ver si me llueven las piedras. Madre, qué de gente tratando de destacar como sea…

j j j

La gran golfada de Samsung

Pese a que la mayoría de mis ordenadores son Macs estos días (aunque también tengo y uso mi viejo Dell Inspiron 9400 y un ThinkPad X61, en el que estoy escribiendo esto ahora mismo) soy un entusiasta de la tecnología en general. Esto me lleva a tener chismes de varias marcas, colores y tamaños. En cuestión de impresoras siempre he tenido una Samsung.

La primera que tuve, una ML1510, LASER monocromo, no hacía nada más que imprimir. Ni nada menos. Ni inalámbrica, ni colores, ni escáner, ni nada de nada. Pero funcionaba. La compré nueva, muy bien de precio, hace un montón de años. Hoy en día imprimo pocas cosas: las facturas y algunos documentos para la gestoría que me lleva las cuentas, dibujos para que mis hijos coloreen y algún que otro documento. Así que, por mí, la hubiera usado hasta el infinito y más allá. Pero empezó a dar problemas mecánicos. Se atascaba siempre. Y era frustrante intentar imprimir algo. No podía. Así que la regalé, junto con un cartucho nuevo de tóner, a un compañero de la NSCoder Night de Sevilla. Y me compré una nueva.

En esta ocasión, entre las más baratas busqué una Samsung que tuviera escáner, por aquello de poder digitalizar documentos. Y porque si la anterior Samsung me había ido bien, para qué cambiar. Así que me hice por poco más de 100 Eur. con una Samsung SCX-3400. Es impresora y también escáner. De paso, es fotocopiadora (es decir, que escanea cosas y las imprime sin tu ordenador de por medio, de forma autónoma). Venía con un cartucho, que estaba seguro iba a durar poco, pero dado que imprimo también poco, no había problema.

Efectivamente, al año el cartucho empezó a avisarme de que se terminaba. Sin problemas, compremos uno nuevo. No se lo que habré imprimido en este año, pero ya sabíamos que el primer cartucho viene medio vacío. Miro los precios y me encuentro con que un cartucho nuevo, original de Samsung cuesta casi tanto como la impresora. ¿Cómo? Esa era la táctica que empleaban con las impresoras de chorro de tinta, pero no lo había visto con las LASER baratas. Supongo que como son para consumidores, han adaptado la técnica a los nuevos tiempos.

Pues me niego. Busqué en Amazon y encontré cartuchos compatibles Samsung en venta por un precio más que razonable. Había visto vídeos en Youtube mostrando cómo recargar tu propio cartucho con tóner, pero me parecía un follón y tampoco me ahorraba tanto, así que preferí ir a lo seguro (que alguien que lo sepa rellenar lo rellene) y pedí el compatible a KONVER, Distribuciones Informáticas, que vende en la tienda de Amazon. Llegó enseguida, lo instalé en la impresora y durante unas semanas, todo fue perfecto.

Mi impresora ha muerto

De pronto, un día, enciendo la impresora, la conecto por USB al iMac y lanzo un par de páginas para que se impriman. Sigo con mis cosas sin darme cuenta de que la impresora no imprime. Tiene una luz roja. Vaya, debe ser un atasco. La miro, pero no. En el iMac hay un aviso de error. La impresora dice que no tiene tóner. Pero eso no puede ser, ¿no?. A fin de cuentas se lo he cambiado hace nada…

Apago la impresora, vuelvo a encenderla… Nada. Cambio el cable USB… Nada. Empiezo a preocuparme y miro por Internet a ver si alguien ha tenido problemas similares y… ¡bingo! Docenas de problemas iguales. Veo vídeos por Youtube, leo en foros. Voy aprendiendo. Instalo los drivers y el software de Samsung en el Windows 8 que está en mi iMac en Bootcamp, por si puedo obtener más información… Nada de nada. Me desespero: cambio el cartucho para probar con el original, que está vacío y da error de tóner. Pero el nuevo lo mismo. Y lo peor es que, aunque esté rellenado es un cartucho Samsung pata negra.

El problema

Samsung ha decidido que puedes comprar cartuchos de tóner, pero sólo a ellos. Así que ha puesto un chip en cada cartucho. En ese chip hay un contador de páginas impresas. Cuando llegas a la “vida útil” que ellos estiman (o te imponen) que debe tener un cartucho se acabó. La impresora lee ese contador y te impide imprimir. La excusa de Samsung para hacer ésto: que de esa manera te pueden avisar con su software y así puedes cambiar el tóner a tiempo. Vamos, que tú no estás capacitado para saber cuándo está bajo el tóner: esos grises que no aparecen, la mala calidad, etc. no son una pista. No, te lo tiene que indicar un software que, curiosamente, te pone un enlace en un sitio prominente para que compres sus recambios en su tienda.

Que no se me entienda mal. No me parece mal que Samsung quiera vender sus cartuchos. E incluso que pongan el enlace a su tienda puede ayudar al que no sepa dónde comprar (aunque lo dudo). Lo que me parece una golfada absoluta es que pongan un contador de páginas en el cartucho en lugar de en la impresora. Desde la impresora te podrían indicar perfectamente: “lleva usted impresas 1.500 páginas desde el último cambio de cartucho y pensamos que es hora de que lo cambies. Si empiezas a imprimir y te da asco lo que ves, que conste que no se te ha roto la impresora: es que eres un tacaño”.

La solución

Pasa por resetear el contador del cartucho. Es decir, borrar el chip del cartucho y ponerlo a cero, como si fuera nuevo, lo cual, si has rellenado el cartucho con tóner nuevo se aproxima bastante a la realidad. Por Internet vi que había gente que vendía programas para hacerlo, pero ante la duda en si gastarme otros 12 USD para arreglar un cartucho que debía venir bien, me puse en contacto con Konver a través del formulario de Amazon. Les conté mi odisea y les pregunté qué podía hacer. Bien, no sólo me respondieron súper rápido, sino que me dieron la solución a mi cartucho. Me proporcionaron un programa (sorry, no lo voy a pasar, contacta con tu distribuidor, ese no es mi departamento) con el que borrar el cartucho. No puedo dejar de estarles súper agradecido. Hay momentos en los que ya no sabes qué pasa y que te solucionen un problema así te alegra el día. Aquí tienen a un cliente de por vida.

El caso es que para resetear el cartucho tuve que lanzar un programa desde Windows (en este caso, desde mi ThinkPad x61) y flashear la memoria del cartucho. Conectado por USB le subí un programa a la impresora.

Mi impresora mientras borro el contador

Sí, he grabado la memoria de un cartucho de tóner. Lo siguiente va a ser actualizar el firmware de la tostadora…

Pues ¡milagro!. Una vez borrado el contador de los golfos estos, listo. La impresora me reconoce el cartucho reciclado (que es de Samsung, insisto) como nuevo, hay luz verde y la vida es bella.

Conclusiones

Entiendo que Samsung quiera vender cartuchos y quiera traer ese modelo de negocio en el que los consumibles son más caros que la máquina que los consume. Están en su derecho. Pero eso se avisa. Se indica claramente: cada cartucho es de un solo uso y no puede reutilizarse. Y con esa información y mi dinero tomo una decisión informada de compra. Encontrarte esto cuando ya has comprado la impresora te cabrea, y no es una buena técnica, ya que encima se puede saltar fácilmente. Y sólo queda el cabreo.

Ni que hablar de lo anti-ecológico y carísimo que es andar tirando cartuchos de tóner. O del desprecio al usuario, al que se trata por tonto. Mal hecho, Samsung. No hay galleta.

No puedo dejar de pensar en qué pasaría si estas cositas las hicieran Microsoft o Apple…

j j j

Windows 8 en mi iMac late 2009

TL;DR;

Este es el mejor resumen de lo que viene a continuación:

Escena de Dexter

Me gusta jugar.

Lo confieso. Especialmente a los juegos de acción en primera persona (vicio adquirido con el mítico Wolfestein 3D) y a los de estrategia por turnos. Por turnos. Los otros son un corre que te pillo para ganar. Esto se lo debo a Civilization, que conocí en el centro de cálculo de la entonces Facultad de Informática. Desde entonces (y desde antes) siempre me ha encantado jugar. De hecho, tengo un refrán propio: “desconfía del programador que no juegue”.

En el Mac mis necesidades de juegos han estado bastante bien cubiertas por Steam estos años. Los juegos que me interesan los tengo. Salvo uno: Héroes of Might and Magic, que siguen empeñandose en sacarlo solo para Windows. Lo cual es absurdo, porque digo yo que si un montón de juegos salen ya para Mac es perder mercado y tal, pero bueno. El caso es que me lo compré hace un tiempo y no he podido jugar por no tener a mano una máquina Windows con una tarjeta gráfica de al menos 512 MB. Aquí no valen máquinas virtuales ni otros apaños: necesitas “the real thing”.

En esta tesitura estaba cuando caí en que mi iMac tiene exactamente esa memoria gráfica. Y es un Core i7. Y tiene 12 GB RAM. Vamos, que es un maquinón. ¿Por qué no usarlo para mis necesidades de jugón instalando con BootCamp una partición con Windows? Eso es lo que hice con mi Mac Mini, pero terminé por no usarlo ya que los juegos iban muy, muy lentos debido a la triste potencia gráfica (y de CPU) de mi Mac Mini. Que de servidor y eso aguanta, pero para cosas más exigentes en gráficos el pobre no puede.

Así que me puse manos a la obra, pensando que con Bootcamp y mi DVD de Windows 8 la cosa estaba controlada. No sabía cuanto me equivocaba.

La clave de producto de Windows

Antes de hacer nada empecé planificando todos los pasos en mi libreta. Para reunir los materiales necesarios, anticipar problemas y esas cosas. Cuando salió Windows 8 compré una licencia de Windows 8 Pro por sí la necesitaba para desarrollo Windows Phone y por echar un vistazo a la interfaz Metro (o como se tenga que llamar ahora). Por todo eso y por otra cosa: porque estaba barata, 30 Eur.

Nota al margen: Microsoft, quizás aprendas que es mejor ganar un poco menos con cada licencia, y llevarte el 100% que seguir empeñada en cobrar un Potosí por cada programa...

Pues bien: no encontraba la licencia. No estaba en Evernote, ni en el disco duro del Mac, ni encontraba mensaje alguno de confirmación de la compra. Sólo veía un correo de Paypal de confirmación del pago, pero de “Product Key” nada de nada. Pues vaya. Para una vez que pago una licencia de Microsoft, me hace ilusión utilizarla. Como no la encontraba la solución fue arrancar una máquina virtual donde la había instalado y sacarle una foto con el iPhone a la clave. Luego, mucho más tarde, caí en que la clave estaba en un correo en mi cuenta de hotmail. Sí, esa que todos tenemos y no usamos. Pero eso es otra historia para un segundo post donde hablaré de las activaciones de productos Microsoft. Que tiene mucha guasa, por cierto.

Copias de seguridad

Armado con mi clave de producto me dispuse a hacer copias de seguridad del iMac. A fin de cuentas, usar Bootcamp supone crear nuevas particiones en el disco, y eso es peligroso, ¿no?. Así que con Techtool 7 he creado una copia arrancable del iMac en un HD externo de 1 TB que tengo para estas cosas. Y claro, además de crearla hay que reiniciar usando ese disco de copia de seguridad como disco de arranque y comprobar que si todo sale mal, al menos puedes dejarlo todo como estaba.

Todo Ok, tras un siglo de esperas.

Fusion drive

De pronto, un escalofrío recorre mi espalda. Recuerdo que tengo instalado un SSD en el sitio que antes ocupaba la unidad Superdrive. Y que creé un grupo de volúmenes con Fusion Drive, de manera que OS X gestiona de forma automática que ficheros deben ir en el SSD y cuales en el HD. Así qué me entra la duda: si instalo Windows 8 ¿dónde se instala?. ¿En el SSD? ¿Se carga el Fusion Drive? ¿No se puede instalar por culpa de este?

Buscando un poco encontré la respuesta en las preguntas frecuentes de Bootcamp. Simplemente se va a instalar en el HD, sin tocar el SSD. Así qué puedo seguir. Phew!

Bootcamp no soporta Windows 8

Pues eso. Que BootCamp no soporta Windows 8 en mi iMac late 2009 y no me lo ofrece como opción a la hora de instalar. Me deja bajar los drivers (en teoría, más sobre esto ahora) y sólo te deja instalar Windows 7. Según Apple, mi iMac no debe ser lo suficientemente potente para ejecutar Windows 8, o bien ellos no quieren seguir dando soporte a una máquina ya antigua. Voto por esto último.

El caso es que intenté bajar los drivers y ¡oh sorpresa! BootCamp fallaba al descargarlos. Tuve que usar mi Google-Fu y explorar un poco para encontrar una web desde la que descargarlos a mano. Porque esa es otra: Apple no te da una manera clara y sencilla de acceder a ellos. Una lista en una página de descargas bastaría, pero no.

Aunque hay unos drivers en Bootcamp > Lbrary > Application Support > Bootcamp > WindowsSupport.dmg que pueden servirte. Lo dejo aquí por si acaso.

Instalemos Windows 8

Ahora viene lo fácil. Vi un truco para saltarse a BootCamp en modo “sólo instalo Windows 7″ que era meter un DVD con Win 7, dejarle hacer las particiones y luego, al reiniciar, cambiarlo por uno de Windows 8. Esa era una opción. La otra, instalar Win 7 y luego actualizarlo a Win 8, pero lleva más tiempo (son dos instalaciones)

Pero claro, todo esto es usando la unidad Superdrive del iMac. La interna. Sí, esa que ya no tengo desde que le puse un SSD y monté Fusion Drive. Pero no pasa nada, ¿no?. A fin de cuentas, la tengo instalada en una caja externa USB y podré iniciar la máquina con el DVD de Windows y… Pues no. No funciona. Lo intento, pero Windows no arranca desde el DVD (que, por cierto, he tenido que crear tras bajarme una ISO de la web de Microsoft). Grabando DVDs en 2014 like some kind of animal

Buscando en foros me encuentro con que sí quiero instalar Windows en mi iMac, por un lado BootCamp no me genera una llave USB de instalación (el iMac es muy antiguo por lo visto para eso) y que puedo instalar Win 7 (no Win 8) pero usando una unidad superdrive externa oficial de Apple. Que esas sí funcionan.

Tragedia. Estoy atrapado.

¿Pido a alguien prestada una unidad Superdrive de Apple pata negra? ¿Reinstalo el Superdrive? ¿Me como Win 8 con patatas?

Winclone

Como soy un cabezón y sabía que de alguna manera se podría hacer seguí buscando por foros y leí sobre Winclone. Winclone es un programa pensado para hacer copias de seguridad de particiones BootCamp. Puedes almacenar en un fichero tu partición y así te ahorras tener que andar instalando drivers, programas, actualizando, etc si tienes algún problema con Windows. En el Mac, con Time Machine por un lado y una copia arrancable que hagas con SuperDuper, Carbon Copy Cloner o Techtool Pro tienes el lado OS X perfectamente protegido. El problema es si tuviera que reinstalar todo el Windows.

Winclone, utilidad para clonar particiones Bootcamp

El caso es que se me ocurrió una idea. Yo ya tenía instalado Windows en mi Mac Mini. ¿Por qué no hacer un Winclone de esa partición, pasarla con un HD externo USB al iMac y machacar la partición BootCamp vacía con esa imagen? Mi lado geek me decía que no, que para que comprar un programa si con un dd podría hacerlo yo solito. El problema es el sector de arranque de Windows que se crea en la partición de BootCamp. Si pudiera iniciar Windows podría arreglarlo y tal, pero dado que estaba atrapado, pagué los 29 $ que cuesta y listo. Si funciona, los apenas 22 € valdrían la pena.

Y valieron la pena. Creé la imagen en el Mac Mini (unas horitas) y la pasé a un disco USB grande (en el que por supuesto no tenía espacio y tuve que ordenar). Una vez copiado, instalé Winclone en el iMac, restauré la imagen y… ¡vive! ¡Está vivo!

It's alive!

Colofón

Al fin, tras una lucha titánica, tengo instalado Win 8 en el Mac. Lo uso para el Héroes y en el futuro para algún que otro juego. Pero si lo necesito para algo, ahí está. Muchas veces hago instalaciones por el placer de cacharrear con los sistemas, pero en este caso, además, estoy disfrutando del resultado.

j j j

Entrevista para el “Developer soportlight” de la WIPJam

Este pasado MWC 2014 tuve la suerte de poder acudir y dar una de las charlas del nuevo formato de la WIPJam. La charla fue sobre Core Data, aunque no me dio tiempo a casi nada. Lo mejor (para mí) fue la gente y proyectos que conocí, y los días que pasé en Barcelona.

En el portal de la WIPJam entrevistan a desarrolladores de Apps móviles y nos ponen “bajo el foco”. Esta vez me ha tocado a mi. Espero que os guste.

j j j

Máster de Apps Móviles en Chiclana: experiencias en la radio

Selfie Conectados en RAI

Una pequeña actualización a la información del Máster de Comunicación Plus para aprender a desarrollar Apps en Chiclana, a todo confort, con unos bañitos en la playa que ya van haciendo falta:

  • tuvimos la suerte de ser entrevistados por Javier Oliva en el programa de Canal Sur Conectados en RAI.
  • Javier Suárez Ruiz, el profesor del Máster encargado de Windows Phone (genuflexión y respeto al crack) ha escrito en su blog (que, por cierto, para los que quieran aprender Windows Phone es el sitio a donde ir) una entrada sobre el Máster y su visión del mismo.
  • he rectificado en el post que escribí sobre el Máster las horas totales del mismo. Son 240 h, ya que cada semana son 60 h de formación: 50 h de la plataforma de la semana (iOS, WP, Android) y 10 de otras cosas (prototipado, UX, etc.)
  • el Máster empieza el próximo Domingo 18. Muchas ganas de irme a Chiclana y huir del pólen y las alergias del campo.
  • durante el Máster, esperad fotos y recochineo desde la playa y piscina. He avisado.
j j j

Simplificando lo que llevo en los bolsillos

Sigo simplificando. Son manías que tengo. O mejora continua. Interpretémoslo como queramos. Pero me relaja. Me quita presión.

El caso es que, en parte inspirado por dos ideas inconexas y que he leído con mucha separación en el tiempo, pero que estaban ahí en mi cabeza, he simplificado dos cosas que habitualmente llevas contigo además de tu móvil porque no caben en él: la cartera y las llaves de casa.

La primera idea me vino de una charla de la conferencia iOSDevUK del año pasado. Esta propuesta de Alan Cannistraro, es que en el móvil van convergiendo muchas cosas: la cámara de fotos de apuntar y disparar, el reproductor de música, la grabadora de vídeo, etc. Pero hay dos cosas que se resisten, aunque poco a poco irán convergiendo: las llaves de casa y la cartera.

Así que me he puesto manos a la obra y he simplificado ambas.

Mi cartera

Llevo usando la misma cartera probablemente desde hace doce o más años. Me la regaló mi mujer, y no quiero cambiarla. Tiene el tamaño para los billetes de pesetas que había antes, y los de Euro no caben perfectamente sin doblarlos. Pues se doblan y punto. Es de una calidad excepcional y con el uso y el paso del tiempo se ha amoldado a mi mano y se ha deteriorado muy poco. Quiero que cuando empujen mi cuerpo con el pijama de madera puesto para quemarme la lleve en el bolsillo: esta cartera me entierra.

Foto de mi cartera abierta

El caso es que estaba llena de cosas que no uso, para variar. Así que he hecho limpieza y ha quedado ultra-slim

  • he sacado todas las tarjetas de puntos. He unido las que de verdad uso. El resto, las que no uso, a la basura. Y las de viajes (hoteles, AVE, etc.) las he puesto juntas en una funda de plástico que va en la mochila. Así no se me olvidan en los viajes y no me pesan en el día a día.
  • es increíble, pero había tarjetas caducadas en la cartera. Estas a la basura por el camino más corto.
  • lo mismo para tickets, cupones, papeles, etc. Todo fuera.
  • he quitado los abonos de EMT de Madrid y TMB de Barcelona (sí, voy tanto que llevo de ambos) y a la funda de los viajes. Menos cosas.

Ahora dispongo de una cartera que guarda justo lo necesario. Cabe mejor en el bolsillo y me agobia menos cuando la saco, sin papeles que se caigan y sin aspecto de estallar en cualquier momento. Menos estrés.

Mis llaves

Esta idea viene de un post de Patrick Rhone que leí hace un tiempo. Aunque el post en sí es del 2008, creo que lo he leído hace un par de años o así. La idea clave es:

Any key I don’t absolutely need on a daily basis gets taken off and hung up on a rack by the door at home. I don’t even have a fob on the keychain, it is just a ring

En mi caso, siempre cargaba con dos llaveros. Tengo una casa donde vivo, y un pequeño apartamento. Bueno, tengo las hipotecas, las deudas y la esclavitud asociada. El resto lo retiene el banco. Un trato del que no me quejo: sin su dinero, yo no podría entrar en esas casas, pero aún así me gustaría ser más un cliente del banco y no su rehén.

En tu caso, pueden ser tus llaves y las del trabajo, o las de casa de tus padres. El caso es que siempre llevaba todas las llaves (7 en total, en dos llaveros). Y me senté y empecé a pensar.

  • ¿para qué cargar con las llaves de los buzones? Sólo puedo abrirlos cuando esté en las casas. Y prefiero tener una llave del buzón a mano en la casa y cuando tire la basura, miro el buzón. Y no cargo con ellas siempre. He dejado una en casa, otra la llevo. Una llave menos.
  • en la casa la cancela tiene dos puertas: para el coche y para pasar al patio anterior. Dado que cerrarlas con llave no tiene sentido (son bajas y cualquiera con malas intenciones puede saltárselas) nunca las cierro, salvo cuando me voy de vacaciones (hablemos de falsa sensación de seguridad…). Pues se quedan en casa. Dos menos.
  • Ahora que miro, me quedan sólo cuatro llaves. Las he reunido en un único llavero. Que sigue teniendo un adorno. Estos adornos sólo sirven para distinguir rápidamente entre los llaveros colgados tras la puerta. Sería mejor tener anillos de distintos colores. Que por cierto es lo que voy a buscar, y si lo encuentro cambiaré el aro. De momento, he quitado el adorno mientras escribo esto y, de paso, para distinguir mejor las llaves, he pintado un poco una con un rotulador indeleble. A ver si aguanta.
j j j

Simplificando algo mi vida digital (y la otra)

Minimalismo. Simplificar. Preocuparme por menos cosas. Preocuparme menos por las cosas.

La vida ya es suficientemente complicada. Y yo tiendo a complicarla aún más. Acumulando ordenadores. Acumulando teléfonos. Acumulando programas. Acumulando libros, vídeos, podcasts, música, comics. Acumulando.

Libros que a veces no se leen. Vídeos para los que no tengo tiempo. Podcasts que no escucho. Me sorprendí a mí mismo cuando me creé una lista en iTunes con todas las canciones que tenían 0 reproducciones. ¡Había un montón!. Prueba a hacer ese ejercicio: igual te sorprendes. Y recuerdo que siempre me he reído de la gente que compraba libros y luego no los leía. Hasta que me he puesto a revisar mis estanterías…

Acumular cosas tiene muchos problemas. Primero, gastas dinero en comprar el objeto. Luego, tienes que ponerlo en algún sitio. Ponerlo ahí cuesta dinero: si no tuviera nada, tendría una casa más amplia, sin estanterías. Ese es un extremo. Pienso que hay que tener el número suficiente de cosas. Enough, como dice Patrick Rhone. No me planteo vivir en una cueva. Pero lo cierto es que, cuantas más cosas poseas, de más cosas te tienes que preocupar. Ocupan espacio físico y mental. Y eso cansa.

Acumular cansa. Y no te hace feliz. Compramos por una promesa, por la promesa de que ese objeto te hará más feliz. El colmo son esos anuncios de coches que te dicen que atarte a un préstamo para comprar un coche que no necesitas te va a hacer libre. Y vas a poder conducir por carreteras vacías mientras se pone el Sol. Eso nunca pasa. Y lo puedes hacer también con tu viejo coche, de paso.

Un ejemplo son mis ordenadores. Recuerdo cuando sólo tenía mi PC, mi viejo 286. No podía hacer otra cosa que sacarle partido, al máximo. Y lo exprimía. Ahora tengo varios. Y todos tienen su función, y bastante uso. Pero a veces siento la tentación de quedarme sólo con uno. Sólo uno para gestionar, actualizar, hacer copia de seguridad. Tener varios crear trabajo.

Otro son las redes sociales. Desde hace años tengo una sana política: no me doy de alta en ninguna nueva (a no ser, claro, que seas Google + y te den de alta al poner el microondas por la mañana). Ya tengo más que de sobra.

Mis redes actuales son:

  • Twitter. La que más uso, con mucha diferencia. Para estar informado (de las cosas de programación que me interesan). Para charlar con gente a la que admiro y sigo.
  • Facebook. La uso bastante menos. Borraría el perfil, pero es el único punto de contacto que mantengo con algunas personas.
  • Redes de geolocalización, o de check-ins, o como se llamen. Usaba Gowalla, pero la compró Facebook y la cerraron. No me he apuntado en Foursquare. No le veo sentido. Una menos.
  • Fotos. Flickr. Paso de 500px, o de Pinterest, o de otras. Simplificar: Flickr me da backup infinito de mis fotos (si es que las quiero subir, que esa es otra cuestión). Y puedo crear álbumes. Que sí, que está Picasa. Pero hay que elegir: mejor una y usarla que tener varias cuentas y no aprovecharlas.
  • Mensajería. No le veo sentido a tener BBM, iMessage, Skype, Whatsapp, Telegram, Line y las otras 100 que salen cada mes. De las anteriores, para mensajería, uso Whatsapp sobre todo. E iMessage porque viene con el iPhone. Skype lo uso para llamadas. En el resto, no me he dado de alta.
  • Trabajo. Uso mucho LinkedIn. Tenía cuenta en Xing. Hasta hoy. He borrado mi perfil. Una menos de la que preocuparme. Menos correos recibidos. Y todas las actualizaciones en LinkedIn.
Borrando mi cuenta en Xing

]2 Borrando mi cuenta en Xing

Tengo ganas de simplificar. De simplificar mucho más. Creo que voy a empezar de nuevo otro ciclo de venta/donación/reciclaje de cosas. Quiero tener pocas cosas, y buenas. Y que use mucho. Y no acumular.

j j j

Aprende iOS, Android, HTML5 y Windows Phone en la playa

TL;DR;

Me voy a la playa a enseñar iOS y Android. Si no vienes, puedes sentir envidia. Es normal.

El Máster

Pues sí. Este es el panorama al que se enfrentan los alumnos del I Máster en Desarrollo de Aplicaciones Móviles en Andalucía de Comunicación Plus. Retirarse del mundanal ruido junto a las playas de Chiclana, en Cádiz. En un apartahotel de 4 llaves. Y una vez allí, darle a la tecla 50 h por plataforma, en formato ultra-intensivo, empezando un Domingo y acabando un Sábado.

Si echáis cuentas, 50 h seguidas de Domingo a Sábado queman a cualquiera. Por eso nos han prometido actividades “extraescolares” con las que recuperar cuerpo y mente en tiempo récord. Algo he oído de masajes, paseos en bici de montaña por la playa, clases de Pádel o salir al mar a hacer Paddle Surf. Y claro, además tenemos las piscinas y la playa de Chiclana. Mal no vamos a estar.

Pero volviendo al contenido del Máster, me parece muy interesante que se traten cuatro plataformas distintas (luego se puede escoger la que te guste más, o de la que te ofrezca trabajo). Además de aprender mucho, puedes comparar y ver lo que tienen de mejor unas sobre otras. Por ejemplo, en Windows Phone tienen bindings (en iOS no tenemos Cocoa Bindings, sólo en OS X). O puedes ver que la forma de internacionalizar proyectos de Android probablemente sea la más limpia (en mi opinión). O por qué Eclipse necesita ya la jubilación (después de ver Visual Studio y Xcode). Y además, habrá unas horas dedicadas a Márketing Online o a pensar en la Experiencia de Usuario. Esto último lo dará el gran Jorge Galindo de 47 Degrees con el que organicé en Febrero pasado el curso gratuito para parados y estudiantes de iOS.

Yo me voy a encargar de las partes de iOS y Android. Vamos, de las que se algo, porque de las otras dos flojito, flojito. Creo que 50 h dan para mucho y podremos ver de todo: herramientas, código, patrones de diseño, frameworks, … y apps. Muchas apps. Cosas aplicables directamente (o eso espero).

Hay muchas cosas buenas en este Máster, pero el alejarte del trabajo para enfocarte en aprender, la intensidad de la formación (un poco a la Big Nerd Ranch, pero en Cádiz, que lo mejora todo) y el apoyo del Director del Máster, Pablo Gª Trespalacios (que sabe de lo que habla porque para eso ha sido alumno mío) me parecen lo mejor. Y los alumnos, claro, que no saben dónde se meten :-)

El vil metal

Como he leído por ahí es muy caro. Bueno, para empezar puedes buscarte el alojamiento y ahorrarte algo, o escoger semanas sueltas. Si vamos a lo más “caro”, son 5000 Eur., que es un dinero. Pero eso incluye:

  • un mes alojado en un complejo de apartamentos con pensión completa
  • todas las pausas de cafés
  • las actividades extra académicas
  • y 200 h, al menos, de formación. Si valoras en 1000 Eur todo lo anterior, cada hora de formación te sale a 20 Eur.

UPDATE 12 Mayo No son 200 h. Son 240 h, ya que cada semana tiene otras horas dedicadas a prototipado, UX, márketing… sólo había incluido mis 50 h e ignorado al resto :-D

  • y hay una financiación muy interesante (los dos primeros años no pagas nada).

Si te interesa esto, tienes toda la información en la web de Comunicación Plus.

Yo ya estoy buscando las chanclas de la playa para echar en la mochila junto con el portátil. Lo dicho: puedes sentir envidia :-)

j j j