Archivo de July, 2009

Nos pasamos a Git como repositorio de código

Después de pasar media vida con CVS y la otra media con Subversion, hemos dado el paso en Acilia y vamos a utilizar Git como repositorio de código. La verdad es que las referencias eran muy buenas y, aunque el tener que aprender un nuevo sistema siempre es un poco duro, creemos que merece la pena.

El significado de Git en inglés es algo así como persona estúpida y desagradable y fue diseñado inicialmente por Linus Torvalds, que dejó algunas perlas para la historia, como viene siendo habitual en el personaje:

“I’m an egotistical bastard, and I name all my projects after myself. First Linux, now git.” – Linus Torvalds

For the first 10 years of kernel maintenance, we literally used tarballs and patches, which is a much superior source code management system than CVS is” – Linus Torvalds

When I say I hate CVS with passion, I have to also say that if there any SVN users in the audience, you might want to leave. Because my hatredof CVS has meant that I see Subversion as being the most pointless project ever started, because the whole slogan for the Subversion for a while was ’CVS done right’ or something like that. And if you start with that kind of slogan, there is nowhere you can go. It’s like, there is no way to do CVS right. – Linus Torvalds

Lo mejor de Git es que es un repositorio distribuido. O más que distribuido, es deslocalizado. Esto quiere decir que localmente tienes un repositorio de Git totalmente funcional, de hecho los commits se hacen contra tu repositorio local. Luego juntas tu código con otros repositorios (o normalmente un repositorio que todo el mundo usa de referencia).

Además del vídeo donde el amigo Linus hace la presentación, dejo algunos enlaces de referencia. (Gracias Raúl por ellos y animarnos a dar el paso!)

Referencias:

- Git fetch and pull video tutorial

- Tutorial de Git del Gsyc

- Git Cheat Sheet

Monday, July 20th, 2009

Backups por FTP con Bash Shell

Para evitar disgustos como le sucedió a ma.gnolia.com (que perdió todos los datos de sus servidores y no pudo recuperarlos), es buena idea tener un sistema de backups al día que te permita recuperarte de cualquier catástrofe. Como decía aquel doctor en la tele, es mejor prevenir que lamentar. Dejo por aquí un pequeño script que puede ayudar a la tarea. Realmente simple pero efectivo.

Los archivos: back_daily.ftp , back_monthly.ftp

Algunos comentarios de las partes que tienen (comentaré el daily):

  1. Tomamos la variable DAY con la fecha del sistema
  2. DAY=`date +%d`
    echo Backup for Day: $DAY

  3. Volcado de todas las bases de datos del sistema
  4. mysqldump -uUSER -pPASSWORD –all-databases > mysql_backups/mysql-latest.sql

  5. Zip con archivos y base de datos
  6. zip -r file_backups/files_back_$DAY.zip public_html/*
    zip -r file_backups/files_back_$DAY.zip hostx/*
    zip -r file_backups/files_back_$DAY.zip hosty/*
    zip -r file_backups/files_back_$DAY.zip hostz/*
    zip -r file_backups/mysql_back_$DAY.zip mysql_backups/mysql-latest.sql

  7. Subimos todo por FTP
  8. ftp -n HOST-DEL-SERVIDOR.com <
    user USERNAME PASSWORD
    binary
    cd target_directory
    lcd file_backups
    put files_back_$DAY.zip
    put mysql_back_$DAY.zip
    quit
    EOF

  9. Creamos un cronjob que ejecute el script (en este caso dos, uno diario y otro menusal) redirigiendo la salida a un log.
  10. 05 03 * * * /home/acilia/file_backups/back_daily.ftp >> /home/acilia/file_backups/log/back_daily.ftp.log
    05 03 01 * * /home/acilia/file_backups/back_monthly.ftp >> /home/acilia/file_backups/log/back_monthly.ftp.log

Y con esto sería suficiente para tener un respaldo contra catástrofes. Mediante este sistema, guardaríamos las copias diarias durante 1 mes y las copias mensuales durante 12 meses, aunque siempre sería modificable para que no se sobre-escriban los ficheros. En caso de utilizar estos mismos scripts, habría que tener cuidado con los directorios. En este caso se asume que existen (y tienen permiso de escritura) los directorios mysql_backups y file_backups en la raíz del usuario que ejecutará los scripts.

El script es básico y muy mejorable, no estaría de más echarle un ojo al bash y darle algún retoque… cuando tenga un rato ;-)

Wednesday, July 15th, 2009

Emprender en tiempos de crisis

A pesar de que las circunstancias parecen aconsejar lo contrario, he decidido dar el paso y crear mi propio pequeño negocio con mucha ilusión, a ver qué tal se da esto de salir de la protección que te da trabajar por cuenta ajena y empezar la aventura por cuenta propia. Con estas premisas he fundado Acilia Internet, donde hacemos desarrollos para terceros basados en nuevas tecnologías y tendencias, tratando de que los procesos de desarrollo de software sean lo más eficientes posible. Además quiero aglutinar algunos proyectos propios donde seguir avanzando y poder probar nuevas cosas, como los ya creados Quiniela15 o AulaDigital.

Por ahora la experiencia es más que satisfactoria. Tener que ocuparse y montar muchas cosas en primera persona no ha sido más que una oportunidad para descubrir, investigar y aprender con mucha más intensidad que hasta ahora había experimentado. No puedo más que recomendar la experiencia a quien tenga ganas pero las dudas o los miedos le retengan. Debe ser una decisión meditada, pero es algo en lo que llega un momento que si tienes el gusanillo vas a hacer. La sombra del fracaso está siempre ahí, pero la esperanza de nuevas oportunidades no va a desaparecer nunca tampoco.

El momento es propicio, es totalmente cierto que en tiempos de crisis hay más oportunidades, en este caso tanto de encontrar gente (aunque sigue siendo difícil encontrar profesionales cualificados en esto de Internet), como otros suministros, como agentes que quieren cambiar modelos y formas de actuar. Internet es el medio perfecto para hacerlo y va a haber mucho que hacer en este sentido en los próximos años.

Personalmente ha comenzado una nueva etapa y estamos a vuestra disposición para lo que pueda surgir!

Monday, July 6th, 2009