Programas que he usado hasta el momento en la Universidad

En los últimos dos años y medio en la Universidad he utilizado algunos programas para hacer mi vida académica un poco más sencilla. Los comparto por si son de utilidad para alguien más:

  • Logisim: este programa sirve para diseñar circuitos lógicos, muy completo y eficaz.
  • Graph: maravilloso programa de Windows que genera gráficas, se le pueden poner los datos en tablas o en funciones.
  • Graphmatica: lo usé como complemente a Graph.
  • Zim: un gran programa para tomar notas y con formato de wiki, es portatil y hay versión para Linux.
  • LibreOffice: imprescindible suite ofimática.
  • SQLite Administrator: pequeña y potente interfaz de bases de datos SQLite.
  • Audacity: suite para grabar (audio) las clases.
  • Code::Blocks: es imposible no conocer este IDE, me ha servido mucho para programar en C++
  • Tomighty: maravilla tomatesca la cuál sirve para ejecutar mi querida técnica de producividad; Pomodoro, sin la cuál ya no me alcanzaría el tiempo. Ya hablaré de ella.

Listas simples, dobles y circulares en C++

O casi, ya que C++ es un lenguaje que nunca aprendí (y que ahora debo por un curso en la universidad llamado Estructura de Datos) y cuyo código he copiado de C++ Con Clase. De cualquier manera, lo que interesa es comprender los diferentes algoritmos (recorrido, inserción, eliminación) en cada una de las listas. Al código le he agregado que en pantalla se muestren los valores que contiene cada nodo de la lista así como las direcciones de memoria de cada uno y al nodo/nodos al que está enlazado.

Por ejemplo, en la imagen de arriba, en la primera parte está la lista con 9 valores (nodos), empezando con 40 y terminando con 80. Como se puede apreciar, la dirección de memoria para el nodo que contiene a 40 es 009131C0 y la liga/enlace/siguiente que hace referencia a 00913210, valor de memoria que corresponde al nodo que contiene a 15, osea, al siguiente valor en la lista. Así se va hasta llegar al final, donde el enlace del nodo de 80 punta a NULL.  En la siguiente parte se muestra nuevamente el listado, pero ahora con el nodo que contenía al valor de 20 eliminado, por lo que se puede ver que el valor del enlace de 30 apunta a 10, manteniendo así el orden.

A mi se me hace más sencillo comprender como las listas se conforman y como los nodos se relacionan entre ellos si puedo ver los valores de referencia que hay entre ellos, cada quién tiene su método y sabe como estudia pero espero que a alguien más le sirva esto.

Como los queridos de WordPress no dejan subir muchos tipos de archivos, enlazo el archivo compreso en ZIP, sólo es de cambiarle la extensión .odt por .zip y ahí dentró habrán 3 archivos con el código.

Instalar Apache, PHP, MySQL y phpMyAdmin en Ubuntu 11.04

Lo siguiente es la instalación más básica y menos segura de dichos programas, no recomendado para un servidor en producción.

Abrir una terminal/consola, primero instalamos el servidor web Apache:

sudo apt-get install apache2

Lo podemos comprobar abriendo un navegador en la dirección:

http://127.0.0.1

Instalamos el PHP 5 cómo módulo:

sudo apt-get install php5 libapache2-mod-php5

Reiniciamos el servidor web:

sudo /etc/init.d/apache2 restart

El directorio www por default es:

/var/www

Si no tenemos permiso para manipular su contenido, se lo damos con lo siguiente. Cambiamos el propietario del directorio y el grupo que debe usarlo. Reemplazar USUARIO con el nombre de usuario que estén utilizando:

sudo chown -R USUARIO:www-data /var/www

Se le dan permisos de lectura y ejecución para todos y de escritura sólo al propietario:

sudo chmod -R 755 /var/www

Ahora creamos el info.php de rigor para comprobar el funcionamiento de PHP:

sudo gedit /var/www/info.php

Pegar lo siguiente dentro, luego salvar y cerrar:

<?php phpinfo(); ?>

Comprobar entrando a la dirección:

http://127.0.0.1/info.php

Tendría que aparecer toda la información de configuración del PHP y sus módulos instalados. Seguimos con la instalación del servidor y el cliente de MySQL

sudo apt-get install mysql-server mysql-client

Pedirá clave para el usuario root y luego la confirmación de la misma. Ahora podemos instalar todos estos módulos, mejor que sobre y no que falte :P

sudo apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Entre ellos va el soporte para MySQL, cURL, etc. Ahora otro reinicio del servidor web:

sudo /etc/init.d/apache2 restart

Y ahora instalamos la interfaz web para manejar el MySQL y sus bases de datos, phpMyAdmin:

sudo apt-get install phpmyadmin

Preguntará para que servidor web configurar, elegir apache2 y continuar. Luego pedirá configurar la base de datos con dbconfig-common elegir que No.

Comprobar si funciona entrando a:

http://127.0.0.1/phpmyadmin

Si no funciona, ejecutar:

sudo gedit /etc/apache2/httpd.conf

Pegar lo siguiente dentro, luego salvar y cerrar:

Include /etc/phpmyadmin/apache.conf

Reiniciar el servidor web nuevamente:

sudo /etc/init.d/apache2 restart

Y con eso ya debería estar todo funcionando.

Archivos y rutas importantes:

* acá están todos los virtual hosts habilitados
/etc/apache2/sites-enabled

* el virtual host por default, de este se pueden hacer copias
/etc/apache2/sites-available/default

* el archivo de configuración de PHP
/etc/php5/apache2/php.ini

* el archivo de configuración global de MySQL
/etc/mysql/my.cnf

Presentación de OpenWolf

Un poco de promoción para OpenWolf, copio el mensaje como fue publicado en la lista de correo de SLGT:

Buen dia comunidad:

El dia de hoy quisiera compartirles un evento que me parece es importante para el software libre en guatemala.
Como sabrán durante ya casi un año iniciamos con el diseño e implementación de la aplicación OpenWolf (http://openwolf.org), la cual tiene como objetivo servir como una plataforma de gobierno electrónico. Actualmente la aplicación esta lista esta publicada en http://transparencia.gob.gt y en http://live.openwolf.org (dev). Y esta siendo usada ya por 13 agencias del gobierno incluyendo el ministerio de gobernacion y el congreso de la republica.
Debido a la aceptación por parte del gob.gt, se nos a brindado la oportunidad de presentar la aplicación durante la cena del Dia de la Transparencia, a celebrarse hoy en el Palacio Nacional.
Aunque el tiempo que se nos brindara es corto (15 min), la oportunidad de mostrarle a todas esta personas lo que el software libre puede hacer no tiene precio.
Mi petición a ustedes es su colaboración con el proyecto en forma de promoción, uso, testeo, etc, etc y si alguien quisiera brindarnos lineas de codigo son mas que bienvenidas. Ademas como parte del proyecto el dia de mañana iniciaremos de nuevo con las capsulas del curso del lenguage ruby en http://cursos.openwolf.org (por cierto tambien necesito ayuda para moderar esto)
Bueno en fin… gracias a todos los que han apoyado al proyecto de una u otra manera. Falta un resto por trabajar, pero estoy seguro que cuento con su apoyo para esto.
GRACIAS POR SU AMISTAD :)

Un enhorabuena al grupo que lo impulsa.

En el BANRURAL

Hoy fui a sacar las millonadas de mi cuenta bancaria vía tarjeta de débito a un cajero automático. “Su tarjeta se ha vencido” o algo así me dijo el espíritu de la máquina. Pues bueno, a la agencia de BANRURAL más cercana. Por cierto, hay un montón de electrodomésticos ”Metrotech”, no sé que negocio con eso ahí.

Yo: “Muy buenas, mi tarjeta de débito se ha vencido y quisiera renovarla.”

Señorita del Banco: “Claro que si, voy a necesitar su tarjeta y su cédula.”

Señorita del Banco: *tap tap tap*

Señorita del Banco: “Coloque su dedo indice en el lector.”

Yo: * :-O que moderno*

Señorita del Banco: “mmm, por favor vuelva a colocarlo.”

Yo: *uy, que me tengo que lavar las manos más seguido*

Señorita del Banco: “¿Si ha actualizado sus datos, cierto?”

Yo: “… ¿no lo creo?”

Señorita del Banco: *tap tap tap*

Señorita del Banco: “Efectivamente, usted no ha actualizado datos desde el 2003.”

Yo: “Ah si, por esa fecha aproximadamente”

Señorita del Banco: *levanta una ceja*

Yo: *calla y escucha m’ijo, calla y escucha*

Señorita del Banco: “Debe traer un recibo de luz o de agua o de teléfono más su cédula y así actualizamos sus datos, ya que el sistema no me permite solicitarle una nueva tarjeta si no lo hace.”

Señorita del Banco: “Luego de hacer eso, son 2 días para que traigan su nueva tarjeta.”

Yo: “Muchas gracias, entonces nos vemos mañana por la mañana.”

Yo: *con la cola entre las patas por no preocuparme más por mi situación bancaria*

 

Mierda, tengo que practicar mi firma de banco que la tengo apuntada en un papelito por ahí.

No, parece que no

El domingo se le quedó el auto al esposo de mi hermana, cerca de la casa. Fui ahí a ver si le daba una mano. La batería del vehículo es de calcio ¿qué pasó con las de plomo? el problema era que una de las ventanas no se podía subir puesto que son eléctricas. Luego de que un vecino llegara a pasarle corriente pues se solucionó el problema.

El día de hoy fui a comprar un nuevo teléfono, la porquería del LG que ya tenía casi 2 o 3 meses sin que funcionara el microfono y se apagaba un par de veces al día, una completa basura. Y yo en mi desastre no encontré la factura para la garantía. Dentro de la tienda era una locura, gente de un lado para el otro y sólo lo que se escuchaba era “plan de datos”, “blackberry”, “los días 17 de cada mes tendría que hacer su pago”, “se lo descontamos de su cuenta bancaria cada mes”.

Ya con la vendedora le digo que quiero un teléfono prepago de tales y tales especificaciones. Por supuesto, me dice, tenemos estos pero de los que ve en pantalla solo como 8 son prepago. En pantalla habían 24 modelos. A lo que respondí “parece que todo mundo quiere su línea de llamadas” y ella me completa la oración “junto a su plan de datos”. Luego de eso nos quedamos unos segundos pensando sobre nuestras observaciones. Por suerte la necesidad de vender pudo más y luego continuó con la explicación de los modelos en prepago.

Con mi humilde teléfono (samsung gt-b3410) ya saliendo, fuera de la entrada de la tienda había un vendedor ambulante y me dice “jefe, no quiere una funda para que no se le raye su blackberry?” un “no gracias” y seguí mi camino.

Me gusta la tecnología, lo acepto. Pero.

Algún día que me vea con la necesidad de comprar un automóvil pues tendrá que ser bastante primitivo, no que necesite energía eléctrica para operar las ventanas. Con una manija es suficiente para subir y bajar, igual, si se lo quieren robar le dan a la ventana y asunto arreglado.

No necesito un plan de datos para estar siempre conectado, es decir, tengo internet aquí en mi PC y también en el trabajo. Cuándo voy a casa de mis padres voy a un cybercafé durante un rato o mi hermanita me presta su modem 3G, pero cuándo estoy ahí frente a la pantalla me pregunto “qué diablos hago aquí sentado como un estúpido?” me levanto y voy a no hacer cualquier cosa, el objetivo es descansar y visitar a la familia.

Mierda, que locura. Pareciera que no soy tan aficionado a la tecnología después de todo, pero de no serlo, no usaría el correo electrónico, las redes sociales o incluso no escribiría en este blog, que dicho sea de paso, ocurre cada vez que muere un político. Tal vez sea cosa de ponerle un límite a cada cosa.

Empezando el segundo semestre

Poca gente, será cuestión de acostumbrarse o tal vez porque era el primer día.

Orden cronológico de las clases:

Contabilidad General

  • El catedrático tiene serios problemas de comunicación con los estudiantes; por lo general siempre vuelve la vista hacia otro lado cuándo explica algún tema, le toma mucho tiempo llegar a una definición.
  • Hay teoría por todos lados.

Matemática Básica I

  • Esta persona parece muy animada, ya explicó como piensa dar la clase, hizo un sondeo para verificar cuál es el nivel (no muy alto) de conocimientos.
  • Es tan buena gente que nos dio fechas de extraordinarias.
  • Parece que valdrá la pena recibir su clase.

Algoritmos

  • Lo primero fue presentarse, presentar un libro de texto (de su propia edición) y luego “inicien Borland C++” (el cual es una antigualla) “vamos a hacer un pequeño programa”.
  • Veamos, según recuerdo no me asigné “Programación I” o algo parecido.
  • Al finalizar las 2 horas no hubo explicación de que era un algoritmo.
  • Luego le pregunté a una compañera que es secretaria “que tal le pareció la clase” y ella sólo me ve con un rostro de miedo e incapaz de responder.

Proceso Administrativo

  • Esta persona si que es de lo más dinámica y su clase será interesante.
  • Lo malo es que parece demasiado permisiva, hay que gente que utiliza estas cosas para faltar al respeto.

Yo sabía que este semestre no iba a empezar bien, aunque es agradable volver a ver a los compañeros sobrevivientes del primer semestre.