jueves, 28 de enero de 2010

Tux4Kids Cambia su repositorio de Subversion a Git

El fin de semana pasado Tux4Kids migra de subversion a Git. Definitivamene, uno de los problemas en el mundo es que existen ¡demasiados! sistemas de control de versiones, cada uno "mejor" que la otra. Yo hasta el momento no tengo autoridad para hablar del tema. Únicamente conozco CVS y Subversion. Éste último me encantó por su excelente libro online. Pero es hora de aprender un poco de Git. Comparto con ustedes una referencia rápida de comandos útiles para trabajar sobre este sistema:

git init crea un repositorio.
git clone clona un repositorio remoto.
git add Añade un archivo o directorio al repo. (Si lo agrega de forma recursiva)
git rm -f Elimina un archivo o directorio del arbol. La opción -f fuerza la elimiación de archivos locales.
git mv -f Mueve un directorio o archivo (Misma opción -f)
git checkout [rev] file -f Restaura archivo del branch o revisión (Si se indica) con la misma opción -f
git status Muestra el estatus del actual arbol.
git diff Diferecnias entre el arbol con respecto al remoto.
git commit -a "Subir" (commit) un archivo o todos con la opción
git reset --hard Regrear el arbol al pasado commit y --soft deshacer el commit pero mantener los archivos en arbol
git clean Elimiar archivos que no son del arbol
git blame Obtener lineas modificadas
git fetch Obtener archivos remotos
git pull Obtener archivos remotos y hacer merge con los locales
git checkout branch Cambiar el arbol a un branch indicado
git branch Lista de branch locales
git merge branche Lleva a cabo un merge del barnch con el arbol ptincipal.
git apply < file Aplicar un parche.
git archivo rev > fileExporta un parche de en contraste a una revisión data al archivo.


Para acercarnos a git en verdad que recomiendo: http://cworth.org/hgbook-git/tour/
Es un Tour fácil para adquirir los conocimientos necesarios para comenzar a trabajar sobre un proyecto.
Tambien recomiendo una referencia rápida (Sobre la cual está basada esta entrada): http://jonas.nitro.dk/git/quick-reference.html
Y por último, claro está, la documentación oficial de Git: http://www.kernel.org/pub/software/scm/git/docs/user-manual.html
Suerte probando y jugando con Git!

martes, 26 de enero de 2010

Proyecto Kickapoo

En los pasados días he trabajado para desempolvar un viejo proyecto que he tenido guardado. Se trata de Kickapoo, un web spider que extrae información de páginas MySpace utilizando BeautifulSoup, guardando la información en una base de datos mappeada con SQLALchemy. En lo general ya funcion, pero, claro está que hay que pulir el web spider aún más para no perder tanta información hasta ahora.
Principalmente busca por páginas con información acerca de native american, trata de clasificar de que tríbu son utilizando los lugares de residencia. Esto es una presunción que realiza el programa.
El siguiente paso en el proyecto es lograr llevar esta información a un algoritmo de clustering de aprenizaje no asistido para poder agrupar a las diversas personas en categorías de intereses.
Tambien pretendo realizar, con la información estable del MySpace un poco de estadística descriptiva ilustrando los resultados de la investigación.
He publicado el código bajo GPLv3 para que todos puedan ver y reusar el código.
Lo pueden encontrar bajo: https://sourceforge.net/projects/kickapoo/
y pueden navegar por código en: http://kickapoo.svn.sourceforge.net/viewvc/kickapoo/
Por último pueden crear una copia local con: svn co https://kickapoo.svn.sourceforge.net/svnroot/kickapoo kickapoo