Claudio Saavedra

claudio@codemonkey.cl

Go forward in time to February 2005.

Fri 2005/Jan/21
  • Anoche tuvimos una Grillparty. Mucha mucha cerveza, algunos Brot mit Wurstchen, y por sobre todo, Deutsch Sprechen. Super entretenido.

    Grillparty (asado)

Wed 2005/Jan/19
  • Mi primo Andrés finalmente subió una pequeña galería de fotos del recital de La Renga 2004.

    Las fotos son pequeñas pero son un bonito recuerdo. :-)

  • Durante el período que llevo en Talca, una de las cosas gratificantes ha sido que he vuelto a tocar guitarra con frecuencia. Durante el año pasado la guitarra quedó relegada a un tercer plano, entre cursos, hacks, y Alemán. Ahora, que solo me dedico a estudiar Alemán, le doy un poco de tiempo en la tarde/noche a mi querida Washburn.

    Probablemente no sea una gran guitarra. Y mucho más probablemente, yo no soy un gran guitarrista. Pero me divierte. Me he entretenido sacando de oido temas de La Renga, y gracias a estos argentinos he recordado lo genial que es poder tocar una canción simple pero buena, una rola rocanrolera pura, sin maquillaje, la esencia del Rock.

    Algunos de los temas que he sacado son «A Tu Lado», «El Twist del Pibe», «La Razón que te Demora», y «Lo Frágil de la Locura». Sin ir más lejos, hoy estuve cerca de una hora rocanroleando y cantando (aunque que reconozco que cantar es una de las cosas que peor hago :).

  • Ayer tuve el segundo Wochentest del Intensivkurs. Estuvo, como era de esperarse, más complejo que el anterior, y el tema gramatical principal era el Akkusativ en las oraciones y el Präteritum en verbos regulares alemanes.

    La gran mayoría salió con un aire de derrota del test. Probablemente el error más común que cometimos fue practicar poco la redacción de textos que reflejasen los temas.

    Además de las notas de los Wochentest semanalmente hay una evaluación de acuerdo a la participación en clase. La primera semana la evaluación que tuve fue pobre (en terminos relativos), pero esta semana fue como una puñalada. Mi nota fue la más mala del grupo, y la razón es inapelable: prácticamente no participo de las clases.

    Hay una diferencia enorme en la mentalidad de las personas que enseñan idiomas y los profesores de ciencias. Si bien un profesor de ciencias (generalmente) espera participación activa de los alumnos, los profesores de idiomas esperan que uno interrumpa cada cinco minutos, lo cual está harto lejos de ser una situación comoda para mi. Lamentablemente, creo que solo es prudente intervenir cuando hay una duda que uno no es capaz de resolver en el momento, y por lo general es mucho mas entretenido salir de las dudas uno mismo, y claro, no es lo que ellos esperan de uno.

    Es primera vez que sigo un curso formal de idiomas, aprendí Inglés por mi cuenta, gracias a la música, películas, libros y manuales de programación. Si mi madre no miente, aprendí a leer y a escribir (español) antes de entrar al colegio, preguntando y leyendo los carteles de los negocios y micros. Tal vez me demore mucho más con ese metodo, pero es a lo que estoy acostumbrado, selblernen.

    Y no me ha ido espectacular en el curso, pero me defiendo. Probablemente no hay excusa para no participar mas (y talvés así me vaya mejor en general), pero es estoy acostumbrado a rascarme sólo cuando me pica, y cambiar esa actitud es mas complicado de lo que parece, especialmente cuando llevas cuatro años rascandote sólo.

    Pero en honor de la adaptabilidad, voy a hacer mi mejor esfuerzo por ser un florero en clases.

Fri 2005/Jan/14
  • Una de las cosas mas aterradoras de estudiar Alemán para un hispano parlante es la gran diferencia entre los Artículos en los sustantivos entre el Español y el Deutsch.

    En el caso del Español existen reglas bastante simples para determinar el artículo definido de un sustantivo. Por lo general, si un sustantivo termina en o, es masculino, y si termina en a, es femenino. Desde luego, existen muchas excepciones y otros casos, sin embargo, cuando has estado hablando este lenguaje por toda tu vida, no son una complicación mayor.

    En el caso del English, existe solo un artículo definido y es trivial: «the». Así cualquiera puede aprender un sustantivo y ir por la vida anteponiendole «the» cada vez que sea necesario.

    Pero en el Deutsch, es aterrante. Para comenzar, se cuenta con tres artículos, los cuales definen el masculino, femenino y neutro: «der», «die», y «das», respectivamente.

    Hasta ahí, puede parecer simple. Ahora bien, si se considera que no existe una correspondencia entre el genero de un sustantivo en el idioma Español y el Alemán, y que tampoco existe una regla para determinar el genero, las cosas se complican.

    Un ejemplo podría aclarar las cosas. «Salat» en Español quiere decir «Lechuga». Para nosotros, «Lechuga» es una palabra con artículo femenino ("la lechuga"), sin embargo en Alemán «Salat» es masculino ("der Salat").

    En Español «Muro» es masculino ("el muro"). En Alemán, «Mauer» es femenino ("die Mauer").

    Y el mejor ejemplo de lo caótico que puede resultar: En Español «Ratón» es masculino ("el ratón"). Pero sin embargo, En Alemán, «Maus» es femenino ("die Maus").

    La primera consecuencia de esta falta de estandarización entre estos dos idiomas, y la mas grave a mi juicio, es que uno está obligado a aprender cada sustantivo con su respectivo artíiculo, ya que no existe modo de poder determinarlo después.

    Por eso, durante los últimos días me he visto obligado a hacer mil artimañas para poder aprender del orden de 30 sustantivos diarios con sus respectivos artículos. Cada día que pasa el vocabulario aumenta considerablemente en el Intensivkurs (a propósito, el artículo de «Intensivkurs» es «der»). Cuando me siento completamente feliz de haberme aprendido esa enorme lista que hice de palabras, ya tengo que hacer una lista con nuevas palabras que tengo que leer y releer para poder aprender sus artículos.

    Y el problema de no haber sido sistemático desde un principio con ésto, es que al aprender un sustantivo por el simple uso diario, generalmente no se aprende el género de éste.

    Y el otro punto aterrador, es respecto al plural de los sustantivos. En Español, existen dos maneras de formar el plural (añadiendo «s», o «es»). En Alemán, son siete formas distintas, y tampoco existe una regla. Conclusión: Junto con el artículo, hay que aprender el plural de cada sustantivo.

    ¿Entienden ahora por qué estoy tan desaparecido?

Wed 2005/Jan/12
Sun 2005/Jan/09
  • Kady vino por el fin de semana a Talca. Llegó ayer a mediodia, y viajó a Santiago hoy por la tarde. Fue genial verla y compartir con ella estos dos días.

    Ella viajó cerca de 250 kms para que pudieramos vernos, y yo estoy enormemente sorprendido de lo que un verdadero amigo es capaz de hacer, en particular en tiempos donde la indiferencia abunda entre las personas.

  • Mañana a las 9.00 es el primer Wochentest en el Intensivkurs de Alemán. Para poder prepararme bien y tener tiempo disponible para compartir con Kady, tuve que sacrificar mi participación en el asado que organizaron los chicos del curso en el Hotel el viernes.

    De todas maneras, creo que valió la pena, pues creo que mañana me irá bien y además tuve un fin de semana muy entretenido.

Thu 2005/Jan/06
  • Estudiar Alemán, cuando se está dedicado en un 100%, es más fácil de lo que parece. Si bien hay un montón de complicaciones, de a poco uno comienza a pensar en el idioma, y no es para menos. Todos y cada uno de nosotros está siendo bombardeado con conocimientos durante 9 horas diarias, y luego, en mi caso, dedico entre una y dos horas a estudio en la casa.

    Pero a pesar de que el Intensivkurs es de Alemán, no tan solo hemos estado en contacto con la lengua, sino que además condiversos aspectos de la cultura e historia alemana. Ayer, una estudiante alemana que está de intercambio en la Universidad de La Frontera desde hace 6 meses hizo una excelente ponencia sobre la historia alemana entre los años 1945 (año en que terminó la Segunda Guerra Mudial) y 1989 (el año en que cayó el Muro de Berlín). Varias veces había leído sobre aquel doloroso perído en la historia alemana, otras cuantas los reportajes en la televisión sirvieron para conocer un poco más, sin embargo, escuchar las palabras de una joven alemana contando sobre la noche en que cayó el muro, es mucho más emocionante que cualquier película, documental, o libro al respecto.

    Los días han pasado rápido, pese a lo duro de las jornadas. Estas comienzan con dos módulos de 1.30 hrs. en las cuales avanzamos con teoría del libro. No nos detenemos mucho para hacer práctica, eso queda para después. Luego tenemos una pausa de 1.30 hrs. para almorzar. Es curioso como el casino de la universidad se ha transformado en der Mensa, que es como se llama en Alemania a los lugares donde comen los estudiantes.

    Luego viene el bloque más difícil del día. Es 1.30 hrs. para realizar todos los ejercicios posibles junto a la ayudante. Todo lo que queda pendiente en la mañana es resuelto aquí. Es duro, por un lado porque hay un monton por trabajar y la ayudante nos tapa con ejercicios además, y por otro lado por que es la hora con más calor en Talca (14.00 - 15.30). El sueño es difícil de aguantar, sobre todo considerando que es la hora después del almuerzo.

    La técnica para salir del paso en esto ha consistido en una siesta de 20 minutos despues del almuerzo. Los prados en la Universidad son un lugar ideal para dormir, y luego de dormitar por 15-25 minutos aunque uno quisiera seguir durmiendo, el almuerzo baja mucho más rápido y luego de mojarse la cara uno se siente con un aire renovado para enfrentar la tarde.

    Pese a que en teoría los bloques están bien definidos, algunas veces no se respetan las horas de término. Sin ir más lejos ayer en la tarde estuvimos trabajando desde las 14.00 hasta las 18.00 sin parar, los bloques terminaban tan sólo un par de minutos antes que comenzara el siguiente, tiempo justo y necesario para cambiarse de sala. Uno se siente estrujado, pero al final, todo el trabajo de estas semanas será poco cuando el viaje se concrete. No queda más que volver a mojarse la cara, bajar y subir las escaleras, respirar hondo, y saludar a la profesora. "Hallo Andrea!".

Mon 2005/Jan/03
  • Hoy comenzó el curso de Alemán Intensivo, requisito final para la beca del DAAD.

    Habiamos un total de 59 estudiantes, todos de Ingenierías y la gran mayoría entrando en su quinto año. Las universidades más recurrentes, además de la Universidad de Talca, son las universidades de la Frontera, Austral de Chile, de Santiago de Chile, Técnica Federíco Santa María, de Concepción, Católica de Valparaíso.

    Todos los chicos que no tienen residencia en Talca se encuentran alojados en un Hotel. Es una lástima que ese beneficio no corriera para los estudiantes de la U. de Talca, ya que gran parte de la convivencia estudiantil se va a vivir ahí, considerando la apretada agenda que nos depara por el resto del curso. Creo que es lamentable, por que más allá del carrete que de seguro no va a faltar, ahora es cuando uno puede llegar a hacer amistad con la gente que viajará a la misma ciudad que uno, cuando la beca se concrete.

    Comenzamos a las 10.00; la gente del DAAD y de la UTAL nos dio la bienvenida y nos explicó el programa para el resto del día. El equipo encargado del curso está compuesto por 2 profesoras alemanas (una de las cuales no habla español), dos profesores chilenos, y dos practicantes que se encargarán de las ayudantías y de los aspectos técnicos y materiales.

    Rendimos una prueba de diagnóstico para determinar como se ha de dividir el grupo. Poco menos de la mitad de los temas que contemplaba la prueba no los habíamos visto en los cursos durante el año pasado, así que no me fué muy bien, sin embargo, era de esperarse. La prueba no podía ser más simple por que mucha gente viene con una preparación mucho mejor, y la idea era poder separarlos del resto.

    Luego dimos un paseo por el Campus Lircay, para que los que no lo conocían se familiarizaran con las instalaciones.

    Tuvimos un entretenido almuerzo con los profesores y la gente de Relaciones Internacionales de la universidad. La comida estaba excelente, pero a partir de mañana el almuerzo será solo lo que haya en el Casino, así que la calidad disminuirá un poco.

    A las 15.00 nos reunimos y vimos la película alemana Good Bye Lenin!; simplemente hermosa. Transcurre en Berlín entre los años 1989 y 1992, y la historia cuenta sobre una mujer socialista que cae en un coma profundo durante ocho meses, período en el cual cae el muro, y Alemania se unifica. Cuando ella despierta el doctor le recomienda al hijo evitar que tenga emociones fuertes, ya que cualquiera podría matarla (incluso la noticia de la caida de la unificación alemana), por lo que él decide ocultarselo y de cualquier manera evitar que su madre note la invasión capitalista en sus tierras, aprovechando el hecho de que está en cama imposibilitada de moverse. Bellísima.

    Finalmente, a las 17.00 nos separamos en los grupos de trabajo. Quedé con 14 estudiantes de diversas universidades, y con ninguno de UTAL, además de yo. Andrea, la profesora, nos entregó el material con el que comenzaremos y el programm del curso. Por lo visto es bastante dinámico y están contempladas horas de clases, horas de entrenamiento auditivo y fonética, seminarios informativos sobre cultura alemana, universidades, política e historia.

    A modo de estadística: durante 2 semestres el año pasado avanzamos 12 unidades del libro Eurolingua Deutsch 1. Durante estas cinco semanas vamos a estudiar 16 unidades. Se viene con cuática.

Sun 2005/Jan/02
  • Pasé la fiesta de Año Nuevo en Linares, con gran parte de la familia reunida. De cierto modo fue algo especial para mi, ya que probablemente pase un par de años antes de que vuelva a ver a varios de los que estuvieron ahí.

  • Hoy actualizé el Kernel de Linux de hackangel desde 2.6.7 a 2.6.10. Se suponía que esto no debía ser nada demasiado complicado, pero no contaba con algunas modificaciónes a la API del Kernel que no me dejarían reinstalar el módulo de mi tarjeta de video NVIDIA.

    Una vez que reinicié con el Kernel nuevo, intenté compilar el módulo nvidia, como lo hago cada vez que actualizo la versión del nucleo. Sin embargo, el instalador (en su versión 1.0-6106, que es la que tenía en la casa, donde no tengo conexión a internet) me arrojó un mensaje de error inesperado. /var/log/messages acusó:

    nvidia: module license 'NVIDIA' taints kernel.
    kernel: nvidia: Unknown symbol __VMALLOC_RESERVE
    kernel: nvidia: Unknown symbol pci_find_class

    Del curso de compiladores, en el primer semestre del año pasado, recordé que un simbolo es un elemento presente en el enlace de código, así que sospeché que el módulo estaba teniendo problemas para ser enlazado con el kernel.

    Lo primero que intenté fue verificar que todos los módulos del kernel necesarios en mi máquina estuvieran compilados y arriba. Como aparentemente todo estaba en orden, supuse que por algúa razón había una incompatibilidad entre la revisión 6106 del instalador de NVIDIA, y la versión 2.6.10 del Kernel. Entonces tenía dos alternativas:

    1. Partir a un cibercafé a buscar una versión actualizada del instalador (si existe alguna) o alguna indicación sobre que hacer al respecto.
    2. Buscar yo mismo alguna solución al respecto, sin más información que las fuentes y la documentación que tanto el instalador de NVIDIA y el Kernel de Linux traen.

    Como me gusta perder tiempo, ahorrar dinero, y resolver los problemas por mi cuenta, opté por 2.

    Entonces partí por lo que se veía más simple. Supuse que pci_find_class era alguna función del módulo pci del kernel, por lo que revisé el código de drivers/pci/pci.c. No encontré ninguna llamada a pci_find_class, así que supuse que por algún motivo esta función estaba obsoleta. Para ver si encontraba información al respecto, empecé a buscar en Documentation/pci.txt hasta que di con ésto:

    8. Obsolete functions
    ~~~~~~~~~~~~~~~~~~~~~
    There are several functions which you might come across when trying to
    port an old driver to the new PCI interface.  They are no longer present
    in the kernel as they aren't compatible with hotplug or PCI domains or
    having sane locking.
    
    ...
    pci_find_subsys()               Superseded by pci_get_subsys()
    pcibios_find_class()            Superseded by pci_get_class()
    pci_find_class()                Superseded by pci_get_class()
    pci_(read|write)_*_nodev()      Superseded by pci_bus_(read|write)_*()
    pci_find_class()                Superseded by pci_get_class()
    pci_(read|write)_*_nodev()      Superseded by pci_bus_(read|write)_*()

    Supongo que tuve mucha suerte en dar exactamente con lo que creia que podía ser el problema, pero todavía faltaba ver si podía hacer algo al respecto. Así que le metí mano al driver de NVIDIA. Lo descomprimí y apliqué el siguiente parche:

    --- usr/src/nv/nv.old.c	2005-01-02 22:04:40.000000000 -0300
    +++ usr/src/nv/nv.c	2005-01-02 20:24:34.000000000 -0300
    @@ -639,7 +639,7 @@ static struct pci_dev* nvos_find_agp_by_
         u8     cap_ptr;
         int    func, slot;
     
    -    dev = pci_find_class(class << 8, NULL);
    +    dev = pci_get_class(class << 8, NULL);
         do {
             for (func = 0; func < 8; func++) {
                 slot = PCI_SLOT(dev->devfn);
    @@ -650,7 +650,7 @@ static struct pci_dev* nvos_find_agp_by_
                 if (cap_ptr)
                     return fn;
             }
    -        dev = pci_find_class(class << 8, dev);
    +        dev = pci_get_class(class << 8, dev);
         } while (dev);
     
         return NULL;
    @@ -3471,12 +3471,12 @@ nvos_count_devices(void)
         struct pci_dev *dev = NULL;
         int count = 0;
     
    -    dev = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
    +    dev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
         while (dev)
         {
             if ((dev->vendor == 0x10de) && (dev->device >= 0x20))
                 count++;
    -        dev = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
    +        dev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, dev);
         }
         return count;
     }

    Intenté instalar el controlador ahora, y tal como esperaba, el error volvió a aparecer. Sin embargo, las advertencias en /var/log/messages se redujeron a una:

    nvidia: module license 'NVIDIA' taints kernel.
    kernel: nvidia: Unknown symbol __VMALLOC_RESERVE

    Con ésto tenía la mitad del camino recorrido. Supuse que para __VMALLOC_RESERVE el error debía ser el mismo, pero sin embargo no pude encontrar información al respecto tan fácilmente. A pesar de ésto, me llamó la atención lo siguiente. Despues de mirar varios archivos de las fuentes del kernel me di cuenta que muchas funciones y macros además de la tradicional declaración, existe una llamada adicional, de la siguiente forma:

    EXPORT_SYMBOL(num_physpages);
    EXPORT_SYMBOL(highmem_start_page);
    EXPORT_SYMBOL(high_memory);
    EXPORT_SYMBOL(vmalloc_earlyreserve);

    Como recordé del curso de Compiladores, que por lo general los elementos en una tabla de simbolos tienen nombres genéricos (F001, ..., F009, F00A, etc.) la macro EXPORT_SYMBOL debe ser algún modo de exportar el nombre de la función o macro a la que se aplique.

    Entonces busqué la declaración de __VMALLOC_RESERVE para ver si se exportaba también. Encontré la declaración en el archivo arch/i386/mm/init.c del kernel.

    unsigned int __VMALLOC_RESERVE = 128 << 20;

    Como era de esperarse, no había ninguna llamada a EXPORT_SYMBOL. Apliqué el mini parche:

    --- arch/i386/mm/init.old.c	2005-01-02 22:29:14.000000000 -0300
    +++ arch/i386/mm/init.c	2005-01-02 20:18:38.000000000 -0300
    @@ -41,6 +41,7 @@
     #include <asm/sections.h>
     
     unsigned int __VMALLOC_RESERVE = 128 << 20;
    +EXPORT_SYMBOL(__VMALLOC_RESERVE);
     
     DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
     unsigned long highstart_pfn, highend_pfn;
    

    Luego recompilé el kernel para ver que resultaba. La compilación fue limpia y sin sorpresas. Lo instalé y reinicié sin problemas. Instalé el controlador de NVIDIA, y por fin, /var/log/messages me sonrió:

    nvidia: module license 'NVIDIA' taints kernel.
    ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
    PCI: setting IRQ 11 as level-triggered
    ACPI: PCI interrupt 0000:01:00.0[A] -> GSI 11 (level, low) -> IRQ 11

    Pude levantar GDM sin problemas, y mi sistema está funcionando de lujo. No tengo la menor idea si era la manera correcta de salir del paso -- estoy a millones de años luz de ser alguien que conoce el kernel de linux; Sin embargo salí del paso, y apenas tenga acceso a internet con tiempo, voy a buscar información sobre ésto.

  • En Chile (no sé si en otros lugares existe esta leyenda), algunas personas dicen que el clima de cada i-ésimo mes del año se puede ver reflejado por el clima del i-ésimo día del mes de enero (1 <= i <= 12). Si aplicamos ésto al día a día, y considerando que ayer no hice nada en todo el día, y hoy resolví el problema kernel-nvidia by my own, ¿significará de algún modo que durante Enero no voy a programar nada y durante Febrero estaré resolviendo bugs? Extraña interrogante.

  • Mañana en la mañana comienza el intensivo de alemán. Como no tengo la mas remota idea donde es la reunión inicial tuve que partir a un cibercafé para informarme. Damn.

Go backwards in time to December 2004.

Sun 2005/Jan/02 23:25:04 -0300