Monday, September 10, 2007

Transformando a Medellín

Monday, September 03, 2007

Sin embargo los ojos incerrables del che miran como si no pudieran no mirar.

Che
Mario Benedetti

Lo han cubierto de afiches / de pancartas
de voces en los muros
de agravios retroactivos
de honores a destiempo

lo han transformado en pieza de consumo
en memoria trivial
en ayer sin retorno
en rabia enmbalsamada

han decidido usarlo como epilogo
como ultima thule de la inocencia vana
como anejo arquetipo de santo o satanas

y quizas han resuelto que la unica forma
de desprenderse de El
o dejarlo al garete
es vaciarlo de lumbre
convertirlo en un heroe
de marmol o de yeso
y por lo tanto inmovil
o mejor como mito
o silueta o fantasma
del pasado pisado

sin embargo los ojos incerrables del che
miran como si no pudieran no mirar
asombrados tal vez de que el mundo no entienda
que treinta anos despues siga bregando
dulce y tenaz por la dicha del hombre.

Monday, August 06, 2007

Por que software libre?

If I have seen further [than others] it is by standing on the
shoulders of giants... Issac Newton

Wednesday, May 02, 2007

Tiempo para Tesis.

Bueno, tal parece que le voy a poder sacar tiempo a la tesis el próximo semestre.
TODO:
- Comenzar anteproyecto.
- Conseguir director.
- Terminar anteproyecto.
- Revisar anteproyecto.
- Entregar anteproyecto.

Tesis TODO:
- Estudiar UML.
- Estudiar B-Method.
- Estudiar los problemas que se presentan en control.
- Model de control en UML.
- Estudiar la possibilidad y el como se haria el control distribuido.
- Modelo del framework de control en UML.
- Paso de UML a B-method.
- Verificacion.
- Implementacion de Framework de control (Sobre Pistachio y Gumstix)
- Buscar un sistema cuyo control necesite tiempo real, y controlarlo con el Framework sobre el Gumstix)

Tengo como maximo 12 meses para la tesis, toca repartir bien eso.

Monday, April 16, 2007

Tesis.

Bueno, en el almuerzo se me ocurrio la idea que podria ser mi tesis (ojala algun dia decida bien que hacer). Siguiendo con la idea del anterior post, seria asi:

En gumstix se correria pistachio, en el cual se correria un Framework de Control, el cual estaria previamente diseñado , modelado con UML y verificado con B-Method, y para la configuracion del control se tendria que especificar en UML.
Se tendria algo asi:

* Una aplicacion en la cual se diseñarian los componentes del sistema: Actuadores, Sensores, y el control como tal. La salida de este seria un modelo en UML.

* Este modelo se le pasaria al Framework en Pistachio el cual lo implementaria y se comunicaria con los sensores y los actuadores.

* El Framework se diseña en UML y se verificaria en B-Method, si algo falla ya seria problema de la arquitectura del Gumstix.

* Se pondria a prueba en el control de algun sistema complejo de controlar.

Eso seria todo.

Sunday, April 15, 2007

Tesis

Bueno no hay GSoC para mi, entonces vuelvo con mi tesis, pensandolo bien, creo que voy a redirigir mi tesis, tengo puntos en lso cuales quiero trabajar:

* Control digital en Tiempo-Real
* Redes neuronales.
* Pistachio
* Alguna implementacion en Gumstix.

Hasta ahora no se bien que sera. Pero si se unen las partes seria correr pistachio en Gumstix, y encima correr un Framework de Tiempo Real para el control de "Algo" y ojala que con Redes Neuronales.

Tuesday, March 27, 2007

GSoC

Bueno, le tire al GSoC, con lo que fue el principio de la idea de construir un sistema distribuido a partir de sistemas embebidos junto con Torres, hace como 2 años.
Al principio la idea era Inferno ( por el styx) , pero creo que limbo asusta. Seria bueno que se diera lo del GSoC, depronto saldria una implementacion de styx para pistachio. (Cumpliendo las obligaciones con el mes de marzo)

Sunday, January 28, 2007

Corriendo wombat

Bueno, despues de bajarme y utilizar un poco Fiasco, hice lo mismo con el paquete de Pistachio que estan trabajando en NICTA y UNSW, junto con Iguana y Wombat.
Lo que hice fue bajarme del svn todos los paquetes necesarios. En esta pagina muestran como bajarse los paquetes (http://www.ertos.nicta.com.au/software/baz-howto.pml) y para poder compilarlo toca hacerlo con un cross-compiler, no sirve el gcc normalcito, me baje este de nicta (http://www.ertos.nicta.com.au/downloads/i686-gcc-3.3.4-glibc-2.3.3-2006-06-02.tar.gz)
y posicionado en la carpeta donde estan todos los archivos ejecuto los siguiente:
tools/scons.py machine=pc99 toolprefix="i686-unknown-linux-gnu-" simulate
y listo, empiezan a compilarse todas las partes necesarias, pistachio, iguana, y wombat, y queda una imagen build/c.img que se corre automatica en qemu.
Una muestra:

Sunday, January 21, 2007

Tuesday, January 09, 2007

Saturday, December 30, 2006

De como compilar Fiasco.

Comence a compilar Fiasco, lo que hice fue seguir las instrucciones en http://os.inf.tu-dresden.de/fiasco/use.html.
1) Me baje los modulos grub l4 dde hello l4env dope preprocess de el cvs.
2) En el directorio l4 ejecuto lo siguiente:
make O=../build_user config
(lo dejo como esta)
make O=../build_user all
(Espero como 20 minutos y sale un error de sed, para arreglarlo toca entrar a l4/tool/gcc-wrap/Makefile y cambiar a:

$(VERBOSE)sed '\
s,@system@,$(SYSTEM),g;\
s,@ar@,$(AR),g;\
s,@nm@,$(NM),g;\
s,@ranlib@,$(RANLIB),g;\
s,@cc@,$(CC_$(DEFAULT_ARCH)),g;\
s,@cxx@,$(CXX_$(DEFAULT_ARCH)),g;\
s,@l4dir@,$(absfilename $(L4DIR)),g;\
s,@dropsdir@,$(DROPS_STDDIR),g;\
s,@compilerincdir@,$(GCCDIR_$(DEFAULT_ARCH))/include,g;\
s,@libgcc@,$(GCCLIB_$(DEFAULT_ARCH)),g;\
s,@libgcc_eh@,$(GCCLIB_EH_$(DEFAULT_ARCH)),g;\
s,@default_system@,$(DEFAULT_SYSTEM),g;\
s,@default_arch@,$(DEFAULT_ARCH),g;\
s,@default_cpu@,$(call PROCESS_SYSTEM, 's/[^-_]*_\([^-]*\).*/\1/p'),g;\
s,@default_l4api@,$(call PROCESS_SYSTEM, 's/.*-\(.*\)/\1/p'),g;\
' $< > $@.new


por:

$(VERBOSE)sed 's,@system@,$(SYSTEM),g;s,@ar@,$(AR),g;s,@nm@,$(NM),g;s,@ranlib@,$(RANLIB),g;s,@cc@,$(CC_$(DEFAULT_ARCH)),g;s,@cxx@,$(CXX_$(DEFAULT_ARCH)),g;s,@l4dir@,$(absfilename $(L4DIR)),g;s,@dropsdir@,$(DROPS_STDDIR),g;s,@compilerincdir@,$(GCCDIR_$(DEFAULT_ARCH))/include,g;s,@libgcc@,$(GCCLIB_$(DEFAULT_ARCH)),g;s,@libgcc_eh@,$(GCCLIB_EH_$(DEFAULT_ARCH)),g;s,@default_system@,$(DEFAULT_SYSTEM),g;s,@default_arch@,$(DEFAULT_ARCH),g;s,@default_cpu@,$(call PROCESS_SYSTEM, 's/[^-_]*_\([^-]*\).*/\1/p'),g;s,@default_l4api@,$(call PROCESS_SYSTEM, 's/.*-\(.*\)/\1/p'),g;' $< > $@.new

No se por que mi sed no puede con las instrucciones separadas en lineas con un \,pero se arregla el problema. Luego lo dejo otra vez compilando, y me da tiempo de salir, comprar dos libros (Calicalabozo de Andrés Caicedo, y La Despedida de Milan Kundera) , comer algo y cuando vuelvo la maquina esta en un error porque no tenia instalado el doxygen, lo instalo y vuelvo a compilar, me da tiempo de organizar los libros que tengo por leer (Calicalabozo, La despedida, Despues del Hombre de Gonzalo Arango, Gato o soledad en la lluvia de Amílcar Osorio, y El libro Negro de Orhan Pamuk), tambien juego un poco en el Wii de mi hermanito, el control es loquisimo, funciona basicamente con acelerometros. por lo que no es necesario jugar parado y moverse como loco, sino tambien sentado, la parte de infrarrojos funciona siempre y cuando no le caiga sol al sensor (pense que eso solo nos pasaba en los carritos que nos ponian a hacer en la universidad) sino se enloquece, pero casi siempre esta en lugar cerrado entonces no es problema, y me imagino que funciona con conceptos de vision esteroscopica; termino de jugar y sigue compilando, me como un postre y espero, luego sale un error porque no encuentra el comando fig2dev y me toca instalar el transfig, y comienzo de nuevo, al ratico (doy gracias que no toca compilar de nuevo lo que ya ha compilado) sale un error: no puede copiar el archivo building.tex en una carpeta, ¿¿bug del Makefile de Fiasco?? el Makefile hace ejecutar el comando, con respuesta:

cp building.tex drops-building.tex
cp: cannot stat `building.tex': No such file or directory


Lo que pasa es que el Makefile entra en el directorio de trabajo, build-user/doc/.... e intenta copiar el archivo desde esa misma carpeta y hay no esta, esta en el directorio l4/doc/building-howto, solo es copiarlo de esta posicion a build_user/doc/building-howto/ y comenzar de nuevo a compilar, y ya si termina, ¡mas largo que la primera instalada de Xfree86 fue esto!.

Ahora entro en la carpeta l4/kernel/fiasco, corro el comando:

make BUILDDIR=../../../build-kernel
cd ../../../build-kernel
make menuconfig
(lo dejo como esta)
make
(Espero mientras veo Carnivale, esta buena la serie)


Sigo los pasos de la pagina para iniciarlo, un poco distinto (pa correrlo en vmware desde una imagen de un floppy) pero en esencia lo mismo.
Y listo, tengo al buen Fiasco corriendo en una maquina virtual.

Monday, December 18, 2006

Distribuyendo mi carga

Rafa, para responder a tu comentario decidi hacer 2 cosas, comenzar a bajarme el Fiasco del cvs (y no seguir jugando con esa version de Fiasco que tenia desde hace mucho), y copiar y pegar el comentario en un nedit, separarlo por espacios y abordarlo linea por linea.

1. Middleware DICE, lenguaje de IDL y generador de stub y skeleton para los servicios de userspace.

Fiasco: http://os.inf.tu-dresden.de/DICE/
Pistachio: http://www.l4ka.org/projects/idl4/
NICTA: http://ertos.nicta.com.au/software/kenge/magpie/latest/

En Fiasco van en la version 3.1.0 (Nov/2006) y en Pistachio en la 1.0.0 (2003), y el de Nicta en la 1.0 (Dic/2004) , no he trabajado con ninguna de las tres, entonces no tengo nada que decir.

2. Codigo en C++ en el kernel. Bien organizado y con un preprocesador modificado que hace el codigo aun mas limpio.

En pistachio tambien esta en C++, ahora, lo del preprocesador, no creo que exista en pistachio, y no se hasta que punto sea una gran ventaja, confio plenamente en cpp.

3. Device Driver Environment: Entorno que permite reutilizar todos los drivers de Linux en L4

Fiasco: http://os.inf.tu-dresden.de/l4env/ (no encontre pagina de DDE)
Pistachio: http://www.l4ka.org/projects/virtualization/drivers.php

He leido un poco la forma como lo implementaron en Pistachio y me convence, aunque deberia leerlo mas a fondo.

4. El Build System es demasiado poderoso y organizado. Hace checkout del CVS y veras lo que te digo

Nunca he construido Fiasco del todo, solo he usado una imagen que habia en la pagina, y fue hace un buen rato.
Pistachio lo he compilado varias veces,y he construido aplicaciones de prueba, y si es un poco complicado, pero si uno sigue las ayudas no se pierde. (de hecho ayer recompile desde cero lo del CVS y no tuve problema).

En cuanto a bajarlo del CVS, en esas ando como desde hace 2 horas y nada que baja, ojala algun dia baje.


Uno de los aspectos que mas me hacen pensar en Pistachio:
http://ertos.nicta.com.au/press/051124_L4_Qualcomm_vfinal.pdf

Plataformas soportadas:
Fiasco:
  * IA32 (Intel, AMD and compatible CPUs, i486 and above)
* ARM (SA1110 and PXA)
* UX (Linux usermode emulation of Fiasco/L4
Pistachio:
  • Alpha (21164, 21264)
  • AMD64 (Opteron 242, Simics)
  • ARM (SA1100, XScale, ARM925T)
  • IA32 (Pentium and higher)
  • IA64 (Itanium1, Itanium2, Ski)
  • MIPS 64bit (R4000, R5000)
  • PowerPC 32bit (IBM 750)
  • PowerPC 64bit (Power3, Power4)
  • ((((Pronto M68K jeje))))
Al fin de cuentas, tal parece que ambos tiran para el mismo lado, pero me interesa mas pistachio, por muchas cosas, entre unas el hecho que lo sigan trabajando en UNSW y en NICTA en Australia.

Aun asi, voy a comenzar a trabajar tambien en Fiasco, para ver bien cual se acomoda mejor a lo que estoy buscando.

Pero si me tenes un puestico en Dresden me paso de una a Fiasco, y volvemos a Fiasco "El uKernel".

Sunday, December 17, 2006

Volviendo a pistachio

Me estoy bajando el codigo fuente de pistachio, hace un buen rato que no lo veia, y ya ni podia entender mi enredo de idrectorios, asi, que va a tocar casi desde cero. La idea seria:
1) Lograr controlar una tarjeta de red con pistachio. Primero voy a intentar con el codigo para el stack tcp/ip que viene con OSKIT, aunque igual creo que lo primero es manipular la tarjeta a bajo nivel a mano, y luego conectar esto con el oskit.
2) Hacer una aplicacion cliente/servidor entre pistachios
3) Entender bien el concepto de hilo en pistachio, la generacion de los mismos, y cuales son y para que sirven los hilos basicos de pistachio.

(Esta semana tengo que llamar a averiguar acerca del precio de las tarjetas de las CPLDs)

Saturday, November 25, 2006

Buscando un foco

Bueno, no se porque busco un foco, habiendo luz ambiente, pero bueno, parece ser necesario para poder terminar haciendo algo, la cosa es la siguiente, el fin ultimo de un computador es resolver problemas, pero el meollo esta en que hay ciertos problemas que no se pueden resolver, y hay otros problemas que aunque se pueden resolver, es inutil esperar una respuesta por parte de un computador actual, entonces la cuestion radica en cambiar por completo el como se construiria el modelo matematico del sistema que quiero desarrollar, no puedo basarme en un modelo que siga a turing, pues este se basa en un modelo secuencial de calculo en el cual para resolver un problema se siguen unos pasos en donde cada paso depende de el anterior, y no es posible realizar todos los pasos en un mismo momento, de esto salen otros problemas, los problemas indistribuibles, no se bien si estos problemas se puede resolver con una maquina cuantica de calculo, pero es claro que con una maquina determinista y con un orden secuencial de calculo, no se pueden resolver ciertos problemas, la idea seria poder ya sea escoger que problemas quisiera poder resolver, o lograr demostrar cuales problemas puede resolver un sistema como el que tengo pensado.

Monday, October 30, 2006

Thursday, October 19, 2006

Que es un computador?

He estado leyendo acerca de teoria de conjuntos para poder lograr a entender bien el B-Method y en general los metodos de demostracion, tambien algo de teoria de automatas. Me gustario poder comenzar a trabajar con la definicion formal de una maquina de Turing, y a partir de ella llegar al porque es necesario todas las tecnicas que se utilizan actualmente en la implementacion de los computadores.

Basicamente una maquina de turing es un automata que tiene contacto con un medio de almacenamiento. (http://www.warthman.com/ex-turing.htm)

Una buena lectura seria el "On Computable Numbers, with an Application to the Entscheidungsproblem".