Metal, software libre, Linux, retro-gaming y vida universitaria (2007–2022)
Tutorial ANTLR y Python I. Introducción e Instalación
Tutorial ANTLR y Python:
Parte I: Introducción e Instalación.
Parte II: Creacion de una gramática sencilla.
Parte III: Creacion e implementación de un AST.
Dada la poca información que hay respecto al tema en Internet en español, me imagino que quizás por la poca apreciación que tiene la Teoría de Compiladores no sólo en mi país (Guatemala) sino en quiza toda latinoamérica. he decidido hacer un tutorial para intentar llenar ese vacio, y demostrar que existen herramientas más amistosas para generar analizadores léxico y sintácticos que la monolítica combinación FLEX/Bison, y que además, se pueden hacer en otros lenguajes que no sea el legendario C/C++. Pero antes de esto, una introducción (rapida para no aburrir) a las herramientas.
…Mis proyectos de sistemas en la USAC parte VI: Compiladores 1…
Que ironía, se me olvidó colocar el curso que auxilio en la universidad, Introducción a los lenguajes y Compiladores 1. Y si lenguajes era introductorio a éste, éste a su vez, es introductorio a la yuca de Compiladores 2 como lo describí anteriormente. Lamentablemente, como tanto el auxiliar de ese curso, como el ingeniero, no sabian ni rosca, me tocó a mi estudiar por mi cuenta, mas por mi gusto que por ganarlo. y así fue. a continuación publico los únicos 2 proyectos que se realizaron.
…Mis proyectos de sistemas en la USAC parte V: Compiladores 2…
Y luego de la trabada que fue Compiladores 1, Estructuras de Datos, y Organización Computacional. se deja venir el 6to semestre con muchas más trabadas, solo que ésta vez exponenciales… y no tanto por los cursos de sistemas, sino tambien por Investigación de Operaciones… un curso en donde el que sepa llevar la subjetividad de Vinicio Monzón, el ingeniero que dá el curso, hasta en su auxiliar se puede convertir (sino vean a Patricio AKA César Rojas), pero bueno, ya mucho hablar de basura, y vamos a lo que me incumbe, publicar los proyectos del que, para muchos, es el curso más difícil de la carrera (aunque a mi me haya costado mas la investigacion de operaciones), no tanto por su contenido teórico, sino por la extensión y dificultad de sus proyectos de programación. Me refiero a Organización de Lenguajes y Compiladores 2. Se realizaron 2 proyectos en este curso cuando lo lleve ya hace algunos años, los cuales son:
…Mis proyectos de sistemas en la USAC parte IV: Lenguajes Formales…
Se me olvidaba un curso de 4to semestre, paralelo a IPC2, uno de los que enseñan lo que es desvelarse echando punta, Lenguajes formales, impartido por el mismísimo Satán. Era un curso introductorio a Compiladores, y por lo tanto, a nivel de éstos en cuanto a extensión y dificultad en sus proyectos, aunque con menor magnitud obviamente… Aquí se realizaban 3 proyectos, los cuales se enfocaban en usar 3 diferentes lenguajes para comprobar 3 diferentes paradigmas supuestamente.
…Mis proyectos de sistemas en la USAC parte III: Estructuras de Datos…
Uno de los cursos más difíciles en la vieja escuela, continuación de IPC 2 en un semestre que no tenía nada de trivialidad al llevar cursos de Circuitos Digitales, y Compiladores simultáneamente con éste… y un curso que tuve que repetir en vacaciones con los proyectos ya ganados, (eso era lo bueno), y que, en la actualidad, esta mas orientado a web services y J2EE que a estructuras de datos puras. como cuando la llevé. pero bueno, hace tres años todavía teníamos que hacer Matrices Ortogonales, Árboles AVL, Hash tables, y todo tipo de estructuras desde cero, pues usar librerías como las collection de Java y las STL de C++ era un pecado para los auxiliares. En fin, de éste curso incluiré solamente 1 proyecto, el de un dizque Excel hecho en Java que utilizaria Matrices Ortogonales para manejar las celdas. y 1 práctica ratosa.
…Mis proyectos de sistemas en la USAC parte II: Progra 2…
Bueno, luego del exitoso post anterior (de donde jodidos), tambien he publicado los proyectos desarrollados en el curso de Introducción a la Programación 2… en un semestre donde se comenzaban a complicar las cosas pues habia que llevar varios cursos no triviales como Fisica 2 o Lenguajes formales. La progra 2 de aquellos tiempos era un poco diferente a la de ahora, pues antes se daba solamente temas de persistencia en archivos, OOP, Memoria dinámica (punteros, listas y todo eso), un poco de análisis y diseño (unico tema que persistió en la progra 2 de ahora), y conceptos básicos de redes… y lo que se programaba se hacia en C ++. Y aunque seguían con su necedad de obligarnos a programar en el asquerosisimo borland C++, me importó un comino y empecé a hacerlo en un compilador mucho más superior y que cumple estándares… GCC, desarrollandolos dentro de algo que es más que un IDE… EMACS, y sobre un sistema operativo tambien superior, Linux. además que daba primera vez uso de un sistema básico de versionamiento, el CVS. Y para cuando tenian que calificarmelo en windows que hacia? pues como los proyectos eran básicamente en consola, no me costo mucho portarlos a Windows usando el compilador MingW. Bueno, a continuación un trio de proyectos inútiles cuya única finalidad era didáctica (bueno, quiza tambien tenia de finalidad trabarnos, pero al menos no lo lograron conmigo):
…Quinto Sábado de Software Libre pre FLISOL
Bueno, ya algo tarde, informo que el sábado 21 de marzo se celebrará el quinto y último sábado de software libre, organizado por los desalineados de LUG USAC entre otros, como adelanto al festival latinoamericano de instalación de software libre (FLISOL) que se llevará a cabo el 24 de abril de este año.
Entre los temas a tratar éste sabado estara las XO (OLPC) y seguridad informática para usuarios finales, que la verdad no tengo idea de que se trata, pero me imagino va a estar buena la conferncia, asi como la mayoría que han realizado en semanas anteriores. Los detalles se pueden ver en la imagen adjunta.
Como dice el afiche, la entrada es gratuita (free as in beer), y se regalará una cerveza a los asistentes…
Mis proyectos de sistemas en la USAC parte I: Progra 1...
Bueno, el ocio es taller de Satan, y para aprovechar mejor mi tiempo de ocio, decidí hacer un clean a todos aquellos proyectos de programación que desarrollé en la carrera de Ingeniería en Ciencias y Sistemas de la gloriosa y tricentenaria Universidad de San Carlos de Guatemala. Y luego de limpiar dichos proyectos, publicarlos en Internet, aprovechando el repositorio que google ofrece por medio de su servicio google code. Iré curso a curso publicando los que fueron los proyectos más significativos de estos, muchos de estos son medios ratas, otros no tanto, pero hay que comprender que, en la Universidad siempre nos ponían a hacer dichos proyectos contra el tiempo. Y hoy, es el turno de publicar aquellos proyectos que desarrollé durante el curso de Introducción a la programación 1… si, progra 1 de la vieja escuela… cuando éramos obligados a usar el nefasto Borland C++ 3.1 (y me quejo por el compilador que era una basura, no por el lenguaje). pero qué otra, muchas veces los auxiliares ineptos no dan otra opción. Los proyectos son los siguientes:
…Ahh los 90's...
La nostalgia tocó a mi puerta de nuevo. Leyendo la wikipedia acerca de “el chavo del 8” ( un show que, aunque extremadamente estereotipado, casi toda latinoamérica ha crecido con él desde los 70s), me dio curiosidad acerca de las “generaciones” que se han dado a lo largo del siglo XX, Interesante me fue conocer que pertenezco a la denominada “Generacion Y” dado que nací entre el 76 y el 2001 según ellos. Pero más nostalgia me dió el ver que a su vez, pertenezco a la generación infantil de los 90’s Quien me lea, no me dejará mentir que recordar los 90’s para alguien mas o menos de mi edad, o de la generación Y, para bien o para mal, fue una década que dejó marcadas y definidas nuestras vidas. Quién no recuerda las horas que pasaba uno frente a la Televisión viendo canales nacionales, ya sea las caricaturas tan buenas en las tardes como Transformers, la serie ñoña Capitan Planeta (o como le decia, capitan saneta y los sanitarios), He man, los grandiosos X men (los clásicos de los 90s), Spiderman, entre otras. o incluso shows como el de el Chavo o Chespirito que trascendieron generaciones. Sin mencionar también otros shows cómicos como Cándido Perez y Papá soltero, antecedidos por Notisiete, y precedidos por el noticiario subjetivo Noticias y Más, y la nefasta Cristina, ahh vieja mas fea, eran de sintonización obligatoria por culpa de quien servia la comida… y por falta de un segundo televisor. También es de recordar series gringas como Alf, Los años maravillosos, Salvados por la Campana, entre otras. Ahh sin olvidar las series nocturnas como Baywatch (ahh que mamis), Rescate 911, MacGyver, El Renegado, Kung Fu, además de miniseries traumatizantes como el payaso IT y Los Langoliers, entre otros. Los pocos que llegamos a tener televisión por cable teníamos la opción de ver los inicios del Cartoon network, cuando transmitían Los piratas de las aguas negras (bastante buena), Johnny Quest, el Fantasma del Espacio, y todo esas viejadas de Hanna Barbera, los nefastos Power Ranger (una de las cosas que me arrepiento en mi vida), además de el famoso canal 5 mexicano, el XHGC, en donde transmitían también muy buen repertorio animado por las tardes, recordando Dragon Ball y Dragon Ball Z como hitos de los finales de la década. También tuve la oportunidad de ver series más maduras como Los Simpsons (en sus buenos tiempos) que la transmitían en el Fox, Beavis and Butthead en el MTV (cuando todavia valia la pena ver ese canal que actualmente es un basurero), entre otras. Además una serie de videojuegos llamada Nintendomanía cada sábado para todos los que éramos viciosos de los videojuegos. Y después de las 12 AM… mejor ni decirlo, el famoso canal 25b el “prohibido” con el cual crecimos y aprendimos muchos. Otro aspecto importante, tomando en cuenta esta década, es la baja penetración de la internet en esos medios (es mas, en guatemala se conoció hasta el 96, a unos precios exhorbitantes)… no se si se era más feliz salir a jugar cincos o trompos como lo hacíamos antes, que ver videos de youtube o chatear como lo hacen los patojos de ahora. de lo que estoy seguro es que, aunque no tenía computadora de niño, sí disfrutaba mucho mi Super Nintendo, a tal nivel que aún continúo jugando sus juegos aunque sea a través de emuladores en el PSP… Cómo crecerán los patojos de ahora con las nuevas tecnologías? solo el tiempo lo dirá. Hablando de cincos y trompos, recuerdo que éstos tenían ciertas temporadas en que se jugaban bastante, así también la temporada de cacería de Zompopos, la verdad no se si aún se conserva esa tradicion, pero lo que si se conserva es su característico aroma en mi memoria, además era bastante entretenido (y cruel) poner a pelear dichos insectos. Ahh y no olvidemos que también habia temporadas para los Yo-yos, más aquellos Duncan que eran bastante caros. Recordando además la temporada de Tazos Looney Tunes de Sabritas (lastima que ya no existen las pizzerolas) y Las Pepsi Cards. Bueno, y musicalmente… pues una basura, la verdad no me gustó la musica de ésa época por este lado del planeta, dado que en la radio transmitían pura basura, y sólo de ves en cuando MTV pasaba algo bueno, pero que era de la década anterior. Desgraciadamente Kurt Kobain vino a cagarse en la década noventera, que bueno que se murio. y mi único escape era escuchar un poco de heavy/thrash metal 80ero con mi hermano y unos amigos mas viejos, aunque en ese tiempo yo ni en cuenta de que era eso y solo lo escuchaba por imitación. Ahh los 90s, la edad de la inocencia…
…Un viaje por los editores hexadecimal en Gnu/Linux
Dado que actualmente tengo tiempo de ocio, decidi retomar mis riendas de hacker, y comenzar a investigar acerca de la emulación de Gamecube/Wii sobre el x86/x64. Encontré un emulador bastante desarrollado llamado Dolphin, el cual he estado probando como viciojugador, pero la curiosidad me llevó mas lejos. decidi bajar las fuentes, y dado que existia una version para gnu/linux, esa fue la elección. Mi idea no era solo jugar los benditos juegos… sino tratar de encontrar bugs (lo cual no fue muy dificil de localizar, sobre todo en el motor JITIL del mismo) y resolverlos por mi cuenta, pero para poder entender necesitaba algo importante… aprender principalmente el set de instrucciones del power pc (opcodes, etc). Esto me llevo a buscar la documentación técnica del aparato en cuestión, (el YAGCD), en la cual se encuentra la mayoría de “shucadas” necesarias para poder lograr la magia de la emulación de esta máquina… Bueno, pues en mi aventura, me di cuenta que me hacia falta algo bastante importante… un buen editor de hexadecimal. Dado que antes programaba más en windows, usaba el típico y poderoso winhex, pero… opciones para gnu/linux? no estaba muy informado. me puse a buscar algunos en los repositorios de Ubuntu, y estos fueron mis candidatos:
…Mis top 10 tracks de Iced Earth, Las Elegidas
Para que no digan que tengo muy abandonado el blog, se me ocurrio hacer otro de mis top ten, esta vez de una banda a la que quizá no se le ha dado la suficiente atención en este continente (como dicen que nadie es profeta en su tierra… aunque la mayor parte de veces es consuelo de tontos este dicho), Nada mas y nada menos que Iced Earth, una de las mejores bandas de Heavy/Power Metal que no cae mucho en el cliché de “dragones y hadas” típicas del subgénero, dirigida por el maestro Jon Schaffer. Y con Audacious en pantalla, aqui vomito las 10 elegidas… en orden inverso.
…Mareos en primera persona...
Hoy, probando el juego Left 4 Dead, fue realmente fustrante la experiencia, la misma que llevo desde la primera vez que toque el primer First Person Shooter (Wolfenstein 3d), el asqueroso mareo y nauseas que siempre me provocan este tipo de juegos.
Es realmente lamentable como videojugador compulsivo, no poder disfrutar este tipo de juegos como se debe. Pues debido a este problema no he podido soportar juegos tan buenos como el Doom 3 o Metroid Prime, o multiplayers tan enviciantes como Counter Strike, Halo o Unreal Tournament, incluso hasta algunos de 3ra persona como Gears of War. Daba mi caso por perdido, evadiendo este tipo de juegos pues sabia que si los jugaba, ni media hora duraba para empezar a vomitar los contenidos de mi estómago. Pero hoy, si me hastio el problema del Left 4 Dead, por lo que me decidí hacer algo que no se me habia ocurrido, buscar qué demonios puedo hacer para “fortalecer” mi estómago.
Pues gracias a San Google (alabado seas) me encontre que yo no era el unico caso aislado. Es interesante ver que somos muchoslos que sufrimos este problema, aunque no la mayoria. Sin embargo son mas interesantes los datos.
Según la Popular Mechanics la enfermedad es llamada “simulator Sickness” o algo asi como el “mal del simulador”, y no solo afecta jugadores de videojuegos, sino que más de la mitad de pilotos de la milicia gringa que usan los simuladores de vuelo desarrollan este mal. con hasta un 10 por ciento de éllos les dura hasta 4 horas los efectos.
La causa, es que el cerebro se pone en desacuerdo entre lo que los ojos ven y lo que el oido interno (donde esta el equilibrio y todo eso) le dice qué en realidad esta pasando. Una teoria dice que un área del cerebro asocia la discrepancia balanceo/vista con alucinaciones. Debido a que ver alucinaciones no es normal, el cerebro asume que quizá se consumió algun tipo de veneno. y entonces automáticamente activa el mecanismo para desahacerse del supuesto veneno, y cual es la mas común, pues echando la guaca (sino preguntenme cuando tengo varios litros de cerveza en la barriga).
Ahora, como se puede corregir?