May 15, 2012

galaxy note, yo no lo compraría

Xabi Pena, uno de los cuatro genios y compis de desarrollo de negocio de R con los que tengo la suerte de trabajar, andaba con este móvil la semana pasada. Me quedé mirando para el cacharrito así que Xabi decidió desafiarme a usarlo durante unos días mientras le contara mi opinión así que hoy cumplo con lo prometido.
Empecemos por la conclusión: IMHO el note ni es un móvil ni es un tablet es un nuevo tipo de cacharro, no está bien acabado y  aún encima es muy caro.

qué tipo de gadget es el note

Tampoco creo que sea un tipo nuevo, para mi el note es simplemente una pda que permite llamar como un móvil y hay que compararla con las viejas palm o pdas windows ce.

¿en que mejora a las viejas pda?

  • mejor hardware (resolución, grabación fotos y video, salida hdmi, capacidad almacenamiento, ...) que permite ampliar el rango de utilidades
  • aplicaciones android: cientos de miles de aplicaciones con funcionalidades y ocio que convierten al aparato en un complemento muy potente para el trabajo y ocio
  • ereader: años después del ocaso de las pda el libro electrónico es una realidad y con el note puedes acceder a un montón de contenidos que poder leer o almacenar como referencia en el bolsillo que antes ni existían
  • el tamaño de pantalla usable para leer o editar contenidos es increíble

¿que hace mal el note?

  • la pantalla es espectacular pero los reflejos son un problema para usar como ereader y esto ya me ha pasado con el ipad. El cristal glossy y similares es espectacular para ver pelis pero si lees 15-30 minutos al día tus ojos te van a empezar a decir cosas.
  • El hardware es muy bueno y android ha avanzado un montón pero aún no está realmente pulido. Si usas kindle para android pasar página implica un "flash" medio raro que se hace cansino y muy de vez en cuando la interfaz sufre algún bloqueo o salto raro que no transmite confianza al usuario.
  • El lápiz apuntador, sinceramente creo que las pantallas capacitivas a día de hoy no valen para este tipo de dispositivo. Si el note pretendía servir como cuaderno de notas creo que simplemente es inútil. Escribir a una velocidad normal para tomar notas te provocará insatisfacción porque la pantalla no dará interpretado completamente tus trazos si los haces a una velocidad normal y tendrás la sensación de miedo de estar rayando la pantalla. No tiene nada que ver con una vieja palm que aunque fuera resistiva transmitía confianza al usar el apuntador.

¿y si sólo quiero un ereader?

Pues no te vas a quedar satisfecho, al menos con las alternativas que he probado:
  • Aldiko es la opción buena. Metes tus epub y con la pantalla grande vas a disfrutar (eso sí con permiso del cansacio ocular)
  • Kindle para android sería tan bueno como aldiko si no hubiera esas horribles transiciones al pasar página.
  • 24 symbols: inusable. La versión html5 en el navegador del note, al menos para mi ni siquiera mostraba bien las páginas.
  • booquo: poco usable. Para contenidos bitmap (típicamente revistas) se empeña en permitir simplemente en hacer 3 aumentos y limitar el scroll así que te enfadas y piensas que mierda de servicio, para contenidos con texto (novelas) también se empeña en limitar el tamaño de letra a ciertos valores y si no te gustan pues ajo y agua.
  • Readers hub: no lo hace mal pero te limita a lo que compres. Es una aplicación de samsung que realmente hace de fachada a otros servicios para adquisición de periódicos (pressdisplay), libros (kobo) y revistas (zinio).

¿vale la pena el tamaño?

Yo creo que sí pero sólo si realmente lo quieres. Si quieres un teléfono que haga de tablet o un tablet que haga de teléfono vas mal, te vas a equivocar. El note es una especie de pda, ninguna de las otras dos cosas y aún encima como pda tiene un par de inconvenientes (brillos; mala escritura con apuntador; pesado; poco ergonómico; editor de notas malo, malo).
  • si hablas con el note a una mano (como si fuera un movil) vas a notar que es un objeto pesado que se te puede caer y te cansarás el brazo. Debería usarse simplemente como teléfono "manos libres".
  • si quieres un tablet cómprate algo de 7-10" que le sacarás mejor uso
Dicho eso:
  • el navegador es más que funcional
  • usar ofimática (google docs) es usable!
  • ebooks con ilustraciones que quedan bien!
  • leer correo
  • ... y muchas otras cosas que con 5'3" se hacen mucho mejor

Veredicto

No comprar pero estar atento a próximas versiones más evolucionadas (que se pueda pintar con el lápiz a velocidad humana) y sobre todo mucho más baratas. Es indecente gastarse en un cacharro de este tipo más de 600 euracos, debería valer la mitad! 
Por 350 euros o incluso regalado con un consumo mínimo relativamente asumible tendrás un smartphone android más que competente que tendrá una pantalla más pequeña pero para 15-30 minutos al día te valdrá igual.

por Juan José Iglesias González (noreply@blogger.com) el May 15, 2012 08:28 PM

May 13, 2012

Kickstart my heart

Con el título de una canción de los infames Mötley Crüe (más famosos por otra canción, Dr. Feelgood) empezamos el segundo artículo de Linux Técnico. Hoy vamos a hablar del provisionamiento de equipos, usando un método que hasta hace unos años era exclusivo del mundo Red Hat pero que también podemos usar con Ubuntu: kickstart.





Provisionamiento de máquinas virtuales

Se llama “provisionamiento” a la instalación y configuración del sistema operativo de un equipo. Los casos más frecuentes para mí son los de máquinas virtuales, que es donde pruebo cosas nuevas. Si cada una tuviera que instalarla “a mano”, no estaría aquí escribiendo esto, sino esperando a que acabara la instalación de alguna de ellas. Con los años he probado varias formas de hacerlo, y de una de ellas les quiero hablar hoy: los ficheros kickstart, creados para el instalador Anaconda (usado en RH, Fedora y CentOS) pero también soportados desde hace varias “releases” por el instalador de Ubuntu.

En Debian no está soportado. Hubo un intento, hace años, de modificar el instalador para que lo soportara. Pero se quedó en eso: un intento. Es triste que Ubuntu lo soporte y Debian no, porque para bien o para mal, la instalación mediante kickstart es un estándar “de facto”. A uno se le ocurren varias razones para que esto sea así, casi todas de índole política (“Red Hat es el Mal”) o religioso (“Ubuntu es el Mal”). Pero como siempre, lo bueno y malo de Debian es que la mayoría manda; y si la mayoría de desarrolladores no tiene interés en que Debian soporte kickstart, sin kickstart nos quedamos.

Los ficheros kickstart son ficheros ASCII, que podemos crear o modificar con cualquier editor de texto. Tienen una sintaxis especial que sirve para que el instalador sepa qué valores aplicar en las distintas fases de la instalación: cómo particionar el disco, qué tarjetas de red configurar y cómo, qué usuarios crear y con qué contraseñas, qué paquetes instalar, etc.

Si todo va bien, la instalación es completamente automática: lanzas el instalador, le dices cómo obtener el fichero kickstart, le das a Enter, te vas a tomar un café, y al volver la máquina ya está instalada. Si ocurre algo durante la instalación (no hay suficiente espacio en disco, alguno de los paquetes que quieres instalar no está disponible, no se detecta la tarjeta de red, etc.), tendrás que arreglarlo y volver a empezar. Podrías seguir la instalación a mano desde donde falló kickstart, pero no suele merecer la pena.

Una máquina virtual mínima, suponiendo que el equipo que la alberga no es demasiado viejo, puede estar provisionada en unos 10 o 15 minutos. A mejor hardware (sobre todo, E/S de disco), más velocidad. Nunca me he puesto a cronometrarlo, pero yo diría que es difícil bajar de los 10 minutos. Si alguien ha conseguido menos, por favor, que lo diga en los comentarios.

En cualquier caso, la ventaja no es la velocidad en sí, sino poder hacer la instalación de forma desatendida. Combinado con arranque por PXE, puedes instalar una máquina por red, de forma totalmente automatizada. Hay productos Open Source como Cobbler y xCAT que se basan precisamente en esto.

Algo como kickstart es fundamental si tienes que mantener una granja de servidores, y abre la puerta a posibilidades como cambiar el rol de un servidor y reinstalarlo en un tiempo récord, para adaptarte a las demandas que tengas en ese momento.

Sintaxis de un fichero kickstart

Lo mejor es empezar viendo un ejemplo:


lang es_ES
langsupport es_ES
keyboard es
mouse
timezone Europe/Madrid
rootpw --disabled
user robe --fullname "Roberto" --iscrypted --password $1$K4dyxS0.$LSrit.62Bu5InynRAwYYk1
reboot
text
install
cdrom
bootloader --location=mbr
zerombr yes
clearpart --all --initlabel
part /boot --fstype ext4 --size 256 --asprimary
part swap --size 512 --asprimary
part / --fstype xfs --size 1 --grow --asprimary
auth  --useshadow  --enablemd5
network --bootproto=dhcp --device=eth0
firewall --disabled
skipx


Este es un fichero de kickstart creado para Ubuntu. Para RH y demás familia debería valer igual, aunque no estoy seguro de que no haya algún detalle diferente. Para ver las diferencias entre el kickstart de Ubuntu y RH, pinchad
aquí.

Todo es bastante obvio: se configura el sistema en español, con instalación en modo texto; se selecciona el CD como fuente de los paquetes para la instalación; se instala el gestor de arranque en la MBR; se borran la MBR y la tabla de particiones; se configura una partición para boot, otra para swap y otra para el resto del sistema; se usan “shadow passwords” y MD5 para las contraseñas; se configura eth0 por DHCP; se deshabilita el firewall; y no se configuran las X.

Como es costumbre en Ubuntu, el usuario root no tiene contraseña (rootpw --disabled), y por eso configuro un usuario (“robe”). Será añadido al grupo “admin”, y tendrá acceso de root mediante sudo. La contraseña se indica en el fichero en forma de hash MD5 (aunque podría ser también en el formato crypt).

Los hombres muy hombres, los verdaderos gurús, los hackers y los programadores de COBOL o LISP crearán estos ficheros a pelo, con un editor de texto. Yo, que soy de natural humilde y algo tímido, usé system-config-kickstart (que en Ubuntu viene en el paquete homónimo), un programa gráfico. Las modificaciones pequeñas las hago con un editor de texto, pero el “heavy lifting” de la creación del fichero siempre la hago con este programa. Cubre todas las secciones y permite modificar cualquier aspecto de la instalación que pudiéramos configurar a mano.

Cómo usar nuestro fichero kickstart

El instalador de Ubuntu (o lo que sea que estemos usando para las pruebas) carga el fichero kickstart mediante http. Al arrancar, en lugar de seleccionar “Install Ubuntu”, seleccionamos “Other options”. Se nos mostrará la línea de argumentos que se le van a pasar al instador, que termina en “quiet --”. Yo suelo quitar el “quiet”, porque me gustan los mensajes del kernel por la mañana (huelen a victoria); pero lo único que hace falta, estrictamente, es quitar los dos guiones (“--”) y añadir esto:

ks=http://192.168.1.101/ks.cfg

192.168.1.101 es la dirección IP del equipo desde el que voy a cargar el fichero kickstart, ks.cfg. Como uso VirtualBox, lo que hago es instalar un servidor http pequeñajo en el anfitrión (el equipo que ejecuta VirtualBox) y copiar el fichero kickstart a /var/www (o donde esté el document root).

La instalación se ejecutará hasta el reinicio final, y en unos minutos tendremos la máquina instalada y funcionando. En Ubuntu, el hostname de las máquinas creadas con kickstart siempre es “kickseed”. Se puede cambiar en el fichero kickstart, en la configuración de red, pero como lo uso como plantilla para máquinas de distinto pelaje, lo cambio siempre después de la instalación.

Secciones %pre y %post

En las secciones %pre y %post, que van al final del fichero, podemos añadir comandos a ejecutar antes o después de la instalación. No he usado la parte de %pre, pero sí la de %post: hice unas pruebas en las que instalaba una máquina con kickstart, y luego completaba la instalación instalando y ejecutando puppet. Perdí el fichero de configuración cuando uno de mis discos duros se hizo el hara-kiri, pero era algo así:

%post
apt-get update
apt-get -y install puppet
puppetd --verbose --server puppet.mired.pri --onetime
%end

Estos comandos se ejecutan dentro del chroot del sistema instalado, pero también podemos ejecutar comandos fuera de él. Para eso tenemos que añadir “--nochroot” a “%post”. Copio tal cual el ejemplo de la referencia de Fedora:

%post --nochroot
cp /etc/resolv.conf /mnt/sysimage/etc/resolv.conf
%end

Esto no funcionaría en Ubuntu, porque el sistema instalado está montado bajo /target y no /mnt/sysimage. Pero es un ejemplo bastante claro de lo que se podría hacer.

Soluciones integradas

Si vamos en serio con esto de provisionar muchas máquinas con kickstart, lo mejor es usar un sistema integrado, como los mencionados xCAT o Cobbler. Con ellos podremos hacer provisionamiento desde bare metal, suponiendo que soporta PXE, con sólo conectar la máquina a la red y encenderla. Integran varias piezas:

- Un servidor DHCP
- Un servidor DNS
- Un servidor TFTP
- Un servidor web

También podemos tener ya instalados estos servicios, y sólo modificar la configuración para que funcionen con los sistemas de provisionamiento. Depende de las necesidades de cada uno.

Con este tinglado, lo único que tendríamos que hacer es dar de alta la MAC de la máquina y decir qué vamos a instalar en ella. Una vez que la encendiéramos, el proceso sería el siguiente:

- La máquina enciende, conectada a la red en la que está el sistema de provisionamiento
- El agente PXE de su tarjeta de red recibe una IP por DHCP
- Con la información DHCP, también recibe la IP del servidor TFTP del que bajarse un kernel y un initrd
- Se descarga por TFTP el kernel y el initrd (que no es más que el instalador), y lo ejecuta con los parámetros adecuados para cargar la configuración con kickstart
- El instalador provisiona la máquina según lo indicado en kickstart
- Con la información DHCP también puede haber recibido su propio hostname, así como su dominio, servidores DNS, etc.
- Se termina la instalación, se reinicia la máquina, y ya tenemos un nuevo equipo configurado

La primera vez que ves un sistema de estos funcionar, es mágico. Te quedas mirando a la pantalla sin acabar de creerte del todo que va a funcionar. ¡Pero lo hace! Maravillas de la informática.

Conclusión

Uno piensa que esto de provisionar máquinas no le hace falta, porque lo único que hace es instalar alguna de vez en cuando. Pero luego te hace falta para, yo qué sé, escribir un artículo cada mes. Y lo de instalar una máquina virtual cada vez, o reutilizar una que ya tienes, se vuelve tedioso. Así que buscas soluciones que te permitan instalar una máquina en poco tiempo, o al menos de forma desatendida.

Ahora ya no uso kickstart, porque he descubierto los VDIs “multiattach” de VirtualBox. Pero para crear esos VDIs, o para otras máquinas que instalo casualmente, kickstart sigue siendo la mejor herramienta.

por Roberto Suárez Soto (noreply@blogger.com) el May 13, 2012 08:15 PM

Monta tu propio DNS dinámico

Ahora que todos los servicios tipo dyndns.org y no-ip.org se han vuelto de pago, echamos de menos un servicio de DNS dinámico que poder usar por poco dinero (léase: gratis). La mala noticia es que no hay ninguno totalmente gratuito. La buena noticia es que, bajo ciertas circunstancias, podemos montarlo nosotros mismos.



Requisitos

Implementar un servicio de DNS dinámico requiere, por narices, disponer de un servidor DNS. Puede ser uno que tengamos en un servidor bajo nuestro control (supuesto que voy a usar en este artículo), uno en el servidor de un amigo, o uno de alguna organización que nos permita actualizaciones dinámicas. Y no vale un servidor DNS cualquiera: tiene que ser Bind, versión 8 o superior. Sé que todos vosotros, usuarios de DJBDNS, Bind 4.x, MaraDNS, PowerDNS y demás servidores alternativos, estaréis decepcionados; pero es el precio de vivir en el underground. Seguro que ya estáis acostumbrados. El otro requisito es nsupdate, la herramienta que vamos a usar para actualizar el DNS. En Debian y Ubuntu viene en el paquete dnsutils. En Fedora y parientes cercanos, bind-utils.

Sinopsis breve

Lo que vamos a hacer es definir una zona especial para actualizaciones dinámicas, y desde el cliente (el equipo con IP dinámica) actualizarla cada cierto tiempo con nsupdate. Para que sólo nosotros podamos hacerlo, nos autenticaremos con una “llave” cifrada que habremos acordado con el administrador del servidor DNS. Dividiendo esto en pasos más detallados, el proceso consiste en:
  • Crear una zona para actualizaciones dinámicas en el servidor
  • Crear una llave cifrada y permitir su uso para la actualización de la zona
  • Ejecutar periódicamente nsupdate en el cliente, para actualizar el registro
En los ejemplos voy a usar lo siguiente:
  • Como zona dinámica, dyn.linuxtecnico.es
  • Como cliente, raven.dyn.linuxtecnico.es
Si no os habéis asustado todavía, vamos a verlo paso por paso.

Configuración de una zona para actualizaciones dinámicas

En la configuración de nuestro servidor DNS tenemos que añadir una zona para actualizaciones dinámicas. Yo he usado un subdominio de linuxtecnico.es, pero podéis usar la zona principal si queréis. A mí no me gusta porque prefiero que las actualizaciones dinámicas estén restringidas a una zona que, en caso de desastre, no afecte al funcionamiento de la zona principal. Imaginaos que durante las pruebas os cargáis el registro MX y os quedáis sin correo. Y no os dais cuenta durante varios días. Cuando esperábais un mensaje importantísimo. Ya os imaginais. Lo primero que hay que hacer es añadir un registro NS a la zona principal, para que desde Internet sepan cómo llegar a nuestra zona dinámica. Una línea como ésta:
dyn IN A ns.linuxtecnico.es.
Cuidado con el punto del final. Hubo unos minutos de rascamiento de cabeza y chirriar de dientes hasta que me di cuenta de que, la primera vez que metí la línea en la zona, me lo había olvidado. Y con un TTL de un día, eso significa que durante veinticuatro horas el error estará pululando por Internet, demostrando tu falta de pericia. La gente habla mal de ti por mucho menos. La configuración de Bind para esta zona sería:
zone "dyn.linuxtecnico.es" {
       type master;
       allow-transfer { none; };
       file "dynamic/db.dyn.linuxtecnico.es";
       update-policy {
               grant raven.dyn.linuxtecnico.es. name raven.dyn.linuxtecnico.es. A TXT;
       };
};
No hace alta mucha explicación sobre lo que hace esto. La parte novedosa es la de update-policy, en la que definimos qué vamos a permitir cambiar y a quién. La línea grant tiene la sintaxis:
grant <llave> <ámbito> <registro> <tipos de registro>
Significado de cada elemento:
  • llave es el nombre que identifica a la llave cifrada que usaremos para autenticarnos con el servidor. ámbito indica qué podemos cambiar: con name sólo podemos cambiar el registro que apunta al propio nombre de la llave, que es lo que nos interesa aquí; pero también hay otros tipos como subdomain, self y wildcard. Echad un vistazo a las referencias, más abajo, para ver una explicación de cada uno.
  • registro es el registro DNS que queremos cambiar. En este caso, el nombre del clente, raven.dyn.linuxtecnico.es.
  • tipos de registro son los tipos de registro que puede cambiar el cliente. Es un parámetro opcional, pero por defecto permite demasiadas cosas para mis draconianos gustos y prefiero restringirlo haciéndolo explícito. De esta forma nos aseguramos de que sólo los registros tipo “A” (direcciones IP) y “TXT” (información sobre el registro) se pueden cambiar desde el cliente.
Una vez configurada la zona, hay que crear un esqueleto sobre el que se vayan a hacer las modificaciones. Para dyn.linuxtecnico.es, yo he usado esto:
$ORIGIN .
$TTL 3600 ; 1 hour
dyn.linuxtecnico.es IN SOA linuxtecnico.es. root.linuxtecnico.es. (
2012050903 ; serial
28800      ; refresh (8 hours)
7200       ; retry (2 hours)
2419200    ; expire (4 weeks)
604800     ; minimum (1 week)
)
NS ns.linuxtecnico.es.
$ORIGIN dyn.linuxtecnico.es.
Y lo he colocado en el directorio “dynamic”, fichero “db.dyn.linuxtecnico.es”. El fichero debe tener permisos de escritura para Bind, y el directorio también: Bind va a crear ficheros de journal (extensión .jnl) con las modificaciones que se hagan a las zonas, y cada cierto tiempo las volcará al fichero principal. Por eso mismo tengo que incluir esta nota importante: ¡No hagáis modificaciones a mano sobre el fichero de zona! Si lo hacéis, el fichero journal y el fichero de zona no estarán sincronizados, y Bind se sentirá confuso y violento (como veréis al consultar los logs). Si necesitáis hacer modificaciones, tenéis que usar rndc freeze y rndc thaw. La página man os enseñará todo lo que necesitáis saber sobre ellos.

Creación de una llave cifrada y configuración para su uso

Ahora que tenemos una zona dinámica configurada, el siguiente paso es crear una llave cifrada para que sólo el cliente que hayamos autorizado pueda actualizar el registro con su nombre. Para eso hace falta la utilidad dnssec-keygen, que en Debian y Ubuntu viene en el paquete dnssec-tools. Es mejor que lo instaléis en el servidor y generéis allí la llave, porque tirará por dependencias de bind9 y muchos otros paquetes. En el servidor, como asumo que ya tenéis instalado bind9, no instalará tantas cosas. Para crear una llave cifrada para el cliente “raven.dyn.linuxtecnico.es”, el comando es el siguiente:
dnssec-keygen -b 512 -a HMAC-MD5 -n USER raven.dyn.linuxtecnico.es
Técnicamente, el nombre de la llave es independiente del nombre que vaya a tener el cliente. Podríamos haber creado la llave con nombre “Pepito”, y valdría igual. Pero las buenas costumbres recomiendan crearla con el nombre DNS del cliente. Seguro que ya habréis adivinado qué son los parámetros de dnssec-keygen: “-b” es para el número de bits de la llave, “-a” para el algoritmo de hashing que usará, y “-n” sirve para indicar el tipo de llave. En este caso será “USER”. ¿Y por qué no “HOST”, que es otro tipo contemplado en la documentación de dnssec-keygen? Ni idea. Hay cosas que los humanos no estamos destinados a entender. El comando de ahí arriba creará dos ficheros, uno con extensión “private” y otro con extensión “key”. El último es la parte pública de la llave, y el que tendremos que usar en la configuración del servidor. El otro es el que usaremos desde el cliente para autenticar nuestras peticiones. Para permitir a quien se autentique con esta llave que actualice el registro raven.dyn.linuxtecnico.es, tenemos que cargar la llave desde Bind. Un “cat” del fichero “.key” de la llave nos da algo así:
raven.dyn.linuxtecnico.es. IN KEY 0 3 157 2CvrkaTJFXQZYvqW/EOb0rRYJ3lu1PfjdOI36KHzIU3QBIuOJdt6GSMC cGeSbQWXbVPOSDgpoe0LJxX54eS6wn==
Tenemos que coger todo el zurullo incomprensible (“2Cvrka … 6wn==”) y ponerlo en la configuración de Bind con algo como esto:
key raven.dyn.linuxtecnico.es. {
algorithm hmac-md5;
secret "2CvrkaTJFXQZYvqW/EOb0rRYJ3lu1PfjdOI36KHzIU3QBIuOJdt6GSMC cGeSbQWXbVPOSDgpoe0LJxX54eS6wn==";
};
Con esto, Bind tendrá la parte pública que asociar a nuestra petición, donde usaremos la parte privada de la llave.

Ya casi estamos acabando: cómo usar nsupdate

Todo lo anterior lo hicimos en el servidor que ejecutaba Bind. Ahora vamos al cliente, desde donde usaremos nsupdate. Copiad la parte privada de la llave (que tendrá un nombre parecido a éste: Kraven.dyn.linuxtecnico.es.+157+55947.private) a algún sitio accesible, y luego ejecutad este comando:
nsupdate -k Kraven.dyn.linuxtecnico.es.+157+55947.private
Una vez hecho, nsupdate entrará en “modo comandos”. Aparecerá un prompt en el que podemos introducir comandos para manipular zonas de servidores DNS que nos dejen. Suponiendo que ns.linuxtecnico.es es el servidor que hemos configurado para albergar nuestra zona dinámica, podríamos añadir un registro para raven.dyn.linuxtecnico.es con estos comandos:
server ns.linuxtecnico.es
zone dyn.linuxtecnico.es
update add raven.dyn.linuxtecnico.es. 3600 A 1.1.1.1
show
send
Todo bastante obvio. La parte de “update” es la que hace los cambios de verdad, y donde definimos los atributos (como el TTL, 3600 segundos) del registro que vamos a añadir. El comando “show” muestra lo que se va a enviar, y “send” lo envía. Esto nos valdrá para la primera vez que añadamos el registro, pero de ahí en adelante tendremos que borrarlo primero para actualizarlo. No hay un “update update” que podamos usar para actualizarlo a secas. Antes de la línea de “update add” tendríamos que añadir algo así:
update delete raven.dyn.linuxtecnico.es. A
Podemos meter todas estas instrucciones en un fichero, y pasárselo a nsupdate con el parámetro “-v”. Así es más fácil de automatizar. Sólo nos queda un problema: ¿cómo averiguamos nuestra IP pública para ponerla en el registro DNS? Lo que yo he hecho, y no digo que sea la mejor solución, es usar un servicio de dyndns.org que se llama “checkip”. En concreto, puedes conectarte a http://checkip.dyndns.org y saldrá una pequeña página web con tu IP pública. Un ejemplo:
$ telnet checkip.dyndns.org 80
Trying 91.198.22.70...
Connected to checkip.dyndns.com.
Escape character is '^]'.
GET / HTTP/1.0

HTTP/1.1 200 OK
Content-Type: text/html
Server: DynDNS-CheckIP/1.0
Connection: close
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 105

<html><head><title>Current IP Check</title></head><body>Current IP Address: 213.60.49.215</body></html>
Connection closed by foreign host.
Que, pasado a algo que podamos usar como una variable shell, sería algo así:
CURRENT_IP=`(echo -e "GET / HTTP/1.0\n\n"; sleep 0.5) | telnet checkip.dyndns.org 80 2> /dev/null | grep Current | sed 's/^.*Current IP Address: \(.*\)<.body.*/\1/'`
Como antes, no digo que sea la mejor forma de hacerlo. Sentíos libres de sugerir mejoras en los comentarios. Ahora podemos meter esto y todas las órdenes para nsupdate en un script, al que yo he llamado update-ip.sh:
#!/bin/sh

CURRENT_IP=`(echo -e "GET / HTTP/1.0\n\n"; sleep 0.5) | telnet checkip.dyndns.org 80 2> /dev/null | grep Current | sed 's/^.*Current IP Address: \(.*\)<.body.*/\1/'`
TMPFILE=`mktemp /tmp/update-ip-XXXXXX`

cat > $TMPFILE <<EOF
server ns.linuxtecnico.es
zone dyn.linuxtecnico.es
update delete raven.dyn.linuxtecnico.es. A
update add raven.dyn.linuxtecnico.es. 3600 A $CURRENT_IP
send
EOF

nsupdate -k Kraven.dyn.linuxtecnico.es.+157+55947.private -v $TMPFILE && rm -f $TMPFILE
Podemos ejecutar esto en cron cada hora, y así tendremos nuestro registro actualizado. Comprobación posterior:
$ host raven.dyn.linuxtecnico.es
raven.dyn.linuxtecnico.es has address 213.60.49.251

Conclusión

Tenía esto guardado en la bag of tricks desde hacía años, cuando lo había probado ya ni recuerdo para qué. Llegué a comprar un dominio sólo para esto, aprovechando una oferta que lo dejaba a un precio ridículo (2€ el primer año, me parece). Al final, después de las pruebas, quedó abandonado y no renové el dominio. Pero en los últimos días, un par de mensajes en la lista de GPUL preguntando por un servicio de DNS dinámico bueno, bonito y barato, me hicieron recordarlo.

Referencias

Los dos artículos de Jeff Garzik sobre DNS dinámico con dnsupdate: http://linux.yyz.us/nsupdate/http://linux.yyz.us/dns/ddns-server.html Página de Zytrax con información sobre la sintaxis de update-policy: http://www.zytrax.com/books/dns/ch7/xfer.html#update-policy

por Roberto Suárez Soto (noreply@blogger.com) el May 13, 2012 08:15 PM

May 10, 2012

I Xornadas sobre Hardware Libre

Dende GPUL comprácenos anunciar a celebración das "I Xornadas sobre Hardware LIbre" os días 17 e 18 de maio de 2012 na Facultade de Informática da Universidade da Coruña (Salón de Actos, andar 0).

Podedes ver o programa do evento no seguinte enlace ou descargalo dende aquí. Podedes rexistrarvos no mesmo a través do seguinte enlace, así coma mantervos ó día das novas relacionadas.

É de facer notar que contaremos coa presenza (virtual) de David Cuartielles, un dos membros máis mediáticos do Arduino Team.

Así mesmo, contaremos con varios espazos de participación para o público que se achegue ata o evento:

  • Unha quenda de preguntas sobre o proxecto Arduino.
  • Unha mesa redonda onde participarán tanto os organizadores, os colaboradores e os convidados coma o público.
  • Unha sección para a presentación de proxectos persoais feitos con hardware libre en quendas de 15 minutos.

¡E temos un lote de sorpresas preparadas!

Dende a directiva, agardamos a vosa asistencia, pero sobre todo que o pasedes ben e que lle deades a máxima difusión posible ó evento.

Undefined

por xuco el May 10, 2012 10:26 PM

May 07, 2012

IV Obradoiro de Criptografía, Privacidade e Seguridade

Dende GPUL comprácenos anunciar a celebración do "IV Obradoiro de Criptografía, Privacidade e Seguridade" do 14 ó 16 de maio de 2012 na Facultade de Informática da Coruña (Salón de Actos, andar 0).

Como sempre, haberá charlas e obradoiros de expertos locais no campo,que expoñerán as últimas técnicas coas que están a traballar. Nesta ocasión, tamén, contamos coa presencia do gran especialista internacional o Doutor Ross Anderson, da Universidade de Cambridge, que impartirá a súa charla titulada "Cryptology and security – where is the research frontier?"

Podedes ver o programa do evento no seguinte enlace ou descargalo dende aquí. Podedes rexistrarvos no mesmo a través do seguinte enlace, así coma mantervos ó día das novas relacionadas.

 Dende a directiva, agardamos a vosa asistencia, pero sobre todo que o pasedes ben e que lle deades a máxima difusión posible ó evento.

Undefined

por xuco el May 07, 2012 06:57 PM

Los puntos y las comas

Mucha gente no sabe usar correctamente los puntos y las comas. Podría decir que no me importa, que acepto que mi opinión puede no ser la correcta y que el uso que la gente da a estos signos de puntuación es tan válido como el que hago yo. Pero mentiría. Me cuesta mucho ver un email escrito con párrafos de diez líneas sin un solo punto y no reprimir un gruñido de frustración. Me duelen los ojos. Se me encoge el corazón. Es la maldición del pilkunnussija.

"Someone is wrong on the Internet"

"Someone is wrong on the Internet"

Las comas

Hay reglas sobre cómo usar la coma. Pueden verlas en Wikipedia y en muchos otros sitios de Internet. Por ejemplo, aquí, aquí y aquí.

Pero lo importante, quizás la razón de que tanta gente no la use correctamente, es saber cómo leerla. La coma hace nuestras frases ágiles: vuela, salta, corre, va de un sitio a otro sin parar, dejándonos respirar lo justo antes de llegar, exhaustos, al punto del final de la frase. Hay autores que las usan de forma muy particular, como Saramago (o Jack Kerouac, por lo que me han dicho); y otros que no las usan en absoluto o muy poco, como Cormac McArthy. En “No es país para viejos” o “La carretera”, las frases van hilvanadas con una conjunción tras otra (“hizo esto y lo otro y también aquello otro y además …”), y en las más largas parece que vas a ahogarte antes de terminarlas.

Los puntos

Como antes, también hay normas sobre cómo usar los puntos: pueden verlas en Wikipedia, o aquí, o aquí.

A diferencia de la coma, ligera como una pluma, el punto es pesado. Detiene la lectura. La paraliza. La congela. Nos obliga a parar y reflexionar sobre lo que se ha leído. El punto se planta delante nuestra y nos dice: “¡No … puedes … pasar!”. Da un final a la frase; y si es punto y aparte, al párrafo, lo que es todavía más intenso. El punto y seguido es un peso pesado, un Mike Tyson en sus mejores días; pero el punto y aparte es Godzilla, derribando rascacielos a manotazos y sembrando el caos en Tokyo. Sólo tienen que ver el efecto que tiene una frase por sí misma, fuera de cualquier párrafo.

Quizás por esa entidad tan abrumadora que tiene, mucha gente apenas usa puntos al escribir. Enlazan frase tras frase con comas, a veces divagando de tal manera que el principio y el final no tienen que ver. Para esa gente, sólo existen los puntos y apartes: un punto por párrafo es suficiente. Su ímpetu al leer debe ser tan grande que derriban todos los puntos y seguido que se encuentran, convirtiéndolos en tímidas comas que se apartan para dejarlos pasar. O a lo mejor es al revés: les cuesta tanto sobrepasar la barrera representada por un punto, que prefieren usar sólo comas para no cansarse tanto al leer un párrafo.

 Conclusión

Los puntos son sus amigos. No muerden. Úsenlos cuando hace falta. Como regla general, si en una frase han puesto más de tres comas, piensen si realmente hacen falta y no podrían dividir la frase en dos (o más) usando algún punto. La gente que lea lo que escriben (sean posts en Facebook o Twitter, entradas en weblogs o emails) se lo agradecerá. Y yo podré dormir un poco más tranquilo.

 

por xouba el May 07, 2012 12:00 PM

April 30, 2012

V Xornadas Multimedia

Undefined
AdjuntoTamaño
xm.pdf844.18 KB

Dende GPUL comprácenos anunciar a celebración das "V Xornadas Multimedia" o 05 de maio de 2012 na Facultade de Informática da Coruña (Aula de Graos, andar 2 / Salón de Actos, andar 0).

Anexo a este comunicado está o programa do evento. Podedes rexistrarvos no mesmo a través do seguinte enlace, así coma mantervos ó día das novas relacionadas.

 Dende a directiva, agardamos a vosa asistencia, pero sobre todo que o pasedes ben e que lle deades a máxima difusión posible ó evento.

por xuco el April 30, 2012 03:00 PM

April 22, 2012

Announcing Debloat: a new open source project for data compression

I'm happy today because I can finally announce my latest project, Debloat.

Debloat is an Enterprise-ready, extensible Java data compression/decompression framework. It supports many different compression algorithms and data encoding formats that can be plugged in as needed, using simple configuration files written in XML, or programmatically using a very simple, intuitive DSL. Debloat is Open Source and available under the terms of the Apache License 2.0.

The typical problem with data compression algorithms is that the output they produce often consists in opaque binary blobs, which nobody can inspect to see what's inside, and it's very hard to write tools that can operate on those blobs. Debloat solves that by using a new codec that produces easily parsed, human-readable XML files!

For example, assume you would like to compress the following string:

Trololololo lololo lololo.

A regular compression library would produce something that perhaps looks like this:

▼ï◘┘üöO♥♂)╩╧üB♣¶JÅ♂ê╝P!←

You can see that this is a complete opaque bag of random symbols corresponding to various binary values. However, Debloat produces well-formed output that looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<compressedData algorithm="lz77">
  <byte value="84"/>
  <byte value="114"/>
  <byte value="111"/>
  <byte value="108"/>
  <reference distance="2" length="7"/>
  <byte value="32"/>
  <reference distance="7" length="13"/>
  <byte value="46"/>
  <byte value="10"/>
</compressedData>

Undoubtedly, this format has many, many advantages for Java Enterprise applications respect to the opaque binary blob.

I hope you try Debloat out and post your feedback on Google+! I have many ideas for the next few versions of Debloat, hopefully they'll be released soon!

por jacobo el April 22, 2012 10:19 PM

April 16, 2012

XI Xornadas Libres

Undefined
AdjuntoTamaño
Programa XI Xornadas Libres913.36 KB

Dende GPUL comprácenos anunciar a celebración das "XI Xornadas Libres" o 23 e 24 de abril de 2012 na Facultade de Informática da Coruña (Aula de Graos, 2º andar).

Anexo a este comunicado está o programa do evento. Podedes rexistrarvos no mesmo a través do seguinte enlace, así coma mantervos ó día das novas relacionadas.

 Dende a directiva, agardamos a vosa asistencia, pero sobre todo que o pasedes ben e que lle deades a máxima difusión posible ó evento.

ACTUALIZACIÓN:

Debido a motivos de control de calidade das charlas, houbo modificacións importantes no programa das xornadas. Dende GPUL queremos pedir desculpas polas posibles molestias ocasionadas (pois ata o de agora nunca se dera un caso coma este), pero pensamos que é mellor ter poucas charlas e ben, que moitas e mal.

Adxunta a esta nova, tedes o programa actualizado. Así mesmo, tédelo dispoñible no enlace publicado anteriormente.

ACTUALIZACIÓN 2:

Debido a problemas de saúde do poñente, o obradoiro "Gestor de Proyectos. Redmine + GIT + Nginx" queda suspendido. No seu lugar farase unha proxección do documental "Revolution OS".

por xuco el April 16, 2012 05:53 PM

April 14, 2012

Jornada sobre Cloud Computing en la FIC

El próximo lunes 16, desde las 16:00, en el Salón de Actos de la Facultad de Informática se celebrará una interesante jornada sobre el presente y futuro de la nube. Dicho evento está organizado por Amazon Web Services y el Grupo de Arquitectura de Computadores de la FIC. El horario es el que sigue:

16:00 Inicio de la recepción de asistentes
16:30 Inauguración de la Jornada, con
Alberto Valderruten, decano de la Facultade de Informática da Coruña (FIC)
Fernando Suárez, presidente Colegio Profesional de Enxeñaría Informática de Galicia (CPEIG)
Mario Herraiz, Amazon Web Services Iberia Manager


16:35 AWS-IaaS Master Class. Carlos Condé (Amazon Web Services EMEA Solutions Architect)
17:35 The Global Cloud. Telvent
18:00 iBest. El primer core bancario en cloud. Incita
18:15 Modelos de negocio en IaaS. Altia
18:30 Pausa
18:45 High performance computing y big data en AWS. Universidade da Coruña
18:55 Cloud computing tras bambalinas en la web 2.0: el caso Menéame. Ricardo Galli
19:45 Mesa redonda sobre desafíos y oportunidades del Cloud computing
Mario Herraiz, AWS Iberia Manager
Fernando Suárez, CPEIG
Ramón Costa, Director del Data Center de Altia
Isidro Parga, Grandes Cuentas de Tecnologías Plexus
Ricardo Galli. meneame.net
Telvent
Modera: Guillermo López. Universidade da Coruña.

por tsao el April 14, 2012 02:30 AM

Homenaje a Víctor Gulías

Por la página web de la Facultad de Informática, nos enteramos:

A Facultade de Informática da Coruña anuncia a celebración dun acto de homenaxe ao profesor e investigador Víctor M. Gulías Fernández que terá lugar o próximo venres 27 de abril de 2012 ás 19.00 h no salón de actos deste centro.

A homenaxe, que será presidida polo Reitor Mgfco. da UDC, D. Xosé Luís Armesto Barbeito, contará tamén coa presenza de membros das distintas universidades, centros de investigación e empresas do sector das TIC coas que Víctor Gulías mantiña relación.

A Facultade fai estensiva a invitación a calquera persoa que desexe asistir a este acto.

También hemos sabido que el Aula de Grados de la FIC se convertirá en el Aula Victor Gulías, en homenaje al que, como sabéis, también fue socio de GPUL.

Undefined

por tsao el April 14, 2012 02:23 AM

April 12, 2012

IV Obradoiro de Criptografía, Privacidade e Seguridade: petición de contribucións

Undefined

por xuco el April 12, 2012 01:13 PM

April 02, 2012

V Xornadas Multimedia: petición de contribucións

Undefined

por xuco el April 02, 2012 07:12 PM

April 01, 2012

Espadas malditas en la literatura fantástica (y 3)

Tercera y última entrega de esta pequeña serie, en la que abordamos el tema de las espadas malditas: ésas que te permiten cortar a tus enemigos como si fueran de papel, y a cambio lo único que quieren es tu vida (y tu alma).

Hoy vamos a ver el origen de estas espadas, escondido en las brumas de los antiguos cuentos nórdicos.

La espada maldita original

La espada maldita más famosa en la mitología nórdica, merecedora de toda una saga para ella solita, tiene un nombre conocido: Tyrfing.

Efectivamente, es el mismo nombre que la espada de “The Broken Sword”. Poul Anderson tomó prestada la espada de los Edda, los poemas en nórdico antiguo que contienen todo lo que conocemos de la mitología nórdica y germánica.

Curiosidades lingüísticas: Tyrfing significa “el dedo de Tyr“, dios de la guerra (que era manco, para más señas). Este nombre también sirvió para denotar a los Godos, que pasaron al latín como Tervingi. Tyr fue el dios de la guerra durante mucho tiempo en el panteón nórdico, pero posiblemente sus publicistas no eran muy buenos y perdió popularidad en favor de Thor y Odín.

Svafrlami "negociando" con Dyrin y Dvalin

Svafrlami "negociando" con Dyrin y Dvalin

Como dice Bolverk en “The Broken Sword”, Tyrfing fue creada por los enanos Dyrin y Dvalin para Svafrlami. Este señor era un nieto de Odín, y rey de Gardariki. Atrapó a los enanos y les obligó a hacer para él una espada mágica, que nunca fallara un golpe y cortara la piedra y el acero tan fácilmente como la ropa. Los enanos cumplieron, pero también la maldijeron para que cada vez que se desenvainara tuviera que matar a un hombre, para que ninguna de las heridas que causara se pudiera curar, para que fuera la causante de tres grandes males, y para que matara a su propio dueño.

Y así fue: Tyrfing mató a Svafrlami, causó la muerte de un dueño posterior llamado Angantyr, mató a su pariente Hjalmar, causó la muerte de otro pariente de éste y sus dos hijos, y finalmente mató al último en la línea de sucesión de la familia. No hay que bromear con las maldiciones enanas.

Kullervo

Supongo que no les sonará de nada este nombre. A mí no me sonaba hasta hace un tiempo, cuando empecé a bucear en los orígenes de la literatura de Tolkien. Kullervo es el nombre de un personaje trágico de las leyendas finlandesas, y la inspiración explícita para Túrin Turambar. Y sí: él también tenía una espada mágica, aunque no exactamente maldita.

Según el mito, dos hermanos nacieron y fueron separados: Kalervo y Untamo. Crecen, se hacen hombres y se asientan en sitios diferentes con sus familias. Un día se enfrentan por un tema de pesca, y hay una escalada de violencia que degenera en guerra y termina con la tribu de Kalervo exterminada. Pero no todos mueren: la embarazada hija de Kalervo, Untamala, sobrevive y se rinde a Untamo. Pronto da a luz a un niño, Kullervo.

"La maldición de Kullervo", por Akseli Gallen-Kallela

"La maldición de Kullervo", por Akseli Gallen-Kallela

Desde pequeño, Kullervo declara que vengará la muerte de su tribu. Se hace tan pesado que Untamo intenta matarlo hasta tres veces, pero el condenado niño sobrevive gracias a sus latentes poderes mágicos. Tras nuevos intentos de deshacerse de él, lo vende como esclavo y se olvida del tema.

Pero Kullervo sobrevive, y habiéndose hecho mayor se reencuentra con los restos de su familia. Han sobrevivido todos salvo por su hermana pequeña, perdida y dada por muerta. El padre de Kullervo tampoco tiene éxito con la educación de su hijo, que en uno de los viajes que le han encargado encuentra a una pordiosera a la que seduce usando sus artes mágicas. Pero la pordiosera resulta ser su hermana, que se suicida por vergüenza.

Kullervo, avergonzado y dolido, llega a la conclusión de que todos sus problemas son consecuencia del exterminio de su tribu por parte de Untamo, y pide al dios Ukko (el dios del cielo y la tempestad, muy similar a Thor) su espada mágica. Con ella aniquila a toda la tribu de Untamo, a pesar de la insistencia de su familia para que se olvide de la venganza. Pero después de la matanza, Kullervo se encuentra a su familia muerta. Más allá de cualquier consuelo, le pregunta a la espada mágica si le quitará la vida; y ella dice que sí, que es una espada y le da igual a quién tenga que matar.

Conclusión

Con esto habrán visto que tanto Anderson como Tolkien han tomado muchos elementos de la mitología “canónica”. Tolkien es el que sin duda más ha bebido de esa fuente, como atestiguan los cientos (quizás exagere un poco) de nombres sacados sin cambios de los Edda y el Kalevala (el poema épico en el que se recoge la historia de Kullervo). Pero tanto Anderson como Haggard han hecho un trabajo fantástico de adaptación de las leyendas nórdicas al formato de novela actual. Anderson ha integrado todos los elementos de la mitología en una historia nueva, y Haggard escribió “Eric Brighteyes” como si lo hubiera copiado verbatim de un skald de la época.

Lo más interesante para mí son los elementos en común entre Kullervo, un mito del que no había oído hablar, y los protagonistas de Moorcock, Anderson y Tolkien:

Túrin es casi una fotocopia de Kullervo, aunque adornada y tamizada por el arte de Tolkien. Elric tiene bastante de Kullervo, aunque también muchas diferencias. Skafloc no es una copia tan evidente como Túrin, pero también tiene muchos elementos en común.

Tolkien y Anderson reconocen sin ambages su influencia, pero Moorcock dijo en uno de los foros que frecuenta que no conocía el mito de Kullervo cuando escribió la escena final entre Elric y Stormbringer. Es curioso, pero verosímil: dada la personalidad de Stormbringer, con especial apetito por las almas de amigos y parientes, que acabara con su dueño no es más que una forma apropiada de terminar la saga.

Y con esto también termino yo la saga de espadas malditas en la literatura fantástica. Espero que les haya gustado; y si es así, o no, tienen la sección de comentarios para decirlo.

 

por xouba el April 01, 2012 07:00 PM

March 26, 2012

XI Xornadas Libres: petición de contribucións

Undefined

por xuco el March 26, 2012 09:31 AM

March 25, 2012

Espadas malditas en la literatura fantástica (2)

Bienvenidos a la segunda entrega sobre nuestras grandes amigas, las espadas malditas. Nada como una espada poseída por un espíritu maligno o condenada a matar a su portador para alegrarnos el día (como lectores de literatura fantástica, se entiende).

Hoy vamos un poco hacia atrás en el tiempo, saltando del año 1954 en el que habíamos dejado a Poul Anderson y su espada rota al año 1891, año de publicación del libro “Eric Brighteyes”, de Henry Rider Haggard.

Eric Brighteyes

Henry Rider Haggard fue un prolífico autor de fantasía, aunque en su época (siglo XIX) el género todavía no tenía una entidad propia. Sus relatos de aventuras fueron una inspiración para otros grandes autores posteriores, como Robert E. Howard y Edgar Rice Burroughs.

Portada de "Eric Brighteyes"
Portada de “Eric Brighteyes”

En 1891, Haggard ya había publicado sus dos obras más famosas, “Las Minas del Rey Salomón” y “She” (“Ella”). Ambas están basadas en el modelo del explorador europeo que viaja a un reino oculto en el interior de África, continente que estaba empezando a ser descubierto. Aunque sus obras rezuman de los pecados comunes a la literatura victoriana (los protagonistas siempre son europeos, anglosajones y cristianos; y siempre contrasta su civilización con el barbarismo de los nativos que encuentran), son uno de los primeros ejemplos de ficción de entretenimiento puro y duro, y todavía son muy populares.

“Eric Brighteyes” sorprendió a sus lectores por el cambio de tono y ambientación. Es una imitación de historias escandinavas y germánicas conocidas como sögur (plural del islandés saga, “lo que se dice” o “historia, cuento”), ambientadas durante la söguöld o “edad de las sagas” (siglos X-XI), y recogidas por escrito mucho más tarde, en el siglo XIII. Irónicamente, fueron pasadas a pergamino por clérigos cristianos, que no creían en todos aquellos dioses y criaturas que estaban describiendo.

El protagonista es Eric Thorgrimursson, islandés, también llamado “Eric Brighteyes” (Eric “Ojos Brillantes”) por el brillo de sus ojos. A lo largo de la novela, intenta ganarse el amor de Gudruda “The Fair” (Gudruda “la Bella”), que también está enamorada de él. Pero la bruja Swanhild y otro vikingo, Ospakar “Blacktooth”, intentarán impedírselo. Como las sagas tradicionales, el relato es trágico a pesar de los actos heroicos de Eric y sus aliados. La novela no tiene apenas elementos sobrenaturales, aunque los que aparecen son muy importantes para la trama. Están personificados por Swanhild, que usa sus maléficos poderes para impedir que Eric y Gudruda se reunan.

Snorri Sturluson, uno de los que recopilaron las antiguas sagas

Snorri Sturluson, uno de los que recopilaron las antiguas sagas

Y como no podía ser de otra forma, también hay una espada, Whitefire. Su origen es muy antiguo:

“Ay, Asmund, a wondrous blade indeed. There is no other such in the world, for the dwarfs forged it of old, and he shall be unconquered who holds it aloft. This was King Odin’s sword, and it is named Whitefire. Ralph the Red took it from King Eric’s cairn in Norway”

Y aunque no tiene la mala leche de Stormbringer o Tyrfing, las runas inscritas en ella tampoco auguran nada bueno para su portador:

“Whitefire is my name—
Dwarf-folk forged me—
Odin’s sword was I—
Eric’s sword was I—
Eric’s sword shall I be—
And where I fall there he must follow me.”

Como se podrán imaginar, la profecía inscrita en la espada acaba siendo cierta. Y hasta aquí puedo leer para no estropearles el relato.

“Eric Brigheyes” fue una gran influencia en “The Broken Sword”, como verán si leen ambos libros. Pero no vamos a cerrar nuestra saga de espadas malditas aquí. Vamos a dar otro pequeño salto, esta vez hacia adelante, y volver con uno de nuestros autores favoritos: JRR Tolkien. Porque tampoco el Maestro se pudo escapar al atractivo de las espadas malditas.

Túrin Turambar y Gurthang

La historia de Túrin Turambar es un relato que Tolkien empezó a escribir, con posteriores modificaciones, en 1917. Originalmente se llamaba “Turambar and the Foalókë”, y ha sido recogida en “El Silmarillion” (donde la leí yo) y más recientemente en otro libro póstumo llamado “The Children of Húrin”.

Portada de "The Children of Hurin"

Portada de "The Children of Hurin"

Como todas las anteriores, la historia de Túrin es trágica: un príncipe humano alto y apuesto, hijo del gran rey Húrin, perdió a su padre con ocho años, cuando éste fue capturado en la “Batalla de las Lágrimas Innumerables”. Fue adoptado por el rey elfo Thingol (el padre de la famosa Lúthien), pero años más tarde tuvo que huir por causar la muerte de uno de sus consejeros. Su mejor amigo, el elfo Beleg Cúthalion, fue a buscarle y le ayudó. Pero con él llevaba la semilla de su destrucción: Anglachel, la espada negra, hecha por el elfo oscuro Eöl a partir del hierro de un meteorito.

Melian, una maia y esposa de Thingol, ya percibía que aquella espada no era trigo limpio:

There is malice in this sword. The dark heart of the smith still dwells in it. It will not love the hand it serves, neither will it abide with you long.

Y acertó: por accidente, Túrin confundió a Beleg con un enemigo y le mató con aquella espada. Después de haberse recuperado del dolor por haber matado a su mejor amigo, Túrin hizo reforjar la espada y le dio su nombre definitivo: Gurthang, “Hierro de Muerte”.

Tras muchas otras aventuras y desventuras, Túrin mató al dragón Glaurung con Gurthang, pero éste le reveló un gran secreto: Túrin se había casado con Finduilas, que aunque él no lo sabía, era su hermana. Previamente se lo había dicho también a Finduilas, que se suicidó tirándose por un acantilado; y luego Túrin, incapaz de soportar la tristeza, le pidió a Gurthang que le quitara la vida. Lo que, huelga decir, la espada aceptó encantada.

Extrañas coincidencias

¿Les suena esta parte final del diálogo entre Túrin y Gurthang? Debería: pasa lo mismo entre Elric y Stormbringer al final de su saga. ¿Plagio? ¿Es posible que Moorcock, que ha dicho hasta la saciedad que no le gustaba la ficción de Tolkien, le copiara en algo así?

¿Y también encuentran ciertas similitudes con “The Broken Sword”? ¿Es que también Poul Anderson copió el relato no publicado entonces de Tolkien?

No es eso, en realidad. Pero aclararemos el misterio en la siguiente entrega.

 

por xouba el March 25, 2012 07:00 PM

March 18, 2012

Espadas malditas en la literatura fantástica (1)

(esto iba a ser sólo una entrada, pero creció y creció hasta convertirse en otra serie más)

Las espadas son un elemento básico de la literatura de fantasía. No hay otro arma que haya capturado nuestra imaginación como este trozo de metal. Ha dado nombre a todo un género (“Espada y Brujería”), y nuestros antepasados les daban tanta importancia que hasta les ponían nombres. En Wikipedia tienen toda una entrada dedicada a las espadas de ficción, y otra a las espadas históricas.

Una espada en la forja (Fuente: http://www.powning.com)

Una espada en la forja (Fuente: http://www.powning.com/jake)

Si la leen un poco por encima, verán que muchas tienen varias cosas en común: un origen antiquísimo, la capacidad de hacer invencible a su portador, y cierta personalidad más o menos presente. En la literatura fantástica estos poderes se han llevado hasta el extremo, haciendo que haya espadas que tienen tanta o más importancia que sus portadores. Es el caso de Excalibur, y de otra de la que les quiero hablar hoy:Stormbringer, la espada negra, la espada de Elric de Melniboné.

Portadora de Tormentas

“Stormbringer” es un término de ésos que en inglés suenan bien pero que es difícil traducir a castellano sin que pierda toda su gracia. En las novelas de Elric, el rey albino proscrito creado por Michael Moorcock, se ha traducido por “Portadora de Tormentas” y “Tormentosa”. No me gusta ninguna de las dos opciones, porque ninguna es fiel al significado real de ese nombre: “la que trae la tormenta”, la que atrae a la tempestad; un arma que lleva a la perdición tanto a sus enemigos como a su portador.

Elric y Stormbringer, inmortalizados por Michael Whelan

Elric y Stormbringer, inmortalizados por Michael Whelan

Stormbringer aparece desde el principio en la saga de Elric, como metafórico bastón en el que se apoya. Enfermizo, débil y dependiente de drogas y hierbas para sobrevivir, Elric encuentra en la espada un elixir que le da las fuerzas que necesita para vengarse de su primer gran enemigo, Yrkoon. Lo malo es que Stormbringer necesita ser alimentada a base de almas, pero ya se sabe: las mascotas raras necesitan de cuidados especiales.

Stormbringer es el epítome de la tradición de “espadas malditas”. Es la que tiene una personalidad más desarrollada, y la más moderna de todas ellas. Hoy quiero analizar con ustedes de dónde viene esta tradición.

Para eso, lo primero es dar un paso atrás: de los 60 en que fue escrito el primer relato de Elric a una década atrás, los años 50.

La Espada Rota

Año 1954. Marilyn se casa con Joe DiMaggio. Bill Haley & The comets crean el Rock and Roll con “Rock around the clock”. La primera película de Godzilla aparece en Japón. Y en el frente literario, se publican dos libros fundamentales en la literatura actual: “The Lord of the Flies” (“El Señor de las Moscas”), de William Golding, y los dos primeros volúmenes de “El Señor de los Anillos”, de JRR Tolkien.

Pero entre tanto acontecimiento notable, un autor relativamente novel (sólo había publicado tres novelas hasta entonces), Poul Anderson, publica otro libro: “The Broken Sword” (“La Espada Rota”).

Portada de "The Broken Sword"

“The Broken Sword” es un relato moderno inspirado por el estilo y fuentes de las sagas nórdicas. Los Æsir, elfos, trolls y gigantes de estas sagas aparecen en ella. De este libro me quedo con dos cosas: los elfos (que beben de la misma fuente que los de Tolkien, pero son más fieles a los elfos de la tradición nórdica) y, como no, la espada rota que le da título: Tyrfing.

El libro cuenta la historia de Skafloc, un niño humano que es robado por un noble elfo, Imric. Como es tradición en estos casos, Imric deja en su lugar un vástago suyo, Valgard, que crecerá idéntico a Skafloc en apariencia pero no en naturaleza (lo que en inglés se llama unchangeling). A lo largo del libro, Skafloc y Valgard crecen en fuerza y fama, llevando a cabo diversas proezas, hasta llegar a la trágica confrontación final.

Tyrfing es un regalo de los Æsir (los dioses nórdicos, como Odín y Thor) para Skafloc. Es Bolverk, el jotun (gigante) que la forjó, quien habla de su naturaleza y poderes:

“Aye,” he breathed. “Well I remember this blade. Me it was whose help Dyrin and Dvalin besought, when they must make such a sword as this to ransom themselves from Svafrlami but would also have that it be their revenge on him. We forged ice and death and storm into it, mighty runes and spells, a living will to harm.” He grinned. “Many warriors have owned this sword, because it brings victory. Naught is there on which it does not bite, nor does it ever grow dull of edge. Venom is in the steel, and wounds it gives cannot be healed by leechcraft or magic or prayer. Yet this is the curse on it: that every time it is drawn it must drink blood, and in the end, somehow, it will be the bane of him who wields it.”

Por cierto, me gustaría que se fijaran en esos dos nombres que salen ahí: Dyrin y Dvalin. Escrito de otra forma, Durin y Dwalin. Seguro que les suenan.

Son obvias las fuentes de esta novela, pero hay otra anterior que sentó las bases del estilo “pseudo-vikingo” en el que está escrito y que fue una de sus principales influencias. Para conocerla damos otro salto atrás: al año 1891, en el que Henry Rider Haggard publica una novela llamada “Eric Brighteyes”.

Pero eso será dentro de un par de semanas, en la siguiente entrega de esta serie. ¡Nos vemos!

 

por xouba el March 18, 2012 06:00 PM

March 15, 2012

Guaranteed compression

A few eons ago I was a member of a network called Fidonet, which had an echoarea (the equivalent of a mailing list) dedicated to file compressors. As I was fascinated by them at the time, I was naturally a subscriber.

Every once in a while someone would come in and ask if there could be a compressor that were guaranteed to compress the input data by at least one byte. The response was invariably that no, there couldn't be one, and the argument was based on the pigeonhole principle: if there were such a compressor, you could use it to compress some data, then use it on the compressed data to compress it even more, and so on until you are left with a byte, which would mean that there are only 256 possible distinct files in all of the Universe. This is clearly absurd, so there can't be such a compressor.

While I agree with the conclusion, I find the argument unsound, so let's explore it with the help of a close cousin of this compressor everyone asked about.

There is a compressor that is guaranteed to either produce an output the same size of the input, or produce an output one bit smaller than the input. This compressor simply interprets the input data as a big binary number and subtracts 2 from it. The corresponding decompressor is also very easy: just interpret the input data as a big binary number and add 2 to it.

It is easy to prove that the compressor will always produce an output file that is either the same number of bits as the input file, or 1 bit smaller. Therefore, you can use the compressor, get an output file, use the compressor on the output file, get a new output file, use the compressor on the new output file, and so on until you get a file that only contains 1 bit that can be 0 or 1. According to the argument above, this would mean that only two documents exist in the whole Universe; however this is clearly not true, so what's the catch?

The catch is that we can't reconstruct the original document with the compressor's output alone (the 0 or 1 bit). We need more information to do that: we need to know how many times we applied the compressor so we can apply the decompressor an equal number of times to reconstruct the original file. So let's add the number of compression operations to the last compressed file. How big is the resulting file?

The compressor works by subtracting 2 from the number we interpret the input file as. If I apply the compressor once, I will have subtracted 2; if I apply it twice, I will have subtracted 4 from the original file; if I apply it 1000 times I will have subtracted 2000. To get a single bit I need to apply the compressor enough times that the original file minus twice the number of applications is 0 or 1. That means that, if I call the original file "i", the ultimately compressed bit "c" and the number of compressions "n", I have that i=2*n+c.

Therefore, to compress the input file i you will need n operations, and n is one half of i. You will now need to append the number n to the output of the last compression step to be able to reconstruct the original file. The input file i has b bytes, and n is one half of i, so n has b-1 bytes. Therefore, you will have to store 1 bit for the compressed data, plus b-1 bits for n, which amounts to b, which is the length of the original file!

So yes, while it is not true that being able to reduce a file to 1 bit or 1 byte by successive compressions means that there are only 2 or 256 files in the Universe, it is still true that doing so will be of no benefit.

Comments are welcome — on the Google+ post.

por jacobo el March 15, 2012 04:43 PM

March 10, 2012

La carta de presentación

Ahora que os he mostrado cómo es un currículum para EEUU/UK, llega el momento que todos estábais esperando: cómo escribir la carta de presentación ("cover letter", en inglés).

Como mencioné antes, deberíais adjuntar una carta de presentación cada vez que enviéis un currículum. No confundáis la carta de presentación con una carta de recomendación: la carta de presentación la escribís vosotros mismos, y sirve para decirle a la persona que reciba el currículum por qué deberían tener en cuenta vuestra candidatura.

A grandes rasgos, una carta de presentación tiene una extensión de una carilla como máximo y consta de tres partes: a qué puesto optáis, por qué sois perfectos para el puesto, y por qué queréis el puesto. La carta de presentación es, como su propio nombre indica, una carta, así que no pongáis encabezados y listas de puntos y negritas y cosas de esas.

Si estáis enviando el currículum por correo, adjuntad la carta de presentación en el mismo sobre y no la grapéis al currículum. Si lo estáis enviando por email, mandad el currículum en un fichero adjunto y usad el cuerpo del email para la carta de presentación. Si podéis averiguar quién recibirá la carta de presentación será mucho mejor si la encabezáis "Dear Mr. Smith" que si la encabezáis "Dear Sir/Madam". Por cierto, aseguraos de utilizar una dirección de email "seria"; aunque tengáis que emplear webmails gratuitos, es mejor usar "francisco.paredes@gmail.com" que "erpisha23@gmail.com", y mejor "carolinacf@hotmail.com" que "preziossa89@hotmail.com".

Antes de enseñaros un ejemplo de carta de presentación, permitidme reiteraros que el objetivo de la carta de presentación es que la persona que recibe el currículum sepa que no va a perder su tiempo leyendo vuestro currículum, y para eso deberéis hacer énfasis en los beneficios que proporcionará a la empresa contrataros. Al fin y al cabo, las empresas no contratan gente para tener más amigos, sino para poder ganar más dinero, así que tenéis que "atacar" por ese lado.

(De hecho, si os fijáis en el currículum de ejemplo, veréis que se sigue la misma filosofía a la hora de describir la experiencia laboral. El trabajador del ejemplo describe cómo ha rescatado un proyecto o cómo ha reducido costes el 20% o cómo ha dirigido un equipo, no cómo ha formado parte de un equipo formado para estudiar la posibilidad de implementar una recomendación para un proyecto exploratorio).

Y una última reflexión: para variar, estos consejos para la carta de presentación no son sólo válidos para optar a empleos en EEUU o el Reino Unido. Si preguntáis a alguien que trabaje en RR.HH. de una empresa española os dirá que todos los días les llegan un montón de currículums "desnudos" o con cartas de presentación poco atractivas. Seguramente, si comenzáis a enviar vuestros CV acompañados de cartas de presentación en este estilo, vuestros CV destacarán más. Haced la prueba y decidme si resulta :-)

Dicho todo esto, en el enlace de "leer más" podréis ver una carta de presentación, enviada por correo acompañando al currículum de ejemplo. El autor quiere trabajar de ingeniero jefe de software en una empresa británica llamada "Super Company".

Tened en cuenta que este ejemplo es algo más corto que una carta de presentación normal porque, honestamente, tener que inventarse todos los detalles es un peñazo :) Pero bueno, podéis utilizarlo para haceros una idea de qué tipo de cosas se dicen en una carta de presentación; cuando tengáis que escribir la vuestra, simplemente buscad "cover letter example" en Google y usad lo que os salga para inspiraros.

Podéis escribir vuestros comentarios en Google+.

read more

por jacobo el March 10, 2012 08:21 PM

March 08, 2012

¿Se convertirá el ipad en un producto elitista?

Ayer se presentó el nuevo ipad. Cientos de revisiones en webs especializadas y blogs hablarán sobre sus nuevas funcionalidades, por ejemplo xataka.


Para mí lo interesante del tema es que el mercado de los tablets, que inventó apple con el ipad se va a estabilizar. El ipad nuevo sólo es una continuación de lo ya expuesto. Impresiona la resolución y calidad de su pantalla, los cuatro cores y lte pero esos cambios no van a mejorar la vida de la amplia mayoría de sus usuarios actuales.
Por decirlo claramente, si mi madre tuviera que comprarse un ipad le diría que se comprara el ipad 2 porque supone un ahorro de dinero y no va a hacer nada en el 3 que no pueda hacer con el 2.
El ipad es un producto líder y sin competencia real hasta la fecha por muchas razones. La más básica es que lo que hace lo hace mejor que la competencia (hardware y software mejor, android le falta todavía que hacer). Hay otras razones secundarias: la exclusividad que aporta la marca apple, integración con el resto de cacharros apple (ipod, iphone, ...), app store, itunes, ...
Ahora la cuestión abierta es que esta generación de ipad no hará nada "revolucionario" que no puedan hacer los rivales android. Android tendrá un año para evolucionar e igualar usabilidad y hardware del ipad y aún encima bajarán el precio y la pregunta será si a partir del año que viene el ipad empezará a bajar cuota de mercado hasta alcanzar porcentajes típicos de sus productos (que suelen ser elitistas, nunca dirigidos a la mayoría).
Un "frase común" de "el ipad es el mejor pero con un android haces lo mismo y te ahorras dinero" sería una señal de ese fenómeno. Sería lo mismo que ocurre con ordenadores apple e ibm pc.

por Juan José Iglesias González (noreply@blogger.com) el March 08, 2012 09:15 AM

March 03, 2012

Un currículum de ejemplo para EEUU, Reino Unido o Irlanda.

Hace poco más de un año escribí una historia sobre cómo redactar un currículum para enviarlo a una empresa de EEUU, Reino Unido o Irlanda (aprovechando que los formatos para los tres países eran casi iguales). Lo que ese artículo no incluía eran ejemplos, y alguien me los ha pedido, así que voy a poner aquí un ejemplo recién inventado de résumé para el Reino Unido. Como comenté en el artículo anterior, el résumé americano sería prácticamente igual, salvo que en lugar de un "Profile" tendría unos "Objectives".

Espero que os sirva para redactar vuestro propio currículum. Recordad que, cuando lo enviéis, deberíais acompañarlo de una carta de presentación, de la que os daré un ejemplo otro día.

Podéis poner vuestros comentarios en Google+, que aquí siempre se me echan los spammers encima cada vez que abro una nueva historia con comentarios.

read more

por jacobo el March 03, 2012 09:21 PM

March 02, 2012

Cómo hacer un mapa con “planet” y Gimp/Inkscape (y 6)

¡Albricias, hemos llegado a la última entrega! No mientan, lo estaban deseando. Yo también, para qué mentir. Escribir entradas como ésta es entretenido, pero a la larga se hace cansado. Sobre todo, porque no he recibido ni un triste comentario. ¡Avergüéncense!

Recapitulando

La imagen de la que partíamos era ésta:

Mapa con nombres de grandes y pequeñas regiones

 

Y la imagen final a la que vamos a llegar es ésta:

Mapa final, con todos los nombres y efectos

Mapa final, con todos los nombres y efectos

Les pongo ya la imagen final porque ha pasado un tiempo desde que escribí la parte anterior de la serie, y no estoy seguro de recordar todo lo que hice para llegar aquí. Ups. No podré darles todos los pasos, pero sí la mayoría.

Ensuciando el mapa

Aunque parezca mentira, una vez que tenemos el primer mapa que les puse en esta entrada, lo único que queda es estropearlo para que parezca un pergamino viejo y gastado. Que es mucho más difícil de hacer que de decir, claro.

El primer paso es manchar el mapa. Para eso vamos a usar el filtro de generar plasmas de Gimp (“Filtros” -> “Renderizado” -> “Nubes” -> “Plasma”) sobre una capa en blanco que colocaremos, más o menos, encima de las que teníamos con los colores de la tierra y el mar. Luego le quitaremos el color (“Colores” -> “Desaturar”) y creamos un mapa de relieve con ella en una capa superior (“Filtros” -> “Mapa” -> “Mapa de relieve”). Ambas capas las pondremos en modo “Solapar”, ajustando su opacidad según nos parezca. A veces se pierde intensidad con el modo “Solapar”, y lo que hago es crear una copia de la capa y solaparla también. Pueden ver el resultado aquí:

Mapa "manchado"

Mapa "manchado"

(nótese que cambié el color del agua del mar desde el mapa anterior: ahora es #add7d0)

A continuación, vamos a simular el sangrado de la tinta. Aunque el ordenador nos permite hacer trazos perfectos, la tinta sobre el papel no es tan precisa: se filtra a los poros del papel y se difumina, que es lo que se llama “sangrado”. Para imitarlo, vamos a oscurecer los bordes del mapa y los contornos de los ríos.

Para esta parte vamos a usar la herramienta de seleccionar colores y trabajar en las capas de bordes del mapa y de ríos. En cada una seleccionaremos las líneas sobre las que vamos a trabajar, y luego ampliaremos la selección con la opción “Agrandar” (dentro del menú “Seleccionar”) unos 5 pixels. Crearemos una nueva capa (“Sangrado de bordes” y “Sangrado de ríos”, respectivamente) y en ella rellenaremos la selección de color negro. Pondremos esta capa en modo “Solapar”, y ajustaremos otra vez la opacidad. Este ciclo de solapar y ajustar opacidad se repite mucho en este tipo de trabajo, como ya habrán visto.

Ahora aplicaremos una máscara a la capa de “Sangrado de bordes”. Tal como está ahora, el borde se oscurece por ambos lados; y aunque eso nos viene bien para los ríos, no queda tan bien en los bordes de los continentes. Aplicando la máscara de “Tierra” a esta capa conseguiremos que sólo se vea la parte interior.

Algo que vi en los foros de Cartographers’ Guild es que mucha gente aplica también un ligero brillo a los bordes de los continentes, como contraste al sangrado interior que acabamos de hacer. En este mapa también está aplicado, y para conseguirlo hice lo mismo que para el sangrado de los bordes pero con dos diferencias: usé un color claro para el relleno, y en lugar de la máscara de “Tierra” usé la de “Mar”, que sólo deja ver la parte exterior de los bordes.

Without further ado, he aquí el resultado:

Mapa con sangrado de tinta y brillo del borde de los continentes

Mapa con sangrado de tinta y brillo del borde de los continentes

Para terminar, vamos a darle al mapa una textura apergaminada. Contamos para ello con el filtro “Aplicar lienzo” (dentro de “Filtros” -> “Artísticos”) de Gimp. Como además queremos darle cierto color antiguo, vamos a aplicárselo a una capa con un color: escogemos uno adecuado en la paleta (#815f00, en mi caso), creamos una capa de ese color por encima de todas las demás, y usamos el filtro de “Aplicar lienzo”. Como todavía se ve demasiado del color original, he creado una capa por encima del pergamino con un color marrón algo oscuro (#614f16), y la he puesto en modo “Color”.

Retoques finales

En teoría, con los pasos anteriores ya está terminado el mapa. Pero luego, para mí al menos, es imposible no pasar un rato revisándolo y añadiendo alguna cosa más: una capa más de textura, diferentes ajustes de opacidad, algo de “blur” en algún sitio, etc. Eso ya depende mucho de las obsesiones de cada uno, y del tiempo y ganas de las que se dispongan.

Otro retoque final son los bordes oscuros que ven alrededor de los continentes. El término técnico es woodcut, y hay muchas formas de hacerlos. Yo lo hice seleccionando los continentes, ampliando la selección varias veces (una por nivel de woodcut) y usando la opción de “Seleccionar” -> “Borde” para rellenarlos.

También he visto gente que añade líneas cartográficas, rosas de los vientos, un recuadro con el título del mapa (como en los mapas antiguos), y muchas cosas más. Todo está en Cartographers’ Guild, que es donde se junta la gente que más sabe de estas cosas. Si tienen dudas, pasen por allí.

¡Se acabó!

Y con esto doy por terminada la serie. Es la que más tiempo me ha llevado de todo lo que he escrito para Retrincos, incluyendo sus dos encarnaciones anteriores. Me ha gustado, pero da bastante trabajo.

Espero que a los del otro lado del monitor les haya gustado también, o al menos les haya parecido interesante. Siempre se aprenden cosas, aunque entiendo que no todo el mundo se dedique a crear mundos imaginarios y luego hacer mapas para ellos (o al revés). Hay mucho que aprender de Gimp e Inkscape, y esto es una buena excusa para practicarlo.

 

por xouba el March 02, 2012 12:00 PM

February 25, 2012

FLOSS your music: Atte André Jensen

There are many times when I listen to some track by a FLOSS musician and I find it so good that I wonder how it’s possible that the world doesn’t know about it. That’s what made me start this feature altogether.

And that’s what I thought when I listened to “Uden dig”, by Atte André Jensen (aka Modlys). It could be making it big in any mainstream radio, but alas, it seems that Atte still needs a job like any regular guy. That made him a perfect candidate for this installment of “FLOSS your music”.

Quick bio

Atte was born in 1970 in a small town outside of Aalborg, Denmark. Since he was a child he listened to a lot of radio, but the epiphany didn’t come until he was 13, when he discovered that he could make his own remixes recording between two tape recorders. His first musical projects were remixes of the likes of Kraftwerk, Africa Bambata and Herbie Hancock’s “Future shock”, the kind of hiphop that was played in the radio at those times.

Then came the piano. First, a friend introduced him to boogie-woogie playing; and afterwards, his family inherited his grandmother’s upright piano, which he played all the time. He also joined a rock band in the local church, and discovered gospel in the form of “Carola & Per-Erik I Rättviks Kyrka”. His high school was marked by a false start in formal piano training and belonging to various bands, which led him into the next stop in his musical education: Jazz.

Jazz ate Atte’s heart, and he ended up studying jazz piano at the Royal Conservatory in the Hague, with Frans Elsen, “an amazing bebop pianist”, for four years. When he came back from Holland, in 2003, he tried to revive bebop piano in Copenhagen. But it was to no avail: jazz jobs were rare, and not very well paid. So, to make ends meet, he started performing as a keyboard player in other kinds of bands: gospel, reggael, soul, rock and pop.

He’s got a wife and two kids, and during the day he teaches piano, theory, improvisation, combo and electronic music in two music schools. When the night comes, he transforms into Modlys, the electronic musician that we’re featuring today.

Heresy

There were two things that made Atte a good fit for “FLOSS your music”: first, as previously said, his music (and the track “Uden dig”, in particular); and second, that he used FLOSS … and left it. So, yes: we’re featuring an “heretic” this time.

Atte started using FLOSS, but struggled to make it work:
The first modlys album was made with FLOSS, mostly Ardour, Muse, Specimen, ZynAddsubfx, ams, pd and phasex + plugins. I found that lash (or what the name was at that time) wasn’t really working reliably. So to load a song I wrote a bash script that simply loaded all relevant files in the correct applications. All audio was routed through ardour where audio recordings (vocals and viola) were coming from. It loaded the project correctly 95% of the time.

Unfortunately I found that this setup was hard do keep up-to-date. If I upgraded one application, “something” would go wrong and send me back to testing-mode, looking for the problem. This was fun in the beginning, but not in the long run.
So, for his second album, he looked for something better. Something that:
  • Was able to handle the whole process, including midi-recording, synths (and especially samples), audio-recording, fx-plugins in one application with greater integration.
  • Would still allow him to use external stuff over jack.
  • Was more stable than his old setup, and that he could expect to load something old in years later and find it like he left it.
This led him to energyXT, and after a while, to renoise. This is no DAW like Ardour, but more like a tracker (with the typical vertical timeline sequencer), and Atte was a bit skeptic at first that it could fit the bill. But it did: it’s extremely efficient CPU wise, and very stable (“It simply never crashed!”).

renoise is not Open Source, but works for Atte better than his previous FLOSS-based setup. Since Modlys is very sample based, he’s able to work more precisely; and it’s possible to take it on stage, making the preparing of live gigs much easier.

One of the things he likes better about renoise is the fine control over samples. In his words:
The (newly renamed) Sxx (trigger at slice) and Rxx (retrigger) are really powerful commands that make it easy to reshuffle a breakbeat, for instance. I use beats quite a lot, but I don’t think there’s one example of a beat just playing straight through. So ranging from simple rearranging the individual beats to more extreme breakcore-ish manipulations (“fodspor”, “til kernen” or “det nu/remix”) it easy to handle esp with Sxx.
But even though he’s not using FLOSS right now, that doesn’t mean he believes FLOSS is not ready for music making. He just believes that there are gaps that need to be filled, specially in the realm of session handling:
The great idea of doing it the unix-way (lots of small tools, each doing one job, the user interconnecting them for his exact purpose) means that something like session handling is the most important thing IMHO. I don’t know the current state of lash (or similar project), but that’s really paramount in my view. Also the stability of applications should be improved: some developers are really good at this, but if just one application in a FLOSS setup blows up, the whole setup blows up.

Meet CHUCK

Before he turned to renoise, Atte had an assistant for his live gigs. This assistant didn’t need to be paid. Didn’t need food, either. He wasn’t unionized, worked overtime happily and never, ever was late for work. His name is CHUCK, an audio programming language that Atte used to create a “virtual assistant DJ” for his first gigs.

CHUCK is an audio programming language for real-time synthesis, composition, performance, and analysis. It’s fully supported on MacOS X, Windows and Linux. Atte tried to build something with CHUCK that he could jam with live, change the form of the song, change the mood, loop a part and solo over that. How did he do that?
I had knobs on my BCR2000 assigned to stuff like “syncopation”. The music was actually a lot of programs running in parallel, one for each instrument (like hi-hat or bass) and they would each make semi-random decisions on the position of the knobs. So if the syncopation knob was all the way to the left the hi-hat would be playing mostly down beats or accentuating the downbeats, whereas if the syncopation knob was all the way to the right it would accentuate the off beats.
 Alas, the same problems that he had with FLOSS in general were present in this setup: it was cool and fun to play live, but as CHUCK’s audio engine is not too fast, Atte hit a wall CPU-wise that he couldn’t cope with.

The workflow

If you listen to a lot of Modlys’ music, you’ll see that the track we’re featuring is quite different from the rest of his work. Most of his music is quite experimental: sweeping ambiental brushes flowing all along the song, deep pulsing grooves, sonic atmospheres that seem to fill with mist the room you’re in. This kind of free-form and experimental music needs an approach different from mainstream A-A-B-A.
I usually start with some atmosphere. I then pretty early decide how the general feel should be. On more energetic tracks I then usually add bass and drums. Modlys is the only really loop-based music I work with, and I’m still learning how to do that properly. One thing I’ve learned, is that I need to get away from a short loop pretty quickly and arrange something in the larger form, otherwise my ears get tired and I have trouble hearing anything fresh. So I copy my loop to four minutes or so, and start thinking about contrast, should there be another part, Some tracks have more of a pop structure, verse-bridge-chorus kinda thing, those are usually worked out on my acoustic piano.
Atte also knows how to find inspiration:
A thing I really like to do is to surf my sample library and just go with the flow. Load something that sounds nice and play it back without knowing which key it’s in.
For the record, I have done this too in the past, when I used Acid Music (for Windows). It’s one of the most gratifying things in music: you lay loop over loop and come up with unexpected results. It’s also how Atte sees it:
That way I can get away from the theory and just go by ear. It’s also a refreshing way of composing, that every idea doesn’t have to come from me, but the computer can inspire me, which often leads to tracks I wouldn’t have thought of myself.

“Uden Dig”

I’ve raved at the beginning of this post about “Uden Dig” (“Without you”), but let me say it again: it’s a wonderful track. Tell someone that it’s something off the latest LP by any famous disco-diva, slap on it a fake cover with a scantily clad model, and you’ll be believed thoroughly.

“Uden dig” was created for rpm2010, and event prompting to write, record and produce an entire album during february of that year. The result was the album “Flow”, and “Uden dig” was the first song made. The original idea was to make a “4-on-the-floor” tune, which is not something Atte is too fond of; but he kept working on it, liked the A minor to C minor modulation in the chorus, and got it ready on time. There are several remixes of “Uden dig”, of which “Karriere remix” is the original one. They are featured in another Modlys release, “Remixes”.

Conclusion

Sorry for the delay, faithful readers (you two). No matter how late I was in the previous feature, I’ve just proved that I can make it even worse. Go me!

It was very interesting to talk with Atte, specially the bits about how and why he’s not using Ardour and family, which is the default option for everything Linux audio-related. Besides, it’s curious that someone trained and in love with Jazz makes electronic music in his spare time. I guess you need to do something different to your job, and in Atte’s case this meant getting away of Jazz and classical music for a while.

Next installment will be about a totally different kind of music and musician: Robert Jonsson and his “Charles Darwin Evolution Experience”, high-octaned stoner rock. See you there!

el February 25, 2012 10:56 PM

February 17, 2012

Emigrar sí, pero con sentidiño

Vais a hacer que me sienta culpable, cojones. Que resulta que bastante gente se pira con lo puesto a Noruega, sin un euro en el bolsillo, sin conocer a nadie, sin trabajo ya buscado y sin hablar una palabra de noruego, y resulta que se mueren de frío porque no tienen casa, ni trabajo, ni saben hacer papeleos, ni saben encontrar nada, etc. Qué cosa más rara.

Como he hecho mi parte para animaros a que salgáis del país, ampliéis horizontes, tengáis experiencias en el extranjero, etc., etc., y antes de que venga nadie a acusarme de haberle pintado todo de color de rosa, dejadme deciros algunas verdades sobre la emigración.

En primer lugar, emigrar cuesta dinero. Para empezar está el coste del avión. Cuando queráis alquilar piso, tendréis que depositar la fianza, que puede ser de varios meses de alquiler. Mientras no encontréis el piso, sin embargo, tendréis que pagar un alojamiento temporal; posiblemente varios meses, que si encontrar un piso asequible en una buena ubicación es difícil, conseguir que se lo alquilen a un extranjero recién llegado sin referencias ni historial crediticio es más difícil todavía. Y, por supuesto, tened en cuenta que tendréis que hacer frente a muchos de estos gastos sin tener ingresos, ya que la mayoría de los empleos pagan a mes vencido. O sea, que si ya llegáis allí con un contrato hecho, no cobraréis hasta el fin de mes. Si llegáis sin contrato, tardaréis en cobrar lo que tardéis en encontrar empleo más un mes.

En segundo lugar, cada país es diferente a los demás, y tiene sus propias costumbres, leyes, tradiciones, e idiosincrasias en general. En Francia, el Hôtel de Ville no es para dormir. En EEUU, el pan, los huevos y la leche se compran en la farmacia. En el Reino Unido no te sirven en la mesa de un pub. Si no sabes esas cosas, o si no estás acompañado de alguien que las sepa, lo vas a pasar un poco mal. Y si no hablas el idioma local, ya no digamos.

El idioma es otro asunto que trae tela. En muchos países hay mucha gente que sabe hablar inglés, pero eso no significa que todo el mundo hable inglés, y mucho menos que sea perfectamente posible desenvolverse hablando sólo inglés. Para empezar, los papeles del Estado vendrán todos en el idioma local (buena suerte rellenando la declaración de la renta en islandés), al igual que los letreritos del supermercado o las indicaciones en la estación de trenes. En segundo lugar, no puedes esperar que la cajera del supermercado o el funcionario del ayuntamiento hablen inglés a un nivel adecuado para comunicarse con efectividad. Y si tú mismo no hablas inglés o hablas "inglés medio", apaga y vámonos.

Por cierto, si esperas ganarte la vida en el extranjero, espero que seas un trabajador cualificado, porque estoy seguro de que en Noruega y en cualquier otro sitio ya les sobran los trabajadores no cualificados, y no tienen la más mínima intención de contratar de reponedor a un extranjero que no habla una sola palabra de noruego cuando pueden contratar a Karl Petersson, el hijo de la vecina. Y tened cuidado, que os sorprendería saber cuántas profesiones no valen mucho fuera de España. En España las casas son de ladrillo. ¿Sabéis de qué son en Noruega? De madera. ¿Qué puede hacer en Noruega un albañil español?

Y esto es lo que quería deciros. No quiero desanimaros, pero quiero que seáis realistas y sepáis a lo que os enfrentáis cuando os vais del país, que aunque es una experiencia tremendamente enriquecedora (en varios sentidos), no todo es tan fácil y bonito como nos lo ponen en ciertos programas de TV, y no es cuestión de ir a lo loco y sin haberse informado y preparado de antemano.

por jacobo el February 17, 2012 11:22 PM

¿Quién teme al systemd feroz?

(no era éste el artículo que quería publicar como primero de Linux Técnico, pero es mejor que seguir otros seis meses sólo con el artículo de bienvenida :-))

(pequeña actualización: hice este artículo en Google Docs y luego corté y pegué aquí, y eso ha cambiado un poco el formato del texto; estoy arreglándolo, y si ven algo extraño que no habían visto antes, posiblemente sea por eso; si el artículo aparece de nuevo en su lector RSS, también será por eso; disculpas por adelantado)
Aprendimos que en UNIX init es el PID 1, el proceso que lanza todos los demás. Y fue así durante mucho tiempo, pero apareció Ubuntu y, entre otras herejías (como Unity), decidió programar su propio init y llamarle upstart. Por si no fuera suficiente, ahora hay otro contendiente, systemd. Y entre otras cosas, quiere quitarnos a syslog.


Un proceso para gobernarlos a todos

En los viejos tiempos de los UNIXes tradicionales, no había discusión: el kernel arrancaba y lanzaba init, el proceso padre de todos los procesos, el demiurgo del sistema. Luego init se las componía por su cuenta para lanzar el resto de procesos.

Ya en aquellos tiempos había desacuerdos sobre cómo hacer esto. En concreto, las escuelas de BSD y System V defendían formas distintas de lanzar los procesos en el arranque. Si sólo has usado Linux, sólo habrás usado algo tipo BSD si llegaste a probar Slackware o Arch Linux (Gentoo, para variar, usa algo que no es ni BSD ni System V); si no, todo lo que has visto es System V (o SysV, para abreviar).

La forma en que arranca el sistema BSD es la más primitiva y menos flexible, y también la primera en aparecer. Todo se lanza desde /etc/rc, un script shell. Ahí pones todo lo que quieres que haga el sistema al arrancar, como en el AUTOEXEC.BAT de MS-DOS. Los BSDs han parcheado el sistema inventándose un /etc/rc.conf en el que hay variables que definen qué es lo que se arranca y lo que no, para que no haya que tocar /etc/rc. ¿Y sabes esa cosa tan moderna de los runlevels, que tienen los UNIX desde hace veinte años? No existe en este tipo de arranque. Es un concepto SysV, pero tan extendido que ya se acepta como estándar.

En SysV, el proceso init tiene un fichero de configuración: /etc/inittab. Por qué ese fichero tiene un formato tan extraño y críptico no lo sé, pero es una de esas herencias molestas que nos han tocado. En ese fichero se definen varios runlevels, niveles de ejecución que corresponden a las distintas fases por las que pasa el sistema: runlevel 1 (o “S”, de single user) es el arranque, y de ahí hacia arriba se pasa por varios runlevels hasta llegar al runlevel 6, que es un reinicio. El runlevel 0 es para apagar el sistema. De los runlevels entre el 1 y el 6, el 4 no se usa, y las distribuciones adoptan como el runlevel “normal” el 2, el 3 o el 5. No hay un estándar: Debian usa el 2, y Red Hat y derivadas usan cada uno para algo diferente (2 para arranque multiusuario sin red, 3 para arranque multiusuario con red pero sin interfaz gráfico, y 5 para el escritorio full blown).

Además, para SysV se inventó el directorio /etc/init.d, donde los servicios del sistema tienen un script de control que se ejecuta de forma diferente en cada runlevel. Para eso, hay directorios /etc/rcX.d, donde “X” es el número del runlevel, y en ellos están enlazados los scripts de /etc/init.d. Cada vez que se entra a un nuevo runlevel, se ejecutan los scripts del directorio correspondiente con un argumento “start” o “stop”, dependiendo del runlevel (“start” para 2, 3 y 5; “stop” para 0 y 6).

En ambos casos es el mismo proceso init el que inicia todo. De hecho, hasta hace unos pocos años el código fuente de init era el mismo en todas las distribuciones (el init de GNU). Hasta que alguien suficientemente atrevido y sin respeto por las tradiciones decidió que era hora de hacer algún cambio.

upstart
Hubo otros antes de upstart, como initng, pero éste fue el único suficientemente popular como para significar algo en el mundo Linux. Creado por y para Ubuntu, viene de serie desde la versión 6.10. Al principio era una sustitución pura y dura de init, que hacía exactamente lo mismo que el tradicional, sin afectar al resto del sistema. Pero en la versión 9.10 cambiaron las cosas, y se empezó a usar de forma nativa.

Si hacemos un “ps aux” en una Ubuntu moderna no veremos un proceso “upstart”, sino un “/sbin/init”, como en cualquier otra distribución. Pero si buscamos ese fichero en los paquetes del sistema, veremos que viene en el paquete upstart:

robe@raven:~$ dpkg -S /sbin/init
upstart: /sbin/init
Y sobre todo, notaremos una gran diferencia:
robe@raven:~$ ls /etc/inittab
ls: cannot access /etc/inittab: No such file or directory
Como decía la canción, “se fue, se fue”. Con upstart ya no existe /etc/inittab, sino un directorio /etc/init en el que hay un fichero de configuración (“*.conf”) por cada servicio del sistema. Y son muchos: aparte de los procesos típicos, upstart también se encarga de levantar la red, montar los discos, activar las TTYs y configurar la consola. En Ubuntu 11.10 muchos programas ya han migrado su script en /etc/init.d a un fichero de configuración de upstart, y es de esperar que en algún momento /etc/init.d y los directorios /etc/rcX.d desaparezcan.

Como los ficheros de /etc/init.d dejan de servir, para lanzar, parar y consultar el estado de los servicios hay tres nuevos comandos: start, stop y status. Así como te lo cuento. Para lanzar ssh, harías:

start ssh
Y para ver si está funcionando:
robe@raven:~$ status ssh
ssh start/running, process 1322
Fundamental en el diseño de upstart son los eventos. A diferencia de init, que lanzaba los procesos siguiendo una secuencia prefijada en /etc/inittab, upstart reacciona a eventos que genera el sistema o él mismo. Todos los ficheros de configuración de upstart contienen una línea “start on” y “stop on”, seguida de uno o varios eventos del sistema. Por ejemplo, /etc/init/mountall.conf viene con éstas:
start on startup
stop on starting rcS
Que significa: empieza cuando detectes el evento “startup”, y detente cuando detectes que está lanzándose el proceso rcS. upstart se basa en estas líneas para determinar las dependencias entre servicios, y paraleliza el arranque todo lo que puede. Por eso, al menos durante un tiempo, Ubuntu fue la distribución con arranque más rápido.

Pero no sólo se usan eventos durante el arranque y la parada del sistema. Puedes generar un evento en cualquier momento, usando “initctl emit <nombre del evento>”, y crear un fichero de generación que haga cualquier cosa para reaccionar a él.

systemd
Y cuando estábamos empezando a aceptar que upstart podía ser algo bueno, a pesar de ser tan distinto del init tradicional, viene un tío de Red Hat y dice que tiene una opción diferente llamada systemd.

De systemd apenas sé nada, pero fue una discusión sobre él lo que hizo que escriba este artículo. Implica muchos cambios en init, pero aparte se mete con otra vaca sagrada de UNIX: syslog. Sí, systemd también quiere sustituir a syslogd. Y no sólo eso: pretende que los logs del sistema sean binarios.

Puede que esta idea les haya hecho abrir los ojos como platos y blindar su mente ante ella. Pasar de los logs en texto, tan maleables y manejables, a “algo” binario que requerirá herramientas específicas para analizar, tiene todos los boletos para convertirse en un “WTF”. Pero si encima les digo que el autor es Lennart Poettering, el autor del infame Pulseaudio, posiblemente su sangre entre en ebullición y piensen lo mismo que yo: “es la hora de las tortas”.

Pero antes de ponerse los capuchones, ensillar los caballos y prender las antorchas, vamos a ver de qué va esto de systemd. Sólo por tener algún fundamento para nuestra ira, más que nada.

Para empezar, el (mastodóntico) artículo de presentación de systemd está aquí:

http://0pointer.de/blog/projects/systemd.html

Y una explicación en castellano, resumida y muy bien escrita (como todos los artículos de ese blog, por cierto) está aquí:

http://diegocg.blogspot.com/2010/05/systemd-otro-reemplazo-de-init.html

Muchos de los argumentos para crear systemd son los mismos que para upstart: necesidad de un sistema init más moderno, capaz de lanzar servicios en paralelo y reaccionar ante los cambios del sistema. Una vez que has aceptado que upstart es bueno, aceptar este razonamiento para justificar systemd es sencillo.

systemd también introduce varias mejoras respecto a upstart, en especial a la hora de arrancar sólo los servicios necesarios. La lógica es ésta: muchos procesos se comunican mediante sockets UNIX, y systemd crea esos sockets aunque los procesos que tendrían que escuchar en ellos no estén levantados. Si ningún proceso necesita escribir o leer en ese socket, nos hemos ahorrado la ejecución de un programa; y si lo hacen, systemd lo detecta y es entonces, y no antes, cuando levanta el proceso. Como cada socket tiene un buffer, puede haber varias escrituras en el socket antes de que esté levantado el proceso (por ejemplo, porque es el arranque del sistema y todavía no hemos levantado todos los procesos necesarios). Cuando esté listo, el proceso leerá el buffer y atenderá lo que tenga que hacer.

El “Journal”


Pero lo que me dolió, como les decía antes, era eso de sustituir syslogd. Lennart, que debe dedicarse a poco más que programar y escribir artículos muy extensos justificando lo que hace, tiene un texto con las explicaciones pertinentes aquí:

https://docs.google.com/document/pub?id=1IC9yOXj7j6cdLLxWEBAGRL6wl97tFxgjLUEHIX3MSTs&pli=1


El sustituto de syslog (tanto el protocolo como el proceso syslogd) se llama “Journal”. Su objetivo es solucionar los inconvenientes de syslog:


  • Falta de autenticación (cualquier proceso puede escribir diciendo que es otro cualquiera)
  • Heterogeneidad en el formato de las líneas de log
  • Falta de unificación de logs (cada aplicación lo hace en un sitio diferente)
  • No hay indexación de logs, que cuando crecen mucho significa que buscar algo puede ser muy lento
  • El protocolo de red es muy sencillo, vulnerable a pérdidas de paquetes y efecto Thundering Herd (cuando muchos logs vienen de repente contra un mismo sistema y crean un DoS)
  • Es fácil falsificar los logs en disco
  • Complejidad del rotado de logs
  • Falta de logs durante momentos críticos, como el arranque o la parada
  • No se pueden loggear datos binarios

Para solucionar todo esto, systemd tiene una lista de propósitos como simplicidad, zero maintenance, robustez, portabilidad, “performancia”, etc etc. Las mejores intenciones, vaya.

Los procesos que hagan logging contra Journal crearán “entradas”, no líneas como hasta ahora. En cada entrada hay sitio para todos los metadatos que hagan falta, porque están formadas por varias líneas: pares clave-valor con la clave en mayúsculas y un signo de subrayado antes de ella como marca de un cliente “fiable”. Un ejemplo:
_SERVICE=systemd-logind.serviceMESSAGE=User harald logged inMESSAGE_ID=422bc3d271414bc8bc9570f222f24a9_EXE=/lib/systemd/systemd-logind_COMM=systemd-logind_CMDLINE=/lib/systemd/systemd-logind_PID=4711_UID=0_GID=0_SYSTEMD_CGROUP=/system/systemd-logind.service_CGROUPS=cpu:/system/systemd-logind.servicePRIORITY=6_BOOT_ID=422bc3d271414bc8bc95870f222f24a9_MACHINE_ID=c686f3b205dd48e0b43ceb6eda479721_HOSTNAME=waldiLOGIN_USER=500
Este formato está inspirado por los ficheros de log tradicionales y por los repositorios git. Dice el artículo que, a pesar de que hay mucho más que escribir, esto no afectará negativamente al espacio que ocupen los logs en disco: aparte de que los campos de datos serán comprimidos antes de ser grabados en disco, cada clave será guardada como un objeto individual, y luego otras entradas que hagan referencia a ellas no tendrán que incluirlas explícitamente.

Como no podía ser de otra manera, hay una biblioteca para clientes que accedan al Journal. El acceso no será sólo secuencial, como con los logs de ahora, sino también indexado por clave y con acceso aleatorio. En mi opinión, ésta podría ser la killer feature que favoreciera la adopción rápida de Journal, como cualquiera que haya tenido que analizar un log de 1GB o más podrá entender. Por lo que entiendo al leer el artículo, también será fácil mezclar logs de varios sitios y sistemas distintos.

Conclusión
¿Es systemd malvado? Indudablemente. Pero aún así, es posible que acabemos usándolo todos, así que habrá que irse acostumbrando.

Después de leer algo más sobre systemd, estoy casi dispuesto a aceptar que hay muchas buenas ideas en su diseño. Todo lo relativo a paralelizar procesos en el arranque está bien, y la idea de los sockets si programas detrás es muy ingeniosa. En cuanto a syslog, por mucho que me duela reconocerlo, nadie puede negar que después de 30 años no necesita, como poco, alguna revisión.

Lo que no me ha gustado es la intransigencia de Lennart en cuanto a la “compatibilidad hacia atrás”. En la FAQ, ante preguntas del tipo “¿qué hago si necesito syslog?”, la respuesta siempre es “instalar un syslogd además de Journal”. Y de hecho, se menciona que The journal daemon does not speak the RFC syslog protocol, and it is unlikely it ever will. A mí me suena un poco a my way or the highway.

Veremos cómo avanza el tema. En el peor caso, tendremos una variedad todavía mayor entre distribuciones, con Ubuntu y upstart, Fedora/Red Hat y systemd, Debian entre dos aguas, incluyendo todas las variantes de init para que cada uno use la que más le guste, y Arch/Gentoo haciendo algo totalmente distinto.


(Actualización a 17/02/2012: OpenSUSE incorpora systemd de serie empezando en 12.1)

por Roberto Suárez Soto (noreply@blogger.com) el February 17, 2012 04:48 PM

Cómo hacer un mapa con “planet” y Gimp/Inkscape (5)

Volvemos a la carga con la quinta entrega de esta serie. Hoy viene una de las partes más divertidas, la de poner los nombres en el mapa. Para eso vamos a abandonar momentáneamente Gimp y lanzar Inkscape.

Descripción general del proceso

Gimp trabaja sobre gráficos bitmap, mientras que Inkscape es un programa de dibujo vectorial. Cada uno tiene sus ventajas y sus inconvenientes, pero lo importante para nosotros es que con Inkscape es muy fácil pintar textos en cualquier tamaño y disposición, y en Gimp todo lo contrario. Un ejemplo sencillo: como Inkscape trabaja con vectores, podemos aumentar o disminuir el tamaño de un texto sin distorsionarlo. Si lo hiciéramos en Gimp, tendríamos un texto muy pixelado o uno que casi no se leería.

Además, veremos que con Inkscape es muy fácil colocar un texto para que siga un trayecto determinado. En teoría, en Gimp es posible; en la práctica, es tan difícil y el resultado tan horrible que no merece la pena ni intentarlo.

Para trabajar con Inkscape vamos a sacar una copia del mapa que teníamos, en full-blown detail, importarlo y luego pintar los nombres por encima. Luego exportaremos esos nombres a un bitmap y los importaremos en Gimp, en una capa, para seguir trabajando en el mapa. ¿Parece un coñazo? Lo es. También en teoría, Gimp soporta el formato SVG para leer gráficos; pero en la práctica, tampoco merece la pena. Es mejor usar el truco de la exportación a un bitmap para poder trabajar cómodamente.

Cambié un poco el mapa al que habíamos llegado en la última entrega, para arreglar unos ríos que no me gustaban y añadir unas colinas que me venían bien. Para refrescarles la memoria, se lo pongo por aquí de nuevo.

El mapa, con texturas, montañas, ríos y alguna colina.

El mapa, con texturas, montañas, ríos y alguna colina.

Importación del bitmap y primeros nombres

Lo primero que hago es importar el bitmap y cambiar las propiedades de la página (“Archivo” -> “Propiedades del documento”) para que se ajuste a él. Luego, para evitar pinchar en él constantemente y moverlo sin querer, uso “Propiedades del objeto” para bloquearlo. Así se quedará todo el rato, como fondo inerte de nuestro trabajo.

Como todo el mundo sabe, no importa la calidad de lo que escribas sino lo bonito que sea el tipo de letra. Así que la elección de un tipo de letra adecuado al mapa es fundamental. Yo voy a usar dos: Mawn’s Handwriting y Miltonian Tattoo. La primera será la que use para los nombres “grandes” (continentes, océanos), y la segunda para las zonas más pequeñas, los detalles del mapa.

Tipos de letra usados en el mapa.

Tipos de letra usados en el mapa.

Pongo los nombres de los continentes primero: Pyron, Jont, Zentaeri, Gausiania, Cathýsiar, Brotrôro y Bascacân. No sé por qué lo hago en ese orden, en lugar de empezar por la izquierda. Supongo que será porque Pyron está en el centro, y gravito inconscientemente hacia él.

Los nombres se ven bien (el  blanco es un buen contraste con el fondo), y he ajustado algunos de los tamaños de los textos a mano (“estirando” el objeto con “Control”, para que las proporciones se mantengan), pero todavía no queda bien. Lo que vamos a hacer para darle un poco de gracia es girar algunos nombres un poco, y poner otros en un trayecto.

Mapa con los nombres "planos", sin girar ni poner en trayectos.

Mapa con los nombres "planos", sin girar ni poner en trayectos.

Textos y trayectos

La parte de girar los nombres no es difícil de entender. Los nombres que están cien por cien en horizontal resultan artificiales, así que me aseguro de que ninguno lo esté. Pueden ver el resultado en los nombres de Pyron, Cathýsiar y Gausiania.

Texto siguiendo un trayecto.

Texto siguiendo un trayecto.

Pero otros nombres no los voy a girar, sino que los voy a poner en un trayecto. Esto significa que voy a trazar una línea, más o menos ondulada, y voy a hacer que el texto siga esa línea. Para hacerlo, hay que trazar la línea, seleccionarla junto al texto que queremos colocar sobre ella (shift+click, para añadir a la selección) y luego ir al menú “Texto”, opción “Poner en trayecto”. Verán que inmediatamente el texto se coloca encima de la línea, siguiéndola de cerca con todas sus curvas y giros.

Un texto normal y uno "ampliado", aumentando el espacio entre letras.

Un texto normal y uno "ampliado", aumentando el espacio entre letras.

Uno de los problemas que suelen aparecer aquí es el espacio entre letras. Suele ser pequeño, adecuado para un texto en el que queremos meter muchas letras en poco espacio. Pero ahora lo que nos interesa es extender un nombre por toda la curva, así que tenemos que incrementar ese espacio. Para ello, pinchamos dos veces en el texto y usamos la combinación de teclas shift+alt+”<”. Si nos hemos pasado y queremos reducir el espacio, lo mismo pero sin shift. Cuando acabemos, no tenemos más que pinchar fuera del texto o pulsar la tecla de “Escape”.

Trayecto sin simplificar frente a trayecto simplificado.

Trayecto sin simplificar frente a trayecto simplificado.

Puede que ahora el texto ya ocupe todo lo que queremos, pero que el trayecto que hemos dibujado sea tan complicado que el texto no se lea bien. Este problema suele ocurrir porque hemos dibujado a mano una línea con muchos nodos (las líneas, en Inkscape, se forman con la unión de nodos). Para evitarlo, en lugar de la herramienta de dibujo a mano alzada, suelo usar la de curvas Bezier. Pero una vez que ya está dibujado, la mejor manera de mitigar el problema es seleccionar el trayecto y usar Control+L, la función de “simplificar”. Eso eliminará nodos manteniendo (más o menos) el aspecto del trayecto. Luego podemos usar la herramienta de modificación de nodos (F2) para verlos y moverlos o cambiar su orientación a mano.

Con esto termino el resto de los nombres, incluyendo los dos océanos. Para que queden mejor, aplico una sombra: los selecciono todos (Control+A), voy al menú “Filtros”, submenú “Sombras y brillos”, y selecciono “Sombra paralela”.

Los otros nombres

Para terminar, creo otra capa en el dibujo, por debajo de la de los nombres que acabo de poner, y me paso un rato marcando en ella sitios que me parece interesantes. Nada complicado: marco cada uno como “Zona X”, siendo “X” un número.

Voy a generar nombres para todas estas zonas. Las he marcado primero porque ahora sé cuántos necesito (28). Puedo usar el mismo generador que usé para los demás nombres o alguno diferente. No me importa tanto, porque son nombres de relleno. No se van a ver mucho, sólo están ahí para que parezca que hay muchas cosas en el mapa.

Para escribirlos, si queremos hacerlo en plan industrial, podemos editar el fichero SVG (es un texto XML) y cambiar ahí los nombres. Luego seguramente tengamos que recolocarlos un poco en el mapa, pero será mucho más fácil que cambiarles los nombres uno a uno en Inkscape. Es lo que hice yo, usando un pequeño script en bash.

Les dejo con la imagen final del mapa, con todos los nombres y los efectos:

Mapa con todos los nombres introducidos.

Mapa con todos los nombres introducidos.

 

por xouba el February 17, 2012 12:00 PM

February 07, 2012

Games Screenshot Party en Debian/Ubuntu

El equipo de mantenimiento de los juegos en Debian (y Ubuntu, creo), Debian Games Team, está preparando una screenshots party, es decir, una reunión en la que la gente se dedicará a jugar a los distintos juegos incluidos en la distribución para obtener unas buenas capturas de pantalla de los mismos. Estas capturas serán subidas al repositorio oficial en screenshots.debian.net, lugar donde cualgan las capturas tanto de las páginas de los paquetes como por algunos gestores de paquetes. Este tipo de iniciativas puede facilitar que muchos usuarios se decidan a colaborar de esta sencilla forma con estas dos grandes distribuciones de software libre.

Las instrucciones precisas para apuntarse a la party las podéis ver aquí. El anuncio original de esta convocatoria, en la lista de correo debian-devel-games, es este.

Undefined

por emilioj el February 07, 2012 03:53 PM

February 03, 2012

Cómo hacer un mapa con “planet” y Gimp/Inkscape (4)

Bienvenidos a la cuarta entrega de esta serie. Hoy vamos a empezar la parte más artística (y para mí, la más difícil) del mapa: las montañas y los ríos.

Arrugas en la tierra

Las montañas son fundamentales en un mapa, tanto como lo son en el mundo real. Son las responsables en gran parte del clima de las regiones circundantes, las que determinan dónde aparecen los ríos, y las que bloquean o permiten los flujos migratorios de personas y animales: no por nada muchas fronteras están delimitadas por cadenas montañosas. También tienen un gran significado religioso, siendo las primeras “casas de los dioses” en el desarrollo de una civilización. Las montañas son las protagonistas del mapa.

Hay muchas formas de dibujar las montañas en un mapa. A mano (como hice en Praathamika) o haciendo “corta y pega” de pequeñas secuencias (como hice en el mapa del Exilio). Quería hacer algo mixto en este mapa, dibujando varias secuencias de montañas (en lugar de montañas hechas con vectores, como hice en el Exilio) y cortando y pegándolas en el mapa. Pero al final, la cabra tira al monte, y acabé haciéndolas a mano como siempre.

Montañas dibujadas a mano.

Montañas dibujadas a mano.

Dejémoslo claro ahora mismo: mis montañas son horrorosas. Como el hijo feo de Quasimodo y el Hombre Elefante. Mi método es: dos líneas con un ángulo y una sombra en el lado este.

Si quieren ver montañas bien dibujadas, les sugiero estos mapas:

Los ríos

Para hacer los ríos también opté por la vía artesana. La otra opción era lanzar Inkscape, dibujar trazos a mano y luego fractalizarlos. Quedan bastante bien, pero si has empezado con Gimp, es un lío mezclar partes hechas con Inkscape: hay que exportar un bitmap desde Gimp, cargarlo en Inkscape, dibujar los ríos y luego hacer al revés (importar los ríos en Gimp). Dibujarlos a mano es más rápido, aunque no quede tan bien.

Con Inkscape podemos fractalizar trayectos para simular ríos. Aquí, la versión normal y la fractalizada.

Con Inkscape podemos fractalizar trayectos para simular ríos. Aquí, la versión normal y la fractalizada.

Para las montañas podemos tomarnos licencias artísticas y hacerlas más o menos como queramos, siempre que nos guste. Pero los ríos siguen leyes muy estrictas, que hay que respetar para no cometer barbaridades. Hay un post en Cartographers’ Guild con un buen resumen, que viene a decir:

Una vez conocidas estas reglas, sólo hay que ponerse a dibujar los ríos. No te vuelvas loco con los detalles: intenta que sean ramificados y que fluyan en curvas más o menos abundantes, y ya está. Lo importante es que quede bonito, no que cumpla todas las leyes de la termodinámica.

En el contorno del mapa generado por planet hay muchas entradas que podrían interpretarse como rías o desembocaduras de ríos. Si puedes, haz que tus ríos acaben en ellas. Añadirá un punto de realismo a su trazado. También puedes hacer que terminen en un lago: hay muchos en los mapas generados por planet, y si no haces que algún río desemboque en ellos va a parecer que hay muchos pequeños mares interiores en tu mapa. Puedes conectar los más cercanos con un río, y luego dibujar un río que saque toda ese agua hacia el mar. Aunque no es estrictamente necesario, es lo más habitual, y lo que tus jugadores/lectores intuirán como correcto.

Aparte de lo anterior, hay dos reglas que sigo para darle algo más de verosimilitud al mapa:

Explicación (en inglés) de la sombra orográfica ("rain shadow").

Explicación (en inglés) de la sombra orográfica ("rain shadow").

Básicamente, en el hemisferio norte los vientos húmedos del mar llegan desde el oeste, regando las caras de las montañas vueltas hacia ese lado; y en el hemisferio sur ocurre al revés. Un efecto asociado es que del otro lado de las montañas se produce una sombra orográfica (rain shadow, en inglés), una zona árida a la que no llega lluvia porque se ha quedado toda del otro lado. Es lo que explica la formación de las praderas norteamericanas, a la sombra de las montañas rocosas.

En este mapa he dibujado los ríos en negro. En muchos mapas se dibujan en azul, como el mar, pero las veces que he probado no han quedado muy bien. Aquí lo he hecho en negro porque es más fácil y porque va con el estilo que me gusta para este mapa, monocromo. De momento no lo es, pero lo será: tú confía en mí.

Ríos, dibujados a mano y en negro.

Ríos, dibujados a mano y en negro.

Textura del mapa

Para terminar esta parte le he dado textura al mapa, quitándole ese aspecto “plano” de dibujo de ordenador. He hecho una copia de la capa con bump-mapping, la he desaturado y la he puesto como “Solapar” encima de las del mar y la tierra. Luego he hecho una copia de la capa de la tierra y he aplicado un mapa de relieve, usando otra vez la capa de bump-mapping desaturada. Como para dibujar las montañas he usado las zonas elevadas que aparecían en el mapa generado por “planet”, parece que están en un terreno ligeramente distinto.

Mapa con una textura aplicada, a partir del mapa de "planet" con "bump-mapping".

Mapa con una textura aplicada, a partir del mapa de "planet" con "bump-mapping".

Todavía es demasiado brillante y limpio, no gastado y sucio como debería ser un mapa antiguo. Pero para solucionar ese problema, y para empezar a poner los nombres al mapa, tendrán que leer la siguiente entrega.

 

por xouba el February 03, 2012 12:00 PM

February 02, 2012

Nova Xunta Directiva

Tras as votacións realizadas na Asamblea do 1 de Febreiro de 2012, a nova Xunta Directiva do GPUL, con 11 votos a favor e un voto nulo, está formada por:

  • Presidente: Francisco J. Tsao Santín
  • Vicepresidente: Serafín Villar Gómez
  • Tesoureiro: José Millán Soto
  • Secretario: Alejo Pacín Jul
  • Vogais: Mónica Pérez Sueiro, Juan Álvarez Fernández e Diego Fernández Perdomo

A nova XD decidiu nomear como vogais asociados a Brais Arias Río, Emilio J. Padrón González e José María Casanova Crespo.

Undefined

por administrador el February 02, 2012 09:12 AM

February 01, 2012

Back to FOSDEM

So it seems I’m going to FOSDEM this year (yay!), together with a bunch of other Igalians who will be attending as well, coming from different places from across the globe (well, mainly from Europe this time).

I know some people will probably disagree with me on this, but for me FOSDEM is one of the greatest events of this kind, and so I’m quite happy to go there this time, specially after not being able to attend last year due to some unexpected (and unavoidable) personal matters.

Opposite to other occasions, this time I’ll be there not only as an attendant but also as an speaker, talking about WebKitGTK+, its status and the roadmap of the project towards WebKit2 (the split process model “flavour” of WebKit), together with my mate Philippe, on Sunday afternoon. Thus, for the first time ever, nobody will be able to accuse me of going there just because of the beer event, which wouldn’t be true anyway.

For the impatient ones, the talk will be mainly about reporting on the work done during the last months in “WebKitGTK+ land“, as well as on the stuff that is already planned for the upcoming releases. Good examples of those would be, for instance, the ongoing effort to add support for Accelerated Compositing, or just the new features related to WebKit2GTK+ such as, of course, the solution for enabling accessibility support there. Ah! And of course, we’ll try to run some demos there too… fingers crossed!

Besides, I’m of course looking forward to meeting some people I haven’t seen for a while now (haven’t attended to the latest Desktop Summit either, due to very good reasons too), so if you see me around and want to chat and/or meet for a while, just let me know. I must look shy, but it’s usually a matter of minutes (seconds?) for my shyness to go away…

So that’s it. Just a final line to say “thanks” to my company for fully sponsoring this thing.

See you in Brussels!

por msanchez el February 01, 2012 01:19 AM

January 31, 2012

Asamblea (e eleccións) de GPUL

Mañá, mércores 1 de febreiro de 2012, GPUL celebra unha Asamblea na que se votará unha nova Xunta Directiva. A orde do día é a seguinte:

  • Lectura e aprobación da acta da anterior asamblea
  • Estado dos proxectos e outras actividades
  • Planificación 2012
  • Situación económica
  • Finalización do proceso electoral; reconto e proclamación (contra ás 20:00h, hora de peche das votacións)
  • Rogos e preguntas

A asamblea de socios comezará ás 18:00h en primeira convocatoria, e ás 18:30h en segunda convocatoria.

Undefined

por administrador el January 31, 2012 07:47 PM

January 30, 2012

From source code to ndk-build using autotools and androgenizer

This post explains how to compile C source code for Android using the Native Development Kit (NDK) by using autotools to set up the building infrastructure and using androgenizer to convert that autotools infrastructure into Android.mk files understood by the ndk-build tool. I’ll first review some autotools concepts very quickly trough examples and iterate over them.

Simple program

(Download the testapp.tgz example or browse it online)

We start from a simple helloworld program with its main() function that depends on a sayhello() function. We want to compile it using autotools in the simplest possible way.

To create an autotools template from scratch, follow the instructions of this presentation, which are abridged here:

  autoscan
  mv configure.scan configure.ac
  # Add this line below the AC_INIT line:
  # AM_INIT_AUTOMAKE
  nano configure.ac
  autoheader
  aclocal
  touch NEWS README AUTHORS ChangeLog
  automake --add-missing --copy
  autoconf

Makefile.am should contain:

  bin_PROGRAMS = testapp
  testapp_SOURCES = testapp.c

Then, to compile, just:

  ./configure
  make

The testapp.tgz file is an example of this. Look at the “autoall” script.

Library + program using libtool

(Download the testlib.tgz example or browse it online)

In this case we have to add a new libtool line to configure.ac, apart from the automake one, under the AC_INIT line:

  AM_INIT_AUTOMAKE
  AC_PROG_LIBTOOL

This is how Makefile.am should look like:

  lib_LTLIBRARIES = libtestlib.la
  libtestlib_la_HEADERS = testlib.h
  libtestlib_la_SOURCES = testlib.c
  libtestlib_ladir = $(includedir)
  libtestlib_la_LDFLAGS = -avoid-version

  bin_PROGRAMS = testapp
  testapp_SOURCES = testapp.c
  testapp_LDADD = .libs/libtestlib.so
  testappdir = $(includedir)

The LDFLAGS are the flags passed to libtool, and are documented here and here in the Autobook reference. In this case, the “-avoid-version” forces generation of libtestlib.so instead of libtestlib.so.0.0.0 (versioned libs aren’t supported in Android).

Look at the “autoall” script in the example for all the details. Now it’s fully automatic, so you don’t have to do the insertions by hand in configure.ac.

Androgenized lib + program

(Download the androgenized-testapp.tgz example or browse it online)

All the C code must reside in a directory called “jni”, inside the main directory of the Android project we want to create (in the androgenized-testapp example only the jni is included, technically the other ones aren’t needed):

androgenized-testapp
  src (Java source code)
  libs (compiled binary libs and executables)
  obj (intermediate object code for libs and exes)
  jni
    Application.mk (actually not mandatory)
    Android.mk (generated by androgenizer, drives the compilation when using NDK)
    Makefile.am
    testlib.c
    ...

A new target called Android.mk must be created in Makefile.am:

Android.mk: Makefile.am
        androgenizer -:PROJECT testlib 

        -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir)
        -:SHARED testlib
        -:SOURCES $(libtestlib_la_SOURCES)
        -:LDFLAGS $(libtestlib_la_LDFLAGS) 

        -:PROJECT testapp
        -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir)
        -:EXECUTABLE testapp
        -:LDFLAGS -ltestlib
        -:SOURCES $(testapp_SOURCES)
> $@

Androgenizer must be downloaded and installed somewhere in our PATH from here. It has a very brief parameter documentation, and the best way to understand it is by seeing usage examples, such as all the androgenizer lines added to the Makefile.am in the GStreamer project.

In the Android.mk target shown above two modules are going to be compiled: “testlib” and “testapp”. Each module is declared with a “-:PROJECT” parameter. The rest of the lines belong to the current project (current module) until a new one is declared. I’ve left a separation between projects to illustrate this.

Next line should always be a “-:REL_TOP” and “-:ABS_TOP”, as recommended in USAGE.txt. These two values are used to check all the paths in LDFLAGS, CFLAGS, etc. and substitute local paths with absolute paths. This is important, because normal makefiles usually assume that the rules are executed from the subdirectory the makefile is in, while what is considered as the working directory for Android.mk makefiles is always the directory from which ndk-build is invoked. As you can imagine, compiler directives such as “-I..” are going to have a very different meaning and cause the wrong behaviour when passed to the compiler by ndk-build.

After that, we indicate the type of target for the project (“-:STATIC” for libtestlib.a, “-:SHARED” for libtestlib.so, and “-:EXECUTABLE” for testapp). The extension of the library/app is automatically calculated.

The “-:SOURCES” parameter is used to indicate the files to be compiled. In this case we can use the list of files already calculated by the previous automake rules (see testlib.tgz and testapp.tgz examples) and stored in the “libtestlib_la_SOURCES” variable.

The “-:LDFLAGS” parameter is used to generate the needed library dependencies for the current module. In the case of testlib, those dependencies are already calculated by automake in the “libtestlib_la_LDFLAGS”. In the case of testapp, it depends on testlib, so we indicate it manually with “-ltestlib”. That will translate into this line in the generated Android.mk file:

  LOCAL_SHARED_LIBRARIES:=libtestlib

this will make the NDK build scripts to link against the proper “libtestlib.so” (if the lib was dynamic) or “libtestlib.a” (if it was static). The NDK already knows how testlib was built and how it has to be linked.

The final “> $@” line just means that make has to take the output of the androgenizer command and dump it to a file named just like the target it’s being build, that is, “Android.mk”.

After all the autoscan, configure.ac customization, autoheader, aclocal, libtoolize, automake and autoconf steps we can “./configure” and “make Android.mk” to generate the “Android.mk” file. Note that no full “make” is needed. Then we step back one directory (“cd ..” to the project root) and perform the actual build using NDK (which has to be downloaded from here, installed and be in our PATH):

  ndk-build V=1

The V=1 option just prints out all the executed commands, which is very handy. The compilation result will be placed in the “libs” directory.

To understand the process a bit more, it’s a good idea to look into the generated Android.mk file:

  LOCAL_PATH:=$(call my-dir)
  include $(CLEAR_VARS)

  LOCAL_MODULE:=testlib
  LOCAL_SRC_FILES :=
          testlib.c
  LOCAL_LDFLAGS:=
          -avoid-version
  LOCAL_PRELINK_MODULE := false
  include $(BUILD_SHARED_LIBRARY)
  include $(CLEAR_VARS)

  LOCAL_MODULE:=testapp
  LOCAL_SRC_FILES :=
          testapp.c
  LOCAL_SHARED_LIBRARIES:=
          libtestlib
  LOCAL_PRELINK_MODULE := false
  include $(BUILD_EXECUTABLE)

Apart from some boilerplate (LOCAL_PATH, CLEAR_VARS, LOCAL_PRELINK_MODULE), we can distinguish the two modules (LOCAL_MODULE), its source files (LOCAL_SRC_FILES), inherited LDFLAGS (LOCAL_LDFLAGS), required libs (LOCAL_SHARED_LIBRARIES) and finally, the building instruction (BUILD_SHARED_LIBRARY, BUILD_EXECUTABLE).

Seeing the Application.mk and Android.mk supported directives are documented somewhere in your installation of the NDK. They support more options than the ones explained here. With this basic introductions, that documentation should be more understandable. Application.mk can be edited directly. Android.mk has to be customized using the “-:PASSTHROUGH” androgenizer parameters in Makefile.am. For example:

  -:PASSTHROUGH LOCAL_ARM_MODE:=arm

Unfortunately, real life autotools build scripts are a bit more complex than the examples shown here. Here are some debug tips that can be helpful:

por admin el January 30, 2012 05:05 PM

January 28, 2012

Fallecimiento del socio Victor M. Gulías

Ha fallecido Victor M. Gulías, uno de los más antiguos socios de GPUL. Muchos lo conocereis, como uno de los mejores profesores de la Facultad de Informática de Coruña. Gulías además formó parte de una generación de informáticos que impulsó una cultura, una forma de entender la informática, que años después se consolidó en nuestra asociación.

Desde aquí le queremos hacer llegar nuestro pesar a su familia y sus allegados.

Undefined

por tsao el January 28, 2012 06:53 PM

January 27, 2012

Accessibility support in WebKit2GTK+

As Piñeiro already mentioned in some posts, last week a bunch of hackers attended the ATK/AT-SPI Hackfest 2012 here at the Igalia offices, in the lovely city of Coruña.

As the guy working on accessibility support for WebKitGTK+, I attended the hackfest to join some other great people representing different projects, such as Mozilla, Orca, AT-SPI, ATK, GTK+ and Qt. So, apart from helping with some “local” organizational details of the hackfest and taking some pictures, I spent some time hacking in WebKitGTK+‘s accessibility code and participating in some discussions.

And from that dedication I managed to achieve some interesting things too, being my favorite ones a big refactoring of the a11y code in WebCore (so it’s now better organized and hence more readable and easy to hack on) and pushing my patch for enabling accessibility support in WebKit2GTK+, after going through a meticulous process of review (see the related WK bug), which started with the patch I wrote and attached back when attending to the WebKitGTK+ hackfest, as I mentioned in my previous entry in this blog.

Yeah, I know that some weeks have already passed since then and so perhaps you’re thinking this could have been done faster… but I’ve spent some weeks on holidays in Barcelona in December (pictures here!) and so I wouldn’t have much time before January to devote to this task. However, the patch got integrated faster than what I would expect when I proposed the first version of it, so I’m quite satisfied and happy anyway just by being able to announce this at this moment. Hope you share my joy :-)

So, what does this mean from the point of view of accessibility in GNOME? Well, that’s an easy question to answer: from now on, every browser that uses WebKit2GTK+ will be as much accessible as those using the previous version of WebKitGTK+, and this is definitely a good thing. Of course, I’m certain there will be bugs in this specific part that will need fixing (as it always happens), but for the time being this achievement means “yet another thing less” preventing us from pushing for upgrading some applications to switch to WebKit2GTK+, such as devhelp (some ongoing work already done, as my mate Carlos announced yesterday), yelpliferea… and the mighty Epiphany browser, which is rocking more and more ech day that goes by.

Last, I’d like to share with you an screenshot showing this new stuff, but as I am a little bit tired of always using Minibrowser (that small browser we use for testing WebKit2), so I decided to try instead that new branch Carlos recently pushed for devhelp, so you could check that what I mentioned before is actually true.

So here you have it (along with a couple of additions done with Gimp):

As you can see, devhelp is running and Accerciser is showing the full hierarchy of accessible objects associated to the application, starting in the UI process (GTK+ world) and continuing in the Web process, where all the accessible objects from the WebKitGTK+ world are being exposed. As I explained in a previous post, the magic making possible the connection between the two process is done by means of the AtkSocket and the AtkPlug classes, also represented in the screenshot attached above.

So, that’s it.

por msanchez el January 27, 2012 02:06 PM

January 20, 2012

Cómo hacer un mapa con “planet” y Gimp/Inkscape (3)

Tercera entrega de esta serie. Pensé que iba a llevarme menos. Seguro que ustedes también. Mala suerte: para mí por tener que hacerlo y para ustedes por tener que leerlo. Como dicen los budistas: “la vida es sufrimiento”.

Hoy empezamos la parte “de verdad” de la creación del mapa. Es hora de lanzar Gimp.

El mapa de trabajo

Para el mapa “artístico” vamos a necesitar algo más que 1600 pixeles. Como decía en el primer post, suelo usar 3000×3000 pixels de resolución. Por lo tanto, he generado un mapa de ese tamaño para cargar en Gimp.

La proyección que voy a usar es la rectangular. No es muy fiel a la realidad, como ninguna lo es: sólo la ortográfica, en la que se ve la esfera del mundo, lo podría ser. Las demás intentan mapear una esfera sobre un rectángulo, y siempre hay algún tipo de distorsión. En la proyección Mercator, el mapa “se estira” a medida que se va hacia los polos; y en la rectangular, parece que encoge. Pero es la más cómoda para trabajar, al menos para mí. Usé la proyección ortográfica en el pasado (para el mapa de Praathamika), pero la vista estaba limitada a un continente. Y en éste mapa me gustaría que saliera todo el mundo.

Lo primero que hago es cargar el inmenso GIF en Gimp. Cada imagen aparecerá como una capa: primero la cuadrícula, luego las curvas de nivel, luego el contorno en negro, luego el mapa con bump-mapping y luego el mapa en color, a secas. Pongo las tres primeras a “Oscurecer sólo”, y así puedo ver el mapa con bump-mapping y la cuadrícula, curvas de nivel y contorno superpuestos.

Ventana de Gimp con el mapa con bump-mapping y las tres capas superiores superpuestas

Ventana de Gimp con el mapa con bump-mapping y las tres capas superiores superpuestas

Mar y tierra

Una vez tengo esto, doy un paso atrás. Vuelvo a poner la capa de “Contorno” como “Normal”, y dejo que sea la única visible. Lo que quiero hacer es obtener un par de máscaras para la parte de tierra y la parte de agua del mapa.

Para seleccionar todo el mar o toda la tierra usé la “varita mágica” de Gimp. Me encontré un problema: el contorno tenía “fugas”. En algún punto, había un contorno que no estaba cerrado del todo, y al seleccionar con la varita mágica era incapaz de limitarme a la tierra o el mar. La manera más fácil de entender lo que significa esto es usar el “cubo de pintura”: si los contornos estuvieran cerrados, pintaríamos sólo el espacio dentro de cada uno. Pero al no estarlo, la pintura se desparrama por todo el dibujo.

Mapa con fugas. He pintado en negro para que se vean mejor.

Mapa con fugas. He pintado en negro para que se vean mejor.

La mejor manera de arreglar este problema es buscar las fugas y arreglarlas con el pincel. Sólo les llevará un par de días.

Por otro lado, la manera rápida de arreglarlo es seleccionar todo lo que sea de color negro en el dibujo con el selector de color, y luego usar la opción de Editar -> Trazar selección, con un ancho de 1 pixel y color negro. Así el contorno será continuo, y evitaremos las fugas. Después podemos usar la opción de “Brillo y contraste” para eliminar los tonos de gris, subiendo el contraste a tope. Sólo habrá blanco y negro en esta capa, y podremos seleccionar fácilmente las partes de agua y tierra con la varita mágica.

La selección lleva un tiempo, más o menos dependiendo de lo perfeccionistas que sean. A mí me gusta seleccionar no sólo los océanos y mares, sino también todos los lagos que se pueden ver en el mapa. Eso implica mucho shift+click para añadir a la selección; si se lo quieren ahorrar, con tal de seleccionar los océanos y los mares interiores llegará. Pero no les quedará tan bonito, se lo advierto.

Dos máscaras para la tierra y el mar

Dos máscaras para la tierra y el mar

Una vez seleccionados todos los mares, guardo la selección con Seleccionar -> Guardar en canal. Para hacer lo mismo con la tierra es mucho más sencillo: invierto la selección con Control+i, y ya está. “Guardar en canal” otra vez y ya tengo máscaras para el mar y la tierra.

Colores

Lo siguiente que hago es escoger los colores de la tierra y el mar. Para eso creo dos capas en blanco justo por encima de la de bump-mapping (o justo por debajo de la de contornos, como prefieran verlo), y les aplico las máscaras de “Mar” y “Tierra” que acabo de crear. Desmarco la opción de “Editar la máscara de capa”, y busco dos colores que me gusten. Para eso suelo recurrir a la paleta “Topographic” de Gimp. En este caso, he escogido el color e8bc34 para la tierra y 54b0f8 para el mar. Posiblemente los cambie luego, pero me dan una base para empezar.

Mapa con los primeros colores aplicados

Mapa con los primeros colores aplicados

En este punto el mapa empieza a parecerse a uno de verdad. Pero todavía le faltan los elementos que le darán personalidad: montañas y ríos.

Y van a tener que esperar hasta la siguiente entrega para saber cómo lo hago :-)

 

por xouba el January 20, 2012 12:00 PM

January 06, 2012

Cómo hacer un mapa con “planet” y Gimp/Inkscape (2)

En la entrada anterior les hablé de planet y de cómo generar un mapa con él. Como vieron, los resultados son un buen comienzo, pero todavía falta mucho para tener algo que se pueda presentar como un mapa. Hoy vamos a ver otra etapa del proceso: un borrador sobre el que anotar los primeros nombres para este mundo.

Primer borrador

Mapa generado por planet con la semilla 0.560789

Partíamos de este mapa, con semilla 0.560789

Normalmente, una vez hecho lo descrito en la entrada anterior, me lanzaría a crear un mapa de 3000×3000 y trabajaría ahí. Pero contar este proceso me está sirviendo para analizarlo con un poco más de calma, y me he dado cuenta de que es mejor ir algo más despacio. Por lo tanto, antes de ponernos a trabajar “en serio”, vamos a hacer un primer borrador del mapa.

Los objetivos de este borrador son:

Muchas expectativas para un simple mapa fractal, ¿verdad?

Notas rápidas

Para el borrador he generado un mapa con proyección rectangular de 1600×1600, con rejilla de 15×15 grados. Luego lo habría cargado en Gimp y hubiera escrito sobre él varias notas, pero como hay un bug en Gimp que hace que mi tableta gráfica no funcione bien cuando tengo activados los efectos del escritorio, usé Xournal para lo mismo. Es un gran programa que no conocía hasta hace relativamente poco, y para anotaciones sobre imágenes o PDFs es inapreciable. De lo mejorcito, oiga.

Notas rápidas tomadas sobre el mapa

Notas rápidas tomadas sobre el mapa

Las primeras notas son un tanto caóticas: dibujo unas líneas por donde creo que podrían ir las cadenas de montañas, anoto lo que se me ocurre al ver ciertas zonas (como lo de “meseta Tibet”, para una meseta elevada similar a aquella), apunto dónde quedan el ecuador y las zonas árticas, delimito los continentes y los marco con un número. Como verán, en este mapa hay 7 continentes, aunque tres de ellos (5, 6 y 7) son bastante pequeños. El 5 y el 6 podrían ser uno solo, pero como una parte queda por encima de la línea ártica y hay una especie de estrecho entre ellos, he decidido separarlos.

No hay que tomarse esto demasiado en serio. El mundo que vamos a crear tendrá graves incoherencias si lo estudiamos a fondo. Por ejemplo, en el mundo real la zona ártica no es todo lo que hay sobre el paralelo 75º, sino una zona variable delimitada por la temperatura media a lo largo del año. Y el trazado de las montañas es bastante aleatorio, sin seguir posibles líneas tectónicas. Pero el objetivo no es hacer un estudio científico, sino un mapa para jugar a rol o entretenerse.

Nombres

Como no queremos rompernos la cabeza ni desarrollar toda una familia de lenguas relacionadas entre sí para nuestro mundo, vamos a ir a lo rápido: los generadores aleatorios. Hay muchos para escoger, pero a mí me gustan éstos:

Para el mapa voy a usar el último, y en concreto el titulado “Greek Names”. Después de ejecutarlo varias veces, me quedo con estos nombres: Pyron, Zentaeri, Gausiania, Thylithe, Ircmimas, Prothe, Yitenth, Bascacan, Brotroro, Jont, N’chect y Cathysiar. Los usaré para los continentes y cualquier otra cosa que se me ocurra. Si luego me hacen falta más, puedo conseguirlos en el mismo sitio.

Para los continentes me quedo con Bascacan (continente 5), Brotroro (6), Cathysiar (1), Jont (4), Pyron (2), Zentaeri (3) y Gausiania (7). Como un elemento fundamental de los mundos de fantasía son los nombres exóticos, voy a “exotificar” algunos de éstos:

Todo esto es un buen ejemplo de las ventajas de los generadores aleatorios. Aunque todos éstos nombres han sido sacados del mismo, los resultados son suficientemente distintos como para suponer que cada palabra está en un idioma diferente.

Me quedan todavía unos cuántos nombres, así que voy a usarlos para algunas otras features del mapa. Los candidatos más evidentes son los mares y océanos, pero siempre me han costado: tiendo a abusar de los “mar de” y “océano de”, que en el mundo real no abundan. Para este mundo voy a usar “Prothe” (suponiendo que “prothe” significa “océano” en algún idioma) para el océano central, “Ircmimas” para el mar interior más grande, “Mar de Pyron” para el mar interior más pequeño (parece adecuado, siendo Pyron la tierra circundante) y “Gausián” (que no tiene nada que ver con el matemático de nombre similar) para el océano del sureste. Parto de la idea de que “Gausiania” es algo así como “la tierra que está en el Gausián”, y me ahorro un nombre nuevo. Otra opción sería un genérico tipo “Océano del Sur”, pero no queda tan bien.

Borrador del mapa con los nombres de continentes y océanos

Borrador del mapa con los nombres de continentes y océanos

Todavía podría poner muchos más nombres, pero con éstos tengo un buen principio para mi mundo; y para ustedes, un buen final para este post. Si todavía tienen ganas de leer más sobre este proceso, sigan atentos a este weblog.

 

 

por xouba el January 06, 2012 12:00 PM

December 23, 2011

Cómo hacer un mapa con “planet” y Gimp/Inkscape (1)

Como quería hacer un mapa para un nuevo proyecto en el que estoy trabajando, y muchas veces es difícil encontrar información de este tipo en castellano, voy a poner por aquí el proceso que sigo habitualmente. Los resultados no son comparables al mapa de “La Marca del Este” de A. J. Manzanedo, o de alguno de “mappers” profesionales como Sapiento y los grandes gurús de Cartographers Guild, porque para eso hace falta un talento del que carezco; pero sirven para tener algo con lo que pasar un rato.

planet

La raíz de todos los mapas que he hecho está en un pequeño programa llamado planet, hecho por un profesor danés llamado Ægidius Mogensen. Genera mapas fractales en varios tipos distintos de proyección: Mercator, Mollweide, ortográfica, estereográfica, y varias más que ni entiendo ni he usado.

Foto de Ægidius Mogensen

Ægidius Mogensen, el autor de "planet"

planet es un programa en línea de comandos, hecho en C, que hay que descargar y compilar. La instalación se reduce a hacer “make” y luego usar el binario generado. Funciona en base a una semilla, un número decimal a partir del que se genera el mapa. Esta semilla es lo más importante del mapa, porque si cambia en un solo dígito el mapa resultante será diferente. Cuando consigamos un mapa que nos guste, debemos apuntar la semilla para poder reproducirlo en todas las proyecciones y a todas las resoluciones que queramos.

Yo suelo usar mapas de 3000×3000 o 4000×4000 pixels. Parece mucho, pero siempre es mejor trabajar a mucha resolución para que sólo haga falta encogerlos, no ampliarlos (como cualquiera con una cámara de fotos digital habrá comprobado). Para las vistas previas uso mucha menos resolución: 800×600, por ejemplo. Así puedo hacerme una idea de qué aspecto tendrá el mapa sin pasarme varios minutos esperando.

Aparte de la proyección, planet puede generar el mapa en varios modos: en color, en blanco y negro, con línea de contorno o sin ella, y con “efecto 3D” (bump-mapping) o sin él. Por defecto se generan en color y sin bump-mapping, y con un mapa de colores que recuerda al de la tierra. No es realista, porque los colores se asignan por altura: verde para la costa, marrón para media altura, gris para sitios más altos y blanco para las cimas. Y como cualquiera que conozca el desierto de Atacama sabrá, eso de las costas verdes no es siempre cierto.

Búsqueda de una semilla

El primer paso para hacer un mapa es generar uno que nos guste. Eso implica buscar una semilla adecuada, que es un proceso tedioso e imposible de hacer durante mucho tiempo por humanos cuerdos. Yo la genero aleatoriamente y veo qué mapas salen, usando unos scripts en Python y las utilidades ImageMagick. El script principal (“runplanet.py”) tiene un modo “vistazo” para generar varios mapas a la vez, a baja resolución, y colocarlos todos en una sola imagen. Así puedo cargar la imagen, ver los mapas y generar más si no me gusta ninguno.

Ejemplo del modo "glance" de mis scripts para planet

Ejemplo del modo "vistazo" de mis scripts para planet

Como todos los generadores aleatorios, planet tiene sus vicios. El más frecuente es el exceso de tierra o de agua: tiende a generar “supercontinentes” que ocupan casi todo el mapa, más bien cargados en uno de los polos, o formando una barrera de polo norte a polo sur; y también son típicos los mapas en los que sólo hay unas pocas islas esparcidas por el océano.

Otra limitación del programa es que no genera montañas realistas. En el mundo real, las montañas forman largas cadenas que surgen donde las placas tectónicas colisionan, elevando el terreno. En los mapas generados por planet hay ciertos puntos en los que se acumula la masa y da la impresión de caer por su propio peso hacia los alrededores, como las laderas de un volcán. Hay tierras altas y bajas, pero no tienen el aspecto que tienen en el mundo real. Podemos aprovechar estos cambios de altura para dibujar montañas luego, o para separar placas tectónicas imaginarias. Hace falta echarle un poco de imaginación al mapa generado para convertirlo en algo útil.

Algunos de estos mapas sirven si buscamos un mapa para un sitio determinado: una montaña, un valle, una península, una isla, un fragmento de costa, etc. Pero no son adecuados para un mapa de un mundo imaginario.

Dando forma al mundo

Para este ejemplo he usado la semilla 0.560789, que aparte de ser un número bonito da un mapa con un par de continentes de buen tamaño y una gran isla a bastante distancia de ellos, perdida en medio del mar del sur. También tiene varios mares interiores, siempre interesantes y abundantes en los mapas generados por planet. En el continente inferior izquierdo pueden ver uno de los defectos habituales de planet, un ejemplo del aspecto “volcánico” de las algunas montañas: todo el continente parece una isla volcánica de tamaño épico, con aspecto de cono con bordes irregulares.

Mapa generado por planet con la semilla 0.560789

Mapa generado por planet con la semilla 0.560789

El siguiente paso es buscar la orientación adecuada para el mapa, para lo que suelo crear mapas en una resolución un poco mayor, como 800×600. Con planet podemos “mover” el mapa variando la latitud y longitud. En las proyecciones “totales” (en las que se ve todo el mapa), suelo cambiar la longitud para que se vean mejor los continentes. En las proyecciones esféricas (como la ortográfica), cambiar la longitud y la latitud es la única forma de ver distintas partes del globo (como los polos, por ejemplo).

En el caso del ejemplo, no hace falta tocar nada: aunque a veces los continentes están a caballo de los bordes del mapa (se ve una parte en cada lado), en éste ven todos perfectamente. Sí que hará falta tocar la latitud y longitud para la proyección ortográfica, que muestra sólo una parte del mundo y tendremos que “enfocar” hacia la que nos interesa.

Proyección ortográfica del mundo "0.560789"

Proyección ortográfica del mundo "0.560789"

Como verán en las imágenes, hay algo más que también hace planet: generar una cuadrícula sobre el mapa. Yo uso una de 15º, más que nada para ayudarme a decidir cuánto tengo que mover el mapa en un sentido u otro si las cosas no encajan. Para el mapa sobre el que voy a trabajar la quito, pero mientras estoy probando si el mapa es adecuado es una ayuda muy valiosa.

Aparte de éstas, que sólo afectan a cómo se ve el mundo, hay otras opciones en planet que alteran su composición: altitud inicial, variación debida a la distancia y variación debida a la altitud. Con éstas podemos aumentar o disminuir la cantidad de tierra que se ve por encima del agua y hacer el mundo más o menos “rugoso”.

El producto final

Cuando todo está decidido, genero unos GIFs monstruosos que contienen, cada uno, cinco versiones diferentes del mismo mapa. En concreto:

Y esto cuatro veces, una por proyección: Mercator, Mollweide, ortográfica y rectangular. Suelo usar sólo la rectangular, pero siempre genero las cuatro por si acaso luego me hacen falta. Todavía no ha ocurrido, pero me niego a aceptar que las demás son prescindibles. Es como tener el síndrome de Diógenes.

La ventaja de “empaquetar” todas estas imágenes en un GIF es que al cargarlas con Gimp se muestran como capas diferentes. Así puedo, por ejemplo, superponer la cuadrícula al mapa en color, o superponer el contorno sobre el mapa con bump-mapping. Por supuesto, ocupan una barbaridad: entre 5 y 10 megabytes cada GIF. A Gimp suele costarle un poco abrirlos.

Conclusión

Y hasta aquí todo lo que les quería contar hoy sobre planet. Inicialmente pretendía cubrir en un sólo post todo el proceso típico para hacer un mapa de los míos, que como verán no necesita de demasiado talento. Pero visto lo que me ha llevado la parte de planet, he pensado que es mejor dividirlo en dos.

No sé cuándo publicaré la siguiente entrada. Tendrán que añadir el weblog a su lector RSS y esperar pacientemente. Espero que merezca la pena :-)

por xouba el December 23, 2011 07:23 PM

December 17, 2011

FLOSS your music: Quirq

 

They say there are orchids that bloom only once a century. It’s only one of those things that happen only from time to time, and you’re lucky (or unlucky) if you caught them “in the act”. It happened to me with Quirq: I had been in LAU just for a couple weeks when he released “Beyond Triple Point (parts 1-3)”, a prog-rock suite that has been a decade in the making.

What’s in a name?

I can’t describe Quirq’s origins better than he did:
 I was released a month after Pink Floyd’s “Wish You Were Here”, around the time of Van der Graaf Generator’s “Godbluff”, but have yet to be certified gold or platinum! I was born – and still live – in the part of the world that produced Allan Holdsworth, Bill Nelson and Steve Rothery.
He was born in a music-inclined family: both his older brothers and his sister have been or are still involved with music; and a new generation, Quirq’s nephew, is already dabbling with guitar and bass. He himself lived in a “golden age” of musicianship when he was a child, playing in a youth orchestra and learning flute, violin and piano.
 
But other kinds of music nudged Quirq away from the Right Way of classical music: heavy metal (Iron Maiden) and classic rock (Led Zeppelin) were knocking at his door by influence of brothers and friends; and by 17, having had an epiphany watching “Live at Pompeii” by Pink Floyd, he sort-of broke up with classical music and bought his first guitar, a second-hand Epiphone Strat copy. Quirq’s parents despaired seeing that all their effort to turn their child into a classical music genius was being thwarted by some long-haired and possibly stoned guys in questionable outfits. He left flute and violin for the electric six-string, though the grounding in theory that his classical education gave him has been fundamental in his music.
 
Quirq is also a fan of classic cars (owning a 1973 Triumph Spitfire sports car, “slightly modified to go a teensy bit faster”), and has recently become a motorbike rider. Yes, girls: he’s got a sports car, he’s a biker, he plays guitar and he’s single. I didn’t ask about tattoos, but sure he’s got ‘em too. Go get him before it’s too late!

Music

 Quirq’s music is heavy prog rock: not heavy in the “metal” sense, but meaning that it strays intentionally from mainstream rock, getting up to the neck into progressive sound, far from blues-based music. The only common ground that we could establish were Pink Floyd and Marillion. As he reckons, his influences are “prog and mostly fairly obscure stuff”:
I’m influenced very much by Änglagård, White Willow, Sinkadus, Anekdoten and a host of other Scandinavian prog bands. There’s a healthy dose of English pastoral influence in there as well: Camel, Genesis and things like that. 
Quirq likes to say that “a good composer borrows from others, whilst a great composer steals”. It’s virtually impossible for a musician to be influence-free, but great musicians take what they’ve been fed, filter it through their abilities, tastes and obsessions, and make it their own. It’s no longer the property of the original artist, but something new and hopefully interesting. For example, most people think that “All along the watchtower” is a Hendrix track, not a Bob Dylan song because Hendrix took it and totally re-invented it and made it his own.

Melody Maker

 A very unusual feature of Quirq’s composing method is that he tries to find melodies and themes first and then fit the chords underneath, not the other way around. In particular, he says:
I always seem to end up with very safe and staid chord progressions though, even then! But it allows more freedom for the theme or melody to go where it wants. Voice-leading of chords can generate some nice melodies, but I find that often the melody inherent in the chords is so strong that it can be difficult to write other melodies to fit over. 
Another feature is his liking for odd time signatures. In “Beyond Triple Point” we can find the usual 4/4, a bit of ¾, 15/8 and 17/8. For me it’s always been difficult to measure such things, but Quirq divides it into groups of two and three and then uses the word “apple” and “galloping” to count them (slightly based on an Indian method to do the same). So, for him 15/8 could be  2+2+2+2+3+2+2/8, and 16/8 could be 2+2+2+3+2+2+3/8. That way, “you can put them together any way you want to put the accent in different places, moving around the long (three) and short (two) pulses”.

Coming to Linux

As we all did, Quirq started his musical endeavours using Windows. He used some freeware for his first recordings, because he wasn’t sure whether his PC would be up to the task and whether he’d stick with it, and didn’t want to be forking out a lot of money for DAW software. But in the end, he didn’t go very far. He was already using a lot of Open Source software (Firefox, Thunderbird, OpenOffice), and with help from a techie friend, he took the next step and installed DeMuDi. From then on, it was a question of learning about recording and mixing, and getting to grips with Ardour and a few bits of other software.
 
This said, it’s obvious that he believes in Linux as music making OS:
Great engineers can make great sounding records with basic tools and a fool with all the gear and no idea will churn out crap. There’s no reason why you can’t make great sounding music with Linux, it just depends on your workflow and whether you feel you need specialist features, which are only available with some specific app on a specific other OS.

Freedom and music

The current turmoil in the recording industry (illegal downloading of music, copyright issues) is one of my favourite subjects, because everyone seems to agree in the essentials (artists should be free to choose if their music is to be paid for or not) but there’s a new spin every time I ask about it. Quirq has an interesting theory involving the “low quality listeners” of nowadays’ music:
I sometimes think the bar to listening to music has been lowered much too far. You can blame the ubiquity of cheap MP3 players for that. There are many people that supposedly listen to music that reckon they really care about music, but have probably never heard it properly, just as MP3s on players with cheap DACs through a pair of cheap earbuds. And even when listening conditions are better, how many people actually actively listen, rather than just sitting there passively “hearing” music? I think all this does a real disservice to musicians and engineers.
 
This devaluing of music leads on neatly into the areas of intellectual property and compensation. I think copyright and most other intellectual property is fine and a Good Thing. You see a lot of people trying to justifying warez or uncleared sampling on music forums and a lot of it just seems to me to be a distorted sense of entitlement. The same goes with illegal downloading of music. It pisses me off that people are so disrespectful of the musicians or developers they supposedly like.
 
I think if some musicians or other artists want their art to be free, fine, that should be entirely up to them. But I don’t think music should be free, as in, no-one should ever have to pay for music.
There’s also another kind of freedom involved: not the listener’s, but the musician’s. Music is easier than it ever has been to make and distribute, and this, in theory, should give musicians more freedom. They should be able to do whatever music they want and avoid corporate labels, who tyranically imposed their own agendas over the musicians’ art. Or shouldn’t they?
The irony is that the demise of the big corporate labels has possibly made music much more commercial and artists less artistically free. What I mean is, bands are having to become personally much more business-like and spend more of their time conducting their own business affairs and less making music.
So, it seems that for musicians the price of freedom is not eternal vigilance, but it’s not cheap either.

Beyond Triple Point

 I’ve never really been into prog rock, but my experiences with Julien, Quirq and the bands they mentioned has burnt into my brain the idea that you can’t say you’re doing it if your tracks last less than 9 minutes. At 9:29, “Beyond Triple Point” is a suite of three parts (so far) whose genesis lies 12 or 13 years ago. Quirq worked on it on and off all these years, and released it only recently.
 
There’s a lot of odd time measures; drum-less interludes; ethereal guitar and synth solos; and a little of heavy distorted guitars (yay!). The mix has a lot of “breathing air”, if you get my drift: instruments are crystal clear, very well defined, and never too many of them at once. This all gives the track a somewhat stark feeling, different from the lush instrumentation of Julien’s compositions (which are the nearest reference I have). Having a real guitar makes a lot of difference too, as it sounds very authentic and integrated into the mix. Quirq’s way of composing (first the melody, then the chords to fit) makes the whole very tight, with the guitar parts driving the song and not just a loose improvisation over some pre-recorded chords.

Conclusion

 This month we’ve been a little late, but paraphrasing a known book character: “a feature is never late, nor is it early, it arrives precisely when it means to”.
 
As usual, the emails crossed with Quirq dealt with the human and the divine, a lot of stuff among which we managed to insert some music talking too. It’s been a pleasure to email him, though not so to edit him: there was a lot of stuff taken out for space’s sake that should have been here too. Even so, I hope what’s here is enough to know him better and appreciate his music.
 
Next installment: Atte André Jensen, AKA Modlys, creator of electronic music and jazz professor. Find how these two things match in January’s installment of “FLOSS your music”!

el December 17, 2011 03:07 PM

December 12, 2011

Cómo calcular raíces cuadradas

Un día se me ocurrió publicar un articulito sobre el fundamento matemático del método para calcular raíces cuadradas usando lápiz y papel. Desde entonces me llega un montón de visitas de gente que quiere saber cómo calcular una raíz cuadrada (supongo que les da igual por qué funciona el método si no saben cómo emplearlo, ¿no?). Por lo tanto, he decidido escribir este artículo explicativo.

Para empezar, vamos a ver cómo calcular la raíz cuadrada de un número de una o dos cifras. Por ejemplo, calculemos la raíz cuadrada de 71:

Esto es fácil: simplemente tenemos que hallar el número más alto, del 0 al 9, que multiplicado por si mismo nos dé 71 o menos. En este caso, el número que buscamos es 8, ya que 8x8=64, que es inferior a 71, y 9x9=81, que es superior a 71. Además, la operación tiene un "resto" que vale 7, ya que 71-8x8=7. Todo esto lo escribimos de esta manera:

Fácil, ¿no?

Pues ahora vamos a ver cómo se calcula la raíz cuadrada de un número de más de dos cifras. Por ejemplo, el 71.492:

El primer paso consiste en dividir el número en grupos de dos dígitos, comenzando por la derecha:

A continuación, calculamos la raíz cuadrada del grupo de más a la izquierda:

En este caso hemos calculado la raíz cuadrada de 7, que es 2 con un resto de 3.

A continuación "bajamos" el siguiente grupo de dos dígitos y lo ponemos a la derecha del resto:

En el siguiente paso multiplicamos nuestra solución parcial por 2 (siempre por 2) y ponemos el resultado (4) en una nueva fila de la columna de la derecha:

Ahora viene la parte más complicada del cálculo. Tenemos que buscar un dígito de 0 a 9 para añadir a la derecha del 4, lo cual nos dará un número de dos cifras. Ese número de dos cifras, multiplicado por el dígito que hemos buscado, nos dará un número que tiene que ser igual o inferior a 314, que es el número que tenemos después de "bajar" el siguiente grupo de cifras. El dígito más alto que encontremos será la siguiente cifra de la solución.

Veamos un dibujo para hacerlo más claro. Imaginad que "X" es un dígito de 0 a 9 y que "ABC" es el resultado de multiplicar "4X" por "X":

En este caso, el dígito que buscamos es 6, porque 46x6=276, que es inferior a 314, y 47x7=329, que se pasa de 314:

El resto es 38.

Ahora tenemos que, como antes, bajar el siguiente grupo de cifras y también multiplicar la solución parcial por 2 y añadir el resultado a la columna de la derecha:

Y, como antes, tenemos que buscar un dígito, concatenarlo al "52", multiplicarlo por el resultado, y procurar que el resultado sea igual o inferior a 3892:

Y, como podéis ver, la raíz cuadrada de 71492 es 267, con un resto de 203. Podemos comprobarlo fácilmente, calculando 267x267=71289, y 71492-71289=203.

Fácil, ¿no?

Algunos os preguntaréis cómo se pueden calcular las cifras decimales de la raíz cuadrada. Es decir, si usamos una calculadora, ésta nos dirá que la raíz cuadrada de 71492 es 267,3798... ¿cómo se pueden calcular estas cifras decimales con lápiz y papel?

La respuesta es muy simple: sólo tenéis que "bajar" grupos de dos ceros y seguir calculando la raíz cuadrada hasta que os canséis. Por ejemplo, aquí veis cómo he calculado las dos primeras cifras decimales:

Otra pregunta que algunos os haréis es: ¿cómo se calcula la raíz cuadrada si el número que nos dan tiene decimales? La respuesta es simple: cuando dividáis el número en grupos de dos cifras, en lugar de empezar por la derecha, empezad por la coma decimal. Si el grupo de más a la derecha se queda con una sola cifra, completadlo con un cero. Después, simplemente calculad la raíz cuadrada como siempre, acordándoos de poner la coma en el resultado cuando alcancéis la coma en el número original.

Y esto es todo de momento. Espero que esta explicación os haya sido útil y hayáis encontrado lo que buscábais.

por jacobo el December 12, 2011 12:41 AM

December 06, 2011

Internet en el bolsillo

He caído, ya llevo Internet en el bolsillo. R me ha enganchado con su estupendo sony arc (gratis para consumos mínimos de 29 euros).



Hace dos años y medio tuve una primera experiencia  con Vodafone. En una renovación escogí un samsung H1 (un linux bada) con tarifa de Internet gratuita durante 3 meses. Cuatro meses después le regalé el teléfono a mi sobrino y me peleé con operadores humanos y no humanos de Vodafone durante 2-3 horas para que me devolvieran una cuota injustamente cobrada. Lo divertido fue que se comprometieron a hacerlo en el mes siguiente pero al mes siguiente lo que hicieron fue volverla a cobrar, pero esa es otra historia.

La cuestión es que hasta este mes tenía la opinión que en los smartphone hay una referencia clara llamada "iphone" que es muy caro pero el resto no pasan de "sucedáneos" que te dejan insatisfecho. Sobre los rivales ya muertos (webos), en decadencia (blackberry) y próximos a resucitar por enésima vez (windows phone y nokia) sólo diré "yo no lo haría" así que sólo queda un rival serio llamado android, del que simpatizo por todo mis antecedentes pro-software libre pero ni los primeros android ni el poderoso galaxy me parecían rivales ante la interfaz de touch/iphone que es sencilla, rápida y elegante.

Mi opinión empieza a cambiar, el galaxy s2 ya parece un serio rival del que sólo se puede decir "en tono negativo" que es tan caro como un iphone (y en esa comparación siempre se prefiere comprar al "líder") pero lo que me ha impresionado es este android "gama media-alta", no es un iphone pero lo hace muy bien y te lo regalan gastando 29 euros al mes (si quieres un smartphone, que menos que tener una línea de datos que te llevará a esa cifra fácilmente).

¿Qué me ha sorprendido de este sony ericsson?

También hay que poner los peros:
  • la batería con un uso "ridículo" pero conectado a Internet siempre no pasa del día (lo bueno es que se pueden comprar segundas y terceras baterías con cargador externo, con un iphone te tienes que reír y apagarlo)
  • la pantalla, repito mejor protegerla no vaya a ser que sufra arañazos
  • hardware es medio alto, pero los hay mejores (ojo que el móvil siempre responde "al toque" así que no se nota en condiciones normales)
  • es un android: en móviles no me gusta complicarme; no cambio firmware, no quiero hacer cosas raras, quiero un cacharro que funcione y me de servicio de una forma directa e intuitiva y hay ciertas cosas que cuesta entender en este móvil para poder usarlo al 100% pero bueno para algo está google o preguntarle a los amigos.
En fin un gran producto que hace que sony ericsson (próximamente simplemente sony) vuelva a por sus viejos laureles en un mercado donde parecía que samsung, apple, htc e incluso lg le habían comido terreno.
Y si estás en Galicia y eres cliente de R puedes tenerlo por 0 euros mientras te comprometas a gastar 29. Yo he escogido una tarifa mini+internet con cuota de 19 euros que me da 1GB a velocidad "buena" y a partir de ahí reduce a 64kbps (señalar que otras operadoras dan 128kbps), pago por las llamadas normales 4 céntimos por minuto. Lo bueno es que mi consumo mínimo de 29 se suma el del móvil de mi mujer (6 euros, ahora serían 9) así que tenemos un mínimo de 35 de donde se nos quita 19 para la cuota y quedan 16 euros para llamadas que podemos hacer indistintamente desde cualquiera de los dos teléfonos (aunque imputan un mínimo de 3 euros de consumo a cada móvil).
Hay otras combinaciones que te pueden resultar interesantes, por lo visto está funcionando muy bien una oferta que por 29 euros te dan tarifa plana (más sincero sería llamarlo bono de 300 minutos gratis a cualquier hora).
Más información en movil.mundo-R.com.
Y para acabar, intento ser siempre sincero y no engañar al personal. No trabajo para R aunque llevo cerca de dos años trabajando casi exclusivamente en un montón de proyectos de esta empresa así que deberías desconfiar de este post.
Soy un "apasionado por la tecnología" que le gusta escribir de vez en cuando sobre ella pero entiendo que me ha quedado un post que casi parece publicidad de este teléfono y de este operador así que eres libre de pensar eso o que simplemente sony y movil.mundo-R.com están vendiendo un producto que me parece sensacional.

por Juan José Iglesias González (noreply@blogger.com) el December 06, 2011 07:12 PM

December 05, 2011

WebKitGTK+ Hackfest: WK2, a11y and Ephiphany’s ad blocker extension

Some posts have been already published about this during the last days, but just in case you missed them I will mention it here again: Last week, a bunch of hackers gathered together in the Igalia office in Coruña for the third edition of the WebKitGTK+ hackfest , and a lot of work has been done, as Juanjo has already summarized in his “WebKitGTK+ hackfest wrap up” post.

WebKitGTK+ 2011 Hackfest

So, as everything has been already said from a more general perspective, I’d like to write my very personal wrap up here, focused on the tasks that I’ve been working on, which can be summarized in three:

Enabling accessibility support in WebKit2GTK+

This has been, by far, the task I devoted most of the time to during the hackfest, mainly focused on writing a ‘feature complete’ patch that could be applied upstream, and thus that could be reviewed in first place. But, what do I mean by “a ‘feature complete’ patch”? Well, perhaps you are already aware of the initial results already got in the WebKit2GTK+ a11y realm, but those results were obtained with a patch still in a very early state and, among other things, lacking a very important requirement for getting it accepted upstream: tests.

Fortunately, I can now proudly say that I managed to find a good way to write those tests (specially tricky due to the multiprocess architecture of WebKit2) and that there shouldn’t be any problem either with getting them work properly in the buildbots, which was something I was quite concerned about by the begining of the week, to be honest.

Besides the tests, the other obvious problem was that such a patch was not widely tested yet with the Orca screen reader (I use Accerciser for development purposes most of the time), and that would for sure unveil issues that would need fixing before being really able to propose a patch for reviewing, and so that was the other aspect where I put the spotlight during this week.

And regarding to this, I have to say that Joanmarie Diggs was working tirelessly by testing Orca with my WebKit2GTK+ a11y patch, reporting bugs, and helping me a lot to prioritize the tasks that would need to be done. From all those, I mainly worked this week in the following ones:

So, the conclusion of this part would be that we have now a patch in WebKit’s bugzilla (see bug 72589) that, once it’s approved, would enable accessibility in WebKit2GTK+ once and for all. Of course, this will probably take some time before it gets accepted upstream, but it’s yet another nice milestone in my opinion, and I personally hope it would happen on time for GNOME 3.4. Time will tell, though.

Rewrite of the Ad Blocker extension for Epiphany

This was another thing I’ve been randomly working on since some time ago (whenever “spare” time permitted), and that I was able to advance quite a lot right after coming back from the parental leave I enjoyed on September (did I say my second child was born on August the 30th?). However, the patch was not finished by any means, and some issues kindly pointed by Xan in bugzilla needed fixing before being able to say aloud something like “hey, the new ad blocker is now in town!”.

Thus, we thought it would be good to devote some time during the hackfest to try to close this task too, so we did: Xan reviewed the new version of the patch (addressing the issues he previously pointed out), I made some last changes based on that new feedback from him and we finally pushed it to the repository, replacing the old ad blocker extension with this new one, which is based in Midori‘s ad blocker and so is compatible with Adblock Plus filters, which work very well IMHO.

So, this basically means that the new ad blocker extension will be present from Epiphany 3.4 on. Check out the related bug in GNOME‘s bugzilla: bug 660154

Bug fixing in WebKitGTK+’s accessibility related code

Besides working in the WebKit2GTK+ a11y realm and on finishing the new ad blocker extension, I’ve also spent some time (although not as much as I would have wanted) fixing regressions in WebKitGTK+‘s a11y code as reported by Joanie (basically bug 72804 and bug 72830).

Compared to the other two points, this has been of course a pretty small contribution, but worth doing anyway since they were very important for Orca to work properly with WebKitGTK+ based browsers (special mention to bug 72830 here).

Conclusion

From the work-related point of view, I’d say this hackfest has been highly productive in general, as we achieved many goals which, as Juanjo pointed out in his wrap up post, “were not mainly about fixing critical and blocker bugs and implementing basic missing features, but about more ambitious and challenging” ones. As for me, I’m pretty happy with the results I got, specially with the WK2 a11y patch, which has now a much better shape, and so I hope we can integrate it soon upstream.

And from a more personal point of view, I’d like to say I had a great time (again!) this year in the hackfest, and not only because of the achiements got, but also because I had quite a lot of fun as well, because I met new people and because I felt, more than ever, part of a community and a project which I love.

To finish, I’d just like to mention that I’ve been taking some pictures during the hackfest, which you can check out in this photo set in flickr (pictures uploaded with Frogr, of course!). Nayan has also taken some pictures as well, check them out here.

WebKitGTK+ 2011 Hackfest (The End)

Of course, thanks a lot to the sponsors that made this possible: Collabora, Motorola, Igalia and the always awesome GNOME Foundation. I hope we’ll be able to repeat it next year, since this hackfest it’s only getting more and more awesome every time it happens.

por msanchez el December 05, 2011 10:01 PM

November 30, 2011

Presentación de Experiencias ante el cambio

Soy consciente que el número de visitantes de este blog ha caido en los últimos meses (o años) conforme han caido el número de posts que Ak, niushka y yo hemos ido escribiendo en el blog pero, bueno, esto es algo que hace ya tiempo me plantee compartir y haya va!

Hace ya algunos meses, desde la UOC me propusieron que diera una pequeña charla sobre alguna experiencia personal que pudiera ser interesante para los alumnos que se acercaran a la primera conferencia que iban a dar por Galicia. Esta proposición coincidió con un momento en el que estaba leyendo “Presentation Zen” un buen libro de cómo deben hacerse las presentaciones en el siglo XXI lo que hizo que aceptara sin rechistar la proposición y me puse a pensar “¿De qué voy a hablar?”

La busqueda sobre un tema para los asistentes me llevo más de lo esperado, no encontraba nada de lo que pudiera hablar y que le sirviera a la gente. Quería algo que me hubiera marcado y que fuera lo suficientemente común como para que le sirviera a la mayor parte de gente que viniera por las jornadas … finalmente, después de unos días, encontré el tema ¡Superación de problemas!

El siguiente paso era el “Cómo presentar el contenido”, para ello tenía claro que quería seguir las recomendaciones que Garr Reynolds me estaba dando en cada capítulo de su libro… parecía -y sólo parecía- una tarea facil. La máxima de Garr es algo como el KISS(Keep It simply Stupid) pero en realidad esto lo hace más dificil de implementar…

Hacer la presentación, prepararla y pulirla me llevo algún tiempo… no estoy acostumbrado a hacerlas y tenía muy claro cómo quería que saliera … la puesta en escena… aunque al final no pudo ser cómo lo tenía planificado…

Cuando llegue al salon de actos, me sorprendieron varias cosas:

  • La puesta en escena: Yo quería hacer una presentación de pie… pero tenía ue ser sentado… :@
  • Temas de las presentaciones: Sin duda, mi presentación era diferente a la del resto, mientras todos venían a hablar de sus empresas… yo venía a hablar de mis experiencias
  • http://www.youtube.com/watch?v=of-rj4GqsHk

    Presentación de la UOC

    En conclusión, era novato (y sigo siendolo), la puesta en escena no era la que yo buscaba… pero aun así… creo que vale la pena, por lo menos, oirlo creo que a alguien puede que le ayude

    Ya me direis qué opinais

    por kour el November 30, 2011 02:26 PM

    November 11, 2011

    Orca and WebKit2GTK+: initial results

    Last May, I wrote about some initial tests I did back then with AtkSocket and AtkPlug, just to learn a bit about that API that allows connecting accessibility trees in different processes, thanks to the magic of the ATK bridge. I did that in order to prepare for the work that would probably be needed when adding accessibility support in WebKit2GTK+, so browsers using the new version of this web engine could be at least as much accessible as those using the single-process WebKitGTK+ library. Looking back, I think that the effort has definitely payed off…

    However, because of one reason or another (and not necessarily work-related), I was not able to devote much time to keep working on this until some weeks ago, but fortunately I’m now again working on this as my primary task in Igalia, as part of our WebKit team, so I expect to have some nice results soon, hopefully also in the form of integrated patches upstream.

    And talking about results, I can’t avoid sharing the following at this very same moment, which is actually the trigger that made me write this post: today I was able to make Orca read, for the very first time, web content rendered through WebKit2GTK’s MiniBrowser, which has been not an easy task since the multiprocess architecture of WebKit2 made it a little bit challenging, to say the least.

    Of  course there’s still much to do in this regard, so do not think of the current status of the task as it was nearly finished or anything… but still I thought it was a nice milestone to share with the world, and what a better way to do it than using a video for that. After all, Orca‘s main job is about speaking, right?. So here it is:

    Orca and WebKit2GTK+: initial results
    [video in Vimeo] [video in Ogv (Theora / Vorbis)]

    By the way, I’d like to make the most of this post by saying I’m really proud and happy to have Joanmarie Diggs aboard in Igalia for a few weeks now, who contributed a lot to making possible that I was writing this post today. Thanks , Joanie!

    por msanchez el November 11, 2011 09:38 PM

    November 01, 2011

    FLOSS your music: Julien Claassen

    There is a guy in LAU that uses Nama, an audio sequencer with a text-only interface. The first time I read about such a thing, I wondered: “who in his right mind would use something like this?” Audio sequencers are already quite complicated without having to resort to ungodly keyboard shortcuts. Surely nothing good could come out of such a thing, right?
     
    Wrong. That guy made wonderful music. Much better than what I’ve heard from other people with heaps of hardware and nice GUI programs. The sheer complexity of songs like “Less is more” and “No use crying for spoiled milk” is astounding: lengthy compositions with many instruments and several parts, all knitted together like silvery elven cloth. As it happens, a text-only audio sequencer makes a lot of sense when you’re using a Braille display.
     
    Ladies and gentlemen, meet Julien Claassen.

    Walking in darkness 

    Julien is a german youth of thirty. He’s been involved with music since he was a child, when he played Glockenspiel in kindergarten. At this age, the piano looked like an intimidating beast to him; but it wouldn’t for much longer.
     
    As you probably have guessed, Julien is blind. Or rather, as he puts it:

     I am partially sighted. For all intents and purposes you could call it blind. I have meager sight on one eye, which is good enough for me, but not terribly important in the big scheme of things.

    He went to a primary school for blind students, and after classes, while he and the other children waited for a “big taxi” to carry them home, the teachers let loose the horde of children in a room full of instruments. It could have meant mayhem, but it seems it was fun and no one got (musically) hurt. Julien showed preference for keyboards at that early age, and at 11 he had his first keyboard and started piano classes. He’s still taking classes with the same teacher, now 87 years old.
     
    In his teens Julien took part in several short-lived music projects (“three day projects”), and spent most of his time playing and composing. His keyboard had a sequencer and he was recording his own music when he only was a lad of 12 or 13. At first it was electronic music, akin to eurodance and other popular styles of the time; but as he grew, his music did too, and a few years later “there were pieces carrying messages or where I was trying to express something”.
     
    Now Julien is studying computer science and electro techniques, hoping to work in the musical instrument industry, perhaps in the field of hardware or software user-interfaces. But music is still a central part of his life:
     

    I couldn’t live without playing music. Two weeks without a keyboard must be two very full and highly impressionable weeks, so that I don’t feel the withdrawal.

    The Muses

    Most of Julien’s stuff could be classified as “progressive rock”. His compositions are long and elaborated, with several layers of instruments vying for attention, chatting, arguing; like actors in a play, or lovers in distress. He plays synths, but you’ll hear every kind of instrument in his songs: drums, pianos, basses, strings, electric guitars. In fact, he’s a fanatic of drums, and wants them to sound “good and natural”. He’s got some friends collaborating on “Shout”, but usually it’s only him: the full orchestra at his fingertips.

    His main influence is the band Flower Kings:

    My main influence would be the Flower Kings. They have been for years. A friend told me that they should take my Flower Kings’ CDs away, after having listened to one or two songs of mine.

    He’s also been influenced by Bach, in particular by the playing of Glenn Gould, and some heavy metal too: Symphony X, which Julien says are the culprit of “the metallic tidbits”. Last but not least, you’ll find a bit of 70s entertainment music and … Britney Spears! Well, not quite, but Julien says he has been inspired by her too. Wicked, I know.

    I asked him where he got all the inspiration needed for music so long and complex, and if he had some kind of method or way of working to get these tracks done:

    Ideas come at odd times. They might happen when just walking along, but mainly when I already sit at the keys. Sometimes I work up to them, but even then something has been there before. I’m not a constructing person. I rely more on fantasy. I use some structure later on, when connecting all the ideas and making sense.

    Music and blindness

    Being blind has given Julien a different insight into making music with a computer. There are other people working with Nama and Ecasound, two main pieces of his musical weaponry, and they do it for various reasons: scriptability, slimness of the whole solution, or pure eccentricity. In Julien’s case, it’s nothing so frivolous: it’s the way he has of getting the information in the best way possible, which means line oriented.

    I work with a braille display. It is a device connected via USB (or serial port or whatever), which shows me 40 or 80 character lines (or half lines). It has some navigation buttons for “move focus to next/previous half line”, “move focus to cursor”, etc. There are also buttons above each character to force the cursor to go to a certain position, good when editing texts. I don’t have to look for the cursor, just tell it to come to me.

    Julien’s first computer had MS-DOS, when he was 15 or 16, but not long afterwards he switched to Linux. Soon he discovered Ecasound and was amazed, because “it was very intuitive to me and very perfect for my way of thinking”. It took a while to tame the beast, though: finding the right soundcard, paying for it and then mastering Jack. After that, in 2002, he “started recording like mad”.

    Making music with Linux

    When you talk about music making in Linux, you’re almost always implying Ardour. So I was specially interested in Julien’s answer: without Ardour, is Linux ready for music making?

    For me Linux is ready for music. There still are rough corners which could be smoothed; but for knowledgeable people, who are bent on making music, that’s fine. We might perhaps need some more access to other professional and commercial systems, like VST, Kontakt and the likes, but I’ve seen people out manouvering that as well. We certainly do have a few features that really make up for that.

    And an obligatory question: should music be free?

    I can definitely see that musicians need to earn a living, so why not sell their music. Painters sell their pictures, and I’ve never heard that discussed before. I’m not idealistically sold on the idea of free music.

    And what about record companies? Ken Restivo had some strong opinions about them, but Julien is more moderated:

    Record labels can be hell and heaven. It is difficult at the moment for independent musicians not going through the channels of labels to get airplay, but I wouldn’t say that this has to be the case in a few years. The net gets more and more attention, even some of the big names releasing music online only. It depends on what you want from life and music. I don’t begrudge anyone being a superstar.

    Less is more

    I’ve listened to a few tracks by Julien, and my favourite is “(Sometimes) Less is more (than more)”, also known as “Slim (TM)”. It’s a tour de force of 14 minutes containing bits of piano pop, jazz, odd meters, symphonic synths and rock. I asked Julien if there was anything special about the making of that song, and this is what he said:

    I paid more attention to detail. I went the long way, if I saw an improvement in doing so. So I actually did write a csound orchestra or two for processing the effects sounds, the scenic impressions. I did use other technology to a larger extent and I did take uncomfortable hints and suggestions from good friends, to whom I’ve played that song before it was released.

    For me, the process worked. Bring those csound orchestras and uncomfortable hints again anytime you want.

    Closure

    The first installment of “FLOSS your music” has been very welcome, and that was good and bad: good because it encouraged more in the series, but bad because it also created expectations. I was a little worried that I couldn’t meet them again, but fortunately there’s always something interesting behind each of the people I’m featuring.

    A big “thank you” to Julien, who’s been very warm and amiable during our exchange of information. He spilled his innermost secrets in our emails, but told me not to write more than a few here. Well, ok, not really: but you’ll never know for sure. Ha!

    Next month we’ll feature no other than the mysterious artist formerly (and currently) known as “Q”. Who’s behind that capital letter? That’s for you to know in the next installment of “FLOSS your music”.

    el November 01, 2011 06:54 PM

    October 31, 2011

    Simetría lateral

    Un experimento fácil de hacer para el que tenga un poco de familiaridad con software de retoque fotográfico:

    1. Sacaos una foto de vuestra cara, completamente de frente;
    2. recortadla a lo largo del eje vertical de vuestra cara y separadla en dos mitades;
    3. para cada mitad, hacedle una copia e invertidla de derecha a izquierda (como un espejo);
    4. pegad cada mitad a su correspondiente copia invertida, formando así dos caras.

    Nadie tiene la cara completamente simétrica, así que los resultados suelen ser interesantes.

    Tengo una foto de los resultados con mi cara.

    Si alguna vez me van a clonar usando de ejemplo una foto de un lado de mi cara, ya sé qué lado quiero que usen. Uno de estos dos macizos tiene una gran carrera en el mundo del cine. El otro es John Cleese cuando aún no tenía bigote.

    por jacobo el October 31, 2011 04:42 AM

    October 20, 2011

    Qué ocurre con mi voto

    He aquí las últimas novedades sobre mi intento de votar en las próximas elecciones generales.

    Como ya habéis podido leer, a finales de agosto descubrí que mi inscripción en el CERA no se había actualizado cuando fui a registrar mis mudanzas, así que aún tenía mi primera dirección en Dublín. Me puse en contacto con el consulado para enviarles los datos actualizados, pero éstos entraron en el censo de octubre, mientras que para las elecciones se usa el de julio, así que hace un par de semanas tuve que ir a San Francisco a hacer la reclamación al censo electoral.

    El siguiente paso es enviar un impreso a la delegación provincial de A Coruña de la oficina del censo electoral. Este impreso, en teoría, me lo mandan a casa y luego tengo que enviarlo de vuelta firmado y acompañado de una fotocopia del DNI, para lo cual tengo el 22 de octubre de plazo. Ayer me llegó una carta de la oficina del censo electoral, así que fui a la oficina de correos a recogerla. Sin embargo, no era el impreso de marras, sino una confirmación de que habían estimado mi reclamación (aunque copiaron incorrectamente el número del apartamento -- menos mal que parece que el cartero se sabe mi nombre y ha dejado el aviso en mi buzón).

    Como ya me conozco el percal y ya sé que este impreso no llegará hasta después del plazo (si es que llega), lo he descargado y cumplimentado yo mismo y lo he enviado directamente por fax a la susodicha oficina del censo electoral (en la web del proceso electoral dice que se admite el envío por fax).

    Ahora, en teoría, me deberían enviar las papeletas y toda la documentación para que yo pueda ejercer mi derecho al voto. Espero que no ocurra como en las últimas elecciones gallegas, que las papeletas no llegaron hasta que ya era demasiado tarde para ello (me parece percibir un patrón). Ya os contaré qué ocurre.

    por jacobo el October 20, 2011 08:49 PM

    October 09, 2011

    TARTA DE CHOCOLATE BLANCO Y QUESO

    Seguimos con las semanas de tartas… hoy toca la tarta de chocolate blanco (no apta para regimenes ;) )

    Bueno, empecemos con los ingredientes


    Un poco de chocolate negro (5 ó 6 onzas).Se utiliza para "pegar " las galletas.
    2 tabletas de chocolate blanco
    1 tarrina de queso de untar
    2 cucharadas de azúcar
    1/2 litro de nata
    100 cc de leche.
    1 sobre y 1/2 de cuajada
    Galletas María o napolitanas
    Una pizca de sal

    Una vez tenemos los ingredientes, el siguiente paso es ponerse manos a la obra!!

    Lo primero, es deshacer el chocolate negro en el microondas. Con este chocolate y las galletas, forramos el molde. Mi recomendación es poner la capa de galletas primero de forma que no se vea el fondo del molde y, después echarle el chocolate negro por encima y exparcirlo bien. Esto es muy importante porque será la base de la tarta. Cuando esté bien hecha la base, la dejamos un rato enfriar en la nevera.

    Mientras enfria la base (5min son más que suficienteS), con el resto de los ingredientes los echaremos en un cazo al fuego hasta que se deshaga todo, hay que moverlo para que no hierva y para que no se pegue.La cuajada es mejor echarla al final.

    Solo queda echar la mezcla sobre las galletas y dejar enfriar.

    Bom apetit ;)

    por kour el October 09, 2011 08:37 PM

    October 02, 2011

    TARTA DE TRES CHOCOLATES


    450 grs de nata
    450 grs de leche
    3cucharadas de azúcar
    1 tableta de chocolate negro
    2 tabletas de chocolate con leche
    2 tabletas de chocolate blanco
    3 sobres de cuajada
    1 paquete de galletas tipo María
    Un poco de mantequilla para mezclar con las galletas y poder hacer la base

    Triturar las galletas y mezclar con la mantequilla. Echar la mezcla en el molde y aplastar bien.Meter un momentito en el horno para que quede una masa compacta.

    En un cazo calentar 150 de leche con 150 de nata , dos cucharadas de azúcar y el chocolate negro.Revolver la mezcla, que no hierva, hasta que se deshaga bien el chocolate.Añadir un sobre de cuajada (que no forme grumos) y seguir calentando un minuto.
    Verter la mezcla en el molde de las galletas.

    Hacer lo mismo con el chocolate con leche pero con solo una cucharada de azúcar.

    Hacer lo mismo con el chocolate blanco pero sin azúcar.

    Dejar enfriar y meter en la nevera para que endurezca.

    Recomendación: Es mejor hacerla la víspera

    por kour el October 02, 2011 08:35 PM

    FLOSS your music: Ken Restivo

    I knew Ken Restivo through the LAU mailing list. There were two ocasions when the presence of Ken was apparent to me: when he published “Moment with Monosynth”, an eerie and beatiful instrumental made using the CALF Monosynth DSSI plugin synth, and when he wrote that he was quitting the music business. He tried to make a living out of it, but it didn’t work. Luckily for us, he’ll still be making music, even if it’s only “things that I can knock out in an hour or so”.

    Musically, Ken is a keyboardist deeply anchored in New York 70s funk. You wouldn’t tell by “Moment with Monosynth”, but you can check it out by listening to the rest of his music at his page in Bandcamp or his work with his most recent band, “Better than Lahar”.

    Who is Ken Restivo

    Ken is a purebred newyorker, born of second generation italian immigrants rooted in Sicily and spanish ancestors. He loved the music of “Sesame Street”, and by six years old he was already committing his first musical crimes using a church-like organ that his parents bought for him; though, on the inside, it was “a cheesy transistor console organ, with an equally cheesy drum machine attached”. They hoped to raise a well-behaved and cultivated gentleman with musical knowledge; but instead, they raised a musician.
     
    During childhood he also found his biggest influence: funk music. As he wrote:
     

    I grew up in New York in the 1970s. I remember listening to AM radio, WABC-AM, and hearing all the funk hits of the day. I’d get up on Saturday morning and watch Soul Train on the TV. I loved the city, and I loved the funk.

    And then comes adolescence and High School. This is the time where we all joined our first band, and Ken’s no exception. He did a few stints as keyboard player (often playing also the bass parts) and even heavy metal singer:

    Heavy metal was hugely popular where I grew up, and there wasn’t much keyboards in that. But I could scream like Ozzy fairly well, and I was lacking enough in self-awareness to be able to stand up on stage and do that without dying of mortification.

     After High School, Ken was thrown out to the Real World. That meant getting a job, and he worked as computer network technician in the Gold Age before the dot-com bust, while playing music in the evenings with and without a band. He hoped to make enough money with computers to be able to make his living with music; but instead he got married, spent 6 years at home raising his daughter, got divorced, tried to make a living as a professional musician for a few years, and gave up. Now he’s back to contract programming and sysadmin work.

    About music

    Ken plays keyboards, but his influences are not what you’ll suspect at first. I was aiming for Herbie Hancock, Thelonius Monk, Joe Zawinul and that kind of big-time Jazz and Fusion musicians, but Ken feeds off of much more: he dug punk and heavy metal in High School before discovering Prog Rock and other enlightened genres. With this background, you won’t be too surprised to see how he defines his playing:

    My keyboard playing is very, very much influenced by the flashy shreddy guitar heroes of that day, guys like Satch, Vai, Roads, Eddie Van Halen, etc. I bought a cheap old locally-made analog mono synth Moog knockoff called the CAT, and fed it through an Ibanez distortion pedal, an amp, and the AGC of an old cassette recorder to dirty it up but good, and then through an amp. Really fucking loud too.

    And though he’s not playing professionally anymore, he knows how he’d like to do it if he were. Speaking about “Moment with Monosynth”, he said:

    If I had the money and inclination to keep playing music, that’s the direction I would keep heading in: fundamentals like chords, melodies, using both hands, simpler production, and fixing weaknesses in my musical technique.

    Back to the roots of music?

    ¡Eso!

    Linux and freedom

    A big part of Ken’s fun with music was not in the playing, but the knob-twiddling. He enjoyed mixing records, and he’d like to do that if he got involved with music again. It all began in high school, when he hid in his parents’ basement “making overdubbed recordings on a homemade reel-to-reel 2-track multitracker and later on a TEAC 4-track”. That took him to the Atari ST, and then to Linux.

    He uses Linux exclusively, though he’s used a lot of weird stuff along his life. With that background, I asked him: is Linux ready for the studio?

    I think that anything is “ready” for anything if a creative person decides to use it for that purpose. The tools matter in terms of what *kind* of music you make, but it’s the artist, not the tools, that determines the *quality* of it.

    Which I take for a “it’s ready enough”. If people like Ken were making music with things like 4-tracks and the such long years ago, what we have now in Linux must be enough.

    When speaking about Linux and free things in general, it’s hard not to broach the topic of free music. Should music be free?

    For most of human history, folk music was simple music that told a story or was part of some ritual of daily life. Nobody got paid, but if you were good, you could travel from place to place performing and people would feed you and give you a place to stay.

    In the last 100 years, what had been “folk” or “popular” music became an industry, and suddenly thanks to radio and records there was a mass market for it. With that system you ended up with the great songwriters of the 60s and 70s and the one-hit-wonders of the 80s.


    Then the punk revolution, and indie revolution, and the costs of recording technology being driven down by 4-tracks and then computers, and the costs of distribution being driven down by mail order and indie and then by the internet, and now, here we are. You can’t afford to pay people like Jimmy Page to make “Led Zeppelin IV”, or Steely Dan to make “Aja” nowadays, or Pink Floyd to make “Dark Side”, or even Quincy Jones to make “Thriller” or Radiohead to make “OK Computer”. That infrastructure is gone. There will not be mega-super-hits like that anymore.

    I think we’ve gone back to the folk music model now. It’s produced on computers and distributed on the internet, but it’s very democratic, like folk music, and it’s simple as a result.

    Is it better or worse? His veredict:

    Neither and both. It’s just different. I have no love for that old music industry, I’m glad it’s gone, and I consciously chose not to get involved in it when it was at its peak. I’m disappointed that there’s less overall money available in music now, though. It’s a tradeoff.

    Featured song

    I’m a fan of “Moment with Monosynth”. It’s a strange and brooding song that grows slowly towards the climax. It has a story:

    I had been studying songwriting and chord progressions, moving away from the kind of linear modal jams I’d been doing for decades. Emotionally, I was deep in the woods in the rain with no internet, practicing, and just got taken with the beauty of the sound of that 24dBi Moog ladder VCF plugin, and how expressive it was.

    So there you have: to craft good music, all you need is a cabin in some rainy woods, with no Internet. Henry David Thoreau and the luddites were right all along.

    Ok, it’s done!

    Here you are, the first installment of “FLOSS your music”. It’s been a pleasure to cross emails with Ken: he’s been the first “recruit” of this feature, and neither of us knew very well how to do it. I must thank him for all his patience and the time he spent answering to my lengthy emails and my (sometimes quite gossipy) questions.

    Thanks for reading, and don’t forget to add the weblog to your RSS reader for next installments of this feature.

    Next installment: Julien Claassen, a young german composer that dives into Prog-Rock or OST-like music with ease.

    el October 02, 2011 09:59 AM

    September 29, 2011

    FLOSS your music

    There’s a lot of talent out there. There are a lot of people making beautiful music that you and me don’t know about.
     
    Many of these musicians distribute their work for free. If you are an artist of some kind, even if only an amateur, you know that art is not easy. These people are putting time and effort into something which they afterwards share with the world. Free for the taking. Gratis.
     
    So, if we have talented people making beautiful music and publishing it for all to listen, what is keeping us from knowing about them? We could blame it on “The Man”, but truth is simpler: there’s too much information and too little time. Without the heavy hand of a corporation behind, it’s difficult for an artist to make him or herself known.
     
    I want to change that. That’s why a time ago I had the idea of “featuring” some of these musicians and their music in my weblog. For me, they are important. They can be anonymous to most, but are known to me. And I want to make them known to other people too.
     
    Why “FLOSS”?
     
    “FLOSS” is the acronym of “Free Libre Open Source Software”. It’s common knowledge that FLOSS has advantages and disadvantages compared to proprietary software; but no one can deny that it’s a boon for people with limited resources. Never in the history of computers has so much quality software been available to everyone.

    I wanted to feature people that uses FLOSS to create music. It looks like you need a lot of expensive stuff to make music, but that’s not the case. These people are the best examples. They make good music with software that you can get for free.

    Free music made with free software. Can’t get much better than that.

    First in line: Ken Restivo

    The first feature of “FLOSS your music” will be Ken Restivo, funk keyboardist extraordinaire from New York. He’s been recently in the band “Better than Lahar”. Check out his work here.

    He’ll be here this weekend. Don’t miss it!

    el September 29, 2011 08:03 AM

    September 18, 2011

    Pastel de Manzana y Nueces


    Receta
    4 manzanas
    3 tazas de harina
    1 sobre de Royal
    250 grs. de mantequilla o margarina (vale tb aceite de girasol)
    5 huevos
    2 tazas de azúcar morena (si no tienes vale blanca)
    1 taza de nueces

    Por un lado, mezclar la harina y el Royal, por otro, batir la mantequilla medio derretida (a temperatura ambiente) con los huevos y el azúcar y mezclar bien las dos mezclas

    Una vez bien mezclados, añadir las nueces y la manzana cortada en cuadraditos.

    Echar en un molde engrasado y enharinado (otra opción buena es enharinarlo con pan rallado en lugar de harina)

    Hornear mas o menos una hora a temperatura media y listo

    Si os gusta más jugosa podeis echarle una salsa cuando la saques del horno

    SALSA


    INGREDIENTES:
    1 taza de azúcar moreno.
    1/2 taza de leche
    150 grs. de mantequilla

    Receta:

    Mezclar todos los ingredientes y cocer 5 minutos

    Que aproveche.

    por kour el September 18, 2011 09:49 AM

    September 16, 2011

    A long way to go.



    A long way to go.

    el September 16, 2011 08:24 AM

    September 11, 2011

    Tarta facil de Almendras

    Siguiendo con las recetas de la abuela (en este caso de mi madre), hoy le toca el turno a una de las ultimas en llegar, la bizcocho de almendras. Este postre es muy socorrido y suele tener mucho exito entre los comensales. Espero que os guste:


    Ingredientes:

            150 grs azúcar
            3 huevos
            200grs nata
            200 grs harina
            1 sobre royal
            un pellizco de sal.
            2 sobres de almendra fileteada
            200 grs mantequilla
            100 grs azúcar

    Receta
    Se baten los huevos con la nata, pellizco sal, se añade el azúcar, la harina y sobre royal. Se mezcla todo bien y se vierte en una bandeja de horno. Hornear durante 10 minutos a 150-160 grados

    A continuacion, se pone a hervir la mantequilla con los 100 grs de azúcar. Se le añaden en caliente los dos sobres de almendra fileteada y se vierte por encima de la pasta que ya hemos quitado del del horno.

    Se aplasta con un tenedor y se mete al grill durante 7 minutos.

    PD: Prometo poner una foto la proxima vez que la hagamos en casa :)

    por kour el September 11, 2011 09:47 AM

    September 04, 2011

    No voy a votar al PP ni al PSOE (pero no por los motivos que piensas)

    El censo electoral en España es permanente. Esto quiere decir que se mantiene un censo que recibe actualizaciones constantemente, en lugar de hacer un censo nuevo cada cierto tiempo. Aún así, el 1 de cada mes se "cierra" el censo con las actualizaciones recibidas durante el mes anterior. Cuando hay elecciones, el censo que se utiliza es el cerrado en el segundo mes anterior a la convocatoria. Si no me equivoco, tienen previsto publicar la convocatoria de las próximas elecciones generales el día 27 de setiembre, con lo que se utilizaría el censo cerrado el 1 de julio.

    Cuando un español se va a vivir al extranjero ha de ir a registrarse a la oficina consular correspondiente; al mismo tiempo, le añadirán al CERA, que es el censo de los españoles que viven en el extranjero. Cuando me fui a vivir a Irlanda acudí a la embajada, y allí me dieron de alta en el CERA. Un tiempo más tarde me cambié de piso y di aviso del cambio de dirección. Algo más tarde todavía me vine a EEUU, y también fui al consulado a registrarme.

    Podéis imaginar la sorpresa que me llevé la semana pasada cuando fui a la web del INE para revisar mis datos del CERA y vi que seguía figurando con mi primera dirección irlandesa. Es decir, que no actualizaron mi inscripción en el censo cuando fui a registrar mi cambio de dirección en Irlanda ni cuando fui a registrarme en San Francisco.

    He enviado los correspondientes impresos para actualizar mi dirección en el CERA, y anteayer me dijeron que ya han actualizado mis datos en el censo. Estos datos saldrán en el censo del 1 de octubre, que es después de la convocatoria y, por lo tanto, no voy a poder votar en las próximas elecciones.

    (Los españoles residentes en el extranjero tenemos un obstáculo más a la hora de votar: en la reciente modificación de la ley electoral se han sacado de la manga que los votantes tienen que enviar una solicitud para poder ejercer su derecho al voto, utilizando un formulario que se les enviará antes por correo. Me disculparéis que me entre una sonrisita cínica al recordar que en las últimas elecciones de la Xunta de Galicia mis impresos y papeletas de votación se retrasaron tanto que, cuando al fin llegaron, ya no tuve tiempo para enviar mi voto).

    Añadido: parece que mi lectura de la normativa electoral no fue lo suficientemente profunda y no me di cuenta de que, viviendo en el extranjero, mi circunscripción electoral está separada de mi lugar de residencia. Como en periodo de reclamaciones no admiten cambios en la circunscripción, pensaba que esto significaba que mi cambio de consulado tampoco lo admitirían y querrían que votara en Dublín. Sin embargo, aunque he cambiado de país de residencia (y, por lo tanto, ahora trato con un consulado distinto), sigo votando en Santiago de Compostela, con lo que mi circunscripción electoral no ha variado, y, en teoría, deberían admitir mi reclamación cuando la presente. Ya os diré qué tal.

    por jacobo el September 04, 2011 06:34 AM

    September 02, 2011

    Pensar mucho…

    Pensar

    por kour el September 02, 2011 08:08 PM

    August 31, 2011

    No Stress!!

    http://www.youtube.com/watch?v=Up1MzGUhQG0

    No Stress

    :/

    por kour el August 31, 2011 06:54 PM

    August 19, 2011

    Frogr 0.6.1 (bugfixing) release

    Shit happens in many ways, and sometimes that means you release an application with some bugs you just can’t stand and need to roll out a bugfixing release as soon as possible. Does this sound familiar to you? :)

    So that’s why this new release of frogr, just one week after the 0.6 version had been published, has arrived, taking care exclusively of fixing the following problems, as stated in the NEWS file:

    From those above, patches for some them were already included in the debian packages from frogr’s Ubuntu PPA and in the package for the Mac, but the most important ones -the leaks- were not, so that’s why I decided to roll this new version out.

    So that’s all, if you were already an user of frogr, go and grab it through the usual ways.

    por msanchez el August 19, 2011 05:18 PM

    August 14, 2011

    Homo Economicus

    Cuando vi que Penalonga había escrito un libro, al principio pensé que se trataría de una ida de olla de este simpático lugués. Lo bueno del facebook es que te mantiene informado sobre las cosas que les pasan a tus amigos así que realmente me equivoqué, Penalonga ya es una persona que lleva años haciendo libros de economía para editoriales de prestigio y trabaja en la enseñanza. Debería haber pensado que el libro tiene que estar bien; el autor tiene una amplia experiencia, sabe de lo que habla y aún encima todos los días se lo tiene que explicar a mucha gente.

    Cuando vi en la FNAC el libro colocado en un sitio preferente en la estantería de los libros de economía y empresa y con un buen número de ejemplares, empecé a sentir que ese libro incluso debía ser muy bueno. Sólo faltaba coger uno y poder hojearlo; y sorpresa, cada página que leía me resultaba interesante.
    Me encanta regalar libros por muchas razones, una de ellas es que tengo un intervalo de tiempo dónde yo los puedo leer, regalar a su real destinatario y pensar que he ahorrado dinero. 
    Este fin de semana he devorado "Homo Economicus" explica de forma amena y clara un montón de conceptos de economía como la inflación, la creación de dinero por los bancos, la globalización.
    Ciertamente tiene un "regustillo" neoliberal, no critica los fallos del sistema y parece sugerir la típica idea de que la competividad crea una mayor eficiencia que trae el avance a la Humanidad. Echo en falta algún capítulo que aborde el previsible problema de que si la economía crece de forma infinita y no nos vamos a otro planeta este sistema construido para construir y consumir tiene un serio problema.
    Tampoco me gustó el último capítulo con una exposición que hace entender que todo el riesgo es relativo y que nuestra percepción sobre él puede ser errónea. Compara probabilidades de viajar en coche o avión, hacer encierros, ... No le veo ninguna conclusión salvo la de hacer pensar que "todo es relativo".
    Y por último, hablando sobre la naturaleza de monopolios y oligopolios saca el típico ejemplo de Microsoft. Para justificar la posición de esa empresa por el lado tecnólogico sólo habla de patentes. Habría que precisar que las patentes de Microsoft en Europa no son aplicables y que su posición de dominio nace de su control absoluto de las interfaces de programación y estándares de datos que le permiten dictar las normas al resto de empresas (aunque los últimos años ese control ha quedado muy en duda, irrupción de linux, macos, móviles, tabletas y una Internet que se resiste a no seguir estándares públicos).
    Ahora bien, podría hablar mucho más de todas las cosas que me han gustado y que de hecho me han aclarado un montón de dudas. La economía hoy se ha convertido en un tema central de las conversaciones humanas; como el tiempo, el fútbol, la política, ...Así que el libro es muy recomendable para gente que no sabe nada de economía pero que quiere hablar con cierta propiedad con los amigos sobre estos temas. 
    Mis euros han estado muy bien gastados, sobre todo cuando mañana diga "¡Felicidades, Susana!"

    por Juan José Iglesias González (noreply@blogger.com) el August 14, 2011 04:31 PM

    August 13, 2011

    Frogr 0.6 released

    After some changes here and there frogr 0.6 is finally out.

    Frogr 0.6 running in GNOME 3

    Besides the usual bugfixing work, the main new features on this release are:

    • Integration with the GNOME general proxy settings (optional).
    • Open pictures in the default image viewer  from the details dialog and the main view.
    • Allow users to specify the license to be set for the pictures.
    • A new User Manual, under “Help > Contents”.
    • Some UI improvements.

    As usual, you can get frogr through different ways: you can grab the source code from its git repository or via the xz and bzip2 tarballs, specific packages for Fedora or for Ubuntu (ranging from Karmic to Oneiric) and even a version for MacOSX, if you dare to use it.

    By the way, at the moment frogr is already being packaged in some distros (see this) and others might follow, so perhaps it could be that you already were able to install it by just using your favorite package manager with the standard repos. Otherwise, it might be just a matter of time, I guess…

    For more information about the project and also how to contribute, check out its web site.

    Last, but not least, I’d like to make an special mention here to the awesome Quinn Dombrowski, who very well could be the “most passionate frogr user I’ve ever known” and who was kind enough to design, handcraft and send -from Chicago to Spain- a stuffed frogr mascot plus a beautiful vest for my son (which design comes also with its own incredible story), as a sign of gratitude for writing this tiny app. I’m still shocked about it, see what I’m talking about:

    Frogr mascot Onfim vest

    If you want to see more pictures you can check my set in flickr, although I warn you these two ones taken by the artist are way better than mine :-)

    Seriously Quinn… and yet once again: Thank you!

    por msanchez el August 13, 2011 09:02 AM

    July 18, 2011

    "If a man does not know to what port he is steering, no wind is favourable to him."

    “If a man does not know to what port he is steering, no wind is favourable to him.”

    - Seneca

    el July 18, 2011 08:32 AM