lunes, 6 de octubre de 2014

Programar con crontab la ejecucion de 2 comandos de forma consecutiva, no concurrente, en Linux

Recientemente he estado trabajando con mi Raspberry pi que por cierto esta muy interesante para hacer cosillas, he estado haciendo un proyecto que próximamente actualizare en mi github y para el cual estoy utilizando una computadora del tamaño de una tarjeta de crédito es decir una Raspberry pi.

Actualmente corriendo Raspbian(version de linux derivada de Debian) tuve la necesidad de ejecutar dos tareas una seguida de la otra y programarlas a cierta hora.

Tenia la opción de crear una schedule (fecha y hora) para ejecutar cada una, sin embargo no quería jugar con el tiempo en que terminara una para que iniciara la otra, sino más bien quería que cuando terminara una iniciara la otra.

Primero lo que queria era cerrar el navegador epiphany (que actualmente fue incluido en la versión de Raspbian) y posteriormente apagar el equipo.

Ejecutando el comando:

crontab -e

se tiene acceso a las tareas programadas, este caso ingrese utilizando sudo pues el comando shutdown es ejecutado por un usuario con privilegios.

sudo crontab -e

Basicamente para lograr que un comando se ejecute terminado el anterior se debe incluir && después de cada comando en la cadena del crontab, para entender mejor les enseño como lo realice yo:

# m h  dom mon dow   command
58 17 * * * /usr/bin/pkill -x epiphany-browse && /sbin/shutdown -h now 

Como se puede apreciar en la linea anterior ejecuto el comando pkill (dar man pkill en consola para saber más de el) y cierro el proceso que corre epiphany-browse una vez que termina de cerrar(matar) el proceso continua con el apagado del equipo.

Como ven es muy sencillo realizar este tipo de ejecución consecutiva de comandos en crontab.

miércoles, 28 de mayo de 2014

Ordenar articulos en Joomla 2.5 cuando parecen estar deshabilitados

Recientemente heredé un web que se encuentra en joomla, cabe aclarar que no soy un experto en el tema de joomla pero mis experiencia como developer me permite entender un poco el CMS ademas de que me he tenido que poner a leer y documentarme.

Solo me gustaria decir que me parece un tanto complicada la forma en que se gestiona Joomla, sin embargo cuando le vas entendiendo se va haciendo menos pesado.

Vayamos al punto...

El problema: 

Me  solicitaron acomodar el órden en que una categoria listaba los articulos, (si parece que no importa y que es algo trivial pero bueno) al intentar lo más lógico como solo cambiar el órden de los articulos de esa categoría me tope con que estaba deshabilitados, o eso parecia, algo así:



Si parece sencillo para los expertos del joomla pero bueno tuve que leer en varios lados y, o no hacia la pregunta correcta a google, o de plano nadie habia tenido ese problema, pero bueno aquí la solución super sencilla.

Solución:

Picandole en el encabezado se habilita la posibilidad de ordenamiento (no se si así se diga) y ya puedes hacer lo que quieras.



Una vez realizada esta acción se habilita la opción de ordenamiento (sort) y a un lado aparece un disco, solo basta cambiar los números y dar en gaurdar (disco que aparece a un lado, que por cierto muchos ya ni los conocieron jeje).


Nota:

Es importante que para que se respete el órden deben ir al administrador de menus elegir el menú en el cual la esta la categoría de la cual quieren órdenar y elegir ese nodo, una vez en esa pantalla, en el lado derecho elegir: "Lista de opciones de diseño" y elegir en la opción orden de artículos: Orden gestor de articulos.



Y eso es todo.

martes, 25 de marzo de 2014

Cambiar automaticamente rvm y gemset al abrir tu proyecto.

Para indicarle a un proyecto que debe utilizar un gemset y ruby version en particular, se debe hacer lo siguiente:

Es posible crear un archivo con el nombre .rvmrc con el contenido de tu gemset y ruby version:


rvm use ruby-2.0.0-p247@miGemset
 
Sin embargo esto no funciona correctamente al utilizar  rbenv o chruby
 
La forma de fijar la version y gemset es posible creando dos archivos:
 
El primero es: 
 
.ruby-version 
 
En el cual se coloca la version de ruby que se utilizara.
 
 1.9.3
 
De igual forma de crea un archivo con el nombre 
 
 .ruby-gemset
 
En el cual se pone el nombre del gemset a utilizar
 
 ej.
 
mi_gemset 
 
rvm ree-1.8.7-2010.02@rails3_project
rvm ree-1.8.7-2010.02@rails3_project
rvm ree-1.8.7-2010.02@rails3_project