Ejecutar Chrome Dev Tools en iPad

Hace tiempo ya hablé de cómo usar un iPad como monitor adicional en Linux. Llevo desde entonces usándolo y funciona estupendamente, pero hay una espinita que tenía clavada desde el primer día: no poder mover la ventana de las Chrome Dev Tools al iPad.

El truco que usamos para poder tener el iPad como segundo monitor es crear una nueva sesión X y conectarse a ella mediante VNC. Por desgracia, si una ventana se abre en una sesión X no se puede enviar a otra (en realidad sí se puede, pero es demasiado complicado). Así que como la ventana de Dev Tools se abre en la sesión del monitor principal no hay forma de enviarla al iPad.

Pero resulta que hay una alternativa. Ejecutamos una instancia de Chrome en nuestra sesión X principal indicando un puerto para depuración remoto:

/usr/bin/google-chrome-stable --remote-debugging-port=9222 --user-data-dir=remote-profile

En la sesión X del iPad, ejecutamos otra instancia:

/usr/bin/google-chrome-stable --user-data-dir=remote-debug

Y en esa ventana de Chrome que se nos abre en el iPad, navegamos a http://localhost:9222 y ¡bingo! Nos aparecerán las pestañas que tengamos abiertas en la instancia de Chrome que iniciamos en la sesión principal y podremos depurar desde el iPad.

Deshabilitar el autocompletado de LastPass en un formulario

LastPass es un programa para recordar contraseñas que funciona estupendamente, pero hay veces que si tenemos un formulario que no es de acceso a una web nos rellena algunos campos que no queremos que rellene.

Para solucionar esto hay que hacer dos cosas:

  1. Añadir el atributo autocomplete=”off” en la etiqueta form del formulario.
  2. En la extensión de LastPass, ir a Preferences -> Advanced y activar la opción Respect AutoComplete=off: allow websites to disable AutoFill.

Navegar a través de un túnel SSH

Hay veces en las que no nos fiamos de la conexión a Internet que estamos usando (por ejemplo, las redes WIFI gratuitas). En estos casos la solución es navegar a través de un túnel SSH con un servidor del que sí nos fiemos. Usaremos ese servidor como proxy y todas las peticiones web las hará nuestro servidor, no el router del que no nos fiamos.

Al hacerse las peticiones web desde ese otro servidor un efecto secundario es que si por ejemplo nuestro servidor está en EEUU podremos acceder a páginas que tienen bloqueado el acceso a países que no son EEUU.

Yo ahora mismo lo uso para poder subir ficheros a Amazon S3, por algún motivo que desconozco desde mi conexión de Movistar las subidas se quedan paradas. Usando como proxy un servidor externo funcionan perfectamente.

Montar esto es muy sencillo:

  1. Iniciamos el servidor SOCKS en el puerto 12345 (por ejemplo):
    ssh -D 12345 usuario@servidorProxy
  2. Configuramos el navegador para que utilice como proxy el servidor SOCKS v5 en la dirección 127.0.0.1 y el puerto 12345.

Y ya está. Cuando hayamos terminado cerramos la sesión de SSH y volvemos a cambiar la configuración del navegador.

Nota: Google Chrome en Linux no permite cambiar la configuración del proxy mediante el interfaz, hay que indicarlo por línea de comandos:

/opt/google/chrome/chrome --proxy-server="socks5://127.0.0.1:12345"

Recibir notificaciones de Android en el PC

Para recibir las notificaciones de Android en nuestro PC y no tener que mirar el teléfono la solución es “Desktop Notifications”. Se compone de una aplicación para el móvil y una extensión para el navegador (funciona con Chrome y con Firefox, aunque el proceso de identificación es más sencillo con Chrome).

  1. Instalamos en el teléfono (solo funciona con Android) la aplicación: https://play.google.com/store/apps/details?id=org.hcilab.projects.notification&hl=en
  2. Instalamos en Chrome la extensión: https://chrome.google.com/webstore/detail/desktop-notifications-for/giicnncicnopjohcpamieklkiacdoeni/related?hl=en
  3. Nos identificamos en ambas con nuestra cuenta de Google

Y ¡ya está! Se tarda dos minutos en hacer todo esto y ya podremos recibir en nuestro navegador las notificaciones del teléfono.

Sublime Text 3: comprobar errores en PHP al grabar fichero

Gracias a Juan Prada he conocido un plugin muy majo que se llama SublimeOnSaveBuild, que lo que hace es lanzar un build cada vez que se guarda un fichero. Esto nos permite configurar ese build para buscar errores en nuestro código PHP (o en cualquier otro tipo de fichero).

Vamos a ver cómo hacer esto.

Lo primero es definir el build para PHP. En el menú nos vamos a Tools->Build System->New Build System. Se nos abrirá un fichero en el que escribiremos esto:

{
"cmd": ["/usr/bin/php", "-l", "$file"],
"selector": "source.php",
"file_regex": "^Parse error: .* in (.*?) on line ([0-9]*)"
}

En el campo cmd yo he puesto la ruta que tiene el ejecutable de PHP en mi equipo (Linux Mint), si usas otro sistema operativo deberás adaptar ese valor a lo que corresponda en tu ordenador.

Guardamos este fichero con el nombre PHP.sublime-build. A continuación deberíamos instalar el plugin SublimeOnSaveBuild desde el editor de paquetes de SublimeText, pero no lo vamos a hacer.

El motivo es que si lo instalamos tal y como viene “de serie” cada vez que grabemos un fichero PHP nos aparecerá la ventana del build, incluso aunque no haya errores. Esto es un tostón, lo ideal es que la ventana solamente aparezca (y nos llame la atención) si hay algún error.

Ya se dio alguien cuenta de esto (es el issue número uno del proyecto en GitHub), pero por lo que se ve no han llegado a encontrar una solución que satisfaga a todo el mundo porque no lo han incluido en el código principal. Rebuscando un poco entre los comentarios he encontrado una solución que, por lo menos para PHP, hace lo que yo quiero. Se trata de añadir en la carpeta del plugin un fichero CustomExec.py con un código que chequea el resultado de la compilación y cierra la ventana del build si no hay errores.

Para vuestra comodidad y la del Koas del futuro, aquí está la versión de SublimeOnSaveBuild que oculta la ventana si no hay errores. Solamente hay que ir a la carpeta de plugins de Sublime Text 3 (Preferences-> Browse Packages…) y descomprimirlo ahí.

Un “gadget” mágico: el Slope de Dekke

Normalmente uso el iPad como monitor adicional para trabajar, y lo pongo en horizontal usando el soporte Smart Cover. Pero el iPad lo compré en 2009, y después de siete años de uso el Smart Cover está ya hecho unos zorros.

Así que me puse a buscar soporte para iPad, y encontré el Slope. Tiene un diseño muy sencillo y el color encima pegaba con el del iPad, pero lo mejor de todo es el sistema de agarre que tiene: una especie de microporos (al parecer inspirado en las patas de las lagartijas) que hace que se pegue a la mesa y que atrape cualquier cosa que se le ponga, manteniendo un agarre brutal y sin ningún tipo de pegamento.

Lo recomiendo 100%, es sin duda el mejor soporte que he visto o usado jamás. Y además vale para sujetar cualquier cosa, no solamente tabletas.

Abrir fichero winmail.dat con Linux

Hoy me ha llegado un correo con un adjunto winmail.dat. Se trata de un formato que utiliza Microsoft Outlook para el reenvío de emails, y para abrirlo en Linux se utiliza el programa tnef.

sudo apt-get install tnef

Así que si recibimos un fichero de estos no tenemos más que guardarlo en una carpeta y luego, a través de la línea de comandos, ir a esa carpeta y ejecutar

tnef winmail.dat