La delgada línea roja

No, no voy a hablar de una película conocida, junto con El hombre que susurraba a los caballos por ser la cura definitiva del insomnio.

Voy a hablar de la línea que me marca que alguien no va a ser cliente mío. O visto desde el otro punto de vista, que no voy a trabajar para él. Como prefieras verlo. Tras muchos errores y problemas, creados por mi incapacidad a la hora de estimar y por los tipos de clientes he llegado a tener una serie de reglas que sigo escrupulosamente. Puede ser que te parezca demasiado exigente, o que no voy a tener trabajo si hago todo esto. Pero la realidad es que sigo teniendo clientes, sólo que son buenos y no malos.

Nunca trabajes con particulares

Nunca, nunca, nunca trabajes con particulares. Especialmente si son del tipo he tenido una idea. Si has tenido una idea, y es tan fantástica ¿por qué no has constituido una empresa para ello? ¿No eres capaz de arriesgar los 100 Eur que suponen hoy en día crear una Sociedad Limitada y pretendes que yo crea en tu proyecto?

¿Qué sucede si las cosas van mal? Con una empresa tienes ciertas garantías, aunque si las cosas vienen mal siempre va a ser un problema. Al menos puedes emitirles facturas y no van a empezar a llorarte con que el IVA es muy caro, ni vas a tener que explicarles cómo instalar Skype o Dropbox.

Lo siento, pero nunca trabajo con particulares. Sobre todo, porque lo he hecho, me he equivocado, me ha salido fatal y nunca más lo haré. Y tú no deberías.

No sin mi contrato

Realmente un contrato tampoco te protege de nada, porque siendo un simple freelance y con las tasas judiciales actuales de por medio andar litigando es casi más costoso que perder el tiempo dedicado al proyecto.

¡Gracias, Gobierno, por facilitar tanto la actividad económica!, si lees esto sube por favor el coste del autónomo, que aún te quedan tres por machacar del todo.

Por eso es mejor establecer puntos intermedios en los que puedas facturar con una entrega parcial. Y pedir algo por anticipado. En esto tengo que mejorar. Me cuesta mucho pedir dinero sin haber entregado aún nada a cambio, pero es una buena forma de comprobar si al menos hay voluntad de pagar.

NDAs sólo para empresas grandes y proyectos concretos

Puedo entender que una empresa grande no quiera perder su ventaja competitiva y me solicite un NDA. Porque se lo exige su departamento legal y eso. Pero hasta ahora al menos me han contado los detalles generales por encima, para saber de qué estamos hablando.

Me resulta muy tierno que alguien contacte contigo y, antes de darte los buenos días, te pida un NDA. ¡Y es que son todos!. ¡No lo sabía, pero estoy rodeado de genios!. Todos tienen ideas buenísimas. Eso sí, no tienen ni idea de cómo ejecutarlas, ni de montar empresas, ni de nada, pero lo del NDA se lo han aprendido perfectamente.

Contactan y te piden referencias. Suficiencia técnica. Que si sabes de lo tuyo, vaya. De hacer Apps en mi caso. Honestamente les digo que no, pero que voy aprendiendo y que algunas cosas las hago medio bien. Eso sí: se enfadan cuando les pregunto por sus casos de éxito: otras ideas que han convertido en empresas, cuánto facturan al año, exits que han negociado, etc.

No son capaces de explicarte su idea, no sea que en cinco minutos, antes de ducharte, se la clones. O que les quites el trozo de queso, digo el cliente. Pues perdona, pero si tu idea es tan sencilla de clonar probablemente la idea no es lo importante. Lo importante es la ejecución.

Hoy he tenido una idea: montar un servicio de música por streaming. Seguro que a nadie se le ha ocurrido. Y total, crear las Apps, servidores, cerrar los acuerdos internacionales con la industria musical, los pagos, etc. debe ser sencillo.

Socios Tecnológicos == Trabaja gratis

Si alguien te propone ser su socio tecnológico (antes, por supuesto, tendrás que firmar un NDA para conocer su idea de una App para puntuar restaurantes con el móvil), quiere que trabajes gratis. Con ilusión y ganas, ¡que no te implicas!.

En este caso GOTO Los ideístas

j j j

Cómo ver los vídeos de la WWDC 2015

…y no dejar que Twitter, y los sobrehumanos que por allí pululan, me machaquen con sus capacidades heroicas de ver en una semana todas las sesiones.

Terminó la WWDC 2015, y como todos los años, me he echo un firme propósito: ver todos los vídeos antes de que llegue la WWDC 2016. Si miro mi track record en este tema, no es para ser optimista: siempre he fracasado. Esto es mi voy a dejar de fumar o tengo que aprender alemán. Lo de los kilos, es evidente a simple vista que tampoco lo llevo bien del todo.

Sí, lo confieso, voy por el mundo desarrollando para iOS y a veces enseñando sobre ello y no he visto todos los vídeos de todas las WWDCs. Una vergüenza, ya lo se. Últimamente, mi síndrome del impostor está súper-desarrollado y tengo muy asumido que soy una estafa con patas, pero eso es tema para otro post. Así que esta vez va a ser diferente. Tiene que ser diferente. Me voy a organizar de manera diferente y quizás alguna de estas ideas os sirva para algo. O no.

Good Ol’ Streaming

El streaming y todas estas cosas modernas están muy bien y tal. Hasta que tienes que ver un vídeo y se ha caído tu conexión. O quieres copiar unas cuantas sesiones a tu iPad para estar entretenido en un vuelo, y necesitas tenerlas en tu Mac primero. Y en cualquier caso, porque mañana puede estar caído el servidor de Apple o pueden retirar los vídeos a voluntad. Mi estrategia es sencilla: aquellas cosas de Internet que de verdad me interesan van a mi Drobo o a cualquiera de mis HDs externos. Al coste por GB actual, ni me lo pienso. Para bajar los vídeos os recomiendo este script, que además se baja los PDFs con las presentaciones y el código fuente de los ejemplos. Todo lo necesario para explorar las sesiones. Es bastante configurable y puede bajarse los vídeos de otros años, grabar en la carpeta que le indiques, descargar en calidad SD o HD…

Para instalar el script, debes mostrarlo en formato “raw”, es decir, en texto plano (pulsando en este enlace lo tienes, de nada, soy así de majo), seleccionar todo el texto y copiar y pegarlo en un fichero de solo texto. En mi caso, uno que me creado con vi. Lo llamas como quieras, pero download-wwdc-videos.sh no es mal nombre. Te quedaría por darle permisos de ejecución con la orden: $ chmod a+x download-wwdc-videos.sh.

Para bajar los vídeos la orden que he usado es:

./download-videos.sh -f HD -o ./

que significa: “baja los vídeos de la WWDC 2015 (por defecto), en calidad HD (caballo grande, ande o no ande) y me los pones en la carpeta actual”. Previamente me había creado esa carpeta en el Drobo y había ido en iTerm con cd /Volumes/Video-Drobo/WWWDC-2015 hasta la carpeta en cuestión.

Separar la paja del grano

No todas las sesiones me interesan. Y a ti tampoco deberían. Hay que tener foco y empezar por aquellas que realmente te van a aportar más. Por ejemplo, la entrega de los Apple Design Awards es algo que no me va a hacer más feliz. Las nuevas características de Swift 2.0, sí. Así que hay sesiones que me interesan seguro, otras que ya habré visto y otras que, o seguro no quiero ver o estoy en duda. Primera criba resuelta: si dudas, es que no quieres verlo. No pasa nada, no borres el vídeo (yo no lo hago), no se va a ir de ahí. Pero si no tienes claro de entrada si te sirve para algo, es que no te sirve verlo ahora.

Videos WWDC 2015 con etiquetas

Videos WWDC 2015 con etiquetas

Para distinguirlos he usado las etiquetas del Finder, que puedes cambiar y crear en preferencias del Finder. Me he creado tres nuevas: Ya vistos, en color verde, pendientes, en color naranja (que destaque) y en gris no me interesan. Marco todas en gris y a partir de ahí selecciono con mucho cuidado las que quiero ver. Es mejor marcar sólo cinco vídeos, verlos, y tener la sensación de he cumplido esta etapa y poder volver y añadir más vídeos luego para subir nota. Mucho mejor que marcar cincuenta vídeos y cargarte con una obligación más todo un año. Además de todas las otras cosas imprescindibles que ya tienes que hacer: leer todos los feeds RSS, leer completo tu timeline de Twitter, leer las noticias diarias, etc.

Pista: no lo hagas. Sobrecarga de información inútil == ruido.

Preferencias del Finder para gestionar las etiquetas

Preferencias del Finder para gestionar las etiquetas

Ver los vídeos

En mi caso, si puedo, los veo en el iMac. Porque estos vídeos no basta con “verlos”. A mi me gusta tener abierto Xcode y los ejemplos de código, y cuando veo algo que me llama la atención pauso el vídeo, tomo notas, pruebo código, etc. Sin hacer esto, a los dos minutos de terminar el vídeo no recuerdo nada. Si no intento repetir la demo que estoy viendo, no voy a aprender nada.

Así que en mi caso, nada de verlos a 2x para marcarlos como vistos. A mi me interesa marcarlos como aprovechados, que es distinto. Lo otro es como visitar 10 ciudades en 7 días e ir de Turista. Yo prefiero ver una y vivir 10 días en ella.

Para verlos, los añado a iTunes. Pero con cuidado. Si arrastras la carpeta de los vídeos a iTunes se van a copiar dentro de la biblioteca, duplicando el número de GB. Que puede ser que sea lo que quieres. O no. Siempre puedes borrarlos. En mi caso, los vídeos se quedan en su carpeta del Drobo y sólo enlazo el contenido. Para ello, en las preferencias de iTunes debemos desmarcar la opción Avanzado > Copiar en iTunes Medio los archivos añadidos a la biblioteca que copia por defecto los ficheros dentro de nuestra biblioteca. Ahora podemos arrastrar los ficheros y no se copiarán. Pero podremos sincronizarlos con nuestros dispositivos (en mi caso, mi iPad), para verlos sin conexión. Win!

Programar y tomar notas

No te quedes sólo con los vídeos. Crea tus proyectos de prueba, escribe código usando los Playgrounds de Xcode. Usa las betas de Xcode 7. Y si encuentras errores file a radar. En mi caso, por cada vídeo que voy a ver, creo una tarea en Things, que es lo que uso para llevar un sistema más o menos GTD. En esta tarea anoto cosas que me llaman la atención, de forma que siempre puedo volver y buscar esta tarea para revisar las notas. Si las notas crecen mucho, o van a un Playground junto con código de ejemplo, o a un fichero de texto markdown que luego presento con Deckset.

End

Y esto es todo. Espero esta vez no sentirme culpable cuando compruebe que es Junio de 2016 de nuevo y no he visto más que tres vídeos. Pero una cosa es segura: tampoco voy a poder verlos en una semana. Hay muchas cosas que aprender, y una vida que vivir.

j j j

No comments

Después de mucho tiempo pensándolo, al final he dado el paso. Artículos como éste, de Matt Gemmel y el hecho de que para mí el blog de blogs es el de Joel Spolsky y desde el principio no tenía comentarios me han llevado a cancelarlos.

Y eso que yo tengo mucha suerte. El nivel de los comentarios de este blog es muy bueno (sobre todo, comparado con otros). Pero poco a poco, iba decayendo (se ve que me hago popular). Así que prefiero que quien tenga una opinión distinta a la mía, la escriba calladamente en un fichero de su disco duro y no me lo envíe nunca. O eso, o que se abra su blog y escriba allí la respuesta, meditada, a lo que yo escribo. Porque estoy harto.

Harto de SPAM. Harto de moderar comentarios. Harto de mucha gente que no cree que tenga una opinión distinta a la mía: se creen en posesión de la verdad. Harto de leer gente que no pasó de la adolescencia, aunque tengan niños. Harto.

La vida es muy corta para moderar comentarios.

j j j

Los ideístas

Idea, definición de la RAE

Primero y más obvio de los actos del entendimiento, que se limita al simple conocimiento de algo.

Ideísta (definición de Diego Freniche, sobre un palabro inventado por él mismo)

Dícese de aquel que considera ser la única persona capaz de tener ideas de negocio. Especialmente si se dirige a un informático que pretende trabaje para él gratis. Aunque el Ideista tiene muchas ideas, usualmente no puede transmitirlas al estar aquejado de NDAitis

Esos líderes

Ideístas. Tan tiernos. Me encantan. Asumen que, dado que eres informático, eres un tarado incapaz de diseñar un plan de negocio. Ya, quizá has cursado unos estudios, trabajado unos años y puede ser que te exprimas el cerebro cada día para aprender cómo conseguir que los ordenadores hagan más o menos lo que tú quieres. Pero eso no te exime, amigo/a: eres tonto/a. De remate.

Delante tuyo fluye imparable un río de dinero, pero eres tan anormal que no lo ves, no te das cuenta que sólo con tener una idea se abrirán las puertas del cielo, bajarán de las nubes unicornios vomitando arcoiris que pastarán billetes de a 100 Eur., generando pepitas de oro cada vez que levanten la cola en la pradera. Y serás rico. Y tu barriga desaparecerá. Y te crecerá el pelo. Y podrás ganar alguna negociación con tu mujer. Y todo con una idea.

Pero claro, como eres tonto, no ves que es tan sencillo. Por eso, prefiero tener yo la idea, que para eso soy el ideísta y que tú trabajes para mi. Con pasión y entrega, porque claro, si sólo lo haces porque te gusta, pero no pones pasión, como que eres un triste que medio lo intenta, pero que no merece su reconocimiento. Eso sí, gratis.

Porque todo ideísta es un Steve Jobs. Todos son Jeff Bezos, o Hewlett y Packard. Son líderes natos, a los que ni por un momento se te puede pasar por la cabeza dejar de seguir. Eso sí, no te presentan ningún track record, esto es, las grandes compañías que han fundado antes en base a sus ideas. Más que nada porque tienen la misma experiencia laboral que Paris Hilton. Son visionarios. No tienen obligación de demostrarte que sus visiones sean algo concreto, claro.

El contacto

Reconocer al ideísta es fácil. Tanto, que he creado una plantilla para buscar concordancia de sus mensajes. Os presento el ideísta-canvas:

Aquí podéis ver el esquema general de las cosas. Estos líderes tecnológicos, estos avezados descubridores de nuevos nichos de mercado en la economía de las Apps, son incapaces de registrar su propio dominio. Y siguen usando Hotmail. Te hablan de San Francisco, pero no te muestran las compañías que han creado antes. Tienen ideas pero ni zorra idea de cómo llevarlas a cabo. Te retan, ya que ejecutar su idea va a ser muy divertido y estimulante para tu cerebro. Porque a tí te gusta trabajar gratis. Reconócelo.

Y ellos no tienen un duro, claro.

Mi problema

Mi problema es que estoy contaminado, pero no se cómo explicarlo. Como pertenezco a una generación que extrae sabiduría de las citas de las películas, voy a usar una. Antes se extraían citas de la Ilíada. En Facebook se sacan de Paulo Coelho, uno de los escritores de pósters de gatitos más prolíficos que se conocen. El caso es que desde que escuché a El Jóker decir esto, no puedo evitar repetirlo siempre:

Si eres bueno en algo, nunca lo hagas gratis

Y claro, también está la hipoteca. Y los recibos de la luz y el agua. Y que me gusta que mis hijos tengan tres comidas al día. Y por desgracia, si me acerco a la tienda y miro a los ojos al dependiente, diciéndole de forma seductora: tengo una idea y por eso me voy a llevar seis rollos de papel higiénico gratis, porque para eso soy un líder nunca funciona. Mis poderes Jedi están oxidados. No soy un ideísta.

Y no lo soy, pese a haber fundado en el pasado una empresa (¿o fueron dos?). Pese a llevar unos años trabajando. Pese a pagar mis facturas ofreciendo mis servicios a clientes de verdad. Y, algunas veces, incluso teniendo ideas.

Porque esa es la otra: pese a ser un mero picateclas ¡igual también tengo ideas!. Claro, que lo complicado no es tener la idea. Lo complicado es ejecutarla. Y ejecutarla bien. Con un presupuesto. Y encontrando todos los problemas del mundo. Y contratando y despidiendo. Y luchando. Y pese así, triunfar, no quebrar, ganar dinero… Lo difícil es que hay que esforzarse, querido ideísta. Y tú no lo estás haciendo. Buscas a un pardillo que se esfuerce por tí.

Ayer tuve una idea: voy a ponerme como Arnold Schwarzenegger. El rollo es que hay que levantar pesas y eso. Ya me pongo mañana.

j j j

Cómo instalar Xcode 6 GM (o cualquier versión final de Xcode) sin sobreescribir la anterior

De nuevo es esa época del año. Vuelta al cole. Fin del verano. Nuevo Xcode.

Me encanta el olor a nuevo Xcode por la mañana

Y siempre, el mismo temor: ¿qué pasa al instalar? ¿Voy a sobreescribir mi Xcode actual?

Un poco de teoría

Una App en OS X no es más que una carpeta (un bundle) que contiene los ficheros ejecutables y recursos que la App necesita. Podemos verlo más claro desde el Finder pulsando con el botón derecho del ratón y escogiendo Mostrar contenido del paquete. Desde la terminal es aún más evidente. Si hacemos:

$ cd /Applications/ 
$ ls -d Xcode*

drwxr-xr-x@ 3 dfreniche admin 102B 10 sep 09:47 Xcode.app/ 
drwxr-xr-x  3 root wheel 102B 16 abr 10:30 Xcode5.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 2 jul 02:52 Xcode6-Beta3.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 1 ago 23:17 Xcode6-Beta5.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 16 ago 00:35 Xcode6-Beta6.app/ 
drwxr-xr-x@ 3 dfreniche admin 102B 28 ago 09:01 Xcode6-Beta7.app/

veremos todas las versiones de Xcode que tenemos instaladas. No son más que directorios UNIX normales

La práctica

Durante la fase de Betas la imagen de disco con Xcode que descargamos contiene una carpeta con un nombre como Xcode6-Beta5. Este nombre es distinto de Xcode, con lo que no hay conflicto.

Cuando llega la GM y la versión definitiva, Apple distribuye un DMG con una App que ya se llama Xcode. Es Xcode 6, pero tiene el mismo nombre de carpeta que el Xcode 5 que ya tienes instalado en tu disco duro. Si lo copias, vas a perder Xcode 5.

Xcode5 antes de copiar Xcode6 GM

]Xcode5 antes de copiar Xcode6 GM

Solución sencilla: antes de copiar nada a la carpeta Applications, renombra Xcode (como si fuera un fichero o carpeta normal, probablemente tengas que introducir tu clave de administrador) y ponle de nombre Xcode 5 (o el que prefieras, yo tengo por ahí una llamada Ye olde Xcode 4.3)

Instalando Xcode 6 tras renombrar Xcode 5

]Instalando Xcode 6 tras renombrar Xcode 5

Fácil, ¿no?

j j j

Mi ThinkPad x61s

Mi x61s

Hace ya tiempo que venía temiendo esto. Sentía una irresistible atracción del abismo. Ganas de tener un PC. Con Linux y Windows. Sí. Después de usar Macs desde el 2008, aún no he sido capaz de desintoxicarme del todo de la “infección” Linuxera… Además, tenía ganas de un ThinkPad. Hay quién dirá que son feos. Otros, que son funcionales. A mi me molan, con esa estética industrial y aburrida. Así que me puse a buscar en las webs de segunda mano.

El modelo escogido

Estuve viendo los distintos ThinkPads que pululaban por ahí. No me apetecía nada grande, y vi que había modelos de sólo 12”, como el X200, lo que me parece el tamaño perfecto. Encima, las pantallas son mate. Echo de menos la pantalla mate de mi MBP de 2008, pero en Apple las han dejado de poner como opción y no queda otra que aguantarse. La de mi MBP actual de 13” tiene demasiados reflejos…

x61s vs Macbook Pro 13

Así que la duda estaba entre el TP x200 y el 201, mucho más moderno. Hasta que descubrí el x61, con su pantalla no panorámica. Sí, un portátil con relación de aspecto 4:3 en estos días. La pantalla no panorámica me recuerda a mi primer portátil, un Toshiba Satellite. Al no ser 16:9 es incluso más pequeño en sus 12″, lo que lo hacía más apetecible (para mi) si cabe. Y hay un modelo, el x61s, que es un poco más ligero. Finalmente, por 100 € he conseguido uno con la Ultrabase X6.

Esta base es una docking station que amplía los puertos del TP, permitiendo que se cargue mientras está pinchado en ella. Para liberarlo primero debemos pulsar en un botón que informa al SO del evento y le permite desmontar aquellos recursos de la Ultrabase que estemos usando en ese momento. Tras esto, una pequeña palanca libera físicamente el X61. En la Ultrabase encontramos una mezcla perfecta (de nuevo, para mi) de tecnología moderna y retro, algo que se repite con el propio portátil. Junto a puertos serie y paralelo “pata negra” hay varios USB y un caddy que en mi caso tenía instalada una unidad lectora/grabadora de DVD. Pero que puede alojar una segunda batería (útil para viajes largos sin una fuente de alimentación a mano, p.ej.) o, mucho más interesante, una segunda unidad de disco. Una jugada maestra de ampliación podría ser ponerle un SSD baratito al x61S y aprovechar el disco que actualmente tiene en la Ultrabase como expansión de datos.

El portátil en sí lo he equipado con 4GB de RAM y lleva un Core 2 Duo a 1.6 Ghz, lo que si bien no es mucho me permite ejecutar cualquier S.O. de 64 bits sin problemas. Venía con un HD de 140 GB. El teclado me encanta, con un montón de teclas dedicadas a funciones especiales, como moverte adelante/atrás en el navegador de Internet (que en mi caso y en Windows siempre es Firefox). Y tiene detalles que sorprenden. Lector de SD (normal hoy en día) y ranura para PCMCIA. Me viene perfecto para usarlo con las varias tarjetas PCMCIA que tengo para mis Amiga. En lugar de teclado retroiluminado, tiene una pequeña luz led en la esquina superior izquierda de la pantalla mirando hacia abajo que puede encenderse por si quieres trabajar en la oscuridad. O el lector de huellas, que funciona a la perfección y es como inicio sesión en Windows. O el acelerómetro para aparcar las cabezas del HD en caso de caída…

Linux en 2014

Después de probar varias distros, no soy capaz de encontrar una que realice una tarea casi imposible de solucionar: poner el portátil en reposo correctamente al cerrar la tapa. Me niego a investigar nada, ni a leer nada. 2014 se acaba, igual que mi paciencia con ciertas cosas. Me duele ver estos problemas con el hardware a estas alturas del partido. Ahorraos los comentarios: vais a darme la misma retahíla de excusas que yo daba en el 98. Pero han pasado muchos años viendo siempre lo mismo: instalas Linux y no funciona out of the box. Sin esto, nunca será un S.O. tenido en cuenta por el usuario en el escritorio.

Supongo que lo volveré a intentar, porque soy un cabezón, pero de momento se queda con Win 7 Ultimate 64 bits.

SSDs

Al final, dada mi manía de llevar mi hardware al extremo (si es posible) y porque soy un cacharrero enfermizo, le he puesto un SSD a la máquina. He comprado, por un lado un Caddy para la Ultrabase, en el que ahora mismo está el HD original del portátil y al que accedo como a un disco IDE cuando pincho el portátil en la base. Por otro, dado el precio al que se están poniendo los SSDs me he comprado un Kingston SSDnow por 55 Eur. Este SSD soporta SATA III, mientras que la BIOS del x61s soporta inicialmente SATA I. Menos mal que hay una BIOS que se puede flashear (la BIOS Middleton) y que te da soporte SATA II. Ahora el disco va como un tiro.

Kinsgston SSD

j j j

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