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.

1. Proyecto ElectricSheet

Nombre basado en la canción electric Eye de Judas priest,  la verdad se trataba de una aplicación de Hojas electrónicas hechos en Java. que hace uso de la estructura de datos Matriz ortogonal, para representar las celdas del dizque excel.  Programado bajo Netbeans, y que además, ponía en práctica lo que llevaba en compiladores, al tener que implementar un mini parser hecho en JLex y Cup para interpretar las fórmulas, no era algo obligatorio, pero aproveche de una vez para aprenderlo, ya que me iba a servir en compiladores 2.  El código se encuentra hospedado en:

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/java/EDD-proy1-ElectricSheet/ electricsheet

UPDATE: descargar de aqui usando git clone descrito abajo:

https://github.com/kreigiron/proy-usac/tree/master/java/EDD-proy1-ElectricSheet

2. Practica de Mapeo lexicográfico.

La verdad no es la gran cosa, solo calculaba la posición lineal de un elmento en una matriz de n x m… no me recuerdo como se usa, por lo que dejo el código hecho en C++.

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/c++/EDD-mapeolex/ mapeolex

UPDATE: descargar de aqui usando git clone descrito abajo:

https://github.com/kreigiron/proy-usac/tree/master/c%2B%2B/EDD-mapeolex

Los Otros proyectos no los incluyo, pues el 2do me quedo bastante feo, y el 3ro, era un website que en realidad no era la gran cosa y dejo de existir para el bien de la humanidad.

PD. Para poder bajarlos, deben instalar el cliente subversion de consola en gnu/linux y ya instalado ejecutar el comando dado en el directorio donde se vaya a bajar. Tambien recomiendo usar el TortoiseSVN si van a bajarlos en Windows

UPDATE: Codigo disponible en github. para descargar utilizar el siguiente comando:

git clone https://github.com/kreigiron/proy-usac.git

 

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):

1. FIRST (FIfa Rating SysTem)

Continúan los nombres estúpidos, para un proyecto tambien estúpido, supuestamente era un calculador de posiciones y punteos para torneos de la FIFA,  lo más difícil era entenderle bien la ambiguedad del enunciado que la mera programación en sí.  Éste proyecto tenía que hacer uso de archivos no recuerdo para qué, pero lo que si recuerdo es que sacaba estadísticas.

svn checkout  http://proyectos-kreig-usac.googlecode.com/svn/trunk/c++/IPC2-proy1/ first

2. MOTHELL:

Este supuestamente era una administración de hoteleria o algo así, en donde se debía poner en práctica los conceptos de OOP que supuestamente habian enseñado.  Tiene estructura parecida al anterior, pues fue hecho por el mismo mortal con las mismas herramientas… ahh, e incluye su Makefile para una facil compilacion.

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/c++/IPC2-proy2/src/ mothell

3.  Libra:

El último y más trabajoso proyecto (aunque la verdad estaba bastante facil) que consiste en Mantenimientos para libros de una biblioteca, administrando también préstamos y todo es en colas. En éste se tendría que utilizar ya estructuras de memoria dinámicas como pilas, listas y colas, y además, usar full OOP.  Aqui empezaba a meter mano a los TDAs, además de usar la característica de Templates de C++ para no andar reescribiendo un TDA para cada tipo de dato. Compila bajo GCC e incluye makefile tambien.

svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/c++/IPC2-proy3/ libra

Bueno, esto fue IPC2, un curso “comodín” en donde metían cualquier tema que les diera la gana dar.  con proyectos que quizá eran los más fáciles de la carrera media vez se dominara de antemano la OOP (algo dificil para la mayoria, dado que se aprendia en progra 1 en el paradigma top down)…

PD. Para poder bajarlos, deben instalar el cliente subversion de consola en gnu/linux y ya instalado ejecutar el comando dado en el directorio donde se vaya a bajar. Tambien recomiendo usar el TortoiseSVN si van a bajarlos en Windows

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.

Sabado de Software libre, 21 de Marzo 2009

Sabado de Software libre, 21 de Marzo 2009

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:

1.  Paintkiller.

Con Éste proyecto supe qué era programar un proyecto de la Universidad, Nombre inspirado en la canción Painkiller para denominar a un programa básico de dibujo al estilo paint de windows, con una interfaz gráfica tan antiestética y antiusable, pero que al final es funcional, que era lo que importaba.  Está desarrollado en Borland Turbo C++ 3.1, y pues, de estilo, casi nada, cero patrones, y puro hardcode,  aparte que mezcla C y C++ por la poca diferenciacion que le hacia este compilador a ambos lenguajes.  La interfaz grafica, pues es puro modo gráfico que proporcinaba el borland para MS DOS por lo que no creo que exista alguna SO actual que lo pueda correr.  Por ser el primer proyecto, pues lo único que puedo comentar es que solo era aprender lo básico en un lenguaje de programación, de una manera no tan trivial, pero bueno, fue una buena experiencia hacer este proyecto, pues puse en práctica mis conocimientos de OOP al hacer mi “libreria” de widgets, teoría la cual ántes, enseñaban (digamos) hasta Progra 2.

ahi si quieren curiosear pues les dejo el comando SVN para poder bajarlo.

$ svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/c++/ipc1-proy1-PAINTKILLER/

2. Hammerfile

Bueno, otro proyecto más en BorlandC++, y otro más con nombre inspirado en algo de heavy metal, esta vez en Hammerfall (nombres mas basuras los que les pongo, pero de alguna manera los tenía que identificar),  Este proyecto, pues en realidad no me recuerdo que hacia, y como no lo puedo correr no puedo ver actualmente, lo único que me recuerdo es que me llevó la chingada para parsear los benditos archivos de entrada… si tan solo hubiera sabido que flex/bison eran para eso en ese entonces.  Igual que el anterior, es C y C++ mezclado, usando la misma librería de widgets que me fume en el primero, y obviamente, para MS DOS, aqui va el url:

$ svn checkout http://proyectos-kreig-usac.googlecode.com/svn/trunk/c++/ipc1-proy2-HAMMERFILE/ hammerfile

Bueno, la verdad no creo que a estas alturas le puedan servir a alguien, dado que ya no se programa ni en C++ ni mucho menos en Borland en el curso de programación 1 de la USAC, pero bueno, lo tenía que hacer, quiza para que los patojos de la nueva generación se dén cuenta que la época en la que viven es más sencilla… cuando ántes nos llevaba sor judas cuando intentabamos solamente mostrar el mouse en el modo grafico de MS DOS.

Iré publicando más proyectos, avanzando de curso en curso, durante el transcurso del tiempo, asi que, pilas.

PD. Para poder bajarlos, deben instalar el cliente subversion de consola en gnu/linux y ya instalado ejecutar el comando dado en el directorio donde se vaya a bajar. Tambien recomiendo usar el TortoiseSVN si van a bajarlos en Windows