46) Cubo de LED's

Andando por la red(especificamente en YouTube), me encontre este peculiar proyecto de electrónica. Es(obviamente), un cubo hecho de cientos de LED's; aparentemente, investigando en la red, me encontre con que este circuito fue programado con C++, usando Triac's programables y, supongo yo, cientos de capacitores. Bueno, aqui les dejo el video:



45) Editor de textos Emacs, y sus variaciones


Este magnifico editor de textos es la competencia directa de Vi/Vim, ya que estos dos comenzaron la guerra de los editores de texto. Emacs fue creado por Richard Stallman, y fue en un tiempo, el enfoque principal del proyecto GNU, el proyecto de software libre mas grande que exista. Fue liberado por primera vez durante la década de los 70's, y era conocido como TECO(Text Editor and COrrector); pero el nombre cambió despues de que Richard Stallman y Guy Steele se reunieron en una noche de hacking; y el resultado de las modificaciones a TECO, fue EMACS(Editing MACroS).

Años despues de las publicaciones de algunas versiones de Emacs, surgieron algunas modificaciones desarrolladas por otros programadores; tal es el caso de XEmacs, otro editor de textos identico al Emacs original. XEmacs esta basado en una version beta de los años 80 de Emacs; como Jamie Zawinski y un equipo de desarrolladores no pudieron mandar sus modificaciones y mejoras de la beta de Emacs 19, decidieron seguir con el desarrollo del codigo, y despues lo publicaron con el nombre de XEmacs.

Otras variaciones son:

MicroEmacs; desarrollado en un principio por Dave Conroy, y posteriormente por Daniel Lawrence, Linus Torvalds emplea este editor; yo tambien :).

MG; MicroGNUEmacs, actualmente viene instalado prederminadamente en el sistema operativo OpenBSD.

JOVE; Jonathan's Own Version of Emacs, creado por Jonathan Payne, especificado para sistemas UNIX-like, y no-programable.

Freemacs; creado para sistemas DOS, creo que actualmente el desarrollo ha sido abandonado.

Meadow; una version japonesa(que chafa) creada especificamente para correr en Microsoft Windows(mas chafa aún).

Es una lastima que no acepten todos los cambios que los solidarios hackers les mandan a los desarrolladores de Emacs; ya que no se aceptan cambios de fallos o contribuciones de codigo demasiado pequeñas; aunque la definicion de "contribuciones pequeñas" es ridicula; se especifica como mas o menos 11 lineas de codigo fuente.

Emacs ha sido criticado por tener caracteristicas "inútiles", tal como tener a la disposicion un tetris(que importa, un amigo es un master para el tetris), o tambien por causar molestias en las manos de los usuarios asíduos de Emacs, ya que se usa repetidamente la tecla Ctrl; pero esto no tiene porque asustarnos.

En lo personal, Emacs me ha dado mejores espectativas que Vim; pero apoyo la libertad, por lo que cada quien es libre de elegir el editor de textos que le convenga o que le agrade mas.

44) Jugando Nexuiz un rato

Es mas que obvio que soy un fan de las aplicaciones libres, pero si se trata de juegos, ya sean privativos o libres, yo votaria por jugar Nexuiz, espero que pienses lo mismo del FPS. Bueno, decidí ponerme a grabar uno de mis juegos del Nexuiz y subirlo a internet; asi que el siguiente video muestra como juego Nexuiz en el nivel 11(Strength) de la versión 2.5.1:



43) Usando Vim como un IDE


Vim fue creado justamente para eso, por eso es llamado un editor de textos de programadores para programadores, porque contiene muchas propiedades que hacen los IDE's comunes; como llamar a un compilador externo, indentación, coloreado de sintaxis, comparación de archivos de texto, y muchas otras propiedades mas; pero, una vez que descargamos e instalamos Vim, ¿sabemos como llamar a las propiedades básicas?. En ocasiones si, pero en otras ocasiones, no.

Para ejecutar los comandos, hay que presionar [ESC]+[Shift]+[:]+el comando.
Para guardar se presiona :w
Para guardar y cerrar es :x
Y aqui va mi favorito,
Para ejecutar un comando externo es :!nombre_del_comando
Y ejecutando una comando externo se puede llamar a un compilador, como lo es G++, mi compilador favorito en cuanto a C++ se refiere.

Sabiendo esos tres comandos, puedes manejar tu Vim como un IDE, pero ademas de todo, si quieres ver dos archivos sin abrir otra ventana de Vim, todo lo que tienes que hacer en gVim(implementación gráfica de Vim), es hacer clic en el menú "Ventana" y elegir la opción "Dividir Verticalmente".

Saber todas las propiedades de Vim requiere querer entender Vim y para entender Vim, hay que usarlo, recuerden que a veces, el conocimiento empírico es mejor que el conocimiento que se da en una escuela.

Recuerda que Vim es multiplataforma, por lo que si lo quieres en Windows, puedes descargar la versión actual desde la página oficial: http://www.vim.org/.

42) Nuevas cosas para Nexuiz

Ya hace mas de medio año que se lanzó Nexuiz 2.5, pero no faltaban los adictos que quieren más acción. Debido a esto, se estan desarrollando nuevas modalidades de juego para Nexuiz; pero a mi lo que más me interesa, es la programación, pues bien; me enteré de que se estan desarrollando vehículos para las próximas versiones de Nexuiz, aun no se para cuando: talvez para la versión 2.6 o la 2.7 u otra posterior a estas.

Si te enteras de esto, la emoción se te sube; ya se imagina uno aplastando a los enemigos con estos mounstros, pero obviamente a ninguno nos gustaria enfrentarnos sin armadura a estas enormes naves; y mucho menos si se esta solo; por eso digo que es bueno el trabajo en equipo, xD. Bueno aquí les dejo unos videos para que vean como va a estar la cosa:



41) GUI's en Python con Tkinter y PyGTK

Que tal a todos, como habran visto en la entrada anterior, he estado dedicando mi poco tiempo libre a el hermoso mundo de la programación, asi que como es de saber, la curiosidad o la necedidad; dependiendo del punto de vista, lleva a algunos usuarios y/o programadores, al estudio de las librerias gráficas, como son GTK y Tkinter.

GTK, es muy usado en la programación con C/C++, y para usarse en Python, el modulo que incluye las funciones de GTK, se llama PyGTK. Mientras que Tkinter, creo que solo es usado para generar interfaces graficas en Python, y aquí les dare unos ejemplos de Tkinter, ya que es la viene por defecto en la instalación de Python.

Existen muchos manuales en la red para explicar el uso de Tkinter, pero el que yo les recomiendo es este.

Para no dar mas rodeos, el siguiente codigo en Python usando Tkinter, muestra una interfaz con el texto Hola Mundo y un botoncito , el cual al presionarlo sale del programa:


import tkinter
from tkinter.constants import *
tk = tkinter.Tk()
frame = tkinter.Frame(tk, relief=RIDGE, borderwidth=2)
frame.pack(fill=BOTH,expand=1)
label = tkinter.Label(frame, text="Hola Mundo")
label.pack(fill=X, expand=1)
button = tkinter.Button(frame, text="Exit",command=tk.destroy)
button.pack(side=BOTTOM)
tk.mainloop()

El codigo fue hecho con la version 3.0.1 de la implementacion original de Python(CPython).

Eso es todo por ahora, no se ustedes pero se ma hace mas facil de comprender el Tkinter que el PyGTK, pero en fin, es la decision de cada programador, hasta pronto.

41) GCC bajo la competencia de GNU: Windows

Que tal a todos, ultimamente he estado dedicando mi poco tiempo libre al estudio de MinGW, Minimalist GNU for Windows, es la GCC(GNU Compiler Collection) para Windows.

MinGW, es muy usado por desarrolladores de software libre para la plataforma Windows, fue creado en 1998 por Collin Peters, compilado con Cygwin. Es muy util, y es la mejor opcion si quieres un compilador libre para Windows, ya sea de 32 o 64 bits.

Para conseguir un mejor comportamiento del compilador, es recomendable que al instalar MinGW, lo hagas directo en una carpeta directa en el disco local C, es decir, instalarlo en el directorio por defecto que es: C:\MinGW, asi sera mas facil compilar tus programas.

Una vez que hayas instalado MinGW, si quieres compilar el codigo, pero compilarlo desde tu carpeta personal, por ejemplo que tengas un archivo de C++(.cpp) en el escritorio, es necesario que copies el archivo g++.exe que se encuentra en C:\MinGW\bin, a la carpeta en el que se encuentra tu archivo de C++. Despues de eso abres un DOS, o una linea de comandos de Windows, y te colocas en la carpeta donde se encuentren tu archivo de C++ y el g++.exe; despues, tecleas
g++ Nombre_de_tu_archivo.cpp
y esto te compilara tu archivo C++ y los convertira en un archivo ejecutable de Windows(.exe), que por defecto lleva el nombre de a.exe, asi que para correrlo solo haces doble clic sobre el o escribes a.exe en la linea de comandos.

Ahora, si es que has generado un archivo de cabecera de C(.h), o un archivo de cabecera de C++(.hpp), solo es necasario que copies el archivo a la carpeta C:\MinGW\include, y eso bastara para poder utilizar tu archivo de cabecera en un archivo de C++.

MinGW tambien incluye una libreria grafica para crear GUI's; la cual se encuentra en C:\MinGW\include\GL.

Eso es todo por ahora, hasta pronto...

ACTUALIZACIÓN: A la derecha, en los gadgets de este blog, casi hasta abajo, hay enlaces hacia algunos codigos fuente albergados en La Web del Programador, algunos codigos han sido compilados bajo GNU/Linux, y otros bajo Windows, aunque estan diseñados para poder ser compilados sin importar el sistema operativo que uses.

Si deseas utilizar algun IDE que sea compatible con MinGW, tienes muchas alternativas, pero si quieres instalar por separado el MinGW y el IDE, esta por ejemplo el Code::Blocks IDE, el cual ya habia hablado de el en la entrada numero 11, tambien esta Visual-MinGW, aunque este todavia esta en ALFA, tendremos que esperar quizas, algunos años para que llegue a BETA y despues a RC, y despues a la versión final, espero que sea pronto, ya que tiene una exelente interfaz y es muy poderoso, pero no te lo recomiendo por el momento. Ahora, si no quieres Code::Blocks, o quieres esperar a la version final de Visual-MinGW, te recomiendo el editor de textos Vim, el cual es multiplataforma, y es un editor de textos, creado por programadores, para uso de programadores, por lo que es muy util y es muy poderoso.

40) SuperTux, un videojuego de plataformas

Hola a todos, este articulo esta dedicado a quienes gusten pasar horas frente a las maquinitas o al ordenador jugando juegos de plataformas.

SuperTux es una copia de Super Mario, solo que el personaje principal es, como ya supusieron, Tux, la mascota de Linux.

El juego consta de 29 niveles, faciles de superar, nueve enemigos que están en contra de Tux, graficos creados con la libreria gráfica OpenGL, y lo mejor de todo, es que es software libre, por lo que a los que les interese la programación de videojuegos, pueden mirar el código fuente sin ningun problema, o bien, si desean adquirir el código fuente sin los archivos binarios, puedes bajar el código desde aqui.

El juego es multiplataforma, por lo que esta disponible para Linux, para Windows y para MacOS X, puedes descargar el que sea compatible con su sistema operativo desde la pagina oficial de SuperTux, que es: aqui.

El juego es distribuido bajo la Licencia Pública de GNU, o sea, la licencia GPL, el juego es facil de jugar, y la trama, muy fácil de entender; por si quieren observar el juego por unos minutos, aquí les dejo un video de un chavo jugando los primeros tres niveles de SuperTux:


39) Algo de Electrónica: Compuertas Lógicas y Circuitos Integrados

Que tal a todos, bueno, les dije que alguna vez les daría algo de teoría de minirobotica, bueno, todos sabemos que toda maquina "inteligante" tiene un procesador, y este procesador se basa en compuertas lógicas, bueno, hoy les hablaré de algunas compuertas lógicas, la compuerta AND, la compuerta, OR, y la compuerta NOT.

Primero el funcionamiento de las compuertas:

Compuerta AND: La mayoría de las compuertas lógicas tienen por lo general tres "patitas", dos de entradas y una salida, la compuerta AND, se le tiene que aplicar corriente a las dos entradas para que de una salida, por eso se llama AND. Existe una manera de representar las compuertas mediante una tabla que se llama Tabla de La Verdad; la tabla de la verdad de la compuerta AND es esta:

Entrada Entrada Salida
0 1 0
1 0 0
0 0 0
1 1 1

Compuerta OR: Esta compuerta también tiene dos entradas y una salida, solo que esta, para que de la salida, solo es necesario que se aplique corriente a una de las dos entradas; esta es su tabla de la verdad:

Entrada Entrada Salida
0 1 1
1 0 1
0 0 0
1 1 1

Compuerta NOT: Esta compuerta lógica, a diferencia de las otras dos, solo tiene una entrada y una salida; lo que hace esta compuerta, es cambiar la entrada, es decir, si le entra una carga negativa, da una salida positiva, y si da una carga positiva, da una salida negativa; esta es su tabla de la verdad:

Entrada Salida
0 1
1 0

Por lo que ven, solo representamos las entradas y las salidas con en sistema binario, es debido a que la tabla de la verdad esta relacionada con el Álgebra Booleana, creada a mediados del siglo XIX, por el matemático inglés George Boole.

Existen otro tipo de compuertas, las encontraran si se ponen a investigar un poco, pero por el momento, estas tres compuertas son más que suficientes.

Estas compuertas cabe agregar, estan metidas adentro de los circuitos integrados:

Tipo de Compuerta Circuito Integrado
AND 7408
OR 7432
NOT 7404

Bueno, esto es todo, proximamente habrá más.

38) Ubuntu 9.10, ya disponible

Escribo esto mientras descargo la imagen de disco de la nueva versión de Ubuntu, la 9.10, nombre clave, Karmic Koala. Espero poder convencer por completo a un compañero de la escuala para que deje su Windows; aunque sea por un tiempo.

Investigando en la red, encontre que Ubuntu 9.10 tendrá mejores tiempos de arranque, segun esto, tendrá como máximo 10 segundos, tendrá mejoras en la interfaz gráfica; para aquellos que se quejan de dicha interfaz espero que ahora se queden callados.

El cliente de mensajería instantánea por defecto cambiará de Pidgin a Empathy, ya saben para aquellos que le encanta estar chateando durante horas.

En cuanto al kernel, el kernel cambiará de versión, en vez de usar Linux 2.6.28, usará Linux 2.6.31, quien sabe si sea un gran cambio, pero en fin. Tendrá GCC 4.4 como compilador por defecto.

Esta versión de Ubuntu será soportada hasta Abril de 2011.

Y para los que le gustara que las versiones fueran soportadas por más tiempo, sepan que la primera versión del proximo año, la 10.04, será una versión LTS, es decir será soportada desde Abril de 2010 hasta Abril de 2013.

Ahora me despido, hasta pronto queridos usuarios de Ubuntu.