Usando control de versiones

15 08 2008

Unas de las paradigmas más modernas de desarollo es utilizar el control de versiones, últimamente he utilizado el SVN porque es el que siempre me han dicho que utilice, además tenia un servidor al cual acceder, luego anteriormente leí sobre git al respecto y me llamó la antención pero no tanto como para comenzar a utilizarlo.

Hoy en el trabajo me sugirieron que utilizara git, para que matuviera el orden en el proyecto, la sugerencia nació porque yo quiero poder trabajar en la oficina asi como en la casa y también se quería tener todas las propiedades de manejo de control de versiones, otras propiedades que tiene git sobre svn:

  • El repositorio de git es una carpeta oculta (.git) en directorio raiz del proyecto, por lo que permite portabilidad (copiarlo al usb)y ahi está todo lo necesario para que git lo interprete.
  • Git solo necesita las herramientas para administrar el repositorio y no es un servidor como tal, por otro lado también da flexibilidad para poder trabajar de manera colaborativa.
  • Git es sumamente rápido y los commit se han de manera local y luego si se, se quiere se hace un push de los cambios entre repositorios o bien merge entre branches.
  • Me han comentado que cuando muchos usuarios acceden al SVN existe la posibilidad de que el repositorio se corrompa y por medio de Hacks se puede recuperar pero no en todos los casos.

Ya solo queda seguirlo utilizando ;)





Script que te recuerda la hora

8 08 2008

Me pasa bastante que programando se me van las horas volando, lo que se ocurrio para recordar que hora es, crear un script que me recuerde que hora es :P

Primero que todo se necesita el comando notify-send que es como un popup (cuando ubuntu te avisa que tiene actualzaciones), se instala desde los repositorios:

sudo aptitude install libnotify-bin

Luego crear un archivo donde va a estar el script :P , a mi gusto siempre creo una carpeta dentro de mi home que se llama Scripts donde se pueden crear todas lo que nos plazca :D

gedit /home/<usuario>/Scripts/time_reminder

Nota: Hay que reemplar <usuario> por tu usuario.

Insertamos el siguiente codigo dentro:

#!/bin/bash

TITLE="Hora actual"
ICON="appointment"
MSG="Son las $(date +%r)"
export DISPLAY=:0 && \
notify-send --icon="$ICON" "$TITLE" "$MSG" && \
aplay /usr/share/sounds/ekiga/voicemail.wav

Explico cada linea:

  • La primera linea en cada shell script dices donde esta el interprete (el que va a ejecutar tu script)
  • La linea TITLE que se desea fijar en el popup
  • La linea ICON, ésta linea tiene truco, ese nombre que puse ahi se debe que en la carpeta /usr/share/icons/Tango/34×34/ (yo uso tango puede ser Tanguerine) tienen nombres de iconos que usa el sistema (Gnome default en ubuntu) el cual seleccione uno que concuerde con mi objetivo, no se necesita poner toda la ruta ni la extesion.
  • La linea de MSG es la hora que quiero mostrar y recordar ;)
  • luego viene el comando export…., lo que hace es seleccionar la pantalla actual porque las tareas (mas adelante explico) programadas no entienden de comando que tengan que ver con interfaces gráficas, si se tienen dos monitores ese comando tiene que cambiar para que concuerde.
  • La siguiente linea es el popup, que es donde mostramos el mensaje con las variables que anteriormente definimos.
  • por ultimo un sonido de recordatorio, en ubuntu esos vienen por default al menos que se haya desinstalado Ekiga, el cua en la carpeta /usr/share/sounds/ hay varios donde escoger.

Ahora se le da al script permisos de ejecucion:

chmod +x /home/<usuario>/Scripts/time_reminder

Ahora solo falta ejecutar el script cada cierto tiempo, para eso está crontab y se modifica la lista del usuario nuestro:

crontab -e

Para ingresar la linea se presiona la tecla insert o bien la letra i

00 * * * * /home/edder/Scripts/time_reminder

Se preciona Escape luego :wq, con eso se sale del editor y lo que quere decir esos 00 es que se va a ejecutar cada hora, se puede modificar a 30 para que se ejecute cada 30 minutos.

Con eso solo hace falta esperar ;)





Programador con todas las de ley

7 08 2008

Tengo bastante tiempo de no tocar el blog y ésto se debe a que ya entré en mi nuevo trabajo, por lo que tuve que pasar por un periodo de adaptación, que ya estoy superando.

El trabajo que me toca desempeñar, está relacionado 100% al open source, por lo que ahorita tengo en mi trabajo Ubuntu y solo Ubuntu :P , por acá no hay nada que tenga que ver con microsoft, por otro lado estoy enteramente en desarrollo (ya no mas TI), desarrollando Web, utilizando herramientas como SVN, Eclipse para PHP, Reviewboard, Jabber, entre otras.

Otro cosa importante en éste ambiente, caso contrario como pasa en las empresas a las que he trabajado, acá el Jefe es toda una eminencia en el mundo de la programación y tiene la filosofia de tener un ambiente despreocupado y divertido, un ejemplo seria, que te dan Refrescos gratis, hay mesa de Ping Pong y Futbolín, para matar en el estrés en los ratos de ocio.

En realidad es un reto, es ajustarme a procesos que nunca habia realizado, aprender a comunicarme bien en inglés (mi jefe y un compañero son de EEUU), aprender nuevas tecnologías y patrones de programación, sumamente divertido :D .

De verdad nunca me habia divertido tanto en un trabajo :D