“I would totally describe myself as an average high schooler. I like hanging out with my friends, watching movies, getting my nails done, and lately I’ve been into machine learning using convolutional neural networks.”

Anuncios

Flutter y los planetas

Planets-Flutter, una serie de artículos de Sergi & Replace en la que adapta un diseño para crear una versión funcional del mismo utilizando Flutter

He de reconocer que aunque Óscar, uno de hackers1 de Mobbeel, llevaba bastante tiempo hablando sobre Flutter no le había prestado demasiada atención. Tanto he cambiado que hasta me he suscrito2 a uno de los boletines que me recomendó: Flutter Weekly.

Y no sólo me he suscrito, hasta lo leo. Incluso hago clic en los innumerables enlaces que contiene cada número3. Por ejemplo, el tercer enlace del número 13 es un vídeo en el que entrevistan a Eric Seidel, que ahora es director del proyecto. Si sabes que es Flutter poco de lo que se dice ahí te resultará interesante, pero para mí hay una joyita escondida casi al final del mismo, una mención sin enlace a un proyecto de un español. Se trata de la serie Planets-Flutter, de Sergi & Replace, en la que utilizan Flutter para crear una interfaz como ésta:

En ella, Sergi nos lleva de la mano, mostrándonos como adaptar un diseño y crear una versión funcional del mismo, utilizando para ello Flutter. En cada artículo de la serie se encarga de uno de los aspectos de la adaptación, desde la barra de navegación, la selección de los colores, la creación de las celdas, etcétera. Una verdadera delicia, una oportunidad única de aprender a utilizar Flutter y crear diseños atractivos, fuera de lo normal.

Aunque durante años renegué de las soluciones multiplataforma existentes, hubo quien me hizo apreciar algunas de las bondades de las mismas. Creo que he aceptado Flutter con los brazos abiertos gracias a ese paso intermedio. Bueno, y también a que es la primera de estas soluciones que parece realmente nativa4.

Si esto es lo que se puede conseguir con Flutter en su versión beta estoy deseando ver qué logran cuando sea estable.


  1. Hacker de los buenos, no confundir con cracker. 
  2. No soporto los boletines; existiendo RSS, ¿por qué iba a querer usar otra cosa para estar al tanto de todo? Por suerte Flutter Weekly se envía a través de MailChimp, así que lo leo cada semana en Feedly
  3. Desde que Flutter entró en la fase beta de su desarrollo su popularidad ha crecido tanto que no resulta complicado encontrar contenido, eso queda claro. Aquí mi crítica principal a Flutter Weekly: demasiados enlaces. Quizá deberían escoger un poco más qué incluyen en cada número, eso añadiría valor al boletín. 
  4. En iOS parece nativa salvo por algunos detalles del diseño material de Google que se cuelan entre las rendijas. 

MySQL

MySQLAcabo de poner a vuestra disposición la cuarta encarnación de mi libro sobre MySQL. Estoy especialmente orgulloso de él, principalmente porque ha perdido el apellido, ha vuelto a llamarse como al principio: “MySQL”, a secas.

Los libros impresos tienen algo que les falta a los digitales: es mucho más fácil presumir de ellos. Sólo tienes que pasarte por la librería, buscar el tuyo y fardar. El efecto no es ni de lejos lo mismo que visitar Amazon o iBookstore y enseñárselo a tu madre.

Dejemos a un lado el ego. Como autor, las ventajas de los libros digitales son muchas. Para empezar, poner enlaces en el texto es una verdadera maravilla. Luego está la facilidad con la que puedo corregir mis errores y ofreceros un texto mejorado.

Pero, volviendo al principio, para mí la mayor de las ventajas es quitarle el apellido. La primera edición de este libro se tituló “MySQL”. Fue modestamente popular, así que se decidió publicar una actualización del mismo, revisando los contenidos para que fuesen aplicables a la nueva versión de MySQL. Para diferenciarlo del anterior, se tituló “MySQL 5”. Cuando la versión 5.1 de MySQL fue una realidad, también lo fue la actualización del libro, titulada entonces “MySQL 5.1”. ¿Eran libros diferentes? La mayor parte del texto se mantenía igual, pero iba añadiendo nuevos capítulos y cambiando otros para poder ofreceros un conjunto vigente.

Ahora estamos disfrutando de MySQL 5.6. ¿Tendría sentido titular el libro “MySQL 5.6”? Es posible, sobre todo desde un punto de vista comercial. Pero eso significaría que cuando MySQL 5.7 estuviese disponible tendría que cambiar título y portada para no confundir a nadie. Y, quizá, no cambiar casi nada del contenido del libro. A fin de cuentas, se trata una guía de aprendizaje y a estas alturas el grueso de las novedades de MySQL suele estar en la parte más avanzada. Además, puedes utilizar esta guía para aprender MySQL, incluso si no estás usando la versión 5.6. Diría que el 90% es aplicable a la versión 5.1, si no más, e incluso a versiones anteriores.

Así que fuera apellidos. Y éste es mi compromiso: cuando MySQL 5.7 (y 5.8, y 5.9, e incluso 6, siempre que los cambios no impliquen escribir el libro de nuevo) llegue a la versión de la comunidad (la gratis, para entendernos), actualizaré el libro y todos los que lo hayáis comprado lo disfrutaréis sin coste alguno.

Puedes encontrarlo en Amazon e iBookstore por sólo 3,99 € 1,99 €.

De la descripción del libro en Amazon:

¡Aprende MySQL de la forma más rápida y sencilla!
Acompáñame en un viaje en el que recorreremos las principales características de MySQL (revisado para la última versión), siempre desde el punto de vista más práctico posible, para que puedas sacar partido de lo aprendido desde el primer momento, ya utilices Windows, Linux u OS X.

MySQL es el sistema gestor de bases de datos de código abierto más utilizado del mercado. La razón: las empresas que lo utilizan consiguen recortar el gasto dedicado a este tipo de software en un 90%. Por regla general no cuesta dinero utilizarlo, siempre y cuando se sigan unas reglas muy sencillas. Este gestor se caracteriza por su facilidad de uso, velocidad y flexibilidad para funcionar en diferentes sistemas operativos.

Aquí aprenderás a trabajar con bases de datos, tablas, tipos de columna y SQL. Todos los conceptos van acompañados de ejemplos para facilitar su comprensión.

Y una vez adquieras la base mínima necesaria pasaremos a ver otras características de MySQL como procedimientos almacenados, desencadenadores o triggers, vistas, tareas programadas, registro en tablas, actualización de tablas o XML. Utilizaremos tanto herramientas para el terminal como mysql o mysqlslap como herramientas con interfaz gráfica como MySQL Workbench.

El texto está repleto de ejemplos pensados para ayudarte a progresar, pensados para aquellos lectores que quieren obtener resultados desde el primer momento. La teoría sobre bases de datos se ha dejado a un lado siempre que ha sido posible.

Este libro consta de 15 capítulos:

  1. Introducción a MySQL
  2. Manipulación de datos
  3. Trabajar con tablas
  4. Diseño de bases de datos
  5. SQL
  6. Seguridad
  7. Administración
  8. Optimización
  9. Conectividad
  10. Programación
  11. Procedimientos almacenados
  12. Desencadenadores
  13. Vistas
  14. XML
  15. Tareas programadas

Suena a tópico, pero realmente he disfrutando preparando esté libro para que esté en tus manos. Espero que te sea útil.

Por favor, no dudes en ponerte en contacto conmigo para cualquier consulta, duda o queja que tengas sobre este libro. Si has encontrado una errata, la revisaré y publicaré una actualización del libro tan rápido como me sea posible.

iOS se estanca

A estas alturas, el año pasado iOS 7 ya estaba en casi el 70% de los dispositivos en los que podía instalarse. Sin embargo, ahora sólo está en el 47%:

A 5 de octubre de 2014.

Entre las posibles razones para que esto sea así se están destacando dos:

  • La pérdida de confianza de los usuarios provocada por los fallos en iOS.
  • El espacio necesario para poder instalar iOS 8 desde iOS 7 (5 GB).

Diría que la segunda razón es la que más peso está teniendo.

Pero existe una tercera razón, no es tan importante como estas dos aunque añade su granito de arena a los porcentajes: el iPhone 4 se ha quedado fuera de esta actualización. Se vendieron muchos más iPhone 4 que 3GS, motivo por la que la influencia de aquellos que se quedaron fuera de iOS 7 fue menor que la de aquellos que han quedado ahora fuera de iOS 8.

Como desarrollador para iOS se trata de algo que me preocupa, quisiera que todos estuviesen usando iOS 8 lo antes posible. Cuanto más repartida esté la población de usuarios de iOS entre las diferentes versiones, más me costará hacer un buen trabajo, tener a todo el mundo contento.

Así que me pregunto si esta tendencia se hará más pronunciada en la siguiente iteración hardware/software. Espero que no, o Apple recupera la confianza perdida y encuentra una manera de actualizar iOS que requiera menos espacio, o la brecha se hará cada vez más grande.

Porque estoy seguro de que no va a regalar un iPhone nuevo a quien no pueda instalar iOS 9.

Bocados de iOS

iOS Bytes¿Cansado de podcasts con capítulos de más de dos horas? Yo no. Pero de vez en cuando viene bien un cambio.

iOS Bytes es un podcast semanal que dura unos 5 minutos. La pareja de locutores comenta una serie de enlaces que tienen importancia en el contexto actual de la programación para iOS. A pesar de su corta duración, la chicha viene después, al terminar de escucharlo, cuando inviertes un poco de tiempo en ver cuáles de los enlaces que han comentado pueden resultar útiles.

Cada episodio termina con una canción diferente. Por ejemplo, en el del 9 de octubre es el tema de “Spaceballs”, de The Spinners:

Me pregunto cómo lo hacen. ¿Pagan derechos de autor? ¿Está permitido hacerlo por la duración del podcast? No lo sé, pero me gustaría saberlo.

Android Virtual Device Manager sin Eclipse

Cuando estás empezando con esto de Android aprendes que el gestor de máquinas virtuales está en el menú Window > Android Virtual Device Manager. En ocasiones, puede que quieras acceder a este gestor para poner en marcha una determinada máquina virtual, sin tocar nada del código. Es una lata tener que ejecutar Eclipse sólo para eso.

Existe una forma muy rápida de acceder al gestor de máquinas virtuales de Android. Basta con ejecutar ((Desde la línea de órdenes de Windows no haría falta poner ./ delante. En mi caso lo he hecho desde el terminal de OS X.)):

./android avd

desde la carpeta tools en la que esté instalado el SDK de Android. En mi caso el resultado es algo así:

AVD

La historia de Mel

I have often felt that programming is an art form,
whose real value can only be appreciated
by another versed in the same arcane art;
there are lovely gems and brilliant coups
hidden from human view and admiration, sometimes forever,
by the very nature of the process.
You can learn a lot about an individual
just by reading through his code,
even in hexadecimal.
Mel was, I think, an unsung genius.

“The Story of Mel”, de Ed Nather (utastro!nather).

Escuché hablar de Mel en el programa 000 de We.Developers.