martes, 6 de septiembre de 2016

Hacer una captura de pantalla en Tasker

Últimamente he estado creando algunos perfiles en la maravillosa aplicación Tasker. Hay algo que me ha extrañado y es que por sí sóla no puede realizar capturas de pantalla. Para solucionar el problema hay que recurrir al comando screencap. La sintaxis es:

screencap -p /sdcard/[nombredelfichero].png

Después del parámetro -p se escribe la ruta del fichero destino.

Existen también otras opciones disponibles en la ayuda:

shell:/ $ screencap -h
usage: screencap [-hp] [-d display-id] [FILENAME]
   -h: this message
   -p: save the file as a png.
   -j: save the file as a jpeg.
   -d: specify the display id to capture, default 0.
If FILENAME ends with .png it will be saved as a png.

If FILENAME is not given, the results will be printed to stdout.

Esta es la acción que se debe de incluir en una tarea de Tasker para que nos cree la captura:


Es importante tener en cuenta que para que funcione tenemos que activar la casilla de "usar root" de lo contrario no funcionará. Como resultado nos guardará la captura en la sd interna.

viernes, 4 de marzo de 2016

Configurando un servidor Ubuntu en una máquina huésped en Virtual Box

Hola a todos,

me encuentro problema de quedar montarme un servidor en Ubuntu en un disco duro externo USB para poder trastear entre varios ordenadores sin tener que configurar nada. Para ello voy a hacer uso del popular programa de virtualización Virtual Box.

Me disponía a instalar la guest tools de Virtual Box vía ssh cuando me he percatado que no era posible. No me había percatado que estaba accediendo a Internet en la máquina virtual utilizando la interfaz NAT, la cual no permite acceder desde la máquina anfitriona (un Mac OS X en este caso).

Tras buscar en la documentación oficial no encontraba una solución convincente. Hasta que googleando un poco me he encontrado un blog con una solución.

La idea es mantener la red NAT para que nuestro servidor Ubuntu pueda seguir conectándose a Internet. Adicionalmente vamos a crear una red host only que nos va a permitir acceder a nuestra máquina virtual (menú de preferencias en Virtual Box).


Ahora en nuestra máquina virtual (el servidor Ubuntu) añadimos una segunda interfaz de red. 



Una vez configuradas las dos interfaces arrancamos nuestra máquina virtual Ubuntu. La interfaz host only está desactivada por defecto así que tenemos que modificar nuestro fichero /etc/network/interfaces para que queda de la siguiente forma:

 This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo

iface lo inet loopback

# The primary network interface
auto enp0s3
iface enp0s3 inet dhcp

# Host only network
auto enp0s8
iface enp0s8 inet static
address 192.168.56.5
netmask 255.255.255.0
network 192.168.56.0
broadcast 192.168.56.255

La interfaz enp0s3 nos la ha creado Virtual Box para que nuestra máquina acceda a Internet mediante NAT. Por otra parte la interfaz enp0s8 es nuestra interfaz host only que nos permite acceder a la máquina huésped. Le vamos a asignar una ip de forma estática aunque podría hacerse también de forma dinámica de forma similar a la interfaz enp0s3.

Por último para acceder cómodamente por ssh a nuestra máquina huésped sin tener que memorizar la ip podemos editar nuestro fichero /etc/hosts en la máquina anfitriona (Mac) añadiendo las siguiente s líneas:

# Ubuntu guest machine
192.168.56.5 ubuntu

De esta forma desde Mac OS X escribiendo en el terminal:

ssh ubuntu 

podremos acceder por ssh a nuestra máquina huésped.

miércoles, 2 de marzo de 2016

Tasker: automatizando "likes" en la red social Tinder

Retomamos la serie de mini-tutoriales para Tasker con un tutorial divertido para la red social Tinder. Tinder te muestra perfiles de personas cerca de la zona donde te encuentras a través de geolocalización. Puedes hacer "likes" sobre los perfiles que te gusten. Si el "like" es mutuo entonces puedes hablar con la persona que te interese.

Foto de Tinder en la Play Store
Un forma de acelerar este proceso es hacer "like" a todos los perfiles, así que si en el caso de que la otra persona te hiciera el "like" mutuo se te mostrará. De esta forma evitas perder el tiempo haciendo "like" en perfiles con los que nunca tendrás una coincidencia. En todo caso si tienes una coincidencia con alguien que no interesa siempre puedes cancelar la compatibilidad en el momento que quieras.

En este blog se muestra un tutorial en inglés utilizando Tasker. Es preciso tener el dispositivo rooteado.

Primera creamos un perfil en Tasker en aplicación y seleccionamos la aplicación Tinder (previamente tiene que estar instalada). Creamos una nueva tarea que se active cuando abramos la aplicación.

Tenemos primero que conocer las coordenadas en la pantalla del botón "like". Para ello tenemos que activar las opciones de desarrollador de Android. Una vez activamos el menú de desarrollador tenemos que entrar en el mismo y activar la opción "ubicación del puntero". Se nos mostrará en la parte superior un menú con las coordenadas de cada click que hacemos en la pantalla. Tenemos que hacer ahora clic en el botón "like" (el corazón verde en la imagen) y guardar las coordenadas x e y.

Ahora vamos a crear una acción en Tasker que nos reproduzca un click en el botón "like" de tinder .
En acción -> código -> ejecutar consola introducimos el siguiente comando:

input tap x y

Donde x e y son las coordenadas que hemos identificado previamente. Tenemos que activar la opción usar root para que funcione. En nuestro ejemplo las coordenadas capturadas son respectivamente 880 y 1910. Añadimos además 1 segundo de desfase para que le de tiempo al sistema a cargar al perfil antes de reproducir un clic en el botón "like".




Creamos una segunda tarea que nos servirá para iterar haciendo click mientras la pantalla de la aplicación Tinder se encuentra abierta. Creamos una nueva acción en tareas -> ir a acción. Añadimos un salto a la acción anterior (acción 1) si se cumple la condición que tinder se encuentra abierto. Para eso capturamos la variable de sistema %WIN y en el caso de que tenga el valor "Tinder" es que estamos en Tinder.


En Youtube puede verse el resultado funcionando en un script similar al que hemos utilizado en este tutorial: https://www.youtube.com/watch?v=6nhMW3O_vzo.






viernes, 19 de febrero de 2016

Activar los datos o no dependiendo del proveedor con Tasker

Hola a todos
en esta entrada voy a mostrar una pequeña receta para activar los datos en un dispositivo dependiendo del proveedor de telefonía gracias a Tasker

Pongámonos en el caso de que tenemos un dispositivo y alternamos entre dos SIM, una con la que tenemos una tarifa de datos y la otra o no. En un descuido al cambiar de SIM se nos podrían activar los datos  en la tarifa donde no tenemos la tarifa plana con los costes innecesarios que acarrearía. 

Empezamos en la pestaña perfiles, creamos uno como Estado, seleccionamos en categoría Estado Variable y Editar Estado.

Vamos a añadir dos condiciones: una condición para que en el caso de que la SIM activa sea "Yoigo" se active ese perfil.

Además añadimos una doble condición para que sólo se active el perfil en el caso de que no nos encontremos en una red Wifi. 


Ahora añadimos una tarea para que se nos activen los datos móviles en el caso de que este perfil esté activo. Vamos a utilizar el módulo Secure Settings que fue presentado anteriormente. Esta vez activaremos la opción Mobile Data con el valor "enabled".



Con este sencillo perfil activaremos los datos de nuestro terminal en el caso de que el dispositivo tenga la SIM con la tarifa plana.

Saludos


jueves, 18 de febrero de 2016

Tasker: el automatizador total de Android

Hola,

voy a relanzar este blog con la idea de hablar con temas de tecnología y programación aprovechando que ya he finalizado mi doctorado en informática.

Uno de los últimos temas en los que me he interesado es Tasker, una app de pago para Android que permite automatizar tareas a bajo nivel en dispositivos Android. 

Tasker puede ejecutar tareas (un conjunto de acciones) dependiendo si se activa un contexto (nos encontramos en una ubicación determinada, estamos en un rango horario determinado, se ejecuta una aplicación determinada, etc.).

Los contextos se definen en la pestaña de perfiles de aplicación. A modo de ejemplo mostramos cómo crear una perfil que nos active el modo avión en el terminal desde las 0:00 a las 7:00. El primer paso es crear el perfil en la pestaña con el mismo nombre.


Un perfil puede ejecutar una tarea cuando se activa y también cuando se desactiva. En este caso cuando se active nuestro contexto (estar en la franja horario de 0:00 a 7:00) ejecutaremos la tarea Modo Avión On.

Tasker nos da a elegir entre múltiples opciones para crear una tarea (cambiar un ajuste del sistema, ejecutar aplicaciones, y un largo etc.). En este caso nos encontramos con el problema de que la activación del modo avión en las versiones posteriores a Kit Kat (4.4.4) no se puede activar de forma automática, deda que estas aplicaciones están protegidas. En este caso tenemos que recurrir a un plugin externos llamado Secure Settings y tenemos que tener el dispositivo rooteado

Volviendo al ejemplo dentro de la tarea Modo Avión On vamos a definir una acción que llama al plug-in Secure Setting, dándole la orden de que active el modo avión como muestra la imagen.


Una vez defina la tarea nuestro dispositivo entrará en modo avión en el rango horario seleccionado.










Enviar automáticamente libros a Kindle desde Finder con Automator (Mac OSX)

El popular lector de libros Kindle nos permite el envío de nuestros libros a nuestro dispositivo por correo electrónico. De acuerdo con la d...