domingo, 17 de febrero de 2019

"Estoy aprendiendo Tensorflow pero no entiendo, se me dificulta aprender"

La frase que da el título a este post es una frase que he escuchado ya varias veces en los últimos meses  y personalmente creo que no es problema del framework(o de otros similares con el mismo problema)  entonces espero con este post ayudar a través de ciertas recomendaciones a personas en esta situación .

Aun que en la actualidad(2019) Tensorflow se ha vuelto cada vez mas amigable y accesible integrando APIs de alto nivel como Keras esto no ha sido siempre así(cuando empece a usar TF en 2015 todo era bajo nivel salvo el wrapper "skflow" que buscaba dar a TF la sencillez en API de scikit-learn y que ahora ha sido integrado a TF en el subpaquete "contrib")y de todas maneras existen aún con APIs de alto nivel en algún momento nos podemos encontrar con operaciones de bajo nivel que pueden en un inicio parecer complicadas.

Y si el framework es tan popular,utilizado en la industria y en research y alimenta muchas de las aplicaciones inteligentes de la actualidad(la mayoría de AI de Google esta hecha con TF) por que pareciera aveces ser tan complicado de aprender? Posiblemente hayan muchas respuestas para esto, o tal vez ninguna pero mi opinión personal respecto a lo que he visto es que el problema esta en la falta de familiaridad con los conceptos matemáticos que Tensorflow nos permite implementar.

Es como querer aprender a usar una calculadora  para resolver ecuaciones sin tener claro que es una ecuación, para que buscamos resolverla y como interpretar la solución que la calculadora devuelve, y mas importante aún: como podemos aplicar la resolución de ecuaciones en problemas ,o bien pensemos en otro ejemplo en el cual  una calculadora permite calcular de manera rápida y sencilla una raíz cuadrada en lugar de hacerlo manualmente,pero si no conocemos el significado del resultado de esto y en que momento utilizarlo ,sus aplicaciones e interpretación , el aprender a hacerlo en la calculadora será de poco provecho y hasta confuso, esto a mi parecer pasa muchas veces con TF(y similares).

Tensorflow no es un framework como los que tradicionalmente usamos en desarrollo de software, es decir no esta orientado a la creación de aplicaciones web,móviles o similares si no es mas bien un Framework matemático orientado al desarrollo de aplicaciones numéricas por lo cual es importante conocer el significado de las operaciones que nos ayuda a realizar, de hecho en su propio nombre podemos ver la importancia que tiene la matemática en TF:


  • Tensor: objeto matemático(de álgebra lineal) que generaliza los objetos mas familiares: vectores y matrices 
  • Flow: Tensorflow se basa en un grafo de operaciones en el que cada nodo del grafo es una operación numérica y las aristas del grafo son tensores que FLUYEN de un nodo a otro.
Mi recomendación para personas que estén teniendo dificultad y confusión aprendiendo TF es primero aprender o refrescar la memoria respecto a los conceptos matemáticos y estadísticos subyacentes, esto hará que luego aprender TF sea mucho mas sencillo, intuitivo y se le encuentre un significado ,al final TF es solo una herramienta , o un medio para aplicar matemática utilizada en aplicaciones de machine learning, data science y  similares. 

Personalmente creo que esto se basa en 3 pilares que acá listo y para los cuales pongo enlaces a material útil para aprender o refrescar estos temas.:
  1. Algebra Lineal:
  2. Cálculo multivariable: si  no estas familiarizado con cálculo de una variable, el multivariable será más complicado de entender por lo cual sería recomendable antes de multivariable empezar con calculo diferencial, en ML no se utiliza mucho el cálculo integral por lo que se puede enfocar menor esfuerzo a este.
  3. Estadística y probabilidad: hay muchas cosas importantes de esto en data science pero considero que entender distribuciones de probabilidad, como interpretarlas, samplearlas(obtener muestras aleatorias  de estas), medirlas, calcularlas a partir de un conjunto de datos,  o comparar 2 (por ejemplo a través de entropía cruzada o divergencia de Kullback-Leibler) además de cosas como medir la correlación entre 2 variables, etc.

Espero con esto ayudar a personas que esten teniendo problemas con TF  o similares.



sábado, 18 de mayo de 2013

Cubo de leds 3X3X3 musical con Arduino.

Desde hace un buen tiempo ya, me he interesado mucho en la electrónica y he disfrutado mucho(aun que también sufrido) los cursos relacionados a ella en mi carrera(ing. en sistemas, USAC), pero en el 2010 mi gusto y curiosidad por esta ciencia aumento considerablemente cuando precisamente en uno de estos cursos: "arquitectura de computadores y ensambladores 1" tuve mi primer contacto con Picaxe(Picaxe es un microcontrolador sencillo de programar aunque bastante poderoso),al poco tiempo de estar usando este microcontrolador mi gusto por estos empezo a incrementar y también mis ideas de todo lo interesante que se podría realizar con estos,mi gusto por esto incluso me llevo a realizar cosas que no pedian en mi proyecto de  dicho curso, como adaptar un control(mando) de Play Station 1 para controlar mi proyecto agregando al control funcionalidad para envio inalambrico de información por medio de radiofrecuencia.


El tiempo paso y a partir del segundo semestre del 2012 he sido auxiliar precisamente de ese curso "arquitectura de computadores 1",ahora las cosas han cambiado y no se utiliza Picaxe ni la obsoleta tarjeta 8255, pero se sigue manejando microcontroladores, en específico Arduino. En el semestre actual como práctica de laboratorio asigne a los estudiantes realizar un cubo de leds,pero a diferencia de la infinidad de cubos de leds encontrados en la red, este tenia una caracteristica particular: era un cubo de leds musical, el cual emitia melodias sincronizadas o acorde a las animaciones de los leds. A continuación se puede ver el video del que a mi parecer fue el mejor proyecto, así como el enlace para descargar el diagrama , y codigo de programación de Arduino para realizar esta práctica:

Video del cubo de leds 3x3x3

Y el enlace para la documencaicon con la explicacion ,diagrama y codigo de programacion de Arduino:

Documentación:

miércoles, 8 de mayo de 2013

Ensayo acerca de CLIPS(Herramienta para elaboración de sistemas expertos)(Inteligencia Artificial)

Ya tenía ratos de no publicar nada,pero hace un par de minutos me encontraba haciendo una tárea para uno de los cursos que mas me llamaba la atención  y que mas deseaba llevar(incluso pasé toda la carrera ansioso por llegar a él)  al momento de ver el pénsum e iniciar mi carrera ya que fue una de mis motivaciones a estudiarla(además de mi intereses por la robótica)  y es  con uno de los que voy a cerrar(si todo sale bien) en un par de semanas: Inteligencia  Artificial. Lamentablemente no recibí el curso como hubiera querido y me hubiese gustado ya que el monton de cursos mas no me dejaban tiempo para leer e investigar por mi cuenta, ademas de que el curso solo se imparte una vez a la semana los viernes, y todos en ingenieria USAC saben que los viernes en el primer semestre del año, el edificio se cierra muchas veces por lo de la huelga, etc. ademas que de por sí el catedrático es conocido por no llegar constantemente a dar clases.

La tarea que me encuentro realizando consiste en realizar un ensayo de una página acerca de la herramienta que he usado a lo largo del semestre en el laboratorio,CLIPS, que sirve para la elaboración de sistemas expertos(sub-area de la IA), este ensayo no pretende ser útil para quien desea aprender a utilizar CLIPS o quien desea aprender conceptos acerca de sistemas expertos,solo pretende ser una breve descripción o introducción a la herramienta pero se me hizo interesante postearlo ya que cuando inicie con la herramienta, antes de aprender a usarla,quise aprender que erá en sí, y encontre muy poca información, al menos en español, para aquellas personas que estudian sistemas en la USAC o cualquier carrera o lugar donde el metodo es similar de enseñanza("aqui esta lo que tienen que hacer, con la herramienta que lo tienen que hacer, vayan y aprendan solos y por su cuenta como hacerlo y como usar la herramienta") puede ser útil primero tener una ídea de que se hace con la herramienta antes de apnender a hacerlo en sí, acá esta mi ensayo:

CLIPS(C Language Integrated Production System)  es una herramienta para la creación de sistemas expertos.  El estudio de sistemas expertos es una rama de la inteligencia artificial que consiste en la creación y estudio de sistemas informáticos que simulan el proceso de aprendizaje, memorización, razonamiento y acción de un experto humano en cualquier área de la ciencia y el conocimiento.
 Los orígenes se remontan a 1984 en un centro espacial de la nasa. En ese entonces LISP era el lenguaje usado mayoritariamente para el trabajo en el área de sistemas expertos, pero tenía 3 problemas que lo llevaron a su fallo: baja disponibilidad, alto costo, pobre integración con otros lenguajes.  Estas razones llevaron  a que la división de inteligencia artificial de la nasa decidiera que se creara una herramienta para sistemas expertos escrita y basada en el lenguaje C. En 1986 la versión 3.0 de CLIPS fue liberada para grupos afuera de la NASA.

La interacción con clips se lleva a cabo principalmente a través de un command prompt, en este se teclean las instrucciones  para evaluación y ejecución, aunque también CLIPS permite otras formas de interactuar, como carga de archivos, procesamiento BATCH e integración con otros lenguajes.

CLIPS provee 3 elementos básicos para la escritura de programas: tipos de datos primitivos, funciones para manipular datos y “constructs para agregar a una base de conocimiento.
Los tipos de datos básicos son un conjunto que incluye algunos de los tipos que ya conocemos como por ejemplo: float,integer,string(y symbol) además de otros no tan conocidos como :external-address, fact-address, instance-name and instance-address.
Una función en CLIPS es una pieza de código ejecutable identificada por un nombre específico y que retorna un valor útil o realiza un efecto secundario útil (como desplegar información).

De los 3 elementos que mencione, tal vez el más útil y usado es el elemento conocido como “constructs”, que como mencione sirve para agregar información a la base de conocimiento de CLIPS, siendo los “constructs” más usados los siguientes: defmodule, defrule,deffacts,  deftemplate,defglobal,  deffunction,  defclass,  definstances,  defmessage-handler,  defgeneric,  y defmethod.

En clips existen 3 formatos para representar información: facts, objetos, variables globales. Cada fact representa una pieza de información y que son la unidad fundamental de datos usada por las reglas, una regla es una de las formas principales de representar información en CLIPS, una regla es utilizada para representar heurísticas, las cuales especifican una serie de acciones a ser realizadas para una determinada situación. Al crear un sistema experto, el creador define un set de reglas que trabajan en conjunto para resolver un problema.
El segundo elemento que mencione, objetos  se maneja en CLIPS por medio de COOL (Clips Object Oriented Language), un objeto en CLIPS es similar a lo que ya conocemos de programación orientada a objetos pero con ciertas variantes. Y por último, una variable global en CLIPS no es nada diferente a lo que ya conocemos de lenguajes de programación comunes, es decir que una variable global es un “espacio” de almacenamiento al cual se le puede asignar a que almacene un valor, y este valor será visible en todo el entorno CLIPS.

domingo, 5 de agosto de 2012

Introducción a linux , gnu , y el mundo del software libre.



Últimamente bastantes conocidos que no estudian alguna carrera relacionada con tecnología o software , así como otros conocidos de los primeros semestres de la carrera han manifestado su interés y/o curiosidad por Linux, Gnu y el software libre. Hace ya bastante tiempo cuando tuve que ser guia o tutor(no se cual seria la palabra correcta) de un grupo de estudiantes de las practicas iniciales de Ingenieria en sistemas de la usac(la carrera y la universidad donde yo estudio) me toco escribir un articulo para los estudiantes donde pudieran informarse mas y adentrarse en el tema. Me considero poco conocedor de estos temas, pero segun varios compañeros, lo poco que conozco lo explique de una manera bastante entendible para personas con poco o ningun conocimiento de estos temas en el articulo que ya mencione, por esta razon a continuacion publicare el enlace a este articulo, el cual habia creado en un blog dedicado a subir informacion para los alumnos de las practicas intermedias.


Enlace hacia el articulo.

domingo, 11 de septiembre de 2011

Zelda majoras mask

El tiempo...cruel y temeroso...
Un pantano ,donde alguien esta a punto de ser ejecutado por un crimen que no cometio...
Un oceano,donde un musico caido lamenta eternamente su fallo...
Una montaña,donde un lider observa impotentemente que no tiene el poder para salvar a su gente...
Un valle,donde los fantasmas del pasado aun pelean una guerra que termino mucho tiempo atras
Un pueblo...atrapado en si mismo , donde el fin comienza..
Y un muchacho.. un heroe..con todo el tiempo del mundo y a la vez el tiempo contado para salvar a este mundo. Esto es Zelda majoras mask.



Todo aquel que lo ha jugado recordara ese arbol en la luna ,la dificultad y alegria de conseguir la "Fierce deity mask" , la tragica historia de amor entre anju y kafei ,el atormentado  musico de la fuente, la presion constante que ejerce esa malevola sonrisa de la luna junto con el tiempo contado para salvar al pueblo, su atmosfera agonica y tetrica , ese sentimiento de estar atrapado en un sueño de Tim Burton sin salida ,la macabra risa del vendedor de mascaras,la atormentada expresion de la luna y la tenebrosa atmosfera que rodea al skull kid ,las historias de sufrimiento, tristeza y compasion de los personanes,todo eso y mucho mas ,hacen de este capitulo en la saga de Zelda el mas magico , el mas oscuro y de alguna forma, el mas "adulto" de toda la serie, considerado el mas "raro y agonico"
aunque considero que el mejor juego de toda la historia de los videojuegos es su antecesor zelda ocarina of time,probablemente Maroras mask sea mi favorito y el que mas ha marcado mi vida en esta serie.

Como dije es considerado el juego mas raro de la serie ,no solo por su sentimiento agonico y tetrico, sino que a pesar de ser uno de los mas cortos(solo tiene 4 templos) su dificultad es bastante alta y la historia te mantiene pegado al control ,por primera vez el enemigo a vencer no es ganondorf y a diferencia de la mayoria de zeldas cada personaje(principal o secundario) tienen una historia y un pasado que no esta relacionado soloamente con la historia y linea principal del juego, sino con varias sub-historias y eventos , algunos felices,  y otros no tanto


Un juego con aproximadamente mas de 10 años de existencia,podra ser considerado por muchos como "no tan bueno" debido a la tecnologia de las consolas actuales ,pero  estamos en un tiempo donde los fabricantes de videojuegos se enfocan en ver quien crea el videojuego con las mejores graficas y la mejor tecnologia y dejan atras el punto mas importante y por el que inicio esta industria: la diversion del jugador y la facilidad de llevarlo a mundos de fantasia.
Eso y la nostalgia que me trae recordar mi niñez , hacen que prefiera jugar este videojuego aun con sus graficas de consola de 64 bits , que jugar un videojuego moderno de playstation 3 que probablemente me aburra a la hora de jugarlo.

Todo en este videojuego me parece brillante , sus magicos mundos de fantasia , su excelente musica, su tragica y oscura historia , los secretos y aveces oscuras intenciones que guarda cada uno de sus personajes, y no solo los personajes principales ya que cada personaje de la aventura cuenta una historia ,algunas buenas,y algunos secretos del pasado que aun los atormentan. Desde el "trailer" del videojuego que veia a diario en nickelodeon , se pudo ver que era un zelda diferente y mas oscuro , con una musica tenebrosa en el trailer que en ese tiempo solo habia escuchado en un videojuego: el tenebroso y tambien excelente shadowman.A continuacion los trailers o comeciales del juego,uno de los cuales pareciera ser un trailer de pelicula estilo armagedon y no un videojuego:

Si alguien me preguntara como le puedo describir majoras mask o que diferencia tiene este con los demas zeldas, le diria que es un zelda bastante peculiar, ya que es el mas "tenebroso" de todos, lleno de mounstruos y fantasmas del pasado aun atormentados , y un pueblo cerca de su fin inminente,el enemigo a vencer pro primera vez no es ganondorf ,sino un agobiado y atormentado skull kid y el tiempo antes de que la luna caiga.  Precisamente este ambiente "tetrico" que rodea el juego sea lo que probablemente llevo a la creacion de una vieja leyenda urbana que rodea a un mencionado "cartucho maldito" y un joven de 19 años ,algun dia mencionare mas a detalle esta leyenda urbana que pareciera sacada de un episodio de "le temes a la oscuridad" en otro post dedicado , pero por ahora dire que basta con poner "majoras mask jadusable" o "majoras mask ben" o "majoras mask cartucho maldito" en algun buscador o youtube para leer la leyenda del cartucho maldito.

Hoy se conmemoran 10 años desde la primera vez que termine este magnifico videojuego y por eso decidi crear este post , ya que siento cierta nostalgia por este juego ,tengo la suerte de poseer la edicion de coleccionista y la version de la consola virtual de wii ,pero espero poder ver algun dia el remake en alguna consola moderna, sin que pierda esa magia que transmitia hace 10 años,aun recuerdo que hace 10 años estaba tan emocionado en el templo final que mi mente no prestaba atencion a lo que en ese momento preocupaba al mundo entero, los atentados terrotistas del 11 de septiembre del world trade center, el jugar hoy este juego hizo que me transportara a mi niñez , a sexto primaria nuevamente.Un juego grandioso de principio a fin , con una historia y musica memorable , mi recomendacion para quien no la conoce y las nuevas generaciones de videojugadores , es que dejen atras el estereotipo moderno de que "un buen juego ,necesariamente necesita buenas graficas" y desempolven esta joya del pasado, ya sea en emulador o por medio de descarga para la consola virtual de wii y para quienes lo jugaron en su pasado, quiza en su niñez , traerlo de vuelta a la vida y volver a jugarlo ,en internet se encuentra el soundtrack el cual de seguro transporta a quien lo ha jugado a tiempos memorables. A continuacion algunas de las razones de entre las muchas que hay , que hacen que el juego sea considerado el mas tetrico ,triste, oscuro y tenebroso de los zeldas:


  • Skull Kid: uno de los personajes principales del juego , niño solitario con apariencia de espantapajaros, que guiado por su soledad y falta de amigos, roba la mascara de majora la cual posee un gran y malvado poder y posee al deku kid obligandole a realizar cosas malvadas,entre ellas ocasionar el fin de el pueblo.
  • Vendedor de mascaras: el duenio de la mascara de majora, con una risa tetrica y psicopata,si link no es capaz de detener el mal en el tiempo que tiene, la luna cae sobre el pueblo envuelta en una bola de fuego, teerminando con todo en el y al fondo solo se oye la risa malevola del vendedor de mascaras.
  • Transformaciones de link con cada transformacion que link realiza con las mascaras ,se logra ver la agonia que esta le produce, se oye el crujido de los huesos y los ojos venosos junto con el grito de link hacen vrr que la transformacion le produce gran dolor.
  • Los alienigenas del rancho romani: como si fuera poco lo que ya sucede en el juego , la primera noche un grupo de alienigenas llegan al rancho romani a secuestrar a las vacas.
  • Las almas de los dueños de las mascaras: durante el juego ,es posible encontrar las almas atormentadas de algunos personajes,a las cuales link por medio de una melodia dara sanacion y descanso y a cambio ellas le daran una mascara con la que podra obtener las habilidades de cada uno.
  • Mascara deku: a diferencia de las mascaras mencionadas anteriormente, la mascara deku proviene del hijo asesinado del mayordomo deku.
  • Momia del valle ikana: cuando link entra a la casa de "la casa de musica" en el valle,esta parece ser una casa normal,hasta que link baja al sotano, donde se encuentra un mitad hombre/mitad momia gritando de dolor y escondiendose de su hija.
  • Grito de skull kid al llamar a la luna : se puede escuchar  este grito cuando skull kid llama a la luna , suena como a grito de niño fantasma de pelicula de terror.
  • Tingle: el personaje que vende los mapas a link , pareciera tener problemas mentales  y psicologicos y una osbesion por las adas del bosque y convertirse en una de ellas , teniendo 35 años.
  • La triste historia de amor entre anju y kafei: anju y kafei son una pareja que esta a punto de casarse, pero unos dias antes de la boda kafei desaparece dejando a anju muy triste,la madre de anju le dice que deje de pensar en el y busque refugio en el rancho romani,donde vive romia quien supuestamente tiene un amorio con el prometido de anju.
  • La musica del juego: muchas canciones del juego transmiten un sentimiento de desesperacion , como que se tratara de pelicula de ciencia ficcion donde el fin del mundo se acerca, como armagedon ,talvez el mejor ejemplo sea la cancion de fondo del dia final ,la cancion da la impresion de que la esperanza esta perdida, el fin definitivamente llegara.


  • .No puedo expresar en este post , la magia que transmite este juego, asi que a jugarlo se ha dicho!! y an

    lunes, 14 de marzo de 2011

    Arquitectura de computadores y ensambladores 1-practica1

    Como requisito para la entrega de la practica1 del curso de Arquitectura de computadores y ensambladores 1, se solicito a los estudiantes que realizaramos un documento con informacion que pudiera ser utilizada por otras personas que busquen temas e informacion del lenguaje ensamblador, y que este documento sea publicado en internet, ya sea en un blog o pagina peronal. Por esta razon a continuacion adjunto el documento mencionado.

    Descargar el archivo.

    sábado, 5 de marzo de 2011

    Metallica-Creeping Death(seattle 1989)

    Todavia sigo picado por la fecha , por lo cual publico un video de probablemente una de las canciones que mas, esperaba en el concierto(talvez la que mas)  , y que aunque si la tocaron , fue la que tubo problemas tecnicos.Hace muchos años me decian que este concierto fue tocado el dia en que naci, nunca pude averiguar si esto  era cierto, por lo que si alguien sabe en que fecha se hizo, le agradezco que me lo diga. Por cierto, otra cosa, mi amigo gabriel(disculpa vos ,no recuerdo tu apellido), publico tambien algo conmemorando el primer año del concierto , aqui esta el link.

    Blog de gabriel

    Y aqui esta el video:

    Metallica en Guatemala part2

    Ni mierda, pela programar, todavia estoy emocionado , en algun lado lo tengo que escribir.

    Despues de ver a james, mi emocion crecio mas , faltaban pocas horas,llego el momento de entrar al estadio y luego de estar en la cola un rato, al fin estaba adentro. El concierto empezo con la banda nacional extincion,que demostraron el porque ,merecian ser los teloneros de metallica, para luego dar paso a mastodon, la banda que acompaño a metallica en esta gira , aunque estaba disfrutando a mastodon, una parte de mi decia "apurense, quiero ver a metallica". y llego el momento esperado tanto tiempo, escuchar "the ectasy of gold" me hizo saber que el plato fuerte empezaba, metallica siempre empieza sus conciertos con esta bella cancion instrumental, termiando esta cancion, una luz apunta a la bateria y se ve a larls ulrich agitando sus baquetas. fuck! ya empezo, no lo podia creer, y para mas fregar, empiezan con una de las canciones que mas esperaba yo(no sabia el setlist, queria que fuera sorpresa) , "creeping death" , mi favorita de el disco "ride the lightning", no tengo palabras para describir este sentimiento. Pero estamos en guatemala, y en guatemala nunca nada es perfecto , aunque parezca que va a serlo , y el concierto no fue la excepcion  ,las fuentes de poder utilizadas por los organizadores , no aguantaron la cantidad de energia necesitada por la banda , y el sonido fallo en esta cancion que tanto esperaba,aun asi,la cante ignorando lo que pasaba. Tiempo despues, james hetfield logro darser cuetna de lo que pasaba, y mostro su profesionalismo ofreciendo una disculpa y pidiendo paciencia para arreglar esto,  "Guatemala city,thank you for sticking with us,we  metallica waited 29 years to come here ,and we can wait a few more minutes ok, to make it sound perfect...." por suerte metallica viaja con equipo para emergencias, por lo que pudieron reaundar el show, el mejor que ha habido en guatemala, y asi empezo un viaje en el tiempo, un viaje recordando los años de mi niñez hasta aqui, acompañado de su musica, haciendo repaso de sus mejores albums , tocaron canciones representativas como "for whom the bell tolls" , "harvester of sorrow","fade to black", "sad but true","one", "master of puppets", "blackened", "enter sandman" ,"last caress","batery", "seek and destroy", y la que me saco mas lagrimas toda la noche , "nothing else matters", cancion con la cual di la ultima despedida a mi padre. Que magnifico show,no podia estar mas feliz(o si?) , creo que si se podia, y asi fue! cuando el "mosh" estaba al maximo, los 4 jinetes tiraron al escenario puas entre otras cosas, y aunque me costo un monton, logre agarrar una pua. Que noche, no podia pedir nada mas, habia visto a metallica  ,y tenia una pua de guitarra que pertenecio a uno de ellos, habia pasado la mejor noche de mi vida, y la habia pasado con  gente con la que he crecido y convivido la mayor parte de mi vida.
    Todo habia salido bien , la mejor noche de mi vida habia llegado, nada lo puede superar.Al final del concierto , recibo un mensaje de uno de mis mejores amigos de la universidad diciendo "creo que estoy bolo, o acabo de tener un sueño , soñe que habia visto a metallica, pero eso no pasa en guatemala". La noche termino, pero el recuerdo siempre vivira. Y para mas fregar, metallica nos ayuda a recordar ese momento , ya que en su "discografia" oficial, aparece el concierto realizado en nuestro pais y puede ser descargado desde la pagina oficial de la banda, y en bastantes lugares mas. Por si a alguien le interesa, y tiene dificultad de descargarlo por falta de internet o algo asi , escribame, y con mucho gusto le paso una copia. Hoy se cumple el primer año de este momento , momento que nunca olvidare, que siempre vivira en mi memoria como la mejor noche de mi vida. Por el momento nada lo supera, talvez el 19 de abril de este año sea superado , o cuando vea a iron maiden ,pero lo veo dificil.

    Metallica en Guatemala

    "Puta sho cerote, eso es paja, si viene metallica me cago".... Asi fue como escuche por primera vez el "rumor"  de que mi banda favorita de trash( y de mis favoritas en general) venia a guatemala, al shutear una llamada que un desconocido habia hecho por un telefono publico alla a mediados del 2009. Pero escuchar esta llamada, hizo que quedara la espinita , y no quedo mas que preguntarle a mi mejor amigo, el que todo lo sabe, "google" , empece a ver blogs y paginas no oficiales donde el rumor cada vez se hacia mas fuerte,pero aun asi no me queria ilusionar ,no queria creer. Veo una entrevista al presidente de la disquera de la banda, hecha en ecuador, donde anuncia futuras presentaciones de la banda, y cual es mi sorpresa , el don dice "...mexico city , guatemala city..." y me quede "putaaa, seguro mi ingles me traiciono, no puede ser posible, le escuche mal" hasta que un par de dias despues, recibo un mensaje de mi amigo pablo mejia, que decia "Metallica cerote!! a chupar como coches..." , me quede "y este loco q putas?" cuando un par de minutos despues, recibo una llamada diciendome "usted, mire el peridico de hoy", compre el periodico, y encuentro la noticia! de las mejores que he recibido , los rumores eran cada vez mas reales, el sueño estaba cada vez mas cerca, metallica se presentaria en guatemala, al revisar la pagina oficial de la banda poco despues , el rumor dejo de ser rumor, en el listado de conciertos,aparecia guatemala!!! ,probablemente la mejor noticia que he recibido en mi vida, al fin cumpliria uno de mis sueños , el lado malo , era que el boleto para vip( no me podia estar mas lejos) ,costaba 200 dolares!. Compre mi boleto , y solo quedo esperar la fecha, espere este dia, como un niño espera navidad , cada proyecto que me dejaban en la universidad, lo empezaba inmediatamente, no queria que nada arruinara ese momento.

    La fecha se acercaba mas y mas , hasta que llego el 4 de marzo ,faltaban menos de 24 horas para ver a 4 de mis idolos en vivo , decidi ir a dar "una vuelta" al estadio para ver el ambiente , y ya habia gente acampando!! gente que lleva el metal en la sangre, y que sienten que no solo es un genero musical, es un estilo de vida y parte importante de esta. Ese dia fue dedicado a hablar con los amigos, y preparse para el concierto , no pude dormir esa noche(tanto por la emocion , como por los proyectos) , queria recordar el 5 de marzo del 2010 de principio a fin , dormir era desperdiciar horas de ese dia y no lo queria hacer, llego la mañana y empece a recibir mensajes de mi familia, cosas como "primo, me alegro por vos, uno de tus sueños al fin se cumple", "disfrutalo , se q es lo mejor q te ha pasado" , "no puedo ir , pero la alegria de q vos vas , es mayor que la tristeza de q no voy a estar", y el mas importante, el de mi mama diciendo "estoy feliz, porq mi hijo no solo ve a su grupo favorito , ve al grupo favorito de su padre tambien",aun no lo podia creer pero queria mantener la tranquilidad ,me junte con los amigos y agarramos un transmetro ,estando en las afueras del estadio, la emocion crecia cada vez mas, escuchar la prueba de sonido de extincion me hizo ver que si era real, si veria a metallica ,el ambiente afuera del estadio , ameritaba un concierto de metallica, habia gente desde el final de la reforma ,hasta el estadio ,todos cantando ,todos unidos , todos tocados por alguna cancion de los californianos. En eso mi viejo amigo nery(el q vende discos afuera de la u) , me dice "acompañame a cobrarle a un cuate" y subimos cerca de donde esta cofiño sthal, cuando vimos venir 4 camionetas del año, custodiadas por varias motos y pick ups de policias , le dije "vos cerote, hoy no va a andar el presidente o alguien asi, pasando en medio de tanta mara, esos no son politicos!!" y estaba en lo correcto , pegue la cara a una de las camionetas, y veo a james hetfield en ella!! q emocion mas cerota!.......... ya me pique contando mi historia, lamentablemente tengo que programar, talvez la termine mas adelante.

    miércoles, 23 de febrero de 2011

    Integrar java-cup y JFlex a netbeans

    Hace ya mas de un año, para compiladores1 conoci por primera vez las herramientas "jlex" y "cup" para generar analizadores a partir de especificaciones,despues de un rato de estar usando estas herraientas, me desespere por lo tedioso que era estar ejecutando los comandos para llamarlas desde la consola, y posterior a esto , colocar en los directorios apropiados del proyecto los archivos .java obtenidos.Por esta razon, se me ocurrio que debia existir una forma de agilizar este proceso , y la solucion que encontre en ese momento fue crear scripts (.bat en windows y .sh en linux), que con solo darles doble click ejecutaban las llamadas a jlex y cup, y copiaban los archivos generados a sus respectivas carpetas.Este metodo funciona, pero aun se debe estar ejecutando los scripts por separado a la compilacion de nuestro ide, como me desespero rapido inmagine que debia haber una forma de automatizar esto de estar ejecutando los scrips a mano. Y asi fue como conoci a "ant" , que es una herramienta parecida a make para hacer "builds" de proyectos de una manera relativamente sencilla ya que hace uso de archivos xml para especificar las acciones y el orden de las mismas , y como netbeans maneja a "ant" por defecto , es posible que uno defina que hara el ide al darle "build"(construir, generar e incluso ejecutar),con tan solo modificar el archivo build.xml.

    Ya conociendo esto , en compiladores 2, hice que "ant" ejecutara los scripts antes mencionados, pero resulta que hay una manera mejor de realizar esto,debido a que jflex(una version moderla de jlex), y cup tienen compatibilidad directa con "ant" por lo cual es mucho mas facil y eficiente integrar directamente estas herramientas al ide,logrando con esto , que automaticamente se ejecute la generacion de analizadores al momento de darle un "build" a nuestro proyecto con el ide, sin necesidad de crear complicados scripts. A continuacion adjunto el archivo build.xml que estoy usando para mi proyecto de compiladores 2(en mi segunda oportunidad en el curso,donde se debe crear un interprete para  4 lenguajes(c,basic,python ,y ruby) que se comunican entre si , y generan figuras en  3d). El archivo adjunto , ademas de realizar los procesos de compilacion mencionados, crea varias copias del proyecto en algunos directorios de back up, ya que no queria que me volviera a pasar lo mismo que me paso al llevar compiladores 1, un fallo en la particion donde tenia mi proyecto , causo que perdiera mis avances, a menos de 2 dias de la entrega final, quede paraonoico y pensando que volveria a pasar, por eso crea copias en varios directorios lo cual para algunos es exagerado,pero el archivo puede ser modificado segun la necseaida de quien lo vea.

    Lo unico que hay que hacer, es agregar al directorio  "carpeta de instalacion de netbeans\java\ant\lib" los .jar de JFlex y JavaCup respectivamente.

    Link de Descarga

    martes, 21 de diciembre de 2010

    Manejo e implementacion de archivos-proyecto 1

    Bueno Juan ,aqui esta lo que me habias pedido, el proyecto de "archivos". Para la mara que no sea de la usac , o no ha llevado el curso , el primer proyecto de "manejo e implementacion de archivos" consiste en la creacion de un sistema de archivos "extended 2", o "ext 2" , como el usado por los sistemas operativos basados en Unix como por ejemplo linux , el proyecto cuenta con las estructuras del sistema de archivos que son:Superbloque,bitmap de inodos,bitmap de bloques,  tabla de inodos , y los bloques de datos.Ademas cuenta con una aplicacion en consola ,q si no recuerdo mal, contaba con todas las opciones como crear,modificar, y eliminar archivos y directorios , modificar archivos(utilizando un editor de texto  en consola que yo programe) y otras opciones que no recuerdo todas, solo recuerdo el mostrar los bitmaps,mostrar el contenido de los bloques, y la ultima opcion , en la cual se ingresaba la ruta hacia un archivo , y se graficaba la jerarquia de directorios en color negro , y la ruta especificada en color rojo, mostrando la informacion de los inodos utilizados hasta llegar al archivo requerido. El proyecto fue hecho en el lenguaje c++ .No recuerdo del todo , pero creo que utilice ciertas librerias de c++ para la creacion del editor de texto , y el sofware "graphviz" para la graficacion , asi como el visor de imagenes que Debian trae por default(no recuerdo el nombre). Para la mara que tenga alguna duda, o que necesite informacion escribame. A continuacion dejo el link para descargarlo, esta en un zip que es el que entregue al auxiliar del curso , no recuerdo q mas informacion lleva.

    Descargar el proyecto.

    lunes, 20 de diciembre de 2010

    helloween-keeper of the seven keys 1

    Que mejor forma de empezar a subir la musica que me ha pedido la mara, que con uno de los mejores discos en la historia del heavy/power metal, me refiero al album conocido cariñosamente por los fans de la banda como "keeper uno".Este disco, al iguar que su sucesor , esta en mi lista de albums favoritos de todos los tiempos al lado de albums de bandas como iron maiden , metallica , stratovarius,etc....(no sigo mejor).Un disco excelente de principio a fin , con la poderosa voz de uno de los mejores cantantes de la historia(y mi vocalista favorito personalmente), el legendario Michael Kiske, excelentes guitarrasos tanto poderosos como melodicos por parte de Kai Hansen y Michael Weikath, y la impresionante seccion ritmica por parte del bajista Markus Grosskopf , y el fallecido baterista Ingo Schwichtenberg.Mientras hay bandas que al crear un album, hacen 2  o 3 canciones buenas, y llenan el resto con basura, helloween hizo de este trabajo uno memorable, no hay una sola cancion mala. El track list es el siguiente:

    1. Initiaton:cancion ambiental, introductoria al album , pone al ollente en una atmosfera que lo prepara para lo que viene.
    2. I'm alive:El primer latigazo de power metal se siente con esta cancion,el poderoso doble bombo de la bateria, las perfectas armonias de la guitarra y Michael Kiske cantando a su maximo potencial se dejan oir en esta cancion.
    3. A little time:Una cancion con un tempo medio , mas apegada al heavy metal que al power pero aun con el poderoso doble bombo.
    4. Twilight of the gods:Que decir de esta? posiblemente la mas "power" del album y talvez mi favorita, super recomendadisima.
    5. A tale that wasnt right: una excelente "power ballad", no creo poder dar mejor descripcion de esta cancion ,que la encontrada en mi revista "guitar world" , en donde decia "una cancion capaz de tocar el corazon del mas duro de los black metaleros y hacer derramar una lagrima por un amor del pasado a quien nunca ha amado"
    6. Future world:la mejor descripcion :excelente.
    7. Halloween:una de las canciones emblematicas de la banda , con cambios de ritmo y progresiones impresionantes, super recomendada. Recuerdo cuando compre mi album original, y en el folleto al final decia "cuidado,aquel que pronuncie la cancion "halloween", como "helloween", o el nombre de la banda "helloween", como "halloween", sera converitdo en una calabaza".
    8. Follow the sign:Cancion instrumental , que da el punto final a este excelente album.
    A continuacion pongo el link de descarga de este excelente album, ojo, el credito pertenece a otra persona, y no  a mi , ya que yo no lo subi .

    MI blog

    Como habia un monton de mara que me pedia musica, videos, libros e informacion usada en proyectos , y otros que me pedian los proyectos , decidi crear este blog para subir todo este tipo de cosas y otras que me parezcan de a huevo . Cualquier comentario, sugerencia,  sacada de madre, puteada , opinion etc.. Puede ser enviada a los correos:

    • wichofer666@hotmail.com
    • wichofer1989@hotmail.com
    • wichofer89@gmail.com