El cierre de un círculo

Si bien han estado ausentes los post del blog en estos dos últimos meses, no ha sido porque piense que ya no es “cool” bloguear (como ha sucedido con muchos compañeros que lo tomaron como una moda), mas bien que en estos últimos meses me enfoqué en terminar un pendiente, terminar mi carrera de ingeniería. algo que inicié por tomarlo relajado desde hace tres años, pero que comenzó a atormentarme en este último año.

Todo empezó como una ilusión de primeros años de secundaria, convirtiendose en meta al al final. Era bonito todo eso de los videojuegos, saber que al final una consola es una computadora, entre otras ilusiones son las que llevan a uno a pensar estudiar una carrera relacionada con estos aparatejos digitales.  No lo vi tanto como una alternativa lucrativa ante la difícil situación del país, sino mas bien como desarrollar mis vagos y casi virginales conocimientos en este interesante campo.  El principal motivador: aquella exquisita sensación de sentirse dios frente a un computador, programarla, darle algo de vida a algo inanimado. crear reglas y deshacerlas, crear mi mundo e interactuar con este.

Finalizando secundaria estaba decidido, la USAC, una universidad pública, no por que fuera la mejor (aunque hay mucho alarde al respecto), sino por ser “libre” y gratuita, entrecomillando lo libre por los exámenes de admisión.  Ingeniería era la facultad, Ciencias y Sistemas era la carrera.   Ganar bien los exámenes de ubicación me exoneró de ciertos exámenes de admisión, lo que contrastó con mis primeros dos semestres (o primer año), los cuales fueron un total fiasco, ganando en el primer año tan solo 3 cursos (de aprox 10), la mayoría del área social, y ninguno de ciencias puras y sabrosas.  A esto quisiera culpar un poco a mi irresponsabilidad  debido al consumo excesivo de videojuegos durante el primer año (te veo de reojo Chrono Cross), y a otras situaciones interpersonales al ocasionados por el choque entre un reciensalido-de-la-pubertad estudiante de Ingeniería y una virginal adolescente de 15 años del instituto colindante.  Paralelo a esto, también tuve mi primer encuentro con EL METAL.

El segundo año ya fue mejor, logre aprobar mis primeras matemáticas, un curso de física, otro de química y algunas otras asignaturas que no les tomé mucho interés. Mi consumo de videojuegos, y Metal lograban balancear perfectamente la situación “del corazón/genitales” y el estudio.  Las matemáticas ya cobraban sentido, aquel ganchito raro ya sabia que se llamaba integral, y la ciencia pura comenzaba a producirme cierta obsesión placentera. y sobre todo, logré mantener mi acostumbrado bajo perfil.

La aventura comenzaba a hacerse divertida durante el tercer año, pues, con un año académico desfasado de los de mi “promocion” ( o al menos del ideal), comenzó mi camino por cursos de ciencia computacional y monkey coding.   Supe por primera vez lo que era programar miles de lineas de código, contra el reloj.  el placer de sacrificar features por bugfixes, y  contínuo debugging en un lenguaje C bastante fuera del estándar del que me había preparado, todo era alegria y gozo, hacia lo que me gustaba, y creo que lo hacía bien. Mi rebeldía contra el “establishment” comenzaba a salir, sobre todo al respecto de editores, IDES, compiladores, y paradigmas.  sobreutilicé técnicas orientadas a objetos en código que no necesitaba tales cosas, con tal de simplificarme la abstracción. Esto contribuyó a que me bautizaran con mi apodo y el apodo de este blog, y que la gente me conociera más con ese que con mi nombre real.

Cuarto año de universidad, 2006, quizás fue la de mayor aprendizaje, no solo a nivel academico, en donde resaltaría el placer exquisito por los compiladores, los circuitos digitales y el lenguaje ensamblador, sino también a nivel personal, el desamor me invade, y mi mente comienza a encontrar refugio en el alcohol, y como consecuencia, la necesidad imperante de tener más dinero de los dos quetzales diarios de mi pasaje.  Sin embargo todavía sobreviví como méndigo de cerveza durante ese tiempo con los compañeros, y aun logre ganar los cursos en el que muchos dicen que es el segmento más complicado de la carrera… uff que alivio.

Durante el quinto año que estuve en la universidad, llevando cursos de 6to, 7mo y quizas alguno de octavo, intentando matar demonios mentales comienza mi decadencia academica.  Los cursos que me interesan se terminan uno a uno… y en cambio comienzan cursos más aburridos, tal contraste como cambiar Compiladores por Investigación de Operaciones o Estructuras de Datos por Analisis y Diseño… un total asco, todo se tornaba para peor, llegaba a aburrirme y a burlarme de los ingenieros mediocres casi siempre, pero en fin, tenia que salir y ganar todos esos cursos feos.   Lo mejor que podría resaltar fue mi primer encuentro con una comunidad de locos como yo, que gustaban de usar el software libre… Contrastando con lo peor, que fue la pérdida de mis dos incisivos superiores a causa del excesivo uso del alcohol y de la delincuencia en mi amado país…  Afortunadamente fue durante los diez días de empezar mi primer trabajo como desarrollador.  Casi no disfrute mis primeros sueldos pagando mis dientecitos.  Lección aprendida, me sigo embriagando pero con mas cautela.

Sexto año,  Las sombras del pasado continuan taladrando la mente, en donde el único refugio es la cerveza y el Heavy Metal.  Ya con trabajo ya no dedicaba tiempo para estudiar, y el interés por seguir la carrera estaba en su mínimo, pero ya faltaba poco para terminar la carrera, llevando cursos de 7mo y 8vo semestre, debía terminarla o morir en el intento.  Año difícil académicamente pero salió adelante, ya no me importaba salir a tiempo, lo que queria era salir, aunquesea a paso de tortuga.

Durante el séptimo año, al fin pude decir adiós a todos esos cursos feos de administracion gerencial e ingenieria de software.  Mayor decepción fue ver que el último curso de ciencia computacional que pensé disfrutaría, terminaría siendo más curso de superación personal que de inteligencia artificial… El Metal me seguía dando la paz mental necesaria como fue desde el inicio de la carrera,  hasta que al fin! se acabó.  Había terminado todos los cursos… excepto uno Maldición y Simulación 2.

Durante el octavo año en mi estancia por el sagrado edificio T3.  ya ni lo conte, no me interesó meterme a llevar un curso que detesto una vez mas durante todo un semestre, mejor decidi esperar a que la aleatoriedad me favoreciera y abrieran el curso en los muy convenientes cursos de vacaciones de junio (o interciclos como le dicen en algunas universidades mariconas)… Esa era la oportunidad y fue un sacrificio soportar al mediocre ingeniero durante ese mes. pero al finalizarlo exitosamente dije:  mision cumplida. pero aun no completada… faltaba el examen privado y la tesis que ya llevaba un año de postergada debido a mi dejadez y falta de asesor.  Fue buen año de reiniciar cuestiones personales ademas, saliendo exitoso de mis conflictos mentales y encontrando la paz mental en la que hasta la fecha es la perfecta compañía.

Durante el noveno año, decían que había que prepararse para el examen privado, estudiar durante 3 meses dia y noche como si nunca hubiera llevado la carrera.  Decidi ignorar ese “approach” y no estudie NADA, tomé la filosofía de “Si gano, es por que aprendí algo, sino aprendi nada, merezco perder y ser un mediocre”. Todo salió bien, aunque el examen no fue como lo describían los paranóicos, siempre tuvo su dificultad y requirió su esfuerzo durante el tiempo que se realizó. Exámen aprobado exitosamente y de premio me regalé un viaje al Wacken Open Air, a agradecer a los dioses del Metal la existencia de ese Heavy Metal que me acompañó durante la carrera, con miras  para terminar el siguiente año la tesis pendiente ya con dos años de atraso.

Décimo año, tocaría conseguir asesor, terminar la tesis y graduarme. Fue algo tormentoso ver como todos se graduaban y yo seguía en las mismas, pero me tranquilizaba que ya tenia mi plan hecho.   Fue fatídico que me aceptaran mi tema de tesis nuevamente, dado que llevaba tres años de antigüedad, afortunadamente el revisor de tesis se porto bien, me la acepto, terminé el capítulo faltante, afiné detalles junto con mi flamante asesor (al cual le agradezco su tiempo), y despues de un montón de odiosos trámites, la graduación, y el alivio…  Un viernes cualquiera ya era ingeniero, aunque al final me sentía igual que cuando no lo era.  quizás alargué mucho la carrera como para sentir algo especial al terminarla.

En fin aunque la carrera ya esta muy desgastada (y lamentablemente sigue desgastándose) siempre es bonito lograr metas, estoy contento de haber logrado esta, con un esfuerzo moderado y sin estresarme mucho. Aprendí, me divertí, y sobre todo conocí y compartí con mucha gente, que no solo me ayudaron en muchos casos, sino ademas forjaron la profesionalización de manera positiva (y con algunos otros contraejemplos).  Gracias Universidad de San Carlos de Guatemala, buenos catedráticos y Pueblo de Guatemala por mantenerme estos 9 años y fracción… ahora tocará devolverles lo que me dieron.

Id y enseñad a todos.

Los ánimos sistemicos…

Sin afán de hacerle competencia al Failblog.org, y sin tener ganas de escribir mucho, revisando fotos viejas en mi celular, recorde que habia tomado una a los famosos “ranchitos” de la facultad de Ingenieria USAC, el cual tiene el siguiente mensaje de optimismo que dice asi:

Mensaje optimista en los ranchitos

Mensaje optimista en los ranchitoss

– Vamos a Pizar

– Semana (22-28) 220809 Maldita!! [tridente]

Seguramente quien escribio ese mensaje le estaban calificando Compiladores 2 …

Bienvenida agradable…

Era un 14 de enero de 2008, primer dia de clases en el 2008 en la facultad de Ingenieria… y como siempre tuve que asistir, a sabiendas que quizá ningún ingeniero se presentara a dar clases. por lo que decidí llegar a las 10:50 AM, aunque haya habido período de Sistemas Operativos 2 a las 8 AM. Como cosa rara. la camioneta fue ágil, y llegué 20 minutos antes de lo esperado… perdiendo 20 minutos de mi vida que ya los tenía destinados a pasarlos sentado en la camioneta.

Llegando temprano, pues decidí sentarme un rato a orillas de la famosa pileta… esperando pues que llegara la hora de inicio de período de un curso del cual el nombre no quiero recordarme. Agradable fue mi bienvenida a la pileta, pues cual fue mi sorpresa que justo sentándome, estaban transmitiendo musica en las bocinas de la plaza, luego comenzé a escuchar a lo lejos unas guitarras distorsionadas, acercándome más me doy cuenta de que lo que mis oídos escuchan es una cancion de HEAVY METAL! me sorprendio, y poniéndole más atención me di cuenta que era ANGRA, no se que cancion era pues ya casi estaba por terminar, pero era alguna del Angels Cry. Es la verdad, bastante agradable que lo reciban de esta manera en el primer dia de clases, que al final paradójicamente no fue dia de clases, pues ningún ingeniero llegó. De plano que quería ver el ascenso del nuevo presidente. allá ellos.

Al siguiente dia, no hubieron clases, pero lo importante fue que continuaron colocando canciones de Metal en dicha plaza, y aunque muchas de estas de Sonata Arctica y otras bandas algo flower, obviamente es mejor que escuchar cualquier otra abominación de origen portorriqueño que es bastante popular en estas regiones del mundo donde abunda la pobreza… Incluso me di cuenta que hasta locutora privada teníamos en dicha plaza… quisiera ver que tal habla por microfono! Muy buena iniciativa, y viva el Metal en la facultad de Ingenieria!

Vamos Al Coecys!

Eventos muy importante para la comunidad estudiantil de la Facultad de Ingeniería de la USAC se están llevando a cabo en esta grandiosa semana, estos son los Congresos de cada carrera, y como no podía faltar, los estudiantes de Sistemas se vistieron de gala para dar inicio a esta serie de eventos.

Y aunque este año no pude ir y me quedé de nuevo con las ganas de asistir a este evento por diversas razones, no dudo en que este Coecys 2007 (Congreso de Estudiantes de Ciencias Y Sistemas 2007) estará muy constructivo, enfocándose principalmente en el tema de las TICs, y contando con la participación de conferencistas de diversas empresas y ONGs a nivel nacional.

Nomás me queda escuchar los comentarios de los compañeros que si lograron ir al congreso, y ver las fotos para hacerme una imagen de lo que me perdí, ya sea las conferencias, talleres o las fiestas “after-Conference” animadas por el escuadrón de Alcoecys (hay me guardan un poco jóvenes!). Mis sinceras felicitaciones al equipo de Coecys 2007(Isaac, Joaquin, Mario, Adin, Paniagua, et al) por haberle dado vida de nuevo a este movimiento que estaba a punto de morir.

Proyectos creativos en Compiladores 2

Desde que inicie la carrera de sistemas(entiéndase desde IPC1), los proyectos han sido mi pan de cada día, Han habido pocos proyectos con ideas creativas, muchos otros que no lo eran tanto, incluso muchos de los proyectos menos creativos resultaban ser los más costosos en cuanto a tiempo y esfuerzo.

El semestre actual (jul-dic 2007), a los compañeros del curso Organización de Lenguajes y Compiladores 2 de la USAC, les asignaron un proyecto bastante interesante… un Compilador de música… Y esto que es? Algo asi como un generador de partituras musicales, además que permite la reproducción de la misma dentro de la aplicación. Me llamó la atención, ya que desde que entré a la carrera, quizá es el proyecto más atractivo para desarrollar que he visto, llegando a un nivel alto de aceptación por la mayoría de compañeros que están cursando esta asignatura, por que… a quién no le gusta la música?

también debido a que el proyecto de por sí no representa mucha dificultad en programación (Recuerdo que en primer proy. de compiladores 2, me toco hacer un generador LALR, lo cual no es algo tan sencillo), sin embargo, la dificultad está en que es necesario tener muchos fundamentos musicales básicos para su desarrollo tales como tiempos, compases, claves y todo lo referente a notación musical. Los compañeros deberán entonces aprender o refinar sus conocimientos algo que es un tópico que está dado de una manera deficiente y tediosa en la educación primaria y media en el país, aumentando de esta manera su acervo cultural y ampliando sus conocimientos de este bello arte, y de manera implícita desarrollar sus conocimientos en técnica de la generación de Compiladores.

Felicito a los creadores de esta iniciativa (Aux. Ramirez o Aux. Ricart, quien quiera que haya sido) por este proyecto tan interesante, ya que permiten que el estudiante de sistemas común y corriente, salga de su infierno abstracto en el que vive, para poder aprender algo diferente e implementarlo de una manera útil. Espero que se sigan generando proyectos así en la carrera, y lástima que no asignaron éste proyecto cuando yo llevé el curso!

Computación Cuántica: Un nuevo reto para Sistemas en la USAC y demas paises en vias de desarrollo…

Sabemos muy bien lo que es la computación digital, nos hemos aprovechado de sus virtudes, así como tambien nos hemos quejado de sus deficiencias. Nos ha permitido por mucho tiempo cumplir con una gran parte de los sueños de la humanidad que jamás nos imaginábamos resolver, ha creado soluciones, así como problemas (mas soluciones que problemas diría yo), así como tambien nos ha servido para distanciarnos cada vez mas del mundo real, y modelarlo y abstraerlo a un sistema computacional lo mas preciso posible. Sin embargo todavía falta mucho por abstraer y más precisión por dar para este mundo caótico en el que vivimos, muchos problemas no han podido ser resueltos por los sistemas computacionales actuales, así como muchos sistemas naturales y sociales no han podido ser modelados correctamente en éstos sistemas digitales para su posterior simulacion. Sabemos muy bien que hasta que no se construya una máquina completa en Turing, no se podrán resolver…

Sin embargo nos encontramos en una etapa muy cercana actualmente, con el desarrollo de la Computación Cuántica, el cual es un conjunto de teorías revolucionarias basadas en la física cuántica y en el análisis de probabilidades, que permitirá construir lo más cercano a una máquina de Turing; Una emulación de una maquina de Turing probabilística, para poder resolver muchos problemas de índole probabilístico y contínuo, que no se pueden resuelven o tomaría bastantes años de cálculo con la computación digital actual , estrictamente discreta que se limita a darnos un 0 o un 1. lo que provoca la alta complejidad temporal de algoritmos para su implementacion en sistemas digitales actuales.

Todo esto me vino a la mente, debido a que hace poco estuve leyendo el libro “Introduction to Quantum Computing” (Phillip Kaye et al,2007), y se necesita tener claro una la gran cantidad de conceptos matemáticos y físicos como producto de tensores, descomposición de Schmidt, teletransportacion cuántica etc, que se necesita para poder entender a fondo los principios fundamentales de la computación cuántica. Sin embargo no debemos olvidar algo… somos ingenieros y no científicos, pero para poder darle aplicación a lo que los científicos generan, necesitamos al menos las bases más fundamentales de la ciencia (Aquí una de las razones de por que llevamos mas de 9 cursos de matemática en la carrera).

El problema que veo ahora es… ¿qué tanto estamos preparados nosotros los futuros ingenieros en CIENCIAS y sistemas de la USAC como los ya graduados, para este gran cambio de paradigma? ¿Que tan preparados académicamente están los docentes de las diferentes áreas para impartir las bases para los anteriores conceptos científicos? ¿será que nos están preparando adecuadamente, o tan siquiera avisando en los cursos tanto de Ciencia Básico como los de Ciencia computacional para poder acoplarnos al cambio? Obviamente, hemos aprendido a ser bastante autodidactas durante toda la carrera, sin embargo, ¿Consideramos estaremos listos para cambiar el enfoque?(el cual podría incluso requerir entrarle a la mecánica cuantica, etc) He aquí uno de los razones por lo que estoy de acuerdo en el refuerzo a la enseñanza en la ciencias básicas y computacionales en la USAC, pues las fuertes bases científicas permiten una transición mas sencilla hacia las nuevas tendencias. Así que, estemos al tanto de las posibles corrientes futuras, por que camarón que se duerme… se cambia a Ingeniería Industrial!

para mas información acerca de Computación Cuántica: http://en.wikipedia.org/wiki/Quantum_Computing

JAVAizando sistemas de la USAC.

Una de las cosas por las que la gloriosa y tricentenaria Universidad de San Carlos de Guatemala se ha dado a conocer a nivel nacional, por ser una de las universidades en donde ganar los cursos es un sacrificio sinigual, Decir que alguien se graduó de la USAC muchas veces significa que es una persona que ha superado etapas de burocracia, catedráticos trabadores, y sobre todo, muchos desvelos. Y qué decir del prestigio de salir de Ing. en Ciencias y Sistemas, una de las carreras que por mucho tiempo fue considerada como la más desafiante dentro de la USAC. Ahh un gran sacrificio, mas por los 80s; sin Internet, ni wikipedia, ni Sourceforge, sin Amarok o Winamp y obvio sin mp3 de Kreator que escuchar para una mayor iluminación de algoritmos, etc…, y con una gran carga algorítmica dada en los cursos científicos computacionales y que había que desarrollar e investigar en bibliotecas convencionales.

Sin embargo todo esto ha ido cambiando, y desde el 2005, desde que entro el dizque decano Paiz, y su equipo de trabajo, específicamenteel Ing. Mazariegos, ex director de la Escuela de Sistemas, quien propuso al inicio de su gestión, “cambios” que supuestamente beneficiarían al estudiantado. Estos cambios fueron fundamentados en la necesidad de renovación de enseñanza en la carrera, que según él, eran más aplicables, llevaron a convertir esta carrera de alta demanda en Guatemala, en algo asi como una carrera enfocada más en tecnologías cortoplazistas y triviales, removiendo todo rastro de ciencia que tenía la carrera, y convirtiéndolo en J2EE, etc, una tecnología que si bien los conocimientos de ésta tienen alta demanda en el mercado, todos sabemos muy bien que el mundo tecnológico cambia a un ritmo acelerado, y lo que hoy es tecnología de punta, mañana es tecnología inservible, e inútil. y Java no va a ser la excepción.

Hasta donde yo se el nombre de la carrera es “Ingeniería en Ciencias y Sistemas”, mas no “Ingeniería en Java y Paradigmas Tecnológicos Actuales de Sistemas”, ya que pareciese que se removió cualquier rastro de ciencia que quedaban en cursos de 3er semestre al 6to, Convirtiendo los contenidos de cursos tan importantes como Estructuras de Datos, de Arboles B a Web Services e i18n en Java, y a la masterización de herramientas como NetBeans y JDeveloper…

El problema ha llegado a tal extremo que la pobre generación que comenzó Programación 1 en el 2do semestre de 2005 no sabe ni siquiera el concepto de puntero en C/C++, mucho menos van a saber la implementación óptima de un arbol B en C/C++, o de un Arbol de Sintaxis Abstracta, muy útil para los cursos de Compiladores, que afortunadamente siguen sin cambio en sus temas titulares y el contenido se sigue basando en el Libro del Dragon sin embargo…

A esto viene la siguiente pregunta: Cuando se ha visto que un compilador este hecho en una plataforma tan ineficiente sobre Java??? pues señoras y señores, esto es lo que se está haciendo en los laboratorios de Compiladores 1 y 2, imponer el uso de herramientas tan ineficientes como JLex y Cup y crear un intérprete o compilador en lenguaje Java que se ejecute ineficientemente sobre la JVM…

Para muestra un boton, el proyecto publicado en este blog esta hecho en Java, con una ineficiencia enorme, y no tanto por culpa del programador(o sea yo ;-)), sino de la plataforma Java y su JVM, Esa ineficiencia se hubiera minimizado si se hubiese hecho en un lenguaje igual de portable, e incluso soportando más plataformas de hardware/software que el mismo Java como C/C++ bajo GCC usando Flex y Bison o ANTLR(y si no me creen lo de la portabilidad, dos preguntas sencillas… Con que lenguaje está hecho y bajo que esta compilado el kernel de Linux?? en C bajo GCC obviamente, y en cuantas plataformas de Hardware se ejecuta?? Muchísimas, incluyendo teléfonos móviles…), por lo que la excusa de la portabilidad era el motivo para el uso excesivo de Java en los cursos de programación en la Escuela, con el anterior argumento se acabó.

Y no es que esté en contra de tecnologías y paradigmas como J2EE, .NET, , ni de lenguajes como Java o C# o tendencias como Web Services o i18n, Se que con ellas se pueden realizar muy buenas aplicaciones con el mínimo de esfuerzo, y reconozco que estas tecnologías se tienen que seguir impartiendo, sin embargo como temas de laboratorio, no de la clase titular. De lo que sí estoy en contra es de la sustitución de la base científica fundamental por éstas, que bien se sabe que lo que es ciencia, perdura por los siglos de los siglos.

Afortunadamente yo todavía tuve la oportunidad de ser la última generación en aprender lo que quedaba de Ciencia de la computación… ya que gracias a este background científico, aprender nuevas tendencias como Ajax, Ruby on Rails, J2EE, se hace mucho mas sencillo, y el cambio de paradigma menos costoso y doloroso… a que si le ponen a un alumno carnet 2005 a que les desarrolle un sistema de archivos para una base de datos usando Árboles B+ bajo C++. Que las cosas buenas continúen, y la ciencia computacional regrese a donde debe estar, he dicho.