viernes, 12 de septiembre de 2008

Ejemplo Tutorial para Aplicaciones con Glade 3 y GTKmm (Parte I)

Recientemente he estado utilizando Glade 3, libglademm y gtkmm para hacer aplicaciones; y la falta de tutoriales que expliquen ciertos detalles que a veces son necesarios resulta escaso. Por eso decidí hacer este pequeño ejemplo tutorial, con el cual intentaré detallar algunas funciones. A pesar de la poca documentación en español que conseguí, casi todo la ayuda que podemos necesitar se puede obtener de los varios foros -de cualquier parte del mundo, programar aquí es igual que programar en Alemania ¿no?-.

Alguno de los tutoriales que conseguí y que fueron útiles:

http://www.micahcarrick.com/12-24-2007/gtk-glade-tutorial-part-1.html
... las otras paginas no las perdí.


Trataré de seguir la metodología de algunos tutoriales que me sirvieron a pesar de que se enfocan en programación en lenguajes C, Python, PHP y otros bindings. Por los momentos no mencionare ninguna definición de los conceptos utilizados o que es Glade. Simplemente vamos a programar (o, al menos, ver el código).

La primera imagen muestra como debería verse la aplicación. Mi intención no es explicar como utilizar Glade, porque me parece que es muy intuitiva.

Lo importante es que después disponer los elementos de la forma que se quiere, se necesitará del nombre de los widgets a utilizar: Vistos en el árbol de widgets.




En este punto, tenemos un GUI funcional. Podríamos escribir unas cuantas líneas de código en C, Python, Ruby, o cualquier número de lenguajes de programación que mostrar nuestra ventana y probar lo que agregamos. Para este tutorial sin embargo, voy a mostrar cómo implementar varias funciones del GUI utilizando C++ con gtkmm.

Aqui estan los archivos necesarios para compilar el programa instalando las librerías apropiadas:

g++ $(pkg-config --libs --cflags gtkmm-2.4) $(pkg-config --libs --cflags libglademm-2.4) tutorial.cpp tutorial_principal.cpp -o tutorial

jueves, 17 de julio de 2008

Controlador RTL8187B en Debian Lenny (Toshiba a215-sp6806)

Después de meses sin escribir nada, les comento lo ultimo que he hecho. Recientemente adquirí una Laptop Toshiba a215-sp6806. Lo primero que hice al llegar a casa fue borrar Windows Vista (¿versión de 32 bits para una amd64?, no entiendo). Luego, instalé Ubuntu 8.04 para amd64, el cual detectó casi todo el hardware excepto la camara web y wifi, y en otra partición Debian Lenny amd64, ambos funcionan a la perfección con algunos dispositivos no detectados.

Debo mencionar que soy nuevo en GNU/Linux pero quise cambiar de sistema operativo porque se adapta mejor a mis necesidades.

El problema con el dispositivo wi-fi es que no existe un controlador nativo para linux, al menos eso creia, pero luego de buscar por google por un par de semanas llegué a varias conclusiones:

  • Los controladores de windows no funcionan con ndiswrapper, a pesar de que este soporta los driver para 64 bits los que conseguí no funcionaron.

  • Ndiswrapper funciona bien con el driver de windows 98 pero con un sistema de 32 bits (pero no era lo que quería).

  • Existe un proyecto donde modificaron un driver de realtek para que funcione en el kernel 2.6.24 . www.datanorth.net/~cuervo/rtl8187b/.

Escribí un correo a realtek (wlanfae@realtek.com.tw) para que me enviaran algun controlador para Linux que funcionara en la laptop con el sistema para 64 bits. Y obtuve respuesta. El controlador que me enviaron funciona bien con el detalle de que siempre muestra la conexion a 30%, que no es la realidad porque en Vista y Ubuntu 32 bits la conexión era 75%, escriban a ese correo hasta que decidan publicar el driver en su página o con gusto les enviaré el archivo.

No quiero escribir sobre la “experiencia Linux” o el cambio de sistema operativo, hay mucha documentación en internet, pero mi recomendación es que prueben.

miércoles, 23 de enero de 2008

¿cual es el futuro en sistemas scada?


Como estudiante de ingeniería es necesario analizar los diferentes tipos de tecnologías que se aplican en las industrias. En realidad, el conocimiento práctico de lo que esta allá escapa de mis manos pero me gusta pensar que lo que investigo tiene relevancia...

El futuro de los sistemas de SCADA se liga a los “servicios informativos de la compañía”. La tendencia total es mover todos los datos incluyendo SCADA al formato HTML. Esto integrará el sistema de SCADA en una amplia base de datos de la compañía. Las mejoras en hardware en el pasado fueron eclipsadas por mejoras en software. Esto continuará en el futuro. Las compañías utilizarán WWW para tener acceso a datos de SCADA dondequiera adentro del mundo. Esto permitirá cualquier persona en la compañía y más allá para tener acceso a datos SCADA.

En el lado del hardware de SCADA, las mejoras en sensores inteligentes significan que se continuará viendo una reducción en el precio y el tamaño de sensores. Además, la funcionalidad aumentará al mismo tiempo. Los sistemas de Fieldbus, al parecer, están llegando a ser más fáciles de instalar y en su uso. La tendencia es tener un sistema de Fieldbus que se pueda instalar por casi cualquier persona y sea plug and play. Esto también disminuirá el tiempo reparación y su costo -porque todo será modular-. Los sensores inteligentes permiten que el usuario vea problemas, por el software de SCADA, hasta el nivel mas bajo del sensor. El movimiento a un protocolo universal lento es eclipsado en el mejor de los casos y probablemente por el uso de Ethernet como portador común para los datos. Los sistemas del futuro utilizarán muchos protocolos pero cada protocolo será encajado en paquetes Ethernet de 100 Mhz dentro de un sistema compatible con OSI. Veremos más uso de los cables ópticos de la radio y de la fibra para la comunicación.

Viendo la conexion entre SCADA y las WSN (wireless sensor networks), es evidente que los sensores y su tendencia a ser mas eficientes es algo común en ambos campos de la tecnología. ¿SCADA basado en WSN? tal vez ya es una realidad.