<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>C on Thy.Abstrakt.Objekt.Weblog</title><link>https://blog.kreig.rocks/tags/c/</link><description>Recent content in C on Thy.Abstrakt.Objekt.Weblog</description><generator>Hugo</generator><language>es</language><lastBuildDate>Wed, 12 Oct 2011 14:25:21 -0600</lastBuildDate><atom:link href="https://blog.kreig.rocks/tags/c/index.xml" rel="self" type="application/rss+xml"/><item><title>En memoria de Dennis Ritchie</title><link>https://blog.kreig.rocks/2011/10/12/en-memoria-de-dennis-ritchie/</link><pubDate>Wed, 12 Oct 2011 14:25:20 -0600</pubDate><guid>https://blog.kreig.rocks/2011/10/12/en-memoria-de-dennis-ritchie/</guid><description>&lt;p&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt; int main(void){ while(1) printf(&amp;quot;Gracias infinitas Dennis Ritchie, por tus aportes a la computacion \n&amp;quot;); return 0; }&lt;/code&gt;&lt;/p&gt;</description></item><item><title>Mis proyectos de sistemas en la USAC parte VI: Compiladores 1…</title><link>https://blog.kreig.rocks/2009/03/27/mis-proyectos-de-sistemas-en-la-usac-parte-vi-compiladores-1/</link><pubDate>Fri, 27 Mar 2009 12:00:31 -0600</pubDate><guid>https://blog.kreig.rocks/2009/03/27/mis-proyectos-de-sistemas-en-la-usac-parte-vi-compiladores-1/</guid><description>&lt;p&gt;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 &lt;a href="http://objektblog.wordpress.com/2009/03/25/mis-proyectos-de-sistemas-en-la-usac-parte-v-compiladores-2%E2%80%A6/"&gt;describí anteriormente&lt;/a&gt;.  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.&lt;/p&gt;</description></item><item><title>Mis proyectos de sistemas en la USAC parte II: Progra 2…</title><link>https://blog.kreig.rocks/2009/03/19/mis-proyectos-de-sistemas-en-la-usac-parte-ii-progra-2/</link><pubDate>Thu, 19 Mar 2009 12:00:29 -0600</pubDate><guid>https://blog.kreig.rocks/2009/03/19/mis-proyectos-de-sistemas-en-la-usac-parte-ii-progra-2/</guid><description>&lt;p&gt;Bueno, luego del &lt;a href="http://objektblog.wordpress.com/2009/03/18/mis-proyectos-de-sistemas-en-la-usac-parte-i-progra-1/"&gt;exitoso post anterior&lt;/a&gt; (de donde jodidos), tambien he publicado los proyectos desarrollados en el curso de Introducción a la Programación 2&amp;hellip; 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&amp;hellip; y lo que se programaba se hacia en C ++.&#10;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&amp;hellip; GCC, desarrollandolos dentro de algo que es más que un IDE&amp;hellip; 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 &lt;a href="http://www.mingw.org/"&gt;MingW&lt;/a&gt;.  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):&lt;/p&gt;</description></item><item><title>Mis proyectos de sistemas en la USAC parte I: Progra 1...</title><link>https://blog.kreig.rocks/2009/03/18/mis-proyectos-de-sistemas-en-la-usac-parte-i-progra-1/</link><pubDate>Wed, 18 Mar 2009 09:38:31 -0600</pubDate><guid>https://blog.kreig.rocks/2009/03/18/mis-proyectos-de-sistemas-en-la-usac-parte-i-progra-1/</guid><description>&lt;p&gt;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 &lt;a href="http://code.google.com/hosting"&gt;google code&lt;/a&gt;.&#10;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&amp;hellip; si, progra 1 de la vieja escuela&amp;hellip; 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:&lt;/p&gt;</description></item><item><title>M-x introduccion-a-emacs</title><link>https://blog.kreig.rocks/2007/11/23/m-x-introduccion-a-emacs/</link><pubDate>Fri, 23 Nov 2007 22:21:02 -0600</pubDate><guid>https://blog.kreig.rocks/2007/11/23/m-x-introduccion-a-emacs/</guid><description>&lt;p&gt;Una de las herramientas mas marcianas que ví la primera vez que usé un sistema GNU/Linux fue un extraño editor llamado emacs. pues ingresaba a él, y luego no sabía como cerrar la aplicación.&lt;/p&gt;&#10;&lt;p&gt;&lt;img src="http://upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Emacs-logo.svg/270px-Emacs-logo.svg.png" alt="Emacs logo" loading="lazy" /&gt;&#10;&lt;/p&gt;&#10;&lt;p&gt;Sin embargo, como buen estudiante de ingeniería en sistemas, me gusta complicarme la existencia, y decidí ponerme a aprender a utilizar dicha aplicación. Encontré luego que al presionar F10 accedía al menú ficticio que me aparecía en la pantalla principal, navegué hasta la ayuda, y vi algo así como &amp;ldquo;Tutorial rápido de emacs&amp;rdquo;. Decidí tomarlo, y luego no pude despegarme de este excelente editor de texto (?) , que me ayudó principalmente en el curso de Programación 2 y Compiladores 1 ya hace algunos años, cuando hacía programas en C y C++. Y no solo me dejaba hacer eso, sino que con ayuda de CVS llevaba el control de versiones de dichos proyectos, así como generaba los autoconf y automake respectivos. Además de muchísimos otros beneficios que tiene esta aplicación. Por lo que decidí publicar una pequeña transcripción de una &lt;a href="http://www.tuxdeluxe.org/node/178" title="The CHurch of Emacs"&gt;descripción muy certera&lt;/a&gt; que le hacen a esta poderosa aplicación.&#10;&lt;img src="http://kldp.org/files/emacs-22_582.png" alt="Emacs como IDE" loading="lazy" /&gt;&#10;&#10;&lt;em&gt;GNU Emacs, tiene en comun con algunas otras buenas cosas, la cualidad de que es mejor apreciado con la experiencia en vez de una descripcion a sangre fría. Gracias a su grandiosa extensibilidad, y a la larga gestación producto del trabajo compartido de muchos programadores, se ha convertoido en &amp;ldquo;Todo&amp;rdquo; para &amp;ldquo;todos&amp;rdquo;, Su extensibilidad y personalización está hecha gracias a sus archivos auto documentados &amp;ldquo;Elisp&amp;rdquo;. Emacs crece y crece en una gran feceta modular. una arquitectura protable y vasta, que está compuesta de módulos de código colectivo. En resumen Emacs ofrece un entorno totalmente integrado y listo para configurar para cualquier tipo de programación común y no común. procesado de texto y tareas computacionales regulares.&lt;/em&gt;&#10;&lt;em&gt;Éste grandioso programa puede ser usado para escribir y editar textos como éste. para probar, escribir, y ejecutar código, páginas webs entre servidores, actualizar y publicar entradas de blogs, organizar pensamientos y notas de nuevas formas, y como punto de entrada para manipulación del todo poderoso Shell de Unix. Y así esta lista se extiende y se extiende&amp;hellip;&lt;/em&gt;&#10;Así que si tienen la oportunidad (y la paciencia) para tomar el tutorial de éste app, háganlo, y verán que con emacs, las tareas cotidianas de programación se simplifican.&#10;Aqui les dejo el link para que puedan probar el poderosísimo emacs&lt;/p&gt;</description></item><item><title>Mi historia digital pt V: Programando el futuro.</title><link>https://blog.kreig.rocks/2007/11/16/mi-historia-digital-pt-v-programando-el-futuro/</link><pubDate>Fri, 16 Nov 2007 15:46:44 -0600</pubDate><guid>https://blog.kreig.rocks/2007/11/16/mi-historia-digital-pt-v-programando-el-futuro/</guid><description>&lt;p&gt;Con esto tuve las bases de lo que se convertirían en la inspiración necesaria para iniciar mi carrera de &lt;strong&gt;Ingeniería en Ciencias y Sistemas&lt;/strong&gt; en la &lt;strong&gt;gloriosa y tricentenaria&lt;/strong&gt; &lt;strong&gt;Universidad de San Carlos de Guatemala&lt;/strong&gt;, Segui estudiando, y aunque la matemática 1 fue una pequeña dificultad que me atrasaría un año en mi carrera debido a las escasos fundamentos matemáticos adquiridos durante la educación media, ésto no me desanimó para llegar a mi primer contacto universitario en informática: el curso de Programación 1, curso que se me hizo bastante sencillo ya que dominaba a buen nivel el lenguaje C++ y tenía buenos fundamentos para la programación orientada a objetos, causando que me fuera otorgado el sobrenombre de &amp;ldquo;Objeto&amp;rdquo; en la Universidad por el compañero Rojo, y que a la vez originó el nombre de este blog.&lt;/p&gt;</description></item><item><title>Mi historia digital pt II: Jugando con fuego</title><link>https://blog.kreig.rocks/2007/10/26/mi-historia-digital-pt-ii-jugando-con-fuego/</link><pubDate>Fri, 26 Oct 2007 21:24:15 -0600</pubDate><guid>https://blog.kreig.rocks/2007/10/26/mi-historia-digital-pt-ii-jugando-con-fuego/</guid><description>&lt;p&gt;Luego de ésto, por el año 1994-95, un amigo que era mi vecino en ese entonces, era de los pocos que contaban con una &lt;strong&gt;IBM-PC&lt;/strong&gt; compatible u ordenador de uso general, en el cual tenía instalado un subsistema llamado Direct Access montado sobre alguna versión de &lt;strong&gt;MS-DOS&lt;/strong&gt; creo, pero esto no era lo importante, sino lo importante era que éste tenia un acceso directo al Prehistorik 2. En ese tiempo, yo ya contaba con mi propia consola de videojuegos (el Super Nintendo), por lo cual no me parecia nada novedoso el Prehistorik, además de que me parecía tedioso tener que jugar con el teclado, por lo que las PC todavía no eran de mi gusto personal.&lt;/p&gt;</description></item><item><title>Hasta donde puedes llegar hoy?</title><link>https://blog.kreig.rocks/2007/10/21/hasta-donde-puedes-llegar-hoy/</link><pubDate>Sun, 21 Oct 2007 19:47:53 -0600</pubDate><guid>https://blog.kreig.rocks/2007/10/21/hasta-donde-puedes-llegar-hoy/</guid><description>&lt;p&gt;Este es un lema muy famoso creado en una campaña de marketing de Microsoft de hace ya varios años, lo cual esta estrechamente relacionado con lo que estoy viviendo en la actualidad. Como de todos los que me conocen, es bien sabido, yo soy un ferviente defensor de las tecnologías Libres, implementándolas donde sea posible, además de defensor de la gloriosa y tricentenaria Universidad de San Carlos de Guatemala, y de su superioridad académica.&#10;Debido a la crisis económica que afecta nuestro país, me ví en la necesidad de buscar un trabajo de medio tiempo, logrando exitosamente encontrarlo en menos de 15 días, sin embargo, nunca me imaginé todas las lecciones técnicas tanto como lecciones morales que he llegado a aprender en apenas pocos días de haber iniciado labores.&#10;Primero. En el trabajo se desarrolla única y exclusivamente sobre plataformas Microsoft, con lo cual, viniendo de años de trabajar con tecnología LAMP, me encuentro trabajando actualmente en la tecnología WISV (Nombre que me inventé para Windows,IIS,SQLServer,VS.net) sobre Aspx algo a lo que no estaba muy acostumbrado, sin embargo estoy bastante cómodo, pues técnicamente no es muy complejo aprenderla de 0, y me sirve tanto para conocer de una manera mejor tecnologías que no conocía en profundidad, y poder opinar mas objetivamente en futuros posts acerca de éstas comparadas con sus alternativas libres.&#10;Segundo. Me doy cuenta que en el mundo laboral, los &amp;ldquo;prejuicios&amp;rdquo; interuniversitarios se terminan, tanto que el que tenga menos experiencia (en este caso yo, de la USAC) termina siendo guiado por alguien con mucha mas experiencia y de otra universidad a la que muchos llamamos &amp;ldquo;inferior&amp;rdquo;, sin embargo conoce perfectamente la plataforma .NET, tirando por el suelo cualquier orgullo prejuicioso pude haber tenido durante mucho tiempo hacia ellos, y enseñándome a ser mas incluyente en este aspecto.&#10;Tercero. Es increíble la cantidad de cosas que uno como linuxero no conoce acerca de las plataforma .NET, y no me refiero a lo teórico, si no a lo práctico, la cual a pesar de todos sus defectos, es bastante sencilla de aprender e implementar, por lo que la curva de aprendizaje es mínima gracias al buen background que tengo de la universidad, y a la paciencia y conocimiento que he adquirido gracias al software libre.&#10;Con esto quiero decir a todos los compañeros Open Source, que aunque lo mejor siempre estará del lado del software libre, tenemos que tomar en cuenta que en el mundo laboral las cosas pueden cambiar drásticamente, y todo nuestro conocimiento acerca de compilar kernels, configurar servidores apache, etc. se puede ver impráctico por culpa de una necesidad económica, y por este mercado de software nacional dominado por el imperio de Redmond.&lt;/p&gt;</description></item><item><title>JAVAizando sistemas de la USAC.</title><link>https://blog.kreig.rocks/2007/07/30/javaizando-sistemas-de-la-usac/</link><pubDate>Mon, 30 Jul 2007 20:19:21 -0600</pubDate><guid>https://blog.kreig.rocks/2007/07/30/javaizando-sistemas-de-la-usac/</guid><description>&lt;p&gt;Una de las cosas por las que la gloriosa y tricentenaria &lt;strong&gt;Universidad de San Carlos de Guatemala&lt;/strong&gt; 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&amp;hellip;, 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.&#10;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, &amp;ldquo;cambios&amp;rdquo; 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.&#10;Hasta donde yo se el nombre de la carrera es &amp;ldquo;Ingeniería en Ciencias y Sistemas&amp;rdquo;, mas no &amp;ldquo;Ingeniería en Java y Paradigmas Tecnológicos Actuales de Sistemas&amp;rdquo;, 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&amp;hellip;&#10;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&amp;hellip;&#10;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&amp;hellip;&#10;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&amp;hellip; 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&amp;hellip;), 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ó.&#10;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.&#10;Afortunadamente yo todavía tuve la oportunidad de ser la última generación en aprender lo que quedaba de Ciencia de la computación&amp;hellip; 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&amp;hellip; 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.&lt;/p&gt;</description></item><item><title>Modularización, un problema pendiente...</title><link>https://blog.kreig.rocks/2007/07/09/modularizacion-un-problema-pendiente/</link><pubDate>Mon, 09 Jul 2007 20:37:28 -0600</pubDate><guid>https://blog.kreig.rocks/2007/07/09/modularizacion-un-problema-pendiente/</guid><description>&lt;p&gt;Es lamentable que muchos estudiantes de la carrera de Sistemas no apliquen los conceptos más importantes de modularización, sea cual sea el lenguaje&amp;hellip; Es algo inaceptable que un proyecto largo, como los que suelen dejar en los cursos de Sistemas de la USAC, venga si mucho un par de archivos fuente.&#10;Recuerdo en mis tiempos, cuando llevé progra 1/progra 2, y se programaba en C existían proyectos con una modularización que daba pena, ya que ni modularizaban a nivel algoritmico ( o sea, todo lo hacian en el void main() olvidando los principios fundamentales de la programación descendente), mucho menos utilizaban diferentes archivos para la división semántica del proyecto, y en algunos caso llegaban a utilizar hasta sentencias goto!!(incluso todavía hay gente que lo utilizan en java&amp;hellip; que pecado a la abstracción).&#10;Por ello, es importante una buena modularización, tanto para el entendimiento del propio código, como del código ajeno (ojo Willy), además de que ayuda&#10;evitar código redundante.&#10;Cada lenguaje y compilador cuenta con sus propias herramientas y técnicas, además de &amp;ldquo;barreras naturales&amp;rdquo; para una mayor modularización, listaré algunos ejemplos básicos:&lt;/p&gt;</description></item></channel></rss>