Feeds:
Entradas
Comentarios

SuperKaramba es una herramienta que permite fácilmente crear elementos interactivos en un escritorio KDE. Estos programas interactivos están normalmente incrustados en el fondo del escritorio y no molestan en la vista normal del mismo (Fuente).

Este fin de semana, sin ganas de hacer otra cosa, me puse a jugar un poco con esto. Buscando por todos lados, no puede encontrar un elemento que me permita ver las conexiones entrantes y salientes de mi máquina, así que me decidí a hacer uno propio, después de todo no pintaba muy difícil. Como siempre, empecé por buscar si había algo hecho, y lo más cercano que encontré fue logtail, así que lo baje y basandome en los beneficios que me da la licencia GPL, me puse a examinar su código. Cambien una línea acá, puse otra línea allá… termino andando… pero como siempre, uno no esta conforme con su obra :D, así que refactorize un poco la cosa, y como resultado tuve la versión 0.5 de netstat ( así decidí llamarlo, no soy muy creativo :D ).

Buscando un poco, encontré como subirlo a kde-look (que es de donde lo descarga superkaramba). Así que lo subí a eso de las 22hs del día domingo. Mi sorpresa fué el día lunes, cuando a eso de las 9hs revisé el estado de las descargas, y me había encontrado con que ya tenía 80 descargas :D . Eso me motivó a seguir jugando con netstat, y le agregué un par de gráficas, imagen de fondo y demás yerbas, con lo cual surgió la versión 0.9, que es la actual.

Resumiendo, el fin de semana no fue “taaan” poco  productivo como pensaba :D .

URL de netstat: http://kde-look.org/content/show.php/Netstat?content=83874

La versión 3 del navegador libre mas conocido se ha propuesto establecer un record Guinness para “el mayor número de descargas de un software en 24hs”.

Para esto, la gente de firefox apuesta a la predisposición de los usuarios, para que estos realicen la descarga el mismo día (día al que denominaron “Download Day 2008″). De modo de sincronizar esta tarea, la gente de mozilla ha puesto una página donde podemos dejar una dirección de mail en la cual nos notificarán el día de la descarga, de modo que todos los usuarios podamos realizar la descarga el mismo día.

Hablando un poco de la versión 3, puedo decir que trae un par cosas interesantes, como son la posibilidad de agregar un link a marcadores con un solo click en la barra de dirección, también tiene una barra de direcciones inteligente, la cual nos permite buscar en URLs ya accedidas, agregando simplemente un fragmento de la URL . También dicen (esto no es taaan notorio), que tiene un mejor rendimiento en el uso de memoria RAM y que se ha mejorado la velocidad de navegación.

Más info en http://www.spreadfirefox.com/es-ES/worldrecord

Hoy subí a googlecode, el software que desarrolle para mi proyecto final de carrera.

El software se llama Centralized Packages Manager, esta bajo la licencia GPLv3, y su función es la de permitir, de forma centralizada, establecer y controlar el software que debe estar instalado en cada uno de los host tipo Debian GNU/Linux de una red.

Para esto, en un host central (por medio de un frontend gráfico basado en Qt), se puede seleccionar para cada host tipo Debian GNU/Linux que se desee de la red, que paquetes debe tener instalados y cuales no. En este host central se generan por cada uno de estos host, tres listas de paquetes (MustHave, MayHave, MayNotHave) que son utilizadas por pkgsync en cada uno de estos para establecer su configuración de paquetes. Luego, cada cierto tiempo, cada uno de los host consulta al nodo central su configuración, y se autoconfigura según lo establecido en este para el mismo.

El software fue desarrollado en python, utilizando ( o tratando de… ) el patrón de diseño MVC (model, view, controller). Para el modelo utilicé el ORM SQLObject y para las vistas utilicé la librería Qt ver 4, generando las interfaces por medio de QtDesigner.

Advierto a todo aquel que quiera colaborar con el proyecto (ojalá alguién se sume), NO SOY BUENO PROGRAMANDO, así que pido disculpas anticipadas si los ofendo con mi código….

Bueno, acepto puteadas, comentarios, colaboración y mejoras :D

La url del proyecto es

http://code.google.com/p/cpackagesmanager/

y para hacer un checkout del proyecto y colaborar, la url del svn es:

https://cpackagesmanager.googlecode.com/svn/trunk

por lo que simplemente haciendo

svn checkout http://cpackagesmanager.googlecode.com/svn/trunk/ cpackagesmanager pueden descargarse el código desde el svn.

Que tan libre somos ?

Según Richard Stallman, la única manera de ser libre es no utilizar herramientas privativas, o sea, que no cumplan con las 4 libertades que han hecho del software libre lo que hoy es.

Para la gente de Debian, podemos medir que tan NO libre es nuestro sistema… y para eso tenemos nada mas y nada menos que al super “Virtual Richard M. Stallman” (como no podía ser de otra manera ;) ), un paquete que nos brinda esta información.

Como siempre hacemos previamente:

apt-cache show vrms

Description: virtual Richard M. Stallman
The vrms program will analyze the set of currently-installed packages
on a Debian-based system, and report all of the packages from the
non-free tree which are currently installed.
.
Note that vrms is not limited to Debian systems only (which means that
it also works with Debian-derived distributions such as Ubuntu). It is
also not limited to Linux-based systems.
.
Future versions of vrms will include an option to also display text
from the public writings of RMS and others that explain why use of each
of the installed non-free packages might cause moral issues for some in
the Free Software community. This functionality is not yet included.

Ok, eso nos debería quitar las dudas respecto de que es lo que hace ese paquete. Para instalarlo hacemos

apt-get install vrms

y listo, después ejecutamos

vrms

y nos debería mostrar una salida como la siguiente

mboscovich@fuzzer2:~$ vrms
Non-free packages installed on fuzzer2

skype Free Internet Telephony - The whole world can talk for
sun-java6-bin Sun Java(TM) Runtime Environment (JRE) 6 (architecture
sun-java6-fonts Lucida TrueType fonts (from the Sun JRE)
sun-java6-jre Sun Java(TM) Runtime Environment (JRE) 6 (architecture
sun-java6-plugin The Java(TM) Plug-in, Java SE 6

Non-free packages with status other than installed on fuzzer2

kqemu-modules-2.6.18-4-68 ( dei) QEMU Accelerator modules for Linux 2.6.18 on P

6 non-free packages, 0.3% of 1902 installed packages.

Lo que me dice que 6 de 1902 paquetes instalados no son libres (0.3%), por lo que puedo decir que soy 99,7% libre o sea….. no soy libre ! :( . Voy a tener que replantearme el acceso a páginas que contengan java y voy a tener que dejar el skype :( .
Entre las opciones que todavía no tiene implementadas, pero que se prometen para próximas versiones, esta la opción -e (–explain) la cual dará una explicación de porque esa licencia no es libre ( escrita por RMS :) ).

Así que nada, para aquellos que quieren saber que tan dependientes son de software no libre, espero que les sirva.

Si, así es, seguro alguna vez te toco encontrarte con una memoria rota. Bueno, si usas GNU/Linux considerate afortunado, porque las memorias que contienen sectores defectuosos pueden utilizarse sin ningún tipo de problemas. ¿Cómo?, simple, al kernel le podemos decir que no utilice los sectores defectuosos de la misma, por lo que el resto de la memoria puede utilizarse sin problemas.

Lo primero que tenemos que hacer es detectar los sectores defectuosos, para esto utilizamos el memtest86+, cuya instalación en Debian simplemente se reduce a hacer un

apt-get install memtest86+

Luego editamos el /boot/grub/menu.lst y descomentamos la siguiente línea

# memtest86=true

Guardamos y corremos lo siguiente

update-grub

Eso actualizará nuestro grub, y agregará la opción de memtest a éste.

El paso siguiente es reiniciar la máquina y elegir memtest86+ en el grub, con lo que empezamos a correr el testeo de memoria. Entre las opciones que debemos configurar en el memtest, esta el como informa los errores que encuentra, necesitamos que muestre los errores en el formato BadRam, el que luego veremos porque. Para esto simplemente nos vamos a la parte de opciones (presionamos la “c”), de ahí nos vamos “Error Report Mode ” (presionamos 5 ), y por últimos seleccionamos la opción “BadRam Patterns”. Listo, dejamos correr el test, en cuanto al tiempo que este debe correr, digamos que mientras más mejor, pero bueno, para tener un número les digo que sería bueno dejarlo corriendo unas 10 hs, por ejemplo toda una noche.

Pasadas estas 10hs de test, anotamos le reporte de errores, el que luego utilizaremos para decirle al kernel, que direcciones no utilice. En mi caso solo apareció un solo sector defectuoso, y el reporte solo tenía lo siguiente:

badram = 0×01c751f4,0xfffffffc

Tomamos nota de esto y presionamos escape para reiniciar (el test nunca termina, nosotros decidimos cuando es suficiente).

Ahora que ya tenemos el reporte, lo que tenemos que hacer es aplicarle un patch al kernel, y si señores, lamentablemente tendremos que compilar el kernel :( , pero no se desanimen, que es una tarea emocionante :) .

Antes de continuar, les digo que no es recomendable compilar el kernel en la misma máquina que tiene las memorias defectuosas, por lo que sería bueno que los pasos siguientes se realizaran en otra máquina, y luego de que generemos el .deb con la imagen customizada del kernel y con el patch en cuestión, copiemos este .deb a la maquina con problemas, y lo ejecutemos allí.

El patch en cuestión se llama badram, y en Debian el paquete que lo contiene se llama kernel-patch-badram, por lo que hacemos

apt-get install kernel-patch-badram

Luego de instalar este paquete, debemos instalar los fuentes del kernel al cual le aplicaremos el patch, en mi caso uso el último disponible, el linux-sources-2.6.22, así que hacemos

apt-get install linux-source-2.6.22

Configuramos el kernel, para que trabaje en base a nuestro hardware, por lo que ya saben,

cd /usr/src
tar -xvfj linux-source-2.6.22.tar.bz2
cd linux-source-2.6.22
make xconfig

Elegimos las opciones que más se adecuen a nuestro hardware, entre las que estan el tipo de arquitectura y el procesador. No voy a entrar en detalle sobre esto, porque sería demasiado extenso, el tío google sabe un montón de esto, así que cualquier consulta sobre como elegir las opciones de configuración del kernel, estarán más que contestadas ;) .

Después de que seleccionamos las opciones de nuestro kernel, pasamos a compilarlo, para lo que vamos a utilizar la herramienta make-kpkg, la que compilará y empaquetará el kernel nuevo (generará un .deb con el kernel que compilamos).

apt-get install kernel-package

luego ejecutamos

cd /usr/src/linux-source-2.6.22
make-kpkg –append-to-version=custom`date +%d%m%y` –initrd –added-patches badram kernel_image

NOTA: el `date +%d%m%y` es para que ponga la fecha de hoy, es a libre elección esto, yo prefiero ponerle fecha para después acordarme cuando lo compile.

Bueno, esperamos a que termine de compilar y empaquetar y listo, ya tenemos en /usr/src el paquete con nuestro kernel compilado, emparchado y empaquetado, en mi caso el .deb se llama linux-image-2.6.22.151007_2.6.22.151007-1.0.Custom_i386.deb.

Copiamos este .deb a la maquina con problemas, y lo instalamos simplemente haciendo

dpkg -i linux-image-2.6.22.151007_2.6.22.151007-10.00.Custom_i386.deb

Después editamos el archivo /boot/grub/menu.lst y a la línea del kernel nuevo le agreamos lo que nos genero el memtest86+, o sea, badram=0×01c751f4,0xfffffffc. En definitiva, la sección del kernel nuevo nos queda de la siguiente manera:

title Debian GNU/Linux, kernel 2.6.22.151007
root (hd0,4)
kernel /boot/vmlinuz-2.6.22.151007 root=/dev/hda5
ro badram=0×01c751f4,0xfffffffc
initrd /boot/initrd.img-2.6.22.151007
savedefaultListo, reiniciamos y elegimos el nuevo kernel, y ya estaremos usando solo la memoria sana :) , para chequear que realmente haya tomado el parámetro de badram, hacemos un dmesg |less y nos debería aparecer algo como
Kernel command line: root=/dev/hda5 ro
badram=0×01c751f4,0xfffffffc
PAGE_OFFSET=0xc0000000
BadRAM option is =0×01c751f4,0xfffffffc
–> marking 0×01c751f4, 0xfffffffc [2]
0000000000001c75 =0000000000001c7

Si es así, felicitaciones!!!, reciclaste una memoria :) .
Bueno espero que les sirva, y como siempre, se aceptan críticas, comentarios y mejoras.

Después del último dist-upgrade, firefox y thunderbird me quedaron con una letra muy chica ( en realidad todas las aplicaciones que usaban gtk ). En este momento estoy usando kde, y después de buscar por todos lados, y de probar otras soluciones sin resultados, me encontré con este link. El link explica bien el problema y la solución, pero para los prácticos, dejo los pasos:

* apt-get install gtk2-engines-gtk-qt gtk-qt-engine

* Luego nos vamos al centro de control de kde ( menuK –> centro de control ), de ahí vamos a Aspectos y temas, y ahí tendremos una nueva opción que se llama “GTK Style and Fonts”

* Ahí donde dice GTK Style selecionamos “Use another style”y seleccionamos el tema que más nos guste (yo tengo el Raleigh )

* En la sección GTK Fonts hacemos los mismo, seleccionamos “Use another font” y ponemos la que más nos guste.

* Luego aplicar y listo… reiniciamos las aplicaciones que usen gtk y estamos.

Espero que a alguién le sirva.. y sino, por lo menos me sirve de historial :)

Así es señores, luego de 8 meses de sufrimiento tratando de hacer funcionar mi placa wireless WL-159g en mi Debian GNU/Linux, lo conseguí!.

Empiezo por el principio, hace 8 meses me compre una notebook ASUS Z94L, la cual previamente consulte en google si funcionaba en GNU/Linux, y el resultado fué positivo.Mi sorpresa llegó cuando quise levantar la wireless, dado que si bien el módulo para esta placa ya es parte de la rama oficial del kernel ( a partir de la versión 2.6.18 ), no había forma de hacerla funcionar… levantaba, escaneaba pero no había forma de que se quedara fija en un canal, escaneaba eternamente :( . Bueno, esto me llevó por un montón de caminos, desde probar las versiones del driver del fabricante (la empresa Zydas), a probar el driver que viene con Debian (paquete zd1211-source), pero nada parecía dar resultado. Después llegó la etapa de consultar en la lista de este módulo, donde basicamente me dijeron, “tiene que andar, esta todo en orden” :(…. bueno… después de esto entre en un estado de depresión terrible.. no podía ser que a mi fuera la única persona a la que no le funcionaba esta placa wireless (según http://www.linuxwireless.org/, esta placa funciona perfectamente en GNU/Linux), al punto de que cuando buscaba en google, me encontraba con mis propias consultas en los foros!!!. Así que pasé por etapas como la de compilar el kernel a pata, con el modo debug activado al mango para este módulo, recabar todos los logs y enviarlos a la lista de desarrollo del módulo nuevamente (sin respuesta satisfactorias), bajarme el código del módulo del svn y empezar a tratar de deducirlo (deserté a los 30 min :(, todo lo que es módulo esta en C (Puajjjj) ), bajarme el kernel que usan los desarrolladores del modulo desde su git de desarrollo y compilarlo (si, si, el mismo fuente de kernel con el modulo que usa para probarlo y demás)…. pero nada de nada.

Después probé con el ndiswrapper… con el cual me funciono, pero sin buenos resultados… dado que cada cierto tiempo me colgaba el kernel (si un bruto kernel panic :( ), y eso era muuuy feo, porque tenía que reiniciar…( ustedes sabe que la gente de GNU/Linux se pone colorada cuando le pasa esto, el resto esta acostumbrado, pero nosotros no ;) ).

Bueno, luego de que las esperanzas se esfumaran, hoy leo en la lista de desarrollo de este módulo, que el fabricante (Zydas) a liberado una nueva versión del driver :), y como no podía ser de otra manera… ahí estaba de nuevo compilando y demás… pero esta vez con un resultado totalmente positivo… ANDA y no solo que no se cuelga, sino que funciona mejor que con el ndiswrapper!.

Comento los pasos para aquellos que se encuentren en la misma situación:

*Primero que nada, mi kernel es el 2.6.21-2-686.

* Paso 1: bajar el firmware del módulo de http://sourceforge.net/project/showfiles.php?group_id=129083&package_id=187875, la versión que yo estoy usando es la 1.3 (el archivo se llama zd1211-firmware1.3.tar.bz2 ) y descomprimirlo en /lib/firmware (va a crear una carpeta zd1211-firmware).

O sea:

cp zd1211-firmware1.3.tar.bz2 /lib/firmware

cd /lib/firmware

tar xvfj zd1211-firmware1.3.tar.bz2

* Paso 2: bajar el nuevo driver de http://dsd.object4.net/zd1211-vendor/releases/ZD1211LnxDrv_2_21_0_0.tar.gz y copiarlo a /usr/src ( o a donde a vos te parezca mejor), y descomprimirlo:

cd /usr/src/

wget http://dsd.object4.net/zd1211-vendor/releases/ZD1211LnxDrv_2_21_0_0.tar.gz

tar xvfz ZD1211LnxDrv_2_21_0_0.tar.gz

cd ZD1211LnxDrv_2_21_0_0/

make

* Paso 3: si todo lo anterior salió bien y el módulo compilo bien, estamos… nos faltan tocar algunas cositas mas como agregar al blacklist el módulo zd1211rw y agregar el módulo zd1211(el que compilamos recién) al archivo de módulos que se cargan al inicio. O sea:

Modificamos el /etc/modprobe.d/blacklist y agregamos al final:

blacklist zd1211rw

(eso es para que no cargue ese módulo al inicio, ese es el módulo que viene en el kernel, y que a mí no me anda).

Luego modificamos el /etc/modules y agregamos al final:

zd1211

(esto hace que este módulo se cargue automáticamente cada vez que iniciamos el sistema)

* Paso 4: ya casi estamos.. nos falta modificar el /etc/network/interfaces y agregar algo como :

auto wlan0

iface wlan0 inet dhcp #si es que levantan la interface por dhcp

y listo!!!! ya estamos, para corroborar que todo funciones, reiniciamos la máquina (o sino hacemos modprobe zd1211, para cargar el módulo y no esperar a que se cargue automáticamente en el próximo reinicio) y deberíamos tener una interface llamada wlan0 (si no aparece, hacemos un ifconfig wlan0 up). Después lo de siempre iwconfig wlan0 essdi miRed

Bueno, espero que le pueda ser de utilidad a alguién, en caso de que ese alguién este pasando por el mismo calvario por el que yo pasé.

Software Freedom Day

softwarefreedom2.png

Mañana 15 de septiembre se festeja el día de la libertad del software!!!, y que mejor manera de festejarlo que haciendo unas charlas y un installfest :). Por eso los invito a todos los interesados a asistir a partir de las 10 hs a la Facultad de Ingeniería y Ciencias Hídricas de la UNL. Estaremos en el laboratorio 2 (1er piso), con unos amigos de UNLibre y el Lugli haciendo en simultáneo un installfest y charlas. Lamentablemente no se pudo hacer difusión en la facultad, dado que esta semana hubo paro desde el lunes hasta hoy inclusive :( . Por eso, la poca difusión que se realizó fué por medio de mails.

Yendo al evento en sí, para el installfest se proponen instalar las siguientes distros:
* Kubuntu.

* Debian.

* Ubuntu.

* Y alguna más que seguro aparecerá ;).

Respecto a las charlas, se estarán dando:

* Introducción a Latex (Heber Suarez).

* Squid(Emiliano Lopez).

* Dansguardian (Me).

* Nagios (Martín Bayo).

* Administración Centralizada con CFengine (Me again).

Esperamos a todos los que quieran asistir, eso si… es fundamental asistir con mate y pc ;).

septimas jornadas de SL

Tuve la suerte de poder asistir a las 7º jornadas regionales de software libre, realizadas esta vez en la ciudad de Cordoba Capital (ARG). Realmente tanto la organización como la calidad de los disertantes superaron ampliamente mis expectativas, por lo que aprovecho para felicitar a toda la gente del Grulic y ViaLibre que trabajo duramente en las mismas para poder conseguir su excelente realización.

Cuando uno habla de jornadas excelentes, es porque de ellas se trae un montón de temas para estudiar, experimentar e implementar y precizamente eso es lo que me sucedio en esta jornada, conseguí soluciones aplicadas por otros a problemas con los que me encuentro a diario, por lo que diría que haber asistido a las mismas fué de muchisima utilidad. Esto desde el punto de vista técnico, desde el punto de vista personal puedo decir que conocí a un montó de gente (geeks digamos ;) ), con los cuales compartimos conocimientos, intercambiamos ideas y nos divertimos muchisimo. Entre estas personas esta la gente de SaltaLUG, los cuales asistieron en calidad de oradores dando unas charlas excelentes como fueron “SQLite, ser o no un motor”, “Radio bombito, una voz que suena con aire de software libre”.

Entre las charlas que me resultaron útiles, a parte de las nombradas anteriormente de los amigos salteños, estan las de un chileno llamado Boriz Quiroz, las cuales se llamaban “Conociendo Linux Virtual Server”,”¿No nos queda lugar en el DataCenter? Virtualizemos!” y “Optimización del Ancho de Banda con Traffic Sharping”.

Por otro lado, otras de las charlas que me resultaron interesantes fueron:

  • “Sonido en Linux, Alsa y Jack”, dictada por Leonardo Giurdanella
  • “D-Loreand, un ejemplo práctico de utilización de FUSE”, dictada por el neuquino Rafael Ignacio Zurita

entre otras tantas que ahora no recuerdo el nombre, pero que abarcaban distintas temáticas, como el desarrollo del kernel de linux, una brindada por el Presidente de la Free Software Fundation Europa sobre “Desobediencia Digital”, y una sobre DRM y licencias brindada por gente de Bs As creo.

Resumiendo, espero poder asistir a las próximas que se realizarán el año que viene en la ciudad de Buenos Aires, asi que desde ahora puedo empezar a decir… “allá vamos!” :)

Después de enterarme de ciertas noticias, como la que se cita en este link, creo que es hora de apoyar con mayor firmeza a la gente que esta juntando firmas en este link en contra de la estandarización del OOXML.

Para aquellos que no saben que es el OOXML y porqué estamos en contra, les comento que[1]:

OOXML es un estándar creado por Microsoft para sus nuevos documentos de oficina. Esta empresa quiere que el OOXML se convierta en un estándar ISO, lo cual es una incongruencia por lo siguiente:

  1. Ya existe un estándar ISO para los documentos de oficina ( ISO 26300 ).
  2. No hay ninguna aplicación hoy que lo utilice.
  3. Hay información no documentada y que refiere a versiones antiguas de herramientas de Microsoft como por ejemplo autoSpaceLikeWord95 ó useWord97LineBreakRules.
  4. Mas del 10% de los ejemplos propuestos no son validados como XML.
  5. No hay garantía de que alguien pueda escribir software que implemente el estándar y no tenga que pagar royalties a Microsoft (una verguenza, la cumbre de los monopólios).
  6. El estándar propuesto entra en conflicto con otros estándares ISO como ISO 8601 (Representacion de fechas y horas), ISO 639 (Códigos para la representación de nombres y lenguajes) o ISO/IEC 10118-3 (cryptographic hash).
  7. Hay un defecto en la implementación que no permite introducir fechas anteriores a 1900 en la hoja de cálculo (una marca registrada de esta empresa :) ).
  8. Este estandar no ha sido creado compartiendo la experiencia y necesidades de todos los actores (productores, usuarios, reguladoes, etc) sino solo por Microsoft y sus intereses.

[1] Parte de esta explicación fué obtenida y modificada de la siguiente URL, la cual cuenta con una licencia libre que lo permite.

Por todo esto, los invito a sumarse a la petición en contra de este estandar que choca de lleno con los intereses de todos, y que solo encaja con los de una empresa, la cual a lo largo de la historia solo a demostrado tener destrezas en la ciencia de los monopolios.

Entradas antiguas »