martes, 20 de enero de 2015

Hacking my life


Me he comprado una de esas pulseras que te cuentan los pasos diarios que haces, te calcula tus horas de sueño distinguiendo sueño ligero de sueño profundo y cosas así. ¿Con qué fin? Bueno, principalmente de salud personal, a un precio lo suficientemente razonable en proporción a ello.

Resulta curioso que, de aquí a un par de semanas atrás llevo utilizando una aplicación en mi teléfono para registrar lo que como y, en consecuencia, calcular los carbohidratos, proteínas y grasas que consumo y compararlos con los que, en teoría, necesito.

Eso fue a raíz de instalarme otra aplicación que, elegida una meta de peso, me aconsejaba cuánto ejercicio hacer en función de la medida de constantes vitales (peso, frecuencia cardíaca, etc.).

Y todo esto después de haberme dado cuenta que, de aquí a hace un mes atrás, mi teléfono ha estado contando mis pasos a diario, diciéndome las calorías que he quemado por ello.

No es que nunca me haya interesado por mi calidad de vida y haya intentado mejorarla, pero tengo que reconocer que uno lo hace con más ganas si puede cuantificar instantáneamente la repercursión de lo que está haciendo.

Ahora, como ingeniero, sólo se me ocurren maneras de intentar utilizar toda esta información en mi beneficio, intentar aplicar conocimientos nutricionales y de actividad física al tratamiento de toda esta información y sí, se puede decir, hackear mi vida en consecuencia.

Eso sí, no sé si necesitaré un poco más de motivación para ponerme manos a la obra. ¿Conocéis alguna app para motivarme a programar?

viernes, 21 de junio de 2013

MYSQL: Agrupar datos estadísticos por intervalos de minutos, horas, etc.

A la hora de mostrar datos estadísticos en el tiempo a partir de una tabla en MySQL podemos necesitar agrupar datos en intervalos. En ese caso, no existe una función MySQL que nos sirva, y tenemos que echar mano del ingenio para conseguir nuestro objetivo.

Para explicar lo que tenemos que hacer tendremos una tabla con datos almacenados por minuto:
 _________________________________
|       date            |   num   |
|_______________________|_________|
|  2013-02-01 12:46:00  |    21   |
|  2013-02-01 12:42:00  |    33   |
|  2013-02-01 13:27:00  |    73   |
|_______________________|_________|

A continuación os muestro la solución que yo he encontrado:
SELECT TIME(DATE_SUB(d1.date,INTERVAL (MINUTE(d1.date)%10) MINUTE)) as tiempo, SUM(IFNULL(d1.num,0)) as suma FROM tabla GROUP BY tiempo ORDER BY d1.id DESC

Como podéis ver, se trata de mostrar el dato de tiempo en intervalos de X minutos y, después, agrupar. En mi ejemplo, he querido hacer intervalos de 10 minutos. La fórmula para obtener todas las fechas en intervalos de 10 minutos es la resultante de restar (DATE_SUB) a la fecha actual los minutos restantes de la división (%) de los minutos en la hora actual (MINUTE()) entre 10. Una vez obtenido el nuevo dato de tiempo sólo nos queda agrupar los datos. El resultado es similar a este:
 __________________________________
|         tiempo        |   suma   |
|_______________________|__________|
|  2013-02-01 12:40:00  |    54    |
|  2013-02-01 13:20:00  |    73    |
|_______________________|__________|

Daros cuenta que si hubiera que hacerlo por segundos o por horas sólo tendríamos que aplicar la resta al dato obtenido (tiempo). 

viernes, 7 de septiembre de 2012

El almacenamiento online como centro de actividades



Dropbox, Google Drive, Skydrive, Ubuntu One, iCloud y muchos más son los protagonistas del futuro de la informática. Puede parecer demasiado arriesgada esta información, pero es hacia lo que caminamos. ¿Quién no está contento almacenando las fotos de su móvil en Dropbox? ¿A quién no le gusta tener sus documentos siempre disponibles para ser editados desde cualquier lugar en Google Drive? ¿Quién no flipa sincronizando sus fotos del iPhone con su Macbook en el momento en que son tomadas? Casi sin darnos cuenta ya estamos utilizando el almacenamiento online para tener todos nuestros archivos, y aquí quiero matizar, los archivos que realmente usamos.  ¿De qué sirve almacenar archivos online si luego no los necesitamos para nada? Y voy más allá, ¿qué da sentido a almacenar un archivo concreto de forma online? Usarlos. Los archivos normalmente no suelen ser un fin, sino un medio. Y aquí viene mi idea de hoy: el almacenamiento online como centro de actividades.

Yo utilizo Dropbox para subir automáticamente las fotos que hago con el móvil. Me parece más cómodo que llegar, encender el ordenador, enchufar el móvil y mover las fotos. ¿Y para qué las muevo al ordenador? Para guardarlas en carpetas como álbumes de fotos, clasificadas en días o acontecimientos. ¿Qué estoy creando entonces, carpetas o álbumes? A ver si ahora lo que estoy haciendo no es lo que realmente quiero. A ver si lo que yo quiero hacer realmente, crear álbumes, es sólo la idea, y lo que hago, crear carpetas, una forma de simular lo que quiero. Venga, vale, ni Windows/OSX/Ubuntu están preparados para crear álbumes como tales debido a cómo está diseñado el sistema de ficheros y debería utilizar alguna aplicación en lugar del explorador de archivos para clasificar y ver mis fotos en álbumes. Pues no, no me da la gana. Para algo tengo el almacenamiento online, sin restricciones de ningún tipo y con la posibilidad de hacer realmente lo que quiero, y no simularlo.

Google Drive ya ha empezado a recorrer ese camino casi sin quererlo. Empezó como un editor de documentos online, documentos de texto. Al poco tiempo empezó a permitir crear hojas de cálculo e incluso a permitir la carga y visualización de archivos PDF. Hoy día permite crear también presentaciones, diagramas y formularios. No estoy hablando de que gracias a una aplicación y a su integración con este almacenamiento online se puedan guardar archivos en Google Drive, sino que todo esto se puede crear desde el mismo Google Drive. ¿Y si lo que yo quiero, en vez de subir fotos a Google Drive es crear un álbum, igual que podría crear un documento? Voy a mi Google Drive, le digo "Crear un álbum de fotos", me pide que suba las fotos y me crea un álbum en el que puedo ordenarlas, redimensionarlas, editarlas si quiero y compartir con las personas que quiero, dejarlas comentar las fotos e incluso dejarles que suban sus propias fotos para completar y mejorar mi álbum. Actualmente ésto no es posible, pero ¿alguien duda de que esto no va a pasar tarde o temprano?

Caminamos de un mundo de archivos y carpetas hacia algo más físico, más real, la representación de las cosas que queremos hacer de forma virtual, sin pensar en archivos, copiar, pegar, mover, borrar, subir, descargar, etc. Ahora pensamos en dibujos, informes, pizarras, portfolios, álbumes, discos, artículos de un blog como este, cosas que son lo que realmente son, y no lo que se supone que son.

jueves, 23 de febrero de 2012

Ubuntu: coge el toro por los cuernos

Dejé Ubuntu porque era totalmente inestable en mi equipo. Unity era el causante de todo, ya que antes era todo perfecta armonía. Nunca entenderé por qué incluyeron software inestable en el sistema, y más si este software era la propia interfaz del sistema.

En fin, que no pensaba en volver a Ubuntu y menos sin entender lo que querían hacer. ¿Quién quiere un sistema aislado, sin aplicaciones, con un aspecto horroroso y que apenas tiene soporte para hardware? Nadie, obviamente.

Con Ubuntu for Android he vuelto a recuperar la esperanza. Si me dices que el sistema se va a integrar en dispositivos móviles, va a poder soportar aplicaciones Android y va a ejecutarse sin problema, puede que Ubuntu no esté tan muerto para mí como yo pensaba.

El movimiento está claro. Apple quiere llevarse su iOS al ordenador de toda la vida con Mountain Lion y las siguientes versiones. Conseguirá integración total en todos los dispositivos y una cantidad brutal de aplicaciones y juegos para un sistema bonito pero elitista como es OS X.

Ubuntu, si es listo, debería de aprovechar el tirón de Android para hacerse un hueco. Con Ubuntu for Android han dado un primer paso. Así pueden tener una libreta de direcciones llena, las fotos y vídeos que tomes con el teléfono, TODAS las aplicaciones y juegos de Android (ojo a esto) y un entorno agradable donde PC y smartphone se unen en un todo. Maravilloso.

Posibles errores:

  • Que lo abandonen para centrarse en su Ubuntu Phone: si éste no está basado en Android se van a estrellar.
  • Que no sea todo tan bonito como lo pintan, sobre todo porque vista la estabilidad de Unity y, seamos sinceros, lo feo que es, dudo que puedan sacar algo potable.
  • Que los fabricantes les digan que gracias por la idea pero que prefieren que eso lo invente Google o Microsoft, que son más ricos y tienen más tirón.
Yo quiero, espero y deseo que Canonical lo haga bien, haga de Unity una interfaz buena, bonita, depurada, sin errores, rápida y atractiva. 

También quiero que se esfuercen en lograr la compatibilidad con aplicaciones Android, sobre todo con las de tablets, que pueden ser utilizadas en el escritorio. Es posible hacerlo, y además mucho mejor que otros. Es su esperanza para tener aplicaciones de calidad en el futuro. Mientras, las aplicaciones de Linux harán el avío.

Quiero que intenten mejorar el aspecto en general del sistema. Los creadores de Elementary Desktop y mucha gente con talento están haciendo cosas preciosas y muy atractivas, sin necesidad de cambiar de entorno de escritorio ni nada parecido. Si tus empleados no van a hacerlo mejor que ellos, contrátalos, Canonical, o por lo menos, no hagas el ridículo diciendo que Ubuntu es bonito cuando es el sistema operativo más feo que un "human being" puede utilizar.

No es tan difícil, no pido tampoco nada del otro mundo. Tienes la oportunidad de resurgir y reclamar de nuevo un sitio para Linux en el escritorio. Ubuntu: coge el toro por los cuernos, aplícate, echa toda la carne en el asador y lánzate a por todas. Es tu oportunidad. No la desaproveches.

martes, 14 de febrero de 2012

Rediseñando un SO: todo el sistema en cada ventana

Este artículo está MUY relacionado con el anterior de esta serie, así que recomiendo su lectura previa: http://yonosoyungeek.blogspot.com/2012/02/redisenando-un-so-simplificando-las.html


El anterior artículo hablaba de simplificar las ventanas. Lo hacíamos colocando los controles de la aplicación en la barra de título. A esta barra de título añadíamos también los indicadores del sistema y una especie de Spotlight. Pues bien, esta vez quiero hablaros sobre ésto último.


Aprovechando que, a mi gusto, el Dash de Unity está mucho mejor organizado que Spotlight, he decidido plantear el siguiente diseño sobre una ventana de un editor de texto sencillo:


Este menú, que se activa haciendo clic en el icono de, en esta ocasión, Ubuntu, es una idea de cómo sería el Dash de Unity si minimizáramos el espacio que ocupa.

Reducir el tamaño del Dash de Unity es esencial, ya que en su estado actual sobra espacio, sobre todo en pantallas grandes, y está llegando a plantear problemas a sus propios diseñadores, por ejemplo, en la vista principal: no saben qué poner. Eso sí, no queremos reducirlo tanto como Spotlight, ya que queremos aprovechar algunas de las ventajas que nos aporta.

El funcionamiento es el siguiente: al pulsar el  botón correspondiente se nos muestra el desplegable con una barra de búsqueda, una invitación a usarla y, abajo del todo, las lentes.

Las lentes se encargan de filtrar el contenido que queremos buscar: aplicaciones, ficheros, música, opciones de configuración e incluso páginas web.

Según escribimos en la barra de búsqueda se nos mostrarán las coincidencias con los elementos existentes en el sistema filtrados por la lente seleccionada (en la imagen, aplicaciones).

Ésto no dista mucho del funcionamiento general del Dash de Unity, pero sí que cambia la manera de utilizar el sistema, ya que todo se encuentra localizado, siempre, en la parte superior derecha de la  ventana abierta.

viernes, 3 de febrero de 2012

Nombres desafortunados: Put.io

Es de putio de colegio que poner a una web de nombre Put.io no puede acabar bien. Esa i y ese punto desaparecen rápidamente de nuestra vista y despierta un sentimiento igual de gamberro que de infantil: "jiji, ha dicho Put.io".