MarioDebian, mi devlog

Bitácora de un desarrollador newbie.

NUEVA URL==> Sobre Xorg, HAL y TCOS (en mariodebian.com)
Sobre Xorg, HAL y TCOS

En las nuevas versiones de Xorg se usa (por defecto, pero menos mal que optativamente) HAL como descubridor de hardware y encargado de configurar teclados, ratones y demas dispositivos... de hecho no es necesario ni tener archivo xorg.conf como ya se contó por aquí.

TCOS nació ligero y quiere seguir siéndolo y es por eso que no se va a incluir HAL en las imágenes de arranque por lo que lo he desactivado ya hace unos días.

Pero lo cosa no es tan sencilla como añadir esa línea, estamos montando un aula (para un cole de primaria) con 18 terminales ligeros (equipos reciclados) y más bien por probar y dejar algo un poco chulo, decidí instalar el servidor con la última versión estable de Ubuntu (Jaunty 9.04) ¡¡¡ CRASO ERROR !!!

En Ubuntu 9.04 han querido adelantarse al futuro y han metido el nuevo driver de Intel (DRI2) pero más bien con la intención de que todos lo que usan Ubuntu sean su gran grupo de beta-testers de algo que da problemas [1], [2] y [3] (317 bugs abiertos para un driver no es moco de pavo), y para colmo de todos los males el driver VESA no funciona con tarjetas INTEL.

Es casi imposible hacer un archivo xorg.conf con el mapa de teclado y el servidor de fuentes (para TCOS) y que autodetecte todo lo demás, así que hemos reculado y puesto una Debian Lenny (como ya tienen en el mismo colegio en otro aula)

El rendimiento y la estabilidad de los terminales en Lenny es millones de veces superior, incluso permite jugar a juegos educativos (tipo tuxmath, childsplay, gcompris....), glxgears (esa herramienta que __NO__ sirve para calcular el rendimiento gráfico) da casi 500 FPS y eso que las X van por red.

RESUMIENDO: Si quieres un aula de terminales ligeros con TCOS usa una versión anterior de Ubuntu (Hardy/8.04 parece que va bien) o pásate a Debian.





NUEVA URL==> Posicionamiento web de TCOS (en mariodebian.com)
Posicionamiento web de TCOS

Revisando estadísticas de la web de TCOS, me he llevado una grata sorpresa:

debian thin client [en google]

Esto me anima aún mas para seguir con el trabajo de subirlo a Debian... ya he solucionado muchos problemas y espero que en breve pueda estar listo.Tengo varios contactos con DD así que no creo que esta vez tenga problemas para que alguien esponsorice el paquete.





NUEVA URL==> Qué pequeño es el mundo. (en mariodebian.com)
Qué pequeño es el mundo.

Uno (que humildemente aún se cree desarrollador newbie) programa cuatro líneas (para más "inri", aprendiedo a programar mientras tecleaba) y de casualidad va viendo pedacitos de su código en otros proyectos...

 

¿En esto consiste el Software Libre no? Cool

Este Makefile [baifox] se parece mucho a éste [tcosphpmonitor].

Pero ya la prueba irrefutable: debian/postrm [baifox] debian/postrm[tcosphpmonitor]

 





NUEVA URL==> El xorg.conf más pequeño que hayas visto nunca (en mariodebian.com)
El xorg.conf más pequeño que hayas visto nunca

Hoy me ha dado por actualizar a la última versión de Xorg en Debian SID (1:7.4+1) y como ya había visto por el planet las quejas de la gente, estaba avisado que ahora HAL es el que configura en caliente las Xorg. Copia de seguridad de xorg.conf (por si las moscas) y dpkg-reconfigure xserver-xorg. He añadido a mano la línea del driver nvidia aunque no estoy seguro si hace falta.

$ grep -v -e ^$ -e ^# /etc/X11/xorg.conf
Section "Device"
Identifier	"Configured Video Device"
Driver		"nvidia"
EndSection

Reinicio y a pesar de parpadear un par de veces las X cargan y el monitor externo parece que lo reconoce y consigo configurarlo como extendido sin mucho problema.

Desde Octubre tengo un ratón Logitech Laser y la rueda tiene la función de botones laterales, en mi anterior xorg.conf tuve que hacer malabarismos para configurarlo como ratón de 7 botones, ahora con ayuda de xbindkeys funciona sin tocar nada:

$ grep -v -e ^# -e ^$ ~/.xbindkeysrc 
"xbindkeys_show" 
control+shift + q
"/usr/bin/xvkbd -xsendevent -text "\C\[Prior]""
m:0x0 + b:6
"/usr/bin/xvkbd -xsendevent -text "\C\[Next]""
m:0x0 + b:7

Con esta configuración puedo cambiar de pestaña del navegador o la consola de una manera super cómoda.

Ya para terminar último truco "GRATIX", mi portatil da 1680x1050 de resolución y hace unos meses me compré otro monitor (LG de 22") para trabajar con escritorio extendido (3360x1050).

Al usar el driver de NVidia estas obligado a usar su interfaz gráfico «nvidia-settings» y son un montón de clicks para configurarlo, en Launchpad he encontrado un proyecto super interesante: disper, son unos binding en python para que ataque a las libs de nvidia o a xrand y poder cambiar resolución mediante atajos de teclado, scripts o usandolos en otros programas...

Me he hecho un script y con un botón en el panel lo llamo:

#!/bin/sh
cd /home/mario/sources/disper/disper
RES=$(/usr/lib/tcos/screensize)
if [ "$RES" = "1680x1050" ]; then
# extend if CRT-0 is connected
python src/cli.py --list| grep -q "CRT-0" && python src/cli.py --extend
elif [ "$RES" = "3360x1050" ]; then
python src/cli.py --single
else
zenity --error --text="NVidia extend resolución desconocida ($RES)"
fi

Básicamente lo que hace es detectar la resolución actual y si es 1680x1050 y detecta el monitor CRT-0 la cambia a extendida (3360x1050), si ya está extendida la pone en simple deshabilitando el monitor externo. Si esto lo añadimos a un atajo de teclado tipo Fn+F6 ya tenemos el conector desconector de proyectores.

Por hoy nada más, voy a investigar como le sienta a TCOS el cambio de Xorg.





NUEVA URL==> Creando comunidad (en mariodebian.com)
Creando comunidad

Desde hace unos días tenemos un mejor control del DNS de tcosproject.org lo que nos ha ayudado a montar:

Todos los que useis o hableis de TCOS en vuestro blog os animo a participar.



NUEVA URL==> Nuevo juguete: gnome-pulse-applet (en mariodebian.com)
Nuevo juguete: gnome-pulse-applet

Hace poco he descubierto una aplicación simple pero la mar de útil (sobre todo en ambientes donde se usa PulseAudio por defecto como TCOS o LTSP)

 

 

Se trata de gnome-pulse-applet, un applet de GNOME que (o bien en horizontal o vertical) muestra los controles individuales por cada aplicación que reproduzca sonido mediante PulseAudio.

Los paquetes disponibles en su web no funcionan en Debian (ya he avisado dle bug) y de paso he estado modificándolo para que se pueda lanzar como aplicación independiente de GNOME en la bandeja del sistema.

Quizás haga un ITP para subirlo a Debian ya que he hecho los paquetes. (y compilado para todos los Debian y Ubuntu)

Voy a probar si detecta bien el servidor desde un terminal ligero...





NUEVA URL==> Debian Lenny ya está aquí (en mariodebian.com)
Debian Lenny ya está aquí

Esta vez no se ha hecho esperar demasiado. Felicidades (y gracias) a todos los que han contribuido.

Por lo que me toca, estoy haciendo limpieza en el repositorio de TCOS y compilando nuevos paquetes. De momento falta alguno para Lenny, espero que entre hoy y mañana tenga casi todo listo.

Los próximos días en unstable van a ser moviditos (Gnome 2.24, Xorg 1.5...) «agarraos que vienen curvas».





NUEVA URL==> ¿Quién usa tu software? (en mariodebian.com)
¿Quién usa tu software?

Esta pregunta en la mayoría de las ocasiones es demasiado dificil de contestar...

Ejemplos puedo poner miles, si nos ponernos a contar los usuarios LTSP a nivel mundial, no me creo que sólo se use en 61 sitios.

En TCOS tampoco es que haya muchos, en concreto 7, si bien esto es más dejadez mía y del que lo instala, no es un buen contador.

He intentado probar otras formas, contando las descargas, pero eso ahora no es demasiado exacto y más si contamos que se puede descargar el repositorio y usarlo para instalaciones locales (con mi repo personal habré instalado más de 20 servidores).

Así que a riesgo de que me tachen de intrusor y visto que otros proyectos lo hacen ( [1] [2] ), he pedido opinión en la lista de TCOS, para añadir el código necesario para generar un registro de instalaciones un poco más completo. El script PHP que guarda los datos también es público.

Debian usa popularity-contest, y pregunta si activarlo como último paso de la instalación. Me parece demasiado jaleo programar algo con Debconf para algo tan simple, en un futuro si esto crece ya veremos.

PD.- Me encanta git, y la facilidad para trabajar en «branches», mezclar código... etc..





NUEVA URL==> Parser RSS para proyectos GIT (en mariodebian.com)
Parser RSS para proyectos GIT

Hace poco hemos migrado a GIT y como no me acababa de convencer gitweb he instalado cgit [CGIT en TCOS], que es mucho más rápido y personalizable... pero tiene una pequeña falta, no genera feeds RSS.

Para no oxidarme con Python me he puesto a mezclar unos cuantos paquetes [python-git, python-feedparser y python-pyrss2gen] y he hecho: git2rss.py la ventaja sobre otros proyectos es que es multirepositorio, necesitamos pasar la raíz de nuestras carpetas git y el las recorre toma los últimos cambios (5 por proyecto) y ordena en un feed resumen (de 20 elementos). El resultado se imprime en stdout por lo que en el cron es tan simple como poner:

*/30 *  * * *   usuario /ruta/a/git2rss.py > /dir/salida/rss.xml 2>/logs/tcos.git.log 

El nuevo feed (que se genera cada media hora) se puede obtener desde:

http://tcosproject.org/cgit/tcos.git.xml  (RSS 2.0)

Dentro de cada elemento (realmente son commits) se encuentra un pequeño resumen, autor, descripción y el diff. De esta forma podemos estar informados de los cambios que se van haciendo.

Subscribiros !!!!





NUEVA URL==> Migrando de SVN a GIT en TCOS (en mariodebian.com)
Migrando de SVN a GIT en TCOS

Me lo he pensado muchas veces pero después de usar GIT durante una semana he visto que es bastante superior a SVN.

A partir de ahora TCOS usará un repositorio GIT, bueno, mejor dicho varios, uno por paquete, creo que es más simple de mantener, hacer ramas y etiquetar que antes (todo en el trunk)

Para que la migración no sea dolorosa de momento queda en marcha tanto el SVN como el TRAC (en modo lectura), ahora no necesitamos TRAC ya que su utilidad era para ver diferencias de versiones y eso con git se hace con gitweb.

El repositorio se puede descargar de manera anónima (HTTP) y sólo se puede subir mediante SSH, no somos muchos los que podemos escribir en el repositorio por lo que no es demasiado problema. Ejemplo para clonar repositorio (lo que sería un checkout de SVN).

Anónimo:
git clone http://tcosproject.org/git/initramfs-tools-tcos.git
Privado:
git clone ssh://git@tcosproject.org/git/initramfs-tools-tcos.git 

He preparado varios scripts para hacer la migración desde el lado del servidor y desde el cliente:

  • tcos-migrate-svn2git.sh  (SERVIDOR) Este hace un ls al trunk del SVN se carga lo que sean directorios y se importa (mediante git-svn clone y git clone) a un repositorio git puro

  • start-git-chroot.sh (SERVIDOR) Arranca en un chroot el servidor SSH en el puerto 22. El chroot lo he hecho con debootstrap al que he añadido el servidor SSH, las herramientas de git y la configuración para que el usuario git, sólo acepte la autenticación por clave pública. Quizás tenga que montar un fail2ban.

  • update-all.sh (CLIENTE) Este lo he creado en mi home para descargar git de nuevo, usa la conexión ssh al servidor para poder hacer commits.

  • mi ~/.gitconfig (CLIENTE) Mi configuración de publicación de GIT, colores y alias. ¿Como hacer que siempre se firme con mi clave GPG?


Hay miles de sitios donde aprender a usar mejor git, este, este, este, o la parte de empaquetado en Debian con GIT.

PD.- Varias personas se han quejado da de que no entienden lo que escribo por ser demasiado técnico... ya hablaremos del gobierno en otra ocasión.

UPDATE: Cambiados enlaces de gitweb a cgit (es más bonito y más configurable)





1 2 3 4 5 6 7 8 9 10 11  Siguiente»