Deprecated: Function set_magic_quotes_runtime() is deprecated in /home/mixtk/public_html/elcugo/textpattern/lib/txplib_db.php on line 14
http://textpattern.com/?v=4.0.8 ElCuGo Software http://elcugo.mixtk.com/ Por un mundo en el que seamos libres Wed, 01 Jul 2009 03:37:45 GMT Sincronizar directorios en Linux Siempre me pregunté si había algo similar al comando rsync pero que funcionara localmente. Es decir, quería copiar todo el contenido que hay un directorio en otro, sin perder ninguno de los archivos que ya existen en el directorio destino. Bueno, esto se puede lograr usando el bastante flexible comando “find”:

cd /directorio/origen
export DEST=/directorio/destino
find -type d -and -exec mkdir -p $DEST/\{\} \; -or -type f -and -exec cp \{\} $DEST\{\} \;

Estos comandos sobreescribirán archivos que existen en ambos directorios, para evitar esto se podría añadir un test en el comando de copiar, que cheque si el archivo ya existe o se puede hacer una comparación de fechas.

Creo que es posible mejorar este script, postearé aquí versiones mejoradas.

]]>
http://elcugo.mixtk.com/articles/48/sincronizar-directorios-en-linux Sat, 16 May 2009 21:38:53 GMT Elio Cuevas Gómez tag:elcugo.mixtk.com,2009-05-16:cfc3223469bad7f26120f1a7559f8c08/a07ca84d956cc9fc75a45ec0b8412e61
De vuelta en Monterrey Bueno, pues estoy de nuevo en Monterrey. Ya había venido hace unos dias, pero sólo me quedé un ratito, ahora parece que me quedaré aquí por bastante tiempo. Sí, voy a trabajar aquí y empiezo el lunes.

Estoy emocionado y espero ver que tal me va a ir. También extraño un poco a mi familia y mi hogar de toda la vida, pero ni modos, para alcanzar la iluminación es necesario que nos desprendamos de nuestros enlaces mundanos.

Bien. Como dice Bob Esponja: “¡Estoy Listo!”, veamos que me lanza la vida.

]]>
http://elcugo.mixtk.com/articles/46/de-vuelta-en-monterrey Sat, 25 Apr 2009 03:15:35 GMT Elio Cuevas Gómez tag:elcugo.mixtk.com,2009-04-24:cfc3223469bad7f26120f1a7559f8c08/81869c0c188a916fffa9c6ef552ea373
13 cosas Cosas que quiero realizar antes de que se termine el mundo (sin ningún ordén particular):

  1. Lograr que ‘tuu’ sea el lenguaje que domine al mundo
  2. Hacer un juego RPG (Mwundu)
  3. Crear el mejor sistema operativo de escritorio (Este es opcional, pero sería agradable)
  4. Conquistar el mundo
  5. Visitar marte
  6. Hacer mi juego de arena de batalla de vehículos
  7. Decirle en su cara “juar juar”
  8. Irme de viaje sin ningún destino en particular
  9. Rescatar a la princesa y vivir feliz para siempre
  10. Agarrarme a golpes con Dios
  11. Vender mi alma al Diablo para luego traicionarlo y tomar control del infierno
  12. Dominar la galaxia
  13. Loop infinito

Ok, un poco exagerado, pero hay tantas cosas que se pueden hacer y tan poco tiempo para realizarlas y no hay ni siquiera la másm mínima señal de que las pueda alcanzar.

Quizá sólo debiera resignarme y vivir como hermitaño en el bosque. Hmm, un bosque con Internet.

]]>
http://elcugo.mixtk.com/articles/45/13-cosas Wed, 18 Mar 2009 04:11:33 GMT Elio Cuevas Gómez tag:elcugo.mixtk.com,2009-03-17:cfc3223469bad7f26120f1a7559f8c08/82d742ae2fc2bef7c4bcf8716036efd1
Suites de prueba Al darme cuenta de que el ciclo de desarrollo que estoy usando para “tuu” es el de escribir código, probarlo, depurarlo, probarlo, depurarlo, etc. decidí que sería muy util si pudiera automatizar un poco el proceso de pruebas. Así, en vez de estar escribiendo el mismo comando muchas veces o introduciendo datos a mano, simplemente puedo usar un comando que haga todas las pruebas y me reporte los resultados.

Esto se llama prueba funcional, que quiere decir que se prueba el programa completo para verificar que en realidad hace lo que se espera.

Primero intenté usar DejaGNU, pero después de pasar todo el dia de ayer simplemente haciéndolo funcionar, decidí abandonar esa idea. El problema con DejaGNU es que está escrito en un lenguaje llamado “Expect” que es una extención de Tcl, y los test se deben escribir en “Expect”. No soy un gran fan de Tcl, pero realmente intenté aprender a usarlo. Después de un rato me di cuenta que escribir los test era mucho más complejo que crear el programa original, así que decidí buscar algo más simple.

Entonces dí con una página muy interesante: open source software testing tools que lista una gran cantidad de herramientas enfocadas a la prueba de software. Después de leer los manuales de algunas herramientas noté que todas ellas eran endiabladamente complejas, lo único que necesito es correr un programa y verificar que su salida es la esperada, caracter por caracter.

Y fue así como decidí crear mi propia herramienta de pruebas. Elegí Python como lenguaje y creé un pequeño sistema de pruebas en unas pocas horas (Python es un buen lenguaje). El sistema simplemente ejecuta la herramienta, le pasa parámatros o simula entrada por el usuario y lee la salida. Si la salida no corresponde a lo esperado aunque sea por un sólo carácter entonces el test se considera fallido.

Lo más interesante es que ya logré capturar un bug en mi código, y con un test muy simple. Imprimía un espacio de más en mi programa y esto fue detectado rápidamente por mi sistema de pruebas. Este error hubiera sido muy difícil de detectar sin el sistema, ya que yo no puedo ver los espacios en blanco.

Sí, he escuchado que algunos se preguntan porque no hice el sistema en “tuu”. Bueno, pues, tuu todavía no existe y además no tendría mucho sentido probar un lenguaje con el mismo lenguaje verdad? Aunque en un futuro, talves haga un sistema de pruebas basado en tuu.

]]>
http://elcugo.mixtk.com/articles/44/suites-de-prueba Wed, 28 Jan 2009 05:40:35 GMT Elio Cuevas Gómez tag:elcugo.mixtk.com,2009-01-27:cfc3223469bad7f26120f1a7559f8c08/5cf0b9840c49d5785cddb2ed0e48dc15
Expresiones He expandido el “parser” de tuu para reconocer expresiones buaa ¿Cómo se traduce parser?. Sí, reconoce sumas, multiplicaciones, operaciones con bits, indexación (o sea a[ 1]=5) y varias cosas más, respetando la precedencia de operadores y toda la cosa.

Ya podría convertir tuu en una calculadora de escritorio, aunque deshabilité la generación de código para acelerar un poco el desarrollo de la gramática. Aún falta que acepte definiciones de funciones y, para que sea turing-completo, condiciones y ciclos.

También he comenzado con la documentación para desarrolladores, que es generada automáticamente desde el código fuente, utilizando Doxygen. Aún no he comenzado con la documentación para usuarios, pero al menos ya puse el sitio oficial para el lenguaje: http://tuu.mixtk.com. Sí, el sitio está en inglés, desafortunadamente todo el desarrollo tiene que hacerse en inglés para que sea relevante. No importa, ¡este blog siempre será en español!

]]>
http://elcugo.mixtk.com/tuu/43/expresiones Mon, 26 Jan 2009 16:57:02 GMT Elio Cuevas Gómez tag:elcugo.mixtk.com,2009-01-26:cfc3223469bad7f26120f1a7559f8c08/8745f0e314bae043288b2b5bf4035cf8