Mauro Parra-Miranda
posted at
CSS DockX
Perfecto para anexarlo a algún proyecto donde se requiera un dashboard: http://michaelhue.com/cssdock
Mauro Parra-Miranda
posted at
Hackintosh!
Esta increible este articulo... Crear una hackingtosh con Lion.
Mauro Parra-Miranda
posted at
Una nueva burbuja..
En efecto, cómo le he comentado a mucha gente, SV ve una nueva burbuja, Microsoft va a caer más rápido y otras cosas... lean el chisme completo aca.
Mauro Parra-Miranda
posted at
El futuro, hoy.
Me encanto este video de Microsoft acerca del futuro en cómputo. ¡Gran integración!
Mauro Parra-Miranda
posted at
The Open Enchilada Project S04E02 - Godinez Universitarios
En esta ocasión estuvimos visitando la residencia del señor Gunnar Wolf, famoso miembro de la comunidad de Software libre en México, académico de la UNAM y Debian Developer. Nos presentó su libro “Construcción Colaborativa del Conocimiento” (post en su blog aquí).
Estuvimos platicando con el acerca del libro, del voto electrónico, de los móviles (Gunnar tiene un telefono basado en openmoko). Platicamos también de Nokia, y su evento (el cual pueden ver aquí).
Anexamos que … extrañamos a Mike, quien fué a Chetumal.
A continuación el video:
O pueden encontrar el audio unicamente en openenchilada.
Mauro Parra-Miranda
posted at
Fin de una epoca: Linko
En unas horas presentaré mi renuncia a mi trabajo de "diario", en una compañia llamada Linko. En el tiempo que estuve ahi, supe hacerlo mi casa. En el futuro colaborare con ellos de forma externa, como proveedor remoto.
¡Suerte a todos!
¡Suerte a todos!
Mauro Parra-Miranda
posted at
Appcelerator @ FI-UNAM
Visite FI-UNAM en dias anteriores para platicar un poco de Desarrollo de móviles, innovación en los mismos, asi como presentar problemas reales tales como generar un servidor de ads. Aqui los alumnos en el auditorio.
Después Radamantis dió un par de conferencias, una de Introducción a Titanium Appcelerator, y otra un poco más avanzada de tu primera aplicación.
Mi presentación:
Después Radamantis dió un par de conferencias, una de Introducción a Titanium Appcelerator, y otra un poco más avanzada de tu primera aplicación.
Mi presentación:
Iterativo e Incremental
posted at
[Archlinux] Acelerando descargas de pacman
En la misma de wiki de Archlinux hay muchas sugerencias para acelerar la descarga de paquetes con pacman, entre ellas están: Utilizar aria2 Powerpill El script pacget Reflector para obtener los repositorios mas actuales y rapidos y otras herramientas como snarf o axel Con el tiempo probé varias de esas opciones, pero la que mejores…Más
Francisco J. Arias
posted at
NowPlaying con Clementine+Kopete parte II: Condiciones
Una desventaja de nuestro script actual es que si Clementine no se está ejecutando entonces tendremos el mensaje "Now Playing" en blanco durante toda la sesión de Kopete. Si lo cambiamos manualmente desde Kopete, el crontab se encargará de ponerlo de nuevo en el estado sin canción.
Para esto introduciremos el uso de condiciones en nuestro script; por lo que si Clementine se está ejecutando entonces haremos lo que ya sabemos para capturar el nombre de artista y canción. En caso contrario, haremos nada. Así quedará disponible nuevamente para cambiar nuestro estado de Kopete a lo que necesitemos. Manos a la obra:
Primero utilizaremos el comando qdbus para saber si Clementine se está ejecutando o no:
La variable isClementineRunning puede contener dos posibles valores: una cadena en blanco si Clementine no se está ejecutando y una cadena no-vacía si lo está. Ahora condicionamos nuestro script según esos valores:
Esta condición evalúa SI la cadena isClementineRunning NO está vacía ENTONCES capturamos el nombre de artista, etc...
Si la cadena está vacía (Clementine no está ejecutándose) entonces no pasará nada.
Pero ¿qué sucede si Clementine se está ejecutando pero ninguna canción se está reproduciendo? Para resolver esto podemos volver a condicionar. Ahora consultamos por el índice de la canción actual el cual puede tomar varios valores: -1 si no se está reproduciendo ninguna canción o bien un valor positivo en caso contrario. Por lo que agregamos ahora una nueva variable y una nueva condición:
Y eso es todo! Puedes descargar el script final desde aquí.
Para esto introduciremos el uso de condiciones en nuestro script; por lo que si Clementine se está ejecutando entonces haremos lo que ya sabemos para capturar el nombre de artista y canción. En caso contrario, haremos nada. Así quedará disponible nuevamente para cambiar nuestro estado de Kopete a lo que necesitemos. Manos a la obra:
Primero utilizaremos el comando qdbus para saber si Clementine se está ejecutando o no:
isClementineRunning=$(/usr/bin/qdbus | grep clementine)
La variable isClementineRunning puede contener dos posibles valores: una cadena en blanco si Clementine no se está ejecutando y una cadena no-vacía si lo está. Ahora condicionamos nuestro script según esos valores:
if [ "$isClementineRunning" != "" ]
then
#capturamos el nombre de artista...
currentTrackIndex=$(....
fi
Esta condición evalúa SI la cadena isClementineRunning NO está vacía ENTONCES capturamos el nombre de artista, etc...
Si la cadena está vacía (Clementine no está ejecutándose) entonces no pasará nada.
Pero ¿qué sucede si Clementine se está ejecutando pero ninguna canción se está reproduciendo? Para resolver esto podemos volver a condicionar. Ahora consultamos por el índice de la canción actual el cual puede tomar varios valores: -1 si no se está reproduciendo ninguna canción o bien un valor positivo en caso contrario. Por lo que agregamos ahora una nueva variable y una nueva condición:
isClementinePlaying=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack)
if [ $isClementinePlaying != -1 ]
then
#obtenemos el nombre de artista...
currentTrackIndex=$...
fi
Y eso es todo! Puedes descargar el script final desde aquí.
Francisco J. Arias
posted at
Cómo poner "Now playing" con Clementine+Kopete
Hasta hace un par de meses mi reproductor de música favorito en KDE era Amarok. Eso, hasta que me encontré con Clementine, el cuál posee una interfaz mucho más simple para la navegación de archivos que para mí fué lo fundamental. Por otra parte, mi aplicación de mensajería favorita es Kopete. Amarok y Kopete se llevan muy bien puesto que el último incluye la función "Now playing" para varios reproductores salvo mi Clementine :-(
Pero no todo está perdido! Si ponemos en un recipiente un poquito de BASH+QDBUS+Cron podemos hacer nuestro propio script "Now Playing" para establecer el mensaje de estado de Kopete con la canción y el artista que actualmente está sonando en Clementine.
Manos a la obra:
Primero creamos nuestro script en el directorio bin de nuestro home (por inercia, elección y formación utilizo nombres de archivos y variables en inglés):
Siendo pico el editor de texto que más utilizo. Puedes utilizar tu preferido (Kate/KWrite/Vi...).
Básicamente (y muy básicamente puesto que estoy lejos de ser un experto en BASH scripting) nuestro script obtendrá la canción y el artista que actualmente está reproduciendo Clementine, luego los pondrá en el mensaje de estado de Kopete adornado con la frase "Now playing...".
A continuación pegan el siguiente código dentro del archivo, he agregado comentarios sobre qué hace cada línea:
Guardamos los cambios y cerramos nuestro editor de texto.
Le otorgamos permisos de ejecución a nuestro script:
Es tiempo de probar nuestro script: ejecutamos Clementine con alguna canción y abrimos Kopete.
En el terminal ejecutamos nuestro script:
Chequeamos que Kopete ha realizado correctamente el cambio de estado:

Finalmente necesitamos que nuestro script se ejecute cada cierto intervalo de tiempo para asegurarnos que mostrará la información lo más actualizada posible sobre lo que escuchamos. Para eso utilizaremos el gestor de tareas de Linux: Cron.
Con el siguiente comando abriremos el editor del Cron:
Una vez ahí, presionamos la tecla i para iniciar la inserción de texto y pondremos la siguiente línea:
Esta línea quiere decir que ejecutaremos nuestro script cada minuto, de cada hora, de cada día, etc...
Para salir del editor presionamos la tecla ESC y luego ponemos : x y presionamos enter.
Para comprobar que hemos guardado los cambios ponemos:
Si no es así, volver sobre el paso anterior hasta que resulte! (Lo sé, ese editor no es de los más intuitivos).
Cuando resulte habremos terminado!
Suerte!
Cualquier pregunta con respecto a esto no duden en enviarla como comentario.
Note: I can answer in english as well, so if you know what it is about everything here but although of that you may need some help, so please don't hesitate and leave a comment ;-)
Pero no todo está perdido! Si ponemos en un recipiente un poquito de BASH+QDBUS+Cron podemos hacer nuestro propio script "Now Playing" para establecer el mensaje de estado de Kopete con la canción y el artista que actualmente está sonando en Clementine.
Manos a la obra:
Primero creamos nuestro script en el directorio bin de nuestro home (por inercia, elección y formación utilizo nombres de archivos y variables en inglés):
pico ~/bin/ClementineNowPlaying.sh
Siendo pico el editor de texto que más utilizo. Puedes utilizar tu preferido (Kate/KWrite/Vi...).
Básicamente (y muy básicamente puesto que estoy lejos de ser un experto en BASH scripting) nuestro script obtendrá la canción y el artista que actualmente está reproduciendo Clementine, luego los pondrá en el mensaje de estado de Kopete adornado con la frase "Now playing...".
A continuación pegan el siguiente código dentro del archivo, he agregado comentarios sobre qué hace cada línea:
#!/bin/bash
#Primero obtenemos el índice de la pista que actualmente esta sonando en Clementine
currentTrackIndex=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetCurrentTrack)
#Luego utilizamos ese índice para obtener toda la información de la pista actual
#Con el comando grep nos quedamos sólo la línea que contiene el nombre del artista, esta línea es por ejemplo artist: Bon Jovi
artist=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetMetadata $currentTrackIndex | grep artist)
#Se aplica el mismo procedimiento para el título, esta variable quedará de la forma title: Always
title=$(/usr/bin/qdbus org.mpris.clementine /TrackList org.freedesktop.MediaPlayer.GetMetadata $currentTrackIndex | grep title)
#Luego de la cadena original (ej: "artist: Bon Jovi") queremos borrar la subcadena "artist: " y eso lo hacemos así:
artist=${artist/artist: /}
#Lo mismo para el título:
title=${title/title: /}
#Finalmente enviamos la frase con las variables al mensaje de estado de Kopete:
/usr/bin/qdbus org.kde.kopete /Kopete org.kde.Kopete.setStatusMessage "Now playing $title by $artist"
Guardamos los cambios y cerramos nuestro editor de texto.
Le otorgamos permisos de ejecución a nuestro script:
chmod +x ~/bin/ClementineNowPlaying.sh
Es tiempo de probar nuestro script: ejecutamos Clementine con alguna canción y abrimos Kopete.
En el terminal ejecutamos nuestro script:
./bin/ClementineNowPlaying.sh
Chequeamos que Kopete ha realizado correctamente el cambio de estado:

Finalmente necesitamos que nuestro script se ejecute cada cierto intervalo de tiempo para asegurarnos que mostrará la información lo más actualizada posible sobre lo que escuchamos. Para eso utilizaremos el gestor de tareas de Linux: Cron.
Con el siguiente comando abriremos el editor del Cron:
crontab -e
Una vez ahí, presionamos la tecla i para iniciar la inserción de texto y pondremos la siguiente línea:
* * * * * DISPLAY=:0.0 /home/francisco/bin/ClementineNowPlaying.sh &>/dev/null
Esta línea quiere decir que ejecutaremos nuestro script cada minuto, de cada hora, de cada día, etc...
Para salir del editor presionamos la tecla ESC y luego ponemos : x y presionamos enter.
Para comprobar que hemos guardado los cambios ponemos:
crontab -l
Si no es así, volver sobre el paso anterior hasta que resulte! (Lo sé, ese editor no es de los más intuitivos).
Cuando resulte habremos terminado!
Suerte!
Cualquier pregunta con respecto a esto no duden en enviarla como comentario.
Note: I can answer in english as well, so if you know what it is about everything here but although of that you may need some help, so please don't hesitate and leave a comment ;-)