¿Por qué son lentas las aplicaciones web en el celular?

Un interesante análisis en Why mobile web apps are slow de los diferentes parámetros que afectan al comportamiento de aplicaciones web en el teléfono móvil.

Una cámara móvil

Una vez que tenemos un bot que nos permite controlar remotamente nuestro proyecto (Segundo bot: avanzamos) y sabemos mover los motores (Movimiento suave con los servos) llega el momento de montar la cámara encima (Una cámara en la Raspberry Pi) y controlarla remotamente.
Recordemos que el control se hace mediante XMPP (por ejemplo, con programas como Pidgin, Google Talk o nuestro cliente de mensajería favorito); la idea era evitar abrir puertos en el router para controlarlo vía web y, sin embargo, poder enviar instrucciones desde internet sin problemas.

Para el montaje seleccionamos un par de cajas (como forma barata y simple de proporcionar el soporte para todo). En una caja más grande hicimos un par de agujeros (para poder colocar dos motores, aunque finalmente sólo hemos utilizado uno):

Hemos pintado la caja #raspi

A post shared by Fernando Tricas García (@ftricas) on

Dentro de la caja van las conexiones (baterías para alimentar los motores, y cables para controlarlos desde la Raspberry Pi, que se queda fuera de la caja).

Caja como soporte para los motores

A post shared by Fernando Tricas García (@ftricas) on

La cámara se monta en una caja más pequeña que se sujeta al servo seleccionado.

Y tenemos un prototipo de mejor aspecto #raspi

A post shared by Fernando Tricas García (@ftricas) on

Cuando se le da la instrucción de movimiento, la cámara va a la posición elegida, se detiene para hacer la foto y la envía por correo. Finalmente, vuelve a su posición inicial.
Toda la secuencia puede verse en el siguiente vídeo.

El código del proyecto está disponible en err-plugins (puede evolucionar más adelante; el código en su estado actual puede verse en pruebas.py).

Recientemente se publicó un proyecto similar en “Raspberry Eye” Remote Servo Cam. Tiene dos diferencias fundamentales: se han incluido movimientos en dos ejes (nuestro proyecto sólo se mueve a derecha e izquierda) y se controla mediante una página web.

¿Qué haremos a continuación?
Tengo varias ideas, pero no se todavía qué haré: sería interesante que la cámara tuviera cierta autonomía (¿detección de movimiento o cambios en la escena?); tampoco me importaría pensar en movilidad real (¿embarcar la cámara en algún tipo de dispositivo con ruedas? me encantó este hexápodo).
Yendo más allá, tal vez podríamos pensar en otros dispositivos de control (¿wearables?).

Por supuesto, ideas, comentarios, sugerencias… Serán bienvenidos.

Seguridad en el desarrollo móvil

De este tema no hablamos demasiado por aquí: no por falta de interés, sino porque tampoco hay mucha documentación que vaya más allá de las generalidades. En McGraw’s mobile app security strategy: Three legs of ‘trusted on busted’ un texto de los que son más bien generalistas.

Las tres patas serían:

  • Parecido, pero diferente: aunque tenemos entre manos un ordenador como tantos otros, hay que tener más precaución con el almacenamiento y transporte de datos, y manejar con más cuidado los datos de los usuarios
  • ¿Dónde consiguen los usuarios nuestra app?
  • ¿En qué contexto se ejecuta nuestra app? (jailbreak?, root?, posición?)

¿Una botnet de teléfonos móviles?

Otra noticia no nueva ni novedosa pero que rescato aquí: Spam from an Android botnet.

Los teléfonos son ordenadores. Y están permanentemente (o casi) conectados a internet. Si los infectan y los utilizan para mandar spam, tenemos una red distribuida, amplia y que puede mandar un montón de mensajes.

All of these message are sent from Android devices. We’ve all heard the rumors, but this is the first time I have seen it – a spammer has control of a botnet that lives on Android devices. These devices login to the user’s Yahoo Mail account and send spam.