Claudio Saavedra

claudio@codemonkey.cl

Go forward in time to August 2004.

Fri 2004/Jul/30
  • Durante los últimos días he estado algo flojo con respecto a los posts, pero básicamente se debe a la falta de cosas interesantes que postear y al cansancio durante las últimas horas de la jornada como para hacer un resumen de ésta.

  • La semana pasada congelé todo lo que estaba haciendo con respecto a Gyrus y comenzé lo que por mi propia cuenta he bautizado como la versión 0.2 de éste proyecto. Básicamente opté por reescribir todo el código (organizandolo en diferentes archivos de fuentes, además), utilizar el sistema de tipos GType de GLib para registrar algunos objetos, y comenzar un diseño orientado a objetos (dentro de mi inexperiencia en este paradigma de programación) que permita más adelante integrar el administrador dentro del escritorio mediante Bonobo. El proceso ha sido algo lento, ya que he tenido que aprender varias cosas y leer código de algunas aplicaciones reales para poder hacerme una idea de como se debe escribir código consistente en una aplicación no pequeña.

    Todo lo que he hecho no se encuentra por el momento disponible en la red dado que tengo el código en un repositorio local. Tan pronto como el código haga algo útil lo publicaremos en algun lado.

  • Desde el ataque al sitio de GNOME Chile hace algunos meses, que algunos servicios de la comunidad están abajo. Sorprendentemente, estos servicios son los más importantes y los primeros que deberían haber sido restituidos, como lo son las listas de correo y el repositorio CVS. Sin embargo, nadie se preocupó de ésto hasta hace algunos días, donde en el canal #gnome en irc.cl se discutió la necesidad que algunos tenemos de volver a hacer uso de estos servicios y es por eso que hago un llamado a quien quiera que sea el administrador de primate:

    1. Tenemos programado un encuentro en aprox. 2 semanas y hasta este momento no se ha visto mayor coordinación ni discusión con respecto a ésta. Muchos sólo sabemos el lugar de reunión, el día y el ámbito en el que se pretende desarrollar, gracias a un correo que Germán envió a la lista de linux de la UTFSM.

    2. Varios proyectos que se encontraban en el CVS de GNOME Chile ya no están a disposición de la gente. Se supone que como comunidad de desarrolladores ésto es lo que nos mueve, sin los proyectos, se pierde un poco el sentido, ¿no?.

  • Hoy es mí último día en DITyM. El lunes pasado comenzaron las clases en mi Facultad pero me tomé la libertad de no asistir durante la primera semana (que se caracteriza por ser la menos productiva del semestre) pero el proximo lunes es una fecha prudente para integrarme al estudio. Los 8 dias aproximados que me quedan por hacer de práctica los haré de manera libre es decir, solo impor ta el avance que tenga en el desarrollo del proyecto, por lo que puedo hackear en mis tiempos libres mientras tenga una productividad semanal equivalente a un día de trabajo (más una tarde a la semana aca), para poder terminar la práctica antes de la semana del 18 de septiembre.

Mon 2004/Jul/26
  • Todo un día de trabajo se puede resumir en las siguientes lineas de chat:

    <csv> toy dejando la pura cagá :-D
    <jci> !!!
    <jci> JUAJUAJUUA
    <csv> cuando el ale vea el código ojalá q yo esté a unos 200 kms 
          de distancia
    <csv> al menos

Fri 2004/Jul/23
Thu 2004/Jul/22
  • Con respecto a la discusión que se ha llevado a cabo durante las últimas semanas en el Planeta GNOME Chile, creo que es hora de dar mi opinión.

    El interes de la mayoría de la gente en Chile sobre un sistema operativo como Linux está más enfocado en el uso que en el desarrollo de aplicaciones. Me ha tocado ver, por ejemplo, en mi Facultad a un montón de chicos interesados en temas de administración, configuración de dispositivos, etc. Pero prácticamente ninguno interesado en el desarrollo, ya sea con lenguajes de scripting (ni siquiera para sus tareas de administración) o en aplicaciones gráficas. Muchos de ellos adoran linux simplemente por la estabilidad que les brinda, por el status que da (con respecto a los Win users) el conocer y saber administrar un equipo sistema linux, pero no hay (al menos hasta ahora) una conciencia sobre lo que representa el software libre en el desarrollo de la ciencia de la computación. Algunos se preguntan 'que gano con liberar el software' o 'no entiendo como se gana la vida la gente que hace software libre'. Hay una ignorancia más o menos grande, pero se debe simplemente a que no es un tema de interes.

    He visto los esfuerzos que personas como Jorge han hecho tratando de difundir el software libre (el 1er seminario de Linux el 2002, las clases de Entorno Unix el 2003, por ejemplo), y en cuanto al número de personas que han comenzado a usarlo, no es despreciable. Pero gente interesada en desarrollar o en cooperar, muy poca. Durante este semestre el profesor Per Bro exigió como requerimiento en Ingeniería de Software II el desarrollo para Linux usando GTK+, y en teoría todos los que aprobaron aprendieron a desarrollar con el toolkit. Eso muestra que en nuestra Facultad, el problema no es que no sepan nada sino que simplemente, no hay interes colectivo y los pocos que muestran algo de interes o se sienten incapaces de hacer cosas interesantes con lo que saben, o simplemente no saben como ni donde empezar.

    Somos muy pocos en Chile y además existe una tremenda falta de coordinación. La comunidad GNOME Chile es bastante pequeña, y la mayoría estamos dando nuestros primeros pasos en cosas reales. Es necesario que todos los newbies o proto-hackers se acerquen a aquellos que tienen más experiencia, y es por esto que creo que la propuesta de Germán me parece no solo buena, si no que necesaria.

    Tengo un monton de ideas en la cabeza pero me cuesta ordenarlas. Estoy cansado (dia de cosas nuevas en el trabajo, otro dia escribo sobre eso). Solo quiero decir que pueden contar con mi apoyo y presencia cuando esta reunión se realice y que espero que sea el comienzo de una nueva etapa para nuestra comunidad. Divulgaré la noticia aca en utal cuando se confirme, para tratar de lograr que aquellos pocos que no saben como empezar, puedan encontrar apoyo en nosotros.

Wed 2004/Jul/21
  • Ayer terminé de bajar y construir GNOME 2.7.3. Mis intenciones son poder leer el código de alguna de las aplicaciones del escritorio y cooperar con uno que otro parche para familiarizarme un poco con la metodología de desarrollo de los hackers de GNOME. Un screenshot de mi nuevo escritorio:

    Escritorio GNOME 2.7.3

  • Por curiosidad bajé del CVS de GNOME la aplicación GNOME Keyring Manager y despues de compilarla y ejecutarla por un rato le encontré un pequeño bug. Luego de reportarlo en bugzilla me puse a mirar el código y a debuggear la aplicación hasta que di con el problema. Luego de corregirlo adjunté al bug un patch (todo esto guiado por Fernando Herrera, ya que jamás había cooperado con un parche para una aplicación) y esta mañana me encontré con la sorpresa de que el patch fue aceptado e incluido en el release 0.0.3 de GKM.

    Primera vez que encuentro un bug y mando un patch a una aplicación que es parte de GNOME. No puedo negar que es algo especial para mi :). Pretendo seguir cooperando con ésta y cuanta aplicación pueda.

Fri 2004/Jul/16
  • Hoy se suponía que debía estar a las 8.15 en el trabajo. Desperté a las 8.20. Fuck.

    Update: Curiosamente, no soy el único al que misteriosamente le falló el despertador hoy.

  • Como lo había prometido, lo primero que hice al llegar a la dirección fue corregir ese tonto bug que tenía gyrus. Hoy arreglé varios detalles referentes a los treeviews.

  • Anoche escribí un poco de chachara para el apartado 8.1.2 del libro. Al final no fue mucho lo que escribí, principalmente por la hora (me dormí casi a las 2.30, y por eso llegue tarde hoy), pero pretendo terminar eso el fin de semana. Me tomé la libertad de reemplazar un screenshot del capitulo que retocando, ya que podriamos decir que hay una gran diferencia entre el que tomé hoy para explicar mi código y éste. Juzgaos vosotros mismos:

    Antes
    Antes

    Despues
    Despues

    Necesito explicar parte del código todavía y luego publicaré eso.

  • Probablemente llegando a la casa tendré que instalar un lector de CD-ROM. No me hace gracia abrir un computador ajeno. :-/

  • GTK Tip: Cuando se necesite poner un caracter no ASCII en un GtkTreeView, debe insertarse usando UTF-8. Si el desarrollador usa algún encoding iso-8859 probablemente se sienta tentado a usar algo como:

    gtk_tree_store_set (model, &top, COLUMN_DATA, 
    		    g_locale_to_utf8 ("España", -1 , NULL, NULL, NULL),
    		    -1);

    Esto, funcionará correctamente, siempre y cuando no se compile ese código en una maquina cuyo LOCALE esté usando UTF8. En ese caso, no va a funcionar.

    Lamentablemente, la única manera de hacerlo sin entrar en complicaciones enormes, es escribiendo el código unicode de los caracteres directamente dentro del char. De ésta manera la línea anterior (usando octal) se transforma en:

    gtk_tree_store_set (model, &top, COLUMN_DATA, "Espa\303\261a", -1);

    También puede usarse hexadecimal, pero eso traería algunos inconvenientes. El unicode hexadecimal de la ñ es 0xC3 0xB1. Si se pone dentro del ejemplo anterior tendremos "Espa\xc3\xb1a" y se produce la siguiente ambiguedad: El segundo hexadecimal se toma como 0xB1A, lo cual no es exactamente lo que necesitamos. Una manera de resolverlo sería usando "Espa\xc3\xb1" "a" pero no es muy bonito que digamos.

Thu 2004/Jul/15
  • Hoy terminé de afinar mi equipo. Tuve que compilar un kernel y aproveché de probar la versión 2.6.7. Tuve varios problemas, mas que nada por culpa de la inexperiencia, como por ejemplo, no compilar dentro del kernel el soporte para Ext3, sino que compilarlo como un módulo, siendo que ese es el sistema de archivos que elegí para todas las particiones.

    Mi nuevo equipo de oficina tiene un procesador Intel Celeron 2.20GHz, 512 MB de RAM, y un disco duro de 40 GB. El esquema de particionamiento que elegí es:

    claudio@chango:~$ df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/hda1             958M  730M  179M  81% /
    tmpfs                 249M     0  249M   0% /dev/shm
    /dev/hda6             9.4G  1.4G  7.6G  16% /usr
    /dev/hda7             9.4G  591M  8.4G   7% /var
    /dev/hda8              17G   92M   16G   1% /home

    Luego comenzé a trabajar en Gyrus, proyecto que ha estado algo botado durante los ultimos meses. Dado que el CVS de GNOME Chile ha estado abajo desde la intrusión de unos crackers brasileros en una de las máquinas, tuvimos que habilitar un nuevo branch dentro del CVS de Alejandro para mantener la versión histórica de Gyrus que junto a Mauricio y otros compañeros trabajamos durante el año pasado para un curso de Ingeniería de Software.

    Estoy distribuyendo las fuentes en varios archivos dado que a esta altura se están volviendo algo dificiles de mantener. En eso estaba cuando encontré un bug bastante feo que bota la aplicación al crear una nueva entrada en una ACL de un usuario cualquiera. La solución es simple (el bug es demasiado tonto) y mañana lo primero que haré será corregirlo.

    Anoche hice un pequeño (y bastante simple) ejemplo de como crear una vista de arbol usando GtkTreeView. Esta noche documentaré el código y mañana pretendo incluirlo en el algo alicaído Libro GNOME. Este libro es una iniciativa genial de GNOME Hispano que necesita la ayuda de cualquiera que sepa algo de desarrollo con librerias GTK/GNOME. ¿que están esperando para cooperar? Vamos! Animense!

Wed 2004/Jul/14
  • Hoy fue mi primer día de práctica. Me entregaron un tarro con WinNT para que le instalara linux a mi antojo, y le instalé Debian GNU/Linux Unstable. Todavía tengo un par de problemas con algunas dependencias, pero GNOME 2.6 y otros cachivaches ya están instalados y 100% funcionales.

    Mañana en la mañana termino de afinar el sistema, y de ahí a trabajar se ha dicho.

    Ahora mismo tengo un hambre tremenda, ya no queda casi nadie en la dirección, asi que me parece prudente retirarme (hace una hora que debería haberlo hecho).

Mon 2004/Jul/12
  • Recién rendí la prueba Final de Alemán I y ya me dieron mi nota: 6.5. Estuvo más facil que la segunda prueba, y como algo estudié el fin de semana, me me fue bien.

    Alemán II nos vemos el próximo semestre!!!

Sat 2004/Jul/10
  • ¿Que harías si necesitases calcular números de Fibonnaci del orden de 10^100?

    Hace poco más de una semana se me presentó esa duda. Uno de los problemas de Taller de Programación consiste en determinar la cantidad de números de Fibonnaci (en adelante fibs) que hay en un interválo cerrado [a, b], con 0 <= a <= b <= 10^100 (si, diez elevado a cien).

    Los problemas comienzan cuando tratas de almacenar un número demasiado grande en una variable numérica. Las posibilidades son: un unsigned long int para tipos de datos enteros o long long double para usar un número de punto flotante. Sin embargo, ambos tipos de datos son insuficientes para almacenar un número del orden de 10^100. Con un unsigned long int el número más grande que podemos almacenar es 4.294.967.295. Para el caso de un long long double tan solo se puede almacenar 10^27 sin perder precisión. Para números más grandes hay un error de punto flotante que haría los calculos suficientemente inexactos. De este modo, el intentar un algoritmo iterativo para generar fibs solo produciría valores errados a medida que se necesitan números más grandes.

    Mi primer acercamiento al problema fue matemático. Existe una formula directa para calcular el n-esimo número de Fibonnaci que puede ser deducida usando ecuaciones en diferencias, una especie de versión discreta de lo que son las ecuaciones diferenciales. Esa fórmula es:

    Formula Directa para calcular el n-esimo fib

    Si se pone un poco de atención, es fácil darse cuenta que el término de la derecha es menor que 1 siempre (aproximadamente - 0.618033989 cuando n = 1) por lo que se puede despreciar para valores grandes de n.

    Habiendo despreciado ese término para obtener una expresión algo más simple, apliqué log y sus propiedades para llegar a lo siguiente:

    linealizando la formula anterior

    Siendo alfa y beta dos constantes, el problema se transforma en algo lineal. Reordenando la ecuación obtenemos:

    ecuacion para determinar el indice de un fib

    Por lo tanto, dado un número Fn, podemos determinar cuantos fibs existen que sean menores que n, pero tan solo de forma aproximada (esta aproximación tiene un error es de a lo más un fib).

    Programar esto es bastante simple, sin embargo, la falta de precisión para valores pequeños de Fn y para valores sobre 10^27 fueron suficiente para que el bot de programming-challenges.com rechazara mi solución. Mala idea.

    Eso me llevó a pensar que abordar el problema desde una perspectiva numérica o matemática no me iba a llevar muy lejos, por lo que me puse a pensar en otro método que me permitiera determinar fibs de manera exacta. Pero voy a escribir sobre eso en un próximo post.

Fri 2004/Jul/09
  • <csv> acabo de darme cuenta que gtaldo son 5002 lineas de código 
          y cuando nosotros empezamos estimamos 5000 :-D
    <fsmw> que bien, como estimaron la cantidad de lineas?
    <csv> AL PEO
    <fsmw> ese es el mejor metodo
    <csv> y pensar que hay gente que usa cocomo :-D

Thu 2004/Jul/08
  • Hoy rendí una prueba de Arquitectura de Computadores para la cual no había estudiado mucho, así que no espero muy buenos resultados. Sin embargo, los resultados de mis pruebas anteriores del curso me tienen tranquilo -- estoy aprobado.

    Hoy publicaron nuestra nota en GTALDO, el proyecto que nos mantuvo ocupados durante el semestre en Ing. de Software II. Un 6.0 que por un lado me deja tranquilo. No podía ser mejor, hubo un par de requerimientos que no cumplimos por falta de planificación, así que creo que la nota es relativamente justa.

    Sin embargo, no me gusta el hecho de que el profesor nos dió super poco feedback. Está claro que nos faltaron requerimientos, pero me hubiese gustado que nos hubiera dado una opinión mas directa y clara sobre los aspectos del proceso de ingeniería de software que debemos mejorar o que merecen más atención por nuestra parte para futuros proyectos.

    El lunes dí un control del mismo ramo, y me saqué un 7. Una vez más probé mi tesis de que la experiencia desarrollando software es más importante que las clases de Ingeniería de Software. No fuí a ninguna clase del tema que se trataba el control (Patrones de Diseño) y tampoco estudié (bueno, lei unas cosas media hora antes del control).

    Como análisis postmortem del año que pasé estudiando ingeniería de software, solo puedo decir que es un area que me interesa mucho, pero mas que nada en los temas relacionados con lo complejas que son las relaciones humanas en un equipo de desarrollo.

    Durante el año pasado, mientras trabajabamos en nuestro fork de Gyrus, no fue tan evidente, ya que solo trabajé con Mauricio, y los canales de comunicación eran totalmente directos y claros. No había oportunidad para malos entendimientos, y ambos teníamos una manera de trabajar bastante similar y relativamente consistente. Fue un verdadero gusto compartir ese proyecto con él, y me hubiera gustado mucho haber vuelto a trabajar este semestre con el, pero lamentablemente no fue así.

    A diferencia de eso, este semestre los equipos de trabajo consistieron de 4 personas. De esa manera las cosas se volvian algo más complejas. Los canales de comunicación pasaron a ser muchos más, y la divergencia en ideas, horarios, disponibilidad de trabajar, conocimientos previos, entre otras cosas, se transformaron en algo mucho más complejo de administrar, y que me hizo por primera vez, sentir en carne propia la necesidad de saber llevar un grupo de trabajo durante un tiempo prolongado.

    Y cuando hablo de llevar, no me refiero a supervisar, sino más bien a sentir el grupo. Darse cuenta de que cualquier idea en común es un pilar que hay que aprovechar para poder desarrollar a partir de ésta un montón de tareas. En fin..

    No quiero extenderme más... Solo quiero darle las gracias a dos de mis compañeros de equipo, Moisés, Bladimir, fue un verdadero gusto trabajar con ustedes.

    Otras personas que merecen un agradecimiento especial fueron Tim Müller, por sus consejos sobre hebras y procesos y su excelente tutorial de GtkTreeView, Federico Mena por sus consejos sobre GTK+ (y por sus retos, jejeje), Rodrigo Moya por haberme aconsejado una que otra cosa cuando no sabía como comunicarme usando pipes desde una aplicación GNOME y bueno, a todos en irc.cl -> #gnome y en irc.gimp.org -> #gnome-hispano por la compañia y la buena onda.

    Buenas Noches...

Tue 2004/Jul/06
  • Taran!

    GTALDO

    Hoy entregamos!

Sun 2004/Jul/04
  • Lenguajes de Programación, un nuevo ramo en la cada vez mas larga lista de ramos aprobados. El viernes pasado me entregaron la nota de la prueba parcial 2, un (no del todo espectacular, pero para nada malo) 5.2 con el cual mi nota final ya no depende de los trabajos.

    Estamos trabajando en la U en el proyecto de Ing. de Software (aka GTALDO) y este proyecto está cada vez más gigante. Gracias al cielo lo hemos gestionado bien y se puede decir que sigue siendo mantenible, y lo será por un buen rato. Entreparentesis, este lunes es la entrega final.

    Despues de varias semanas abajo, el Planeta GNOME Chile se encuentra arriba nuevamente. El gap se debió a una intrusión de unos niños crackers activistas de Brasil que no hayaron nada más entretenido que cambiar los homepages de uno de los servidores de GNOME Chile. Ahora se ha unido al planetario el ya populosisimo linuxero Franco Catrín. Deluxe :)

  • Como es ya tradición en mi querida Facultad de Ingeniería nuestro querido profesor de Ingeniería de Software decidió que sería prudente darnos más plazo para la entrega del proyecto final.

    Una vez más, he pasado dias enteros trabajando para poder terminar un proyecto o tarea para encontrarme con un profesor complaciente que no tiene ningún problema en dar mas plazo, fomentando la maldita mala costumbre de los estudiantes de la Facultad de creer que pueden:

    1. Irse a su casa los fines de semanas y descansar dos dias completos.
    2. Hacer las cosas a medias, total, la nota es por el esfuerzo y no por los resultados.
    3. Dedicarle tiempo a la polola en dias en los cuales hay toneladas de responsabilidades estudiantiles.
    4. Ver la final de una Copa Europea de Selecciones en vez de estar hackeando sus proyectos.

    Y miles de cosas mas que habitualmente son más importantes que dedicarse a trabajar.

    Ni modo. Nuestro equipo de desarrollo ha decidido entregar cuando corresponde la versión final de GTALDO. Todos tenemos otras responsabilidades durante esta semana que comienza y la siguiente (en lo personal, tengo prueba de Ingeniería de Software, tengo que terminar 3 programas para el Taller de Programación, tengo que hacer una mini maquina virtual para el curso de Lenguajes de Programación, tengo prueba de Alemán, tengo que publicar unas notas, hacer ayudantía, comenzar a trabajar en mi Práctica, en fin. Y todo eso dentro de los proximos 7 dias). Así que está decidido, mañana entregamos.

    Sin embargo, no deja de perturbarme el hecho de que hay algo que en esta Facultad que no está bien. Y ese algo es el hecho de que una de las cosas que debe enseñarse a una persona durante su formación profesional, es a ser responsable, cueste lo que cueste. Si por algún motivo crees que no puedes cumplir con algo, atente a las consecuencias y asume tu responsabilidad.

    Si, aquí en la Facultad de Ingeniería, son pocos los profesores que realmente te exigen que seas responsable.

    Me gustaría ver la cagadita que va a quedar cuando el alumno medio de Ingeniería Civil en Computación de la UTALCA sea Ingeniero.

Thu 2004/Jul/01
  • Despues de mas de una semana esperando la nota de la prueba 2 de Contabilidad, las publicaron hoy.

    Me saqué un 5.7, lo que implica que aprobé el ramo con un 5.9.

    Despues de un año inchando con cuentas y números, por fin me saqué ese tremendo peso de encima.

    Nunca más me quedo con un ramo. Cueste lo que cueste.

Go backwards in time to June 2004.

Sun 2004/Nov/28 20:07:56 CLST