martes, febrero 24, 2009

Nuevos drivers Broadcom




El 21 de Enero, 2009, Broadcom lanzo una nueva versión de los drivers unificados 802.11a/b/g/n de Linux de 32 y 64 bits para placas basadas en los chips BCM4311, BCM4312, BCM4321, y BCM4322. En especial, las portátiles Dell con la placa WiFi "Genérica Dell" utilizan este driver.

En mi caso parecen haberme resuelto algunos detalles de la WiFi de mi portátil, por lo que recomiendo que actualicen aquellos que los tengan.

Cementerio de Fuentes



¡Otra nueva fuente en el cementerio de fuentes! La última fué una Vitsuba COL-45-B. En la foto se puede ver a la izquierda.

En estos días voy a tener que salir a comprar una fuente un poco mejor, seguro que me haga de alguna Thermaltake parecida a la que ya tengo de 430W en mi Desktop (W0070-RU).

Tengo esperanzas que el disco en realidad no funcionaba por la fuente defectuosa. ¡Mi fileserver volverá a renacer!

jueves, febrero 19, 2009

Jugando con la caché

Ya todos estamos más que familiarizados con el concepto de localidad de las referencias. Y se me ocurrió tomarme unos minutos para analizar qué tanto impacto puede llegar a tener en un programa de computadora.

El ambiente de investigación "ideal" sería reiniciar en Linux en modo usuario simple, desconectando el mouse y otros periféricos que no sean necesarios para reducir la interferencia de interrupciones.

En mi caso no es así. Estoy haciendo un trabajo para la facu en OpenOffice, escuchando Dire Straits en VLC y con el firefox abierto en mi GMail. Da igual!

La idea es analizar qué ocurre si siempre estoy intentando modificar una posición de memoria que no está en la caché del procesador. Para eso se usa una gran matriz que se recorre por filas o por columnas asignandole un valor a los elementos de ésta.

Entonces decidí escribir un simple programa en C que acepta por dos valores por parametro: el tamaño de una matriz y un boolean para ver si la matriz se recorre por filas o por columnas. El codigo es el siguiente:

int msize, mdir;
int *mptr;

void initm() {
    int x, y, tam = msize * msize;

    if (mdir) {
        for (x = 0; x < tam; ++x) {
            mptr[x] = x;
        }
    } else {
        for (x = 0; x < msize; ++x) {
            for (y = 0; y < tam; y += msize) {
                mptr[x+y] = x;
            }
        }
    }
}

Fue compilado con gcc de la siguiente forma:
$ gcc -Wall -O2 -o cache.out cache.c
Y los resultados son más que alentadores:
$ time ./cache.out 15000 1

real 0m0.937s
user 0m0.184s
sys 0m0.728s

$ time ./cache.out 15000 0

real 0m7.063s
user 0m6.180s
sys 0m0.856s
Recorriendo la matriz por columas el programa es siete veces más lento que recorriendo por filas la misma matriz.

Como siempre, todos mis programas los ejecuto al menos una vez bajo valgrind. Los resultados son también muy interesantes!!
$ time valgrind -q ./cache.out 15000 1

real 0m22.026s
user 0m21.009s
sys 0m0.872s

$ time valgrind -q ./cache.out 15000 0

real 1m0.161s
user 0m58.972s
sys 0m0.880s
Así acaba mi experimento poco científico del día.

martes, febrero 17, 2009

Mirror Debian Lenny



Con motivos del lanzamiento oficial de Debian Lenny decidí ajustar el mirror local que tengo en mi pequeño fileserver personal. Actualmente se encuentra recauchutado de la siguiente forma:
$ du -sh debian-local*
27G debian-local
2.8G debian-local-security
21G debian-local-testing
Usando debmirror en un script cron que corre cada 24 hs se mantiene bastante actualizado. "debian-local" es un mirror de etch con sources incluidos; en "debian-local-security" están las actualizaciones de seguridad de etch+lenny y en "debian-local-testing" estan lenny sin sources. En esta nueva release se fueron de escala, ya que el mirror etch con sources es casi del mismo tamaño que el mirror lenny sin sources!!

Hace unos días murió un disco del fileserver (en el que convenientemente no tengo ningun RAID configurado), voy a esperar que haga menos calor para ver si resucita. Mientras tanto voy a mudar el mirror a otro disco con cosas menos importantes, y ver si puedo recuperar mis dos discos (el que murió y el que le presté a Pedro) para configurar un RAID.

El script para actualizar el mirror Debian es:
#!/bin/sh

MIRROR_HOST="ftp.br.debian.org"

# Stable

debmirror -a i386 \
-s main,contrib,non-free,main/debian-installer \
-h $MIRROR_HOST \
-d etch -r /debian --progress \
-e http --ignore-release-gpg --nosource \
/var/big1/www/debian-local

# Secure Stable

debmirror -a i386 \
-s main,contrib,non-free \
-h security.debian.org \
-d etch/updates,lenny/updates -r / --progress \
-e http --ignore-release-gpg --nosource \
/var/big1/www/debian-local-security

Simba Cuadrado

simba squared (simba cuadrado)

Siguiendo el ritmo de postear una vez por semana,

[2 horas mas tarde]

Ah si, postear. Recién llego de almorzar y ya salgo para la facu. Estoy haciendo el curso de verano de Matemática 3 (Probabilidades y Estadísticas) y ya tengo la cabeza bastante quemada.

miércoles, febrero 11, 2009

Status




¿Qué es de mi vida, qué ando haciendo en estas semanas? Los que me conocen saben que de repente desaparecí de la faz de la tierra. Sigo viviendo en donde siempre, pero ya no me conecto al messenger.

¡Estoy estudiando! Decidí que ya es hora y de una buena vez de recibirme: sacar el título y de ahí seguir para adelante. Me falta rendir 4 finales para llegar al APU y no voy a dejar que pase ni un solo día.

Además, me puse a hacer trabajos freelance haciendo programitas en Python. Es todo tan simple y sencillo que cuando me pongo a programar un sistema feo (y que en otra época hubiese odiado), ¡ahora me divierto! :D

Y como para no terminar de aburrirme, tomé las riendas nuevamente en AONX. Ahora no tengo NADA de tiempo libre, aunque de a poco y más adelante voy a intentar hacer algo. Si estás interesado o curioso en saber de qué estoy hablando podés dar una vuelta por la página del proyecto, o leer el post de brainstorm del blog.

lunes, febrero 09, 2009

Chau WordPress, Hola BlogSpot

Me cansé de tener que preocuparme por mantener actualizada la versión de mi WordPress self-hosted. De ahora en más voy a bloggear por aquí y además aprovecho para tirar a la basura todas las porquerías que había en el viejo blog.