Proyectos, OSS/FSNovember 13, 2006 9:26 am

Estando aqu’i en Trieste, un expositor( Paul Bartholdi) presento una idea muy interesante, la creaci’on del programa para el manejo de FAQs desde la linea de comandos. En s’i es m’as bien una base de conocimiento que un grupo de personas mantienen como una coleccion de archivos en sus $HOME.

La idea es crear un archivo .faq_XX donde XX es arbitrario pero se espera que indique el temario de la base
de conocimientos que encierra.

En cada uno de estos archivos, se encuentra el contenido de la siguiente manera:

AUTHOR Paul Bartholdi, 20011210

FAQRC
The file .faqrc , in your $HOME directory, should contain the list of all
the faq files you want to query, in your directories or anywhere else.

KEYWORDS
The line containing keywords must start in column 1 with one or more
keywords characterizing the following text.

A keyword line effectively ends the previous entry.

As’i la primera linea contiene el autor y alguna informaci’on extra. y seguido en mayusculas se colocan las palabras claves para una busqueda, en las lineas siguientes se coloca el contenido relacionado con las palabras clave.

Luego al usar el programa faq:

$faq faqrc
The file .faqrc , in your $HOME directory, should contain the list of all
the faq files you want to query, in your directories or anywhere else.

La idea en si me parece muy buena, para pequegnos grupos, donde es f’acil compartir pequegnos archivos, y no se requiere de un medio de publicaci’on muy formal de la informaci’on adem’as de es la idea de un FAQ respuestas pequegnas a preguntas muy comunes, de esta forma se ahorra uno el tiempo de realizar la investigaci’on.

Por ahora el programa esta escrito en TCSH, ya hice una modificaci’on de este para bash, y tiene un funcionamiento muy basico, lo he mejorado un poco pero pienso que la idea es poderosa y se puede extender un POCO m’as, no es que quiera hacer un gran proyecto a partir de esta idea.

Eso es todo. El c’odigo fuente ya hablare con sus autores originales para ver si lo puedo publicar.

EOT

Proyectos, OSS/FS, Eléctronica 8:57 am

Hace poco compo parte de un proyecto escribi un m’odulo para el kernel de linux, en especial para el target de ARM9 AT91RM9200.

La idea es sencilla, es un driver para el PIO, que debe generar los siguientes dispositivos:
/dev/port[a-g]
/dev/pin[a-g][0-31]

As’i se puede realizar un acceso directo al PIN individual o a cada puerto en conjunto.

Inicialmente estoy trabajando con el puerto A, y es funcional de la siguietne forma.

echo O > /dev/pina14
echo 0 > /dev/pina14
echo 1 > /dev/pina14
echo I > /dev/pina14

Esto saliio como una necesidad y mi poca experiencia con los device drivers de Linux produjo ese driver.
Sin embargo leyendo el libro Linux Device Drivers con bastante juicio, he encontrado que cometi algunas barbaridades en ese c’odigo, ya que mezcle arbitrariamente mecanismo y politica. Adem’as de no utilizar los mecanismo estandar para el ctlio. Por esto me he comprometido a crear el driver completamente y con un disegno que debe estar terminado para cuando termine el libro, completamente de acuerdo con las especificaciones de disegno de un buen modulo/driver de Linux.

El motivo para crear tal driver, es simple, con el port de linux para ARM9, queremos tener un ambiente de desarrollo muy sencillo para tareas tipo PLC, donde lo que importa es la gestion y no los tiempos de respuesta.
Este mecanismo en el que un simple echo 0 > /dev/pinxx, echo > /dev/pinxxx controla una salida l’ogica permite disegnos de programas muy simples para el control desde un muy alto nivel.

EOT

Proyectos, OSS/FS, Eléctronica 8:46 am

En estos d’ias durante el curso de Instrumentaci’on Distribuida para Laboratorio, he consumido grandes cantidades de informaci’on sobre sistemas digitales una vez m’as, sin embargo esta vez he caido en cuenta en una de las necesidades b’asicas para poder comunicar el conocimiento que se adquiere en este odioso mundo digital.

Los diagramas de tiempo es la herramienta b’asica para la especificaci’on, transmisi’on y verificaci’on del funcionamiento de dos sistemas digitales que se comunican. Sin embargo hasta la fecha no me he encontrado con una buena herramienta para el disegno y presentaci’on de estos diagramas.

Siempre se puede recurrir a un HDL para generar estos diagramas, pero lo encuentro tedioso y poco disegnado para la creaci’on de un documento o una presentaci’on.

En estos d’ias del curso, he visto toda clase de diagramas, y han sido sumamente deficientes. Esto a’un para los instructores que provienen del CERN o incluso de los mejores adeptos de LaTEX se ven copiando las imagenes que se encuentran den datasheets y cuando este no se encuentra, en general carecemos de capacidades de dibujo suficientes para hacer un diagrama esteticamente correcto.

Si bien es cierto que se logra transmitir la informaci’on, en ocasiones la descripci’on es ambigua y no permite en un aspecto m’as interno del desarrollo, verificaci’on por parte de un programa si se esta cumpliendo o no la especificaci’on del diagrama de tiempo.

Ahora esto me trae una pequegna idea que ya tengo en papel gran parte del disegno y me ha traido buenos ratos de lectura.

La idea por ahora es sencilla, es crear un preprocesador para LaTEX(inicialmente) del estilo circuit macros para disegnar y establecer los diagramas de tiempo de una forma coherente y bien estructurada.

Creo que la idea es muy interesante y para quienes al igual que para mi, programas como graphviz nos hacen la vida m’as f’acil, van a agredecer la escritura de este programa.

Espero poder terminar generar la documentaci’on y la especificaci’on en papel pronto, para poder empezar a crear un pequegno programa de demostraci’on.

Como tengo en las notas, las GUIs significan perdida de tiempo, por lo que algo as’i no esta contemplado para nada en el proyecto.

EOT

OSS/FS, Cosas que me pasan..., TutorialesSeptember 6, 2006 10:08 pm
\documentclass{multicategorypost}
\begin{post}
\begin{rant}
Dejo esta peqe\~na nota desde el live-cd de korora xgl y mi antigua board, para recordarme por siempre este d\’ia. En el cual por “arreglar” el problema con la tarjeta de sonido me ***** la ****** board que tanto me gustaba, dejandome sin mis lvm del serial ata y por tanto sin sistema con que trabajar.

Como me urge tener la m\’aquina a sacrificar m\’as plata del viaje a Italia -_-
\end{rant}

\begin{new}

Hoy descubri que estoy nominado como el blog m\’as \~no\~no de la TOL.

The
TOL AWARDS 2006

Voten por mi XD

\end{new}

\begin{log}
Bueno ahora tengo como pasatiempo compilar gcc,glibc,binutils, kernel y hacer linux from sratch para las nuevas plataformas de desarrollo que los nuevos proyectos exigen.
Como este pasatiempo es sumamente divertido y variado, decid\’i hacerme un favor y configurar en mis maquinitas el distcc para hacerlo un poco menos divertido.

Esto no es nuevo de hecho ya lo hab\’ia hecho antes pero me di cuenta que no tenia en log y me toco buscar en la documentaci\’on nuevamente, para evitar futuros inconvenientes:

Distcc es un programa que permite distribuir la carga de la compilaci\’on en diferentes computadores a traves de la red.

Slack ya tiene instalado el distcc por lo que me importa poco esta parte y sin embargo, es poco relevante.

La configuraci\’on se realiza por m\’aquina que va a recibir pedazos de la compilaci\’on.

\begin{code}

/usr/bin/distccd –daemon –user nobody -a 192.168.1.0/24 –log-file /var/log/distccd.log

\end{code}

Se pueden recibir compilaciones de toda una subred o de un cliente en especial, me interesa una subred para poder compilar desde diferentes terminales.

Esa es toda la “configuraci\’on” necesaria para cada m\’aquina que va a recibir tareas.

Por otra parte si se trata de cross-compilers, como en mi caso, debe estar disponible el kit completo en cada m\’aquina que va a realizar compilaci\’on.

En la m\’aquina principal de compilaci\’on la tarea es:

\begin{code}

export CC=distcc
export DISTCC_HOSTS=”host1 host2 … hostn”
alias make=’make -jn*3+1 # donde n es el n\’umero de m\’aquinas disponibles

\end{code}

Luego de esto, la mayoria de compilaciones con y sin autotools funcionan en el “farm”, sin embargo a veces toca editar los Makefiles y/o otros scripts de compilaci\’on para asegurarse que hace uso del “farm”.

Algo que me toco hacer para asegurarme que make siempre usara todo el farm:

\begin{code}

mv make make_orig
make:
#!/bin/sh
/usr/bin/make_orig -j(n*3+1) $*
EOF
chmod 755 make

\end{code}
Es sucio, se ve feo, pero funciona.

Si se trata de cross-compile, o si no se trata de gcc, se llama distcc seguido del nombre del compilador que se va a usar.

Por si no se noto al principio: Odio tener que compilar la herramientas b\’asicas del sistema y odio a\’un m\’as cuando tengo que hacer linux from scratch, pero me persigue…

\end{log}
\end{post}

Proyectos, OSS/FS, Enlaces y noticiasJune 13, 2006 5:10 pm
Bueno aquí estoy desde el último release estable de ubuntu. So far so good, digo yo.

Mi opinón de esta distro es muy buena, hazzle free y la comunidad que se ha creado alrededor de esta distro es impresionante. Resuelve sus problemas muy rapidamente y crea “recetas” para dummies, si esta bien que se usa la CLI pero es que existe un limite entre flexibilidad y estupidización.

Aún me molesta lo aútomatico que es todo y que no traiga lo necesario para compilar, al final termino bajando todo lo -dev que existe.

Una advertencia, si se quiere instalar 6.06 en un LVM existente toca bajar el iso: alternate.

Recordatorio: No existe aún flash ni otras cosas propietarias para 64 bits. Es un asco pero ni modo.

No creo que me tome la molestia de escribir algo más allá de esto sobre Ubuntu.

Sigo prometiendo que debo escribir como fue que hice para poner a andar LVM2 en Slack y la lista de cosas que hay que tener en cuenta para usar LVM con tranquilidad. Si me da tiempo antes del Viernes la escribo.

Ahora mismo estoy haciendo un trabajillo de la U en EmacsWiki. Quizá solo por el hecho de intentar hacerlo en este engine y aprender a usarlo más que por necesidad, al fin y al cabo con LaTeX queda todo cubierto, pero espero que la creatividad me sume puntos extra en la nota :P , ya los malditos se estan acostumbrando a LaTeX.

La instalacion la hice por synaptics de ubuntu así que no tengo idea de como se instala y hasta que me pase a Slack no tendré idea, no creo que varie mucho de lo que siempre es.

Algunas cosas por remarcas:
EMACS WIKI MODE
La idea es simple, TAGS simples que generan una página web bonita. Se administra por medio de archivos de texto plano con una secuencia de tags muy sencillos que permiten escribir rapidamente contenido, sin lidiar con html.
Para usar EmakWiki despues de creado:

  1. M-x emacs-wiki-mode
  2. M-x emacs-wiki-index, Arranca a editar el index
  3. Poner contenido, cuando se crea un link AlgoAsí crea automaticamente el link a la nueva pagina, si se da enter sobre este link abre el nuevo archivo a editar. [[Esto tambien sirve]]
  4. C-c C-p Publica el wiki en html
  5. Los fuentes los guarda normalmente en ~/Wiki/ y los html en ~/WebWiki
  6. Para manejar multiples proyectos y determinar donde queda cada cosa:

    100 (setq emacs-wiki-projects
    101 `((”WebWiki” .
    102 ((emacs-wiki-directories . (” SOURCES_DIR “))
    103 (emacs-wiki-project-server-prefix . ” NO_TENGO_IDEA_PARA_QUE_ES_ESTE _DIR “)
    104 (emacs-wiki-publishing-directory
    105 . ” HTMLS_DIR “)))))
  7. Se cambia de proyecto con M-x emacs-wiki-change-proyect, seguido del nombre del proyecto (funciona el tab completion como siempre)

Eso es lo que he aprendido hasta ahora.
Un shot:

EOT

OSS/FS, Cosas que me pasan...January 23, 2006 12:43 am
Desde el Jueves 19 a las 10:00 hasta el Viernes 20 a las 10:00am tuve una deliciosa maraton de programación. Se tenia que entregar un dichoso informe y el dichoso programa que habia escrito la ves pasada estaba lejos de soportar todos los diferentes análisis que se les vino a ocurrir al final…

RANT: Si MATLAB es supuestamente la mejor herramienta para analizar datos en ingenieria por que ese programa tiene tantos problemas para trabajar con archivos mixtos? Quizá fue un problema por parte del programador, pero este tiene suficiente experiencia con este programa como para decir que esta tarea es especialmente obscura. Definitivamente la capacidad de integración de MATLAB en un ambiente de producción/análisis conjunto es pobre y deja mucho que desear.

Para quienes quieran entender la idea del proyecto, es muy sencilla:

Toma de datos -> Almacenamiento y Categorización de datos -> Preprocesamiento -> Procesamiento y Análisis -> Almacenamiento y generación de reportes.

Esto resume un sistema general de trabajo, pero realmente matlab se ha quedado por fuera ya que se nego a participar rapidamente en el ciclo de forma que todo el proceso quedará completamente automatizado para poder generar reportes con muchos diferentes análisis.

Realmente me he convencido que Matlab podrá estar muy bien para estudiantes, pero cuando se trata de trabajo serio pongo en duda su útilidad, por lo que realmente pienso que nisiquiera los estudiantes deberian perder el tiempo con él.

Al final python no brillo por su velocidad en el análisis ni por su excelente uso de la memoria, pues con las cantidades de datos que se le alimentaron hicieron que varias fallas aparecieran. Sin embargo brillo por la facilidad con la que resumi casi tres meses de trabajo en matlab en 24 Horas de programación en Numeric de Python más todo el trabajo de automatización y trabajo con bases de datos. Por favor, una vez más escuchenme Open Source es simplemente mejor, no se dejen engañar por los botoncitos y los colorcitos!!!

EOR
EOT

OSS/FS, Enlaces y noticiasDecember 24, 2005 9:17 pm
Bueno, han actualizado XMMS2 y el xmms2-osd.py se ha quedado sin funcionar, ya estoy trabajando en ello sin embargo un juego de mesa, en particular scrabble(pyScrabble) me ha detenido de terminar ese trabajo en la dichosa noche de navidad. En mi casa por cierto esta noche solo es una excusa para comer, y personalmente apoyo la idea.

Lo que me ha hecho recordar como con Internet y sitios como Yahoo-Games han revitalizado los decadentes juegos de mesa, y han generado comunidades enteras dedicadas a jugar ajedrez, damas chinas, scrabble, Monopolio(Turista?) y otros que no puedo recordar. También versiones de tetris para varios jugadores y de combate. Esto ha llevado a otra tendencia, los juegos para un solo jugador están
desapareciendo… ¿Quién cree tener la respuesta a esto?

Ah y salio una versión nueva de GAJIM, ha mejorado bastante.

Esta semana voy trabajar con Bluetooth y USB, me emociona poder trabajar a tan bajo nivel con estas tecnologías.

EOT