Si se te ocurre... Hazlo!!!

Auto comprobador de ios 7 con SIKULI

Auto comprobador de ios 7 con SIKULI

Hoy es dia 18 de Septiembre de 2013 y dicen las malas lenguas :) que IOS7 sale hoy. He mirado hace un rato y no era asi, como no tengo muchas ganas de quedarme aqui embobado apretando un botón para ver si hay o no update he recurrido a mi imaginación.

Hace ya tiempo, trabaje con un proyecto muy interesante llamado SIKULI que es un IDE de programacion PERO basado en imágenes, si si, como suena, tu le dices, en esta ventana… tomas una captura de la misma, haces clic aquí… y haces captura del boton. A eso le han sumado un simple lenguaje de programación pero, si ya estas intentando pasar del articulo, no te asustes que es un entorno realmente simple, tanto como:

1
2
if exist(AQUI_VA_UNA_IMAGEN):
click(Aqui_va_la_imagen_del_boton)

El codigo se parece bastante a es python (Python scripting is well supported by the SikuliX-IDE (more scripting languages to come)), asi que es bien sencillo. Ahora que ya sabemos que usar, simplemente vamos a añadir el resto de ingredientes: el iTunes y, en mi caso, el VLC. Te preguntarás ¿¿porque?? Pues bien, por varias razones: no tengo musica a mano solo un capitulo de True Blood en formato no iTunes :)

Para preparar bien el entorno, dejamos abierto el VLC a un lado y el itunes con la ventana de informacion del telefono abierta. Tened en cuenta que la app podría estar cerrada y nosostros programar que se abra, pero he querido hacerlo en 2 min… y lo he conseguido. Al tema…

Instalamos sikuli: sikuli-setup.jar (La web es: http://www.sikuli.org)

Una vez instalado abrimos itunes y lo dejamos con la parte donde aparece el botón “buscar actualización” visible

Abrimos VLC, cargamos una peli o cancion o lo que queramos

Insisto, nada de esto es necesario. Se podria hacer desde SIKULI, solo lo hago asi por ganar tiempo.

Y con los ingredientes, imagino que ya sabeis cual es el plan :)

Si le damos al botón “buscar update” y nos sale el cartelito de que no hay, nada.

Si no sale ese cartel, se pone a reproducir el capitulo de True Blood a todo volumen para avisarme.

Tiene que ser un bucle, mientras salga el cartelito de que no hay update… debe volver a ejecutarse (Hay que meter una espera de 10seg por lo menos para no agobiar a nadie :) )

y comenzamos a programar en SIKULI… a la izq tenemos algunas de las ordenes basicas, podeis jugar con la orden click para ver como es el sistema de las capturas… para probar las creaciones, hay una opcion que es reproducir a camara lenta.

Si quereis complicaros, teneis la docu en la pagina oficial…

Este es el codigo que estoy usando… la verdad no se si funciona completamente, al menos hasta que salga la actualización :) SI FUNCIONA, a la 3era ejecucion seguida he visto que continuaba lanzado y me fui a cenar. No pasaron ni dos minutos y True blood comenzo a sonar a todo volumen… BINGO!!! update detectado :)

 

Script de sikuli

Script de sikuli

 

Aunque se pueden guardar los scripts e incluso lanzarlos desde la linea de comandos, en este caso no os lo voy a facilitar… es demasiado simplón y uno tiene su amor propio… de hecho lo publico porque me parece algo curioso y que seguro no sabíais :)

Ahora ya teneis todo… a Sikuliar (o como se diga) que yo me voy a cenar tranquilo sabiendo que si sale el update el ordenador comenzará a reproducir el capitulo a todo volumen!!

PD: En la seccion de ejemplos de la web hay verdaderas obras de arte hechas con sikuli… desde un script para jugar al bejeweled hasta descargas masivas de ficheros… y un sinfín de cosas mas… insisto, probadlo que no os arrepentiréis.

 

read more

MiniTip: Buscar con find desde una fecha y hora concretas

Hoy voy a postear un minitip que pensé que conocia más gente pero estoy viendo que no es así: La forma de buscar con find, desde una fecha u hora determinadas.

Una de las carencias que nos podemos encontrar con la orden find en los sistmemas *nix (Linux y OsX incluidos) es que si nos disponemos a buscar desde una fecha determinada nos llevaremos un chasco puesto que comienza a contar dias atrás desde las 00h no desde la hora actual. Más grave aún, si queremos hacerlo desde una hora determinada ya que no nos los permite de niguna manera… bueno, miento, hay una que si nos permite y con la exactitud que queramos incluso en segundos.

Para realizarlo, hay que hacer algun paso extra pero como vereis ahora, son muy sencillos. Estos son los pasos que vamos a realizar:

- Creamos un fichero con la fecha y hora desde la que queramos buscar

- Invocamos el find con el argumento -newer (A este argumento hay que pasarle un fichero del cual tomará como referencia minima, la hora y la fecha que tenga)

Así pues con este paso extra, podremos decirle desde cuando queremos buscar y ahora que ya sabemos lo que vamos a hacer… hagámoslo!!

 

 

1
2
3
4
# Primero creamos el fichero pasando el tiempo en formato timestamp (Año mes dia hora minutos . segundos)
touch -t 201309021810.00 fichero_ejemplo
# Y ahora le pasamos el parámetro -newer a find con el fichero creado como punto temporal
find . -type f -newer fichero_ejemplo # Añadiendo -type f, solo mostrará ficheros

Si por el contrario, lo que queremos es que los resultados sean anteriores a la fecha dada, es decir, más viejos, no, no es older, no existe un argumento older, que seria lo lógico sino que habria que negar el argumento -newer, y ¿como se negaba en informática? con el signo de cerrar admiración “!”. Veamos el ejemplo contrario:

1
2
# Para buscar ficheros más viejos que la fecha y horas facilitadas en el fichero seria:
find . -type f ! -newer fichero_ejemplo

Y ya está… con esto encontrareis cualquier cosa :)

read more

MiniTip: Capturar imagen de webs completas (opción nativa Firefox)

MiniTip: Capturar imagen de webs completas (opción nativa Firefox)

Extremamos una nueva sección: MiniTips. Pequeños trucos para grandes soluciones (Que bonito me ha quedado :) ) y para el primero, un truco muy bueno.

En ocasiones tienes que enviar una captura de una web a alguien: Del Enterprise Manager de Oracle, del cloud control, una tabla enorme, una gráfica…etc etc y te encuentras con que esta no entra en la pantalla así que hasta ahora tenias 2 opciones: Hacer más de una captura y enviarlas (Pegadas en una o por separado, en ambos casos mas trabajo) o buscar formas alternativas de extraer la información (Normalmente, mas vueltas y, por tanto, mas trabajo).

Pues nada, a partir de ahora, con esta función NATIVA de Firefox (Eso es, sin plugins, sin extensiones, sin programas de terceros… nada, solo firefox) podremos hacer una captura de la pagina completa, sea lo larga que sea, ¿como? Pues así de fácil, estos son los pasos:

 

El primero de todos es, obviamente, abrir la URL que queramos capturar completa, en el Firefox.

Acto seguido vamos al menú y activamos la barra de desarrolladores en el menú “desarrolladores web”, tal y como vemos en la siguiente captura:

 

Activar la barra de desarrolladores

Activar la barra de desarrolladores

 

 

Tras habilitarla, veremos que, en la parte inferior de la pantalla, nos ha aparecido una barrita oscura donde podremos escribir. Esta es la barra de desarrolladores, desde donde podremos interactuar a distintos niveles con el sitio que tengamos en pantalla aunque en este nivel, nos quedaremos en el screenshot de la página completa.

En este recuadro veremos que nada más comenzar a escribir, nos sugerirá el autocompletado de la orden que estemos escribiendo y lo mejor de todo es que de las opciones de la orden también hay sugerencias.

Autocompletado en la barra de desarrolladores

Autocompletado en la barra de desarrolladores

 

De esta forma, escribiremos la siguiente orden para que haga un screenshot o captura de la web completa (Completa es completa, es decir, desde el primer pixel hasta el ultimo que no podemos ver porque hay que usar el scroll) que estamos viendo y la almacene en el portapapeles y muy importante: sin que salgan las barras ni botones del navegador, es decir, solamente la web completa, lista para “pegar” en nuestro editor de imágenes, correo..etc

 

1
screenshot --clipboard --fullpage

Cabe destacar, que podemos guardarla directamente en un archivo, realizar la captura con retardo…etc pero eso os lo dejo a vosotros, para que tengáis con lo que cacharrear ;)

 

read more

Abrir Terminal aqui: Función para Finder que abre Terminal o iTerm2 en la carpeta actual

Abrir Terminal aqui: Función para Finder que abre Terminal o iTerm2 en la carpeta actual

Este script es ideal para los que quieran comenzar a hacer scripts sencillos en applescript ya que realiza tareas bastante comunes como obtener el path de la ventana del finder, comprobar si existe una app mediante el bundle identifier…etc Además que es de lo más útil , todo sea dicho.

El script está pensado para tener un enlace en la barra de herramientas del Finder, para lo que hay que arrastrarlo de forma de manual a él.

Una vez instalado en la Finder Toolbar, nos permitirá abrir la terminal en la misma carpeta donde esté situada la ventana del Finder donde pulsemos sobre el icono. Es mucho más sencillo de lo que parece:

Si en el Finder estas en la carpeta /Users/MiUsuario/Downloads y pulsas el boton que enlaza al script, abriras la termina en esa misma carpeta, no en la carpeta por defecto que se abre siempre en al terminal.

Ahora bien, he agregado una comprobación mas para que, si tenemos instalado en el equipo la aplicación iTerm2, nos abra esta en lugar de la Terminal de OSX.

Hay que decir también que applescript no es un lenguaje más rápido del mundo y si estamos en un Mac bastante viejo y somos unos fanaticos de la inmediated, es posible modificar el script para que nos lance directamente la app que queramos sin realizar ninguna otra comprobación, pero eso os lo dejo a vuestro gusto.

A continuación os dejo el script “tal cual” aunque para que sea realmente útil, es necesario convertirlo en app y llevárselo a la barra del Finder. Por esta razón os doy dos opciones, escoged la que queráis :) :

1.- Bajar la version compilada (enlace al final del articulo)

2.- Copiar el código (mostrado mas abajo) y compilarlo como aplicación.

Después de haber seguido cualquiera de las dos, mi consejo es que os lleveis el “.app” a la carpeta aplicaciones (No porque solo funcione desde allí sino porque será más fácil que no se elimine por error o se mueva) y una vez allí, arrastrarla a la barra superior del Finder, tal y como vemos en la siguiente captura:

 

Se arrastra la app a la Toolbar del finder

 

Se arrastra la app a la Toolbar del finder

Este es el script:
*NOTA: El coloreado del código no es correcto porque applescript no está soportado por el plugin de wordpress y lo he marcado como ActionScript3 pero esto solo afecta a los colores para mostrarlo en WEB.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(*
Abrir Terminal aqui
por Alvaro Anaya
www.archivoslog.es
Version 0.1
*)

-- Lo primero es recoger la direcc de la ventana del Finder
tell application "Finder" to set rutaProcesada to (folder of the front window) as alias
-- Ahora comprobamos si esta instalado el iTerm2 (con el bundle identifier es mas fiable)
try
tell application "Finder" to get application file id "com.googlecode.iterm2"
set existeApp to true
on error
set existeApp to false
end try
-- Ahora si existe, abrimos la ruta en iTerm, de lo contrario, en Terminal
if existeApp is true then
tell application "iTerm"
open rutaProcesada
activate
end tell
else
tell application "Terminal"
open rutaProcesada
activate
end tell
end if

Por supuesto, el icono de la app es modificable al 100%. Por ejemplo, si tomamos el de la misma Terminal, el aspecto que muestra la barra del finder mejora bastante como podemos ver a continuación aunque si tenemos un icono de aspecto similar al de los otros botones de la barra del finder, quedaria mucho mejor, sin duda:

Finder Toolbar con "Abrir terminal aquí" y el icono de Terminal.app

 

Finder Toolbar con “Abrir terminal aquí” y el icono de Terminal.app

Y como siempre… esta es la verison “Todo hecho” para la gente sin tiempo/ganas de “cacharrear”. Es el enlace al script ya compilado como .app y con el icono de la terminal. Solo es necesario llevarlo a la carpeta “/Aplicaciones” y desde allí, arrastrarlo a la barra del Finder:

Enlace a “Abrir Terminal Aqui”:

Descargar app compilada

read more

MacPorts Unable to execute port: can’t read “build.cmd” (Xcode cmd tools)

MacPorts Unable to execute port: can’t read “build.cmd” (Xcode cmd tools)

Hay que reconocer que para los que venimos de Linux, tener a nuestra disposición los repositorios de MACPORTS en OSX es una gran comodidad. Por ello, como no podia ser de otra forma, he ido instalando, en mi viejo portatil, las herramientas primordiales para trabajar y mis pequeños proyectos y entre ellas los MacPorts y el Xcode.

La verdad es que no se si ha sido por no hacerlo en orden o si es porque las nuevas versiones de Xcode, al venir por la tienda de Apple en un formato diferente, no instalan todas las tools que antes estaban en el paquete, pero el caso es que, tras un tiempo avisando de que podría tener problemas con algún paquete (Warning: The Command Line Tools for Xcode don’t appear to be installed; most ports will likely fail to build.), me encontré con que la amenaza se materializó a la hora de ponerme a hacer un script en python.

Pensé, oye, voy a instalar Geany, que hace mucho que no lo uso y me dispuse a utilizar la comodidad de los macports cuando me encontré con el problema:

1
2
3
4
5
alvaro@mb1 [/SCRIPTS/python]$ sudo port install geany
Warning: The Command Line Tools for Xcode don't appear to be installed; most ports will likely fail to build.
Warning: See http://guide.macports.org/chunked/installing.xcode.html for more information.
---> Computing dependencies for geanyError: Unable to execute port: can'
t read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?
alvaro@mb1 [/SCRIPTS/python]$

El caso es que en este momento ya tenia instalado el Xcode pero supongo que haberlo hecho después de instalar y usar macports me esta pasando factura. Así pues vamos a configurarlo para que detecte las herramientas necesarias para compilar.

Lo primero que hice fue actualizar los macports:

1
2
3
4
5
6
alvaro@mb1 [/SCRIPTS/python]$ sudo port selfupdate
---> Updating MacPorts base sources using rsync
MacPorts base version 2.1.3 installed,
MacPorts base version 2.1.3 downloaded.
---> Updating the ports tree
---> MacPorts base is already the latest version

The ports tree has been updated. To upgrade your installed ports, you should run
port upgrade outdated

Como no, tenia que probar ‘por si acaso’ pero el resultado seguía siendo el mismo, protestaba porque no encontraba las herramientas de compilar así que reemprendí la configuración necesaria ya que hoy era el editor Genie y podía prescindir de él pero mañana podría ser algo más urgente o importante y estaba claro que me iba a arrepentir de no haber seguido estos pasos hoy.

Asi que , manos a la obra:

Primero, abrir Xcode y seguir estos pasos:

Menu Superior –> Xcode –> Open Developer Tools –> More Developer tools

developerTools

Esto nos llevará a una página de apple donde lo primero que nos encontraremos será la necesidad de validar la entrada al sitio con nuestro appleID de desarrolladores (Tranquilos, la cuenta gratuita de desarrollador vale, no es necesario estar dado de alta en ninguno de los programas de desarrollador de pago).

Una vez allí tendremos que localizar el paquete que necesitamos para nuestra versión de OSX (y el que más actualizado esté) En mi caso ha sido fácil puesto que era el primero. Esto me hace pensar que los ordena según desde donde hayas llegado a esta web (Entiendo que la versión de Xcode) porque en este caso estoy desde Lion y hay paquetes mas nuevos de Mountain Lion, que deberían estar delante si solo se ordenase por fecha/version.

Tras haber localizado el paquete necesario para mi sistema, solo queda bajarlo:

Este el paquete en mi caso:

dscription

Al bajarlo, vemos que el instalador esta automatizado en un paquete estandar, así que solo nos queda hacer doble clic sobre el para que se inicie el clásico instalador.

Insisto, en mi caso es para un sistema Lion pero esto depende de la versión de OSX que tengamos.

 

install

Y una vez terminado ya podremos hacer uso de MacPorts sin problemas de que no encuentre las tools de Xcode que necesita.

Como nota adicional:

En el caso de geany, hay instrucciones diferentes a la inmensa mayoría de los macports. Son optativas pero hacen que luzca mejor con un par de pasos extra que, en mi caso, no han funcionado por un problema de incompatibilidades pero eso, es otro articulo :)

Sea como sea, os demo el enlace official pro si queries prober suerte, aunque repito, solamente afecta a temas estéticos:

http://wiki.geany.org/howtos/osx/running

Por mi parte, aquí termino, que por hoy, ya está bien :)

read more
_