May 13, 2013

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 NS 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, 2013 04:15 PM

May 03, 2013

WebKit Contributors Meeting 2013

It turns out I’m writing this post at 6:00 AM in the morning from a hotel instead of doing it at a more reasonable time from my comfy home or a nice cafeteria in Staines. That’s already quite a new thing by itself, and the reason for that is not that I became crazy or something, but the fact that I’m completely jet-lagged in California right now in order to attend my second WebKit Contributors Meeting (my first time was in 2011), this time as part of the Samsung team in the UK R&D center, together with my mate Anton Obzhirov.

With regard to that, it has been a very interesting experience so far where I could meet new people I still haven’t had the chance to see in real life yet (e.g. my mates from other Samsung R&D centers or some guys from Apple I didn’t have the chance to meet in person before), as well as chat again with some friends and former mates that I haven’t seen for a while, such as Martin, Xan and Philippe from Igalia, Byungseon from LG, Nayan from Motorola or Gustavo from Collabora to mention some of them. It’s strange, and at the same time wonderful, how easily you can catch up on conversations with people that you barely see once a year (or even less) and mainly in conferences, and definitely one of my favourite parts of attending these kind of events, to be honest.

Also, from a less social point of view, I have to say I found very interesting the sessions I’ve attended so far, specially the one about “managing the differences between ports”, although the one about “build systems” was quite interesting too. Not sure how far we are yet in the WebKitGTK+ port from realistically switching to some kind of commonly agreed build system (cmake?), but at least it’s a good start to agree on the fact that it would be an interesting move and now that some people pushing for it.

My only regret about this first day is that I missed Hyatt‘s talk about pagination due to some health issues I’m experimenting while in California, mostly due to the extremely hot and dry weather (anything over 25 Celsius is “unbearable hot” for me), which is causing me a little bit of cough, sore throat and fever, all well mixed with the jet lag to make it a perfect “welcome pack” to the meeting. Fortunately, I got some “interesting” medicines that seem to have relieved a bit the pain and I could attend the rest of the sessions without much trouble, other than some occasional coughing. Not bad.

By the way, for those of you who were not lucky enough to attend the meeting but are anyway interested in the topics being discussed here, make sure you check the main TRAC page for the meeting, where you can also find transcripts for most of the sessions.

As for today, some more sessions will take place as well as a couple of hackathons so I expect it to be very interesting as well. Also I hope I can find some time too to work a bit on my patches to remove the nasty dependency on pango we have in WebKitGTK+ accessibility code, which is preventing us to have proper caret navigation in WebKit2GTK+ based browsers, as well as to discuss possible ways in which our lab could collaborate more actively upstream. Seems a promising day already!

Last (but not least), and in a completely unrelated and super-off-topic way, I would like to tell the world that I’m extremely happy for the fact that next week will be the end of my “lonely existence in the UK”, finally. After 4 months of living alone in Staines away from my family with just some flash trips from Friday to Sunday (every 2 weeks), I’m once and for all travelling on Thursday to my home town with a one way plane ticket to do some final arrangements, put everything (family included!) in the car and travel to Santander, where we’ll be taking a ferry that will take us to the Portsmouth (southern coast of England), from where we will just drive to Staines in order to start our new life, all together again.

It has been quite hard for us to live this way for so long, but I think in the end we managed to handle the situation quite well, and now it seems all our efforts are already paying off because things seem to be finally fitting in the right places: we have a lovely house in Staines, we have a place in a nearby public school for my oldest kid to start on September, most of the needed paperwork seems to be done and we already moved all our stuff from Spain (lots of toys!), which is now waiting to be used in our new place.

I really can’t wait to live again in the noisy and chaotic atmosphere that two kids can so easily create around them. Even if that means it will probably drive me crazy every now and then and that I won’t sleep that well sometimes.

Yes. Even considering that.

por mario el May 03, 2013 03:34 PM

April 29, 2013

Cortilandia from Óscar García Amor on Vimeo.Cortilandia de...

<iframe frameborder="0" height="225" src="http://player.vimeo.com/video/65057843" width="400"></iframe>

Cortilandia from Óscar García Amor on Vimeo.

Cortilandia de preciados en Madrid (Navidades 2012/2013)

por amhairghin el April 29, 2013 04:46 PM

April 21, 2013

El Lotus Elan

Una de las cosas que he aprendido viendo Wheeler Dealers es que Inglaterra tiene una gran tradición fabricando coches de un estilo particular: los roadsters, coches biplazas, pequeños, deportivos y descapotables. Son coches elegantes, que uno se imagina usando para ir a un picnic en la campiña inglesa un día de verano. Uno de los ejemplos por antonomasia es el Triumph Spitfire, y el otro es el que les traigo hoy: el Lotus Elan.

Lotus Elan de 1965 (fuente: bringatrailer.com)

Lotus Elan de 1965 (fuente: bringatrailer.com)

Aunque también hay un modelo moderno, el que sale en la foto es el clásico, el de los 60. Se hizo famoso por ser el coche de Emma Peel, de la serie “Los Vengadores”. En la foto no se ve bien, pero este coche es minúsculo: pesa 680kg, y mide 3.6 m de largo, 1.4 de ancho y 1.1 de alto. Por eso, con un motor de 1558cc podía alcanzar cerca de 190 km/h. Fue alabado por su manejo y su deportividad, y todavía hoy es uno de los clásicos más buscados.

 

por xouba el April 21, 2013 08:00 AM

April 11, 2013

XII Xornadas Libres: 24 e 25 de abril

Dende o GPUL comprácenos anunciar unha nova edición das xa senlleiras Xornadas Libres, as cales consistirán, coma sempre, nunha serie de conferencias, obradoiros e concursos con contidos do máis heteroxéneo, pero sempre xirando arredor do mundo da Cultura Libre: software libre, hardware libre, estándares abertos, licencias, propiedade intelectual e un amplo etcétera.

Ditas xornadas celebraranse do 24/04/2013 ó 25/04/2013 na Facultade de Informática (aula 3.3) da Universidade da Coruña.

Programa e rexistro: http://www.gpul.org/indico/conferenceTimeTable.py?confId=8#20130424

 

Dende a directiva gustaríanos agradecer de antemán as vosas propostas e a difusión do evento. Así mesmo agardamos que estas xornadas sexan do voso agrado.

 

por xuco el April 11, 2013 09:07 PM

Hackeando polo desenvolvemento humano (presentación ESF-GPUL na FIC)

O próximo xoves 18 de abril de 2013, de 12 a 12:30, terá lugar na Aula 2.1b da FIC unha presentación conxunta das asociacións Enxeñería Sen Fronteiras e GPUL. O obxectivo da breve sesión é dar a coñecer as dúas asociacións á comunidade universitaria, a súa colaboración desde hai varios anos, e a importancia do software libre dentro do que se coñece como «tecnoloxía para o desenvolvemento humano» (TpDH).

Contamos coa vosa presenza!

UPDATE: A presentación, por se a alguén lle interesa: http://www.gpul.org/sites/default/files/ESF_GPUL.pdf

Cartel do evento

por gpul el April 11, 2013 03:35 PM

April 10, 2013

1-star Amazon reviews

0 of 70 people found the following review helpful
Shallow and pedantic, October 12, 2011
By Captain Munch (Oregon) - See all my reviews
This review is from: Doritos Tortilla Chips, Nacho Cheese, 11 Ounce (Grocery)
This is the worst book I've ever read. The plot is linear and predictable, the characters are flat, and the setting is badly researched. Apparently this is the author's first novel-length book. Hopefully it will be the last.


14 of 14 people found the following review helpful
They are HEAVY!, January 3, 2013
By Bargain Hunter - See all my reviews
This review is from: Vinyl Dumbbells 10lb - Pair (Misc.)
Today I was sitting in my rocking chair at the porch when Pat the mailman arrived, and he gave me a very dirty look as he handed me my Amazon package. I soon found out the reason: this item is HEAVY! No really! It had to weigh at least 20 pounds! No wonder Pat was so grumpy.

I think Amazon should give you a warning or something, it is very irresponsible of them to sell such heavy things without telling you beforehand.


235 of 392 people found the following review helpful
It's OK, but..., March 24, 2009
By Alice Wonders (Nevada) - See all my reviews
This review is from: Dremel 4000 Rotary Tool (Tools & Home Improvement)
I received this Dremel brand rotary tool today. It works really well. Only giving it 4 stars because the box it came in was a bit scuffed in a corner.

UPDATE 1-12-2013: Reduced to 1 star because it broke down after only four years of continuous use grinding granite and titanium alloys. You'd think Dremel would make better tools.


89 of 92 people found the following review helpful
The author didn't research the subject, April 2, 2013
By Natalie Blood (New Jersey) - See all my reviews
This review is from: Dracula by Bram Stoker (Hardcover)
Almost as soon as you pick up the book you know that it's going to be bad. The characters spend the whole book writing letters to each other and there's no action to speak of.

There are lots of anachronisms. For example, it is set in the 1800s but Mina types her letters and Dr. Steward records his voice. Hello! Everybody knows that there were no computers in the 1800s! Can you be more stupider than that?

Also, the book gets everything wrong about vampires. I think the author should have done some reading on the subject before writing the book.

(Post your comments on Google+.)

por jacobo el April 10, 2013 01:52 AM

April 08, 2013

Porsche 944

 

Los 80 fueron grandes años para los deportivos. Las grandes marcas parieron algunos de sus modelos más míticos: el Testarossa de Ferrari, el Lamborghini Countach, y el modelo que les muestro a continuación: el Porsche 944.

Porsche 944 de 1979 (fuente: bringatrailer.com)

Porsche 944 de 1979 (fuente: bringatrailer.com)

En el programa “Wheeler Dealers” (traducido aquí como “Joyas sobre ruedas”, en el canal Discovery Max) restauraron uno precioso, del mismo color que el que pongo ahí arriba. Pero como era un modelo muy limpio y bien cuidado, que apenas necesitaba reparaciones, en lugar de dejarlo perfecto lo convirtieron en un coche de circuito. ¡Sacrilegio! Sólo por eso merecerían arder en el infierno.

El 944 es, si no el preferido, uno de los Porsches de los 80 más valorados. Su línea sigue siendo atractiva hoy en día, y su aura de deportivo con clase (aparte de clásico por sus años) lo distingue de otros “cohetes” divertidos, pero con menos finura (hola, BMW). En 8000vueltas hablan de uno comprado de segunda mano, con sus pros y sus contras. Un artículo muy recomendado tanto para los que quieran uno como para los que busquen un deportivo de segunda mano en general.

 

por xouba el April 08, 2013 06:54 AM

Arrinca a FIC OnDev!

Hoxe, 8 de abril de 2013, arrinca na FIC unha nova edición destas xornadas de desenvolvemento e deseño.

Na -moi coidada- web do evento tedes toda a información ao respecto: http://ficondev.es

Achegamos o programa definitivo para esta primeira semana, que arrinca cunha ponencia sobre Cloud Computing do gran Guillermo López Taboada, socio de GPUL, profesor da FIC e ideólogo da nova start-up da UDC TORUS:

Programa FIC OnDev 2013

AdjuntoTamaño
Programa FIC OnDev 2013135.52 KB

por gpul el April 08, 2013 06:37 AM

April 01, 2013

“La Puerta de Ishtar” (y 2): todo lo demás

Tenía pendiente una segunda parte de la reseña de “La Puerta de Ishtar” que hice hace un tiempo. Les hablaba de cómo el juego bebía de la mitología y literatura de Mesopotamia, cómo Rodrigo había usado el idioma acadio para darle profundidad a la ambientación, y de algunas de las referencias más patentes (las obras de Robert E. Howard, H. P. Lovecraft y Clark Ashton Smith). Habiendo acabado el libro, no tengo mucho más que decir respecto a esto. Pero me faltaba una parte del trabajo de Rodrigo que considero fundamental en el éxito del crowdfunding de “La Puerta”: el marketing.

Si bien el trabajo que va en el libro es importante, “La Puerta” no habría sido lo mismo sin el intenso trabajo de publicidad (bien entendida) que la rodea. Desde el principio hubo un weblog para hablar de los progresos en su elaboración, de información relacionada con Akkad, Súmer o Mesopotamia, de las visitas de Rodrigo a la verdadera Puerta de Ishtar (la del British Museum), de sus contribuciones al Fanzine Rolero y a otras publicaciones, hacer encuestas … y de los dibujantes que participan en el libro.

Portada de

Portada de “La Puerta de Ishtar”

Esta última parte me parece imprescindible para entender por qué “La Puerta” ha conseguido tanto apoyo. Rodrigo nos ha puesto los dientes largos con dibujos que iban a aparecer en el libro: cada poco tiempo había una nueva ilustración, o la presentación de un nuevo dibujante. El weblog arrancó con la portada del libro (obra de AJ Manzanedo) adornando la cabecera, y después pudimos ver otras de todos los que han participado en el libro. Cuando salió el libro, muchos (entre los que me incluyo) teníamos tantas ganas de leerlo como de disfrutar de las ilustraciones.

Y por fin, otro elemento clave del éxito de “La Puerta” es todo el “trabajo de campo” de Rodrigo en convenciones y derivados. He perdido la cuenta de las presentaciones, partidas de demostración y charlas de las que ha dado cuenta en el weblog. Ni siquiera editoriales “profesionales” dedican tanto tiempo al contacto directo con los jugadores. Rodrigo ha bajado a la arena a enfrentarse cara a cara con los leones, por decirlo así, mientras que otros se quedan en las gradas gritando y agitando sus pañuelos.

Estos tres factores (un weblog activo desde el principio del proyecto, una colección de dibujantes excepcionales y la publicidad “puerta a puerta”) son los que han hecho de “La Puerta de Ishtar” un fenómeno de referencia en los juegos de rol españoles. Todavía es pronto para verlo, pero será un modelo a seguir por todas las publicaciones que se creen en España y posiblemente en otros países.

 

por xouba el April 01, 2013 08:00 AM

March 25, 2013

Un lobo con piel de cordero: BMW 325i de 1989

Un nuevo “deportivo de calle” directo desde Bring A Trailer, para deleite de sus ojos y sus glándulas salivales:

BMW e30 de 1989, un 325i con motor de 740i (fuente: bringatrailer.com)

BMW e30 de 1989, un 325i con motor de 740i (fuente: bringatrailer.com)

BMW es un clásico de los coches deportivos alemanes. Es difícil encontrar alguien al que le gusten los coches rápidos y potentes que no tenga, haya tenido o desee tener un BMW. Tienen ese aspecto de “ladrillo con motor gigante” que, a mí al menos, me resulta muy atractivo: ángulos rectos, ruedas anchas, faros grandes. Un aspecto muy alemán.

El que les pongo aquí hoy es un ejemplo: mientras que los BMW recientes (modelos e46 y e90) tienen un aspecto de curvas suaves, éste (un e30 de 1989) todavía es “cuadrado” y agresivo. Aparte, originalmente era un 325i, pero el dueño le cambió el motor por el V8 de un 740i (280CV) y la transmisión por una de seis marchas de un 540i.

Con todo esto y 1270kg de peso, el coche corre que se las pela. Personalmente le quitaría las llantas actuales para ponerle otras más discretas, y que nadie se imaginara el monstruo que hay bajo el capó. Es un coche con el que podrías conducir por cualquier sitio sin llamar la atención, y darte de vez en cuando el placer de dejar atrás en el semáforo a coches más pretenciosos.

 

 

por xouba el March 25, 2013 08:00 AM

March 24, 2013

XII Xornadas Libres: petición de contribucións

Dende o GPUL comprácenos anunciar unha nova edición das xa senlleiras Xornadas Libres, as cales consistirán, coma sempre, nunha serie de conferencias, obradoiros e concursos con contidos do máis heteroxéneo, pero sempre xirando arredor do mundo da Cultura Libre: software libre, hardware libre, estándares abertos, licencias, propiedade intelectual e un amplo etcétera.

 Ditas xornadas celebraranse do 22/04/2013 ó 26/04/2013 na Facultade de Informática da Universidade da Coruña, sendo a data de finalización de recepción de propostas o 04/04/2013 ás 23:59 horas.

ACTUALIZACIÓN:

Amplíase a data de finalización de recepción de propostas ata o 07/04/2013 ás 20:00 horas.

  • O envío das mesmas farase a través da plataforma creada para tal fin, sendo preciso rexistro previo e cubrindo correctamente o respectivo formulario web.
  • Será preciso adxuntar o material que se considere necesario para a avaliación da proposta (presentación ou similar, etc.).
  • Aceptaranse propostas en galego, castelán, portugués, inglés e/ou francés.
  • Calquera proposta que non cumpra coas anteditas normas será directamente rexeitada.

Dende a directiva gustaríanos agradecer de antemán as vosas propostas e a difusión do evento. Así mesmo agardamos que estas xornadas sexan do voso agrado.

por xuco el March 24, 2013 05:46 PM

March 23, 2013

Multiple cursors, Emacs and me

It’s been 7 years already since I started using Emacs and, for some reason, I still haven’t found a text editor I do feel more comfortable with, and I Swear to Gods I’ve tried. I really did. And as proof, I can tell that those who know me a bit can really support this statement, no doubt about it ;)

The thing is that,  for some reason or another, whenever I tried a different editor, a fancy IDE or anything else, the result was always the same: I first realize of a new and very interesting feature X in the editor Y which makes me think for a while “hmmm… this could be the one”, then I start using that editor Y for a while, then I realize I’m not comfortable enough for many other things, then I realize I’m continuously alternating between that editor and Emacs and then… finally… I somehow manage to “port” that very nice feature X to Emacs and ditch editor Y to finally come back to the origin again.

And that has been the story of my (text editing) life so far. And, as you can see, I haven’t written a blog post about every single feature X I added to my Emacs. But this time is different.

Everything started, as usual, with me willing to try a new text editor, and this time I selected Sublime Text 2 as the one to check, mainly because I wanted to check myself whether of all the hype around it was justified or whether it was just… well… just hype.

And I have to say that I was really impressed by ST2: what I’ve seen is a very nice and modern editor which is blazingly fast and convenient to use, and which on top of that it comes with a lot of useful features and a nice configuration out-of-the box, which is also very easy to customize and extend if you want to. Up to that moment, everything seemed to suggest I could be really in front of a replacement for Emacs, but given my past experiences I still took this with a grain of salt (even if I could not hide my excitement either)…

If you don’t believe me, you should really checkout its website and, even better, the “Perfect Workflow in Sublime Text2″ tutorial and you will see yourself what I’m talking about.

However, not all were bells and whistles in my ST2 experience. There were drawbacks too, and the main ones I could see were that it was not an Open Source editor and that the bus-factor was really scary (only one developer, I think). And those two things together were a serious concern to me. But I tried it anyway, because it really feel like it could be a serious competitor for my Emacs, and I was willing to take the risk, just for the sake of checking it (and playing around with a new editor, which I confess is something I love doing every now and then in any case).

But yet again, the same pattern happened one more time: I found myself loving ST2 in many regards but alternating too often between it and Emacs since, even if ST2 was lovely for many things, there was nothing that was really convincing me of replacing my Emacs in favour of it. Well, almost nothing… because the “multiple cursors” feature in ST2 got my attention as not many text editor features got it in the last years.

So, the obvious step at this point, having already decided that I would be going back to Emacs again, would be to try to port this nice feature to Emacs, and then I found the awesome “Emacs Rocks!” site, where I found a demonstration of this sleek feature working inside Emacs. I´ll leave the link to the video here, so you can really see what all this is about:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" height="315" width="560"><param name="allowFullScreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="src" value="http://www.youtube.com/v/jNa3axo40qM?version=3&amp;hl=es_ES"/><param name="allowfullscreen" value="true"/><embed allowfullscreen="true" allowscriptaccess="always" height="315" src="http://www.youtube.com/v/jNa3axo40qM?version=3&amp;hl=es_ES" type="application/x-shockwave-flash" width="560"></object>

As you can see, this feature is amazingly useful for many things of everyone’s life (well, maybe not really everyone’s, but almost!), as it’s incredibly helpful for things like massive “search & replace”, improving code structure (e.g. break a list of strings in one single line into multiple ones) and many other situations.

Others might disagree, of course, but for me there’s a “before” and an “after” I knew about this feature, and I don’t think I will be able to easily move now to an editor which doesn’t have something like this available in some way.

Should you want to try it out yourself, I recommend you to check out both episode 13 in “Emacs Rocks!” as well as the github repository where you’ll find the package for Emacs.

Guess this means I’ll stick to Emacs for some more time after all, even if I’m still not sure I will stick forever to it, since I can’t say either I’m 100% comfortable with it, just that it’s the best thing I’ve found so far. Yet I can’t avoid feeling that I still haven’t found what I’m looking for

por mario el March 23, 2013 12:41 PM

March 21, 2013

World Poetry Day 2013

Today I want to remember the modern Spanish drama founder and great poet Lope de Vega. This year my girlfriend and me visited his grave at San Sebastian church, Madrid.

Amor con tan honesto pensamiento

Amor con tan honesto pensamiento
arde en mi pecho, y con tan dulce pena,
que haciendo grave honor de la condena,
para cantar me sirve de instrumento.

No al fuego, al celestial atento,
en alabanza de Amarilis suena
con esta voz, que el curso al agua enfrena,
mueve la selva y enamora el viento.

La luz primera del primero día,
luego que el sol nació, toda la encierra,
círculo ardiente de su lumbre pura,

y así también, cuando tu sol nacía,
todas las hermosuras de la tierra
remitieron su luz a tu hermosura.

Félix Lope de Vega y Carpio, 1624

por 曹 tsao el March 21, 2013 10:23 PM

March 19, 2013

Asamblea Ordinaria 20/03/2013

Recordatorio da Asemblea Ordinaria de mañá mércores, 20 de marzo (na Aula de Graos da FIC), 19:30 en primeira convocatoria e 20:00 en segunda.

Orde do día: (na lista gpul-socios achegouse a documentación ao respecto: acta anterior e contas)

  • Lectura das altas e baixas de socios dende a última Asamblea.
  • Lectura e aprobación, se procede, da acta da Asamblea anterior.
  • Lectura e aprobación, se procede, das contas de 2010 e 2011.
  • Lectura e aprobación, se procede, das contas de 2012.
  • Estado das contas e subvencións de 2013.
  • Lectura e aprobación, se procede, da memoria de actividades de 2012.
  • Estado das actividades de 2013.
  • Proposta e aprobación, se procede, do cambio de entidade bancaria.
  • Proposta e aprobación, se procede, da participación de GPUL coma socio de Fiare Galicia (banca ética).
  • Convocatoria de eleccións, se procede.
  • Rogos e preguntas.

 

por gpul el March 19, 2013 06:25 PM

March 11, 2013

Shelby GT 500 “Super Snake”

Dentro de los nombres propios que adornan el mundo el motor hay uno muy especial: Carroll Shelby. Fue corredor de carreras y empresario, pero el mundo le recordará por su labor como diseñador/constructor/modificador de coches. En concreto, por dos modelos: el Mustang Shelby y el AC Cobra.

En Hemmings ha aparecido recientemente uno de los GT500 “paridos” por este hombre: el “Super Snake”. Ecce auto:

GT500

GT500 “Super Snake”, modelo único de Shelby American (fuente: hemmings.com)

Traduzco y parafraseo la presentación de este coche que hace Hemmings:

Ciento setenta millas por hora puede no ser mucho para un “supercoche” moderno, pero en 1967 no todos los coches podían presumir de esa velocidad. Uno de los que podía era el Shelby G. T. 500 Super Cobra.

Para ponerlo en contexto, ciento setenta millas por hora son doscientos setenta (y pico) kilómetros por hora. Si pensamos que este coche tiene casi cincuenta años, lo mínimo es asombrarse. Aunque sólo sea un poquito.

Por si fuera poco, este coche es único. Por aquellos años, Shelby había fundado Shelby American, empresa que modificaba coches de diversas marcas (Ford, principalmente; pero también trabajaron con otras como Dodge) para obtener modelos deportivos. El GT350 y el GT500, ambos basados en los Ford Mustang, son dos de sus modelos más famosos. En 1967 recibieron un encargo de Goodyear: diseñar un coche para demostrar la calidad de sus ruedas Thunderbolt, dirigidas al mercado doméstico. Shelby decidió darle un buen repaso a los neumáticos, y junto a su diseñador jefe, Fred Goodell, usaron la base del Mustang que tan bien conocían y le colocaron un motor GT40 Mk 2 (7L, 485CV), el que Ford montaba en sus coches para las 24 horas de Lemans.

Los periodistas montaron en el coche, conducido por el propio Shelby, y disfrutaron de varias vueltas a una media de 142 millas por hora (228 km/h). No sé si envidiarlos o compadecerlos. Y todo esto, recordemos, con neumáticos que estaban pensados para coches normales, no para deportivos.

Aunque se estudió la posibilidad de hacer un coche para el público con las mismas especificaciones, el precio era muy alto: 7500 dólares de la época, unos 41000 actuales. Así que se quedó como uno más de los excéntricos, exagerados y maravillosos experimentos de la factoría Shelby.

 

por xouba el March 11, 2013 08:00 AM

February 26, 2013

Release Party de KDE S.C. 4.10

A versión 4.10 de KDE S.C foi publicada recentemente, e para celebrar a publicación de esa nova versión de KDE S.C., vaise celebrar na Coruña unha release party de KDE.
A Release Party terá lugar o venres 1 de marzo de 2013, e consistirá nas seguintes actividades:

  • Lightning talks, 19:00 na Aula 2.2a da Facultade de Informática da Coruña.
    As lightning talks consistirán nunha serie de relatorios curtos (entre 5 e 10 minutos aproximadamente), relacionados con KDE, nun ambiente informal e distendido.
  • Cea de celebración, 22:30 na Raxería as Neves, Ronda de Outeiro 300.
    O precio aproximado da cea será de 8€ por persoa.

As persoas que queiran asistir, deben engadir o seu nome no wiki das Release Parties de KDE ( http://community.kde.org/Promo/Events/Release_Parties/4.10 ), ou enviar un email a fid (arroba) gpul (punto) org.

Organizan:
  GPUL KDE EspañaKDE España  
 
Colaboran:
  Universidade da Coruña  
 

por fid_jose el February 26, 2013 01:24 AM

February 25, 2013

El sueño se llamaba “Corvette”

Fíjense en la joya que anunciaron en Hemmings hace unos días:

Chevrolet Corvette de 1969 (fuente: hemmings.com)

Chevrolet Corvette de 1969 (fuente: hemmings.com)

Un Corvette de 1969. Un verdadero clásico, un icono del deportivo americano. Este color no es el que más me gusta, pero … qué maravilla.

El Corvette nació como roadster, un coche rápido y biplaza para presumir y disfrutar. No es un muscle car, que al fin y al cabo es un ladrillo más o menos estiloso con un motor enorme. El Corvette tiene estilo, tiene clase.

Y sí, también tiene un motor enorme. Eso va de serie en cualquier coche americano. En concreto, éste es un “427/435 Tri-Power”. Como siempre, ni idea de qué significa esto, pero el vendedor lo ponía como algo legendario. Tras buscar un poco, descubrí por qué: los motores Tri-Power están hechos por Pontiac (otra estrella de la galaxia de General Motors), y todos son de gran potencia. Este en particular es un motor 427, de 435 CV de potencia. De ahí lo de “427/435″.

No hace falta decir más. Les dejo ahí la foto, para que disfruten soñando.

por xouba el February 25, 2013 08:00 AM

February 11, 2013

AMC Javelin de 1970

Esta semana me he fijado en un anuncio en bringatrailer.com de uno de los muscle cars que todavía no había puesto por aquí: el AMC Javelin.

AMC Javelin de 1970 (fuente: bringatrailer.com)

AMC Javelin de 1970 (fuente: bringatrailer.com)

Este es un modelo de 1970, la primera generación (1967-1970), y lleva un motor V8 de 390 pulgadas cúbicas, o 6.4l, y 325CV. Como el Plymouth Barracuda, el Dodge Charger o el Chevrolet Camaro, el Javelin fue la respuesta al Mustang de Ford. Y aunque estos coches eran usados a menudo por gente con ganas de saltarse las leyes de circulación, también fueron usados para mantenerlas: la segunda generación del Javelin fue el primer muscle car que se usó como coche patrulla en las autopistas de los EEUU.

 

por xouba el February 11, 2013 09:18 AM

February 03, 2013

Accessibility in [WebKit]GTK+

This past week I’ve spent some time explaining to my mates at Samsung the basics about how accessibility works and is implemented in WebKitGTK+. I realized, yet again, of how messy and confusing everything can be the first time you encounter these things. After all, WebKit is quite a complex project already and accessibility is not a simple matter either.

In order to help them better understand this topic, I wrote a summary to have as reference that explains in my own words which the main pieces of the whole puzzle are, and how they relate to one another. In my experience, it’s not always easy to understand the big picture quickly, and I think this kind of documentation can be quite useful for anyone willing to contribute to accessibility in WebKitGTK+. At least it would have been useful for me when I started working on this. I only regret not having written it before, but better late than never, right?

So let’s begin then. I will start by talking about accessibility-only stuff, which are basically common to any accessible application based in GTK+. Then I will explain the bits specific to WebKitGTK+ and how they fit in the picture.

Accessibility in GTK+ applications

The parts, or “actors”, involved in any GTK+ application from an accessibility point of view are:

Accessibility in GTK+ applications

Now let’s describe all those points, one by one:

Assistive Technologies (ATs):

ATs are applications whose main purpose is to facilitate access and/or interaction with certain bits of information interesting from an accessibility related point of view, exposed by other applications. This access/interaction can be primarily output based. For instance the Orca screen reader is an AT which provides access via text to speech and/or refreshable braille to on-screen information exposed by editors, browsers, mail agents and other applications.

Other ATs are primarily input based, allowing the user to interact with the exposed applications by executing certain actions over them (e.g. clicking on a exposed link), so it’s not just about “consuming” information. Normally, ATs are called the clients and the applications exposing information the servers, as in the end it’s actually an implementation of a typical client/server architecture.

AT-SPI (Assistive Technology Service Provider Interface):

Set of interfaces that Assistive Technologies (the clients) understand and use to inspect and interact with the accessible content exposed by applications in Linux environments. At some point, “someone” has to provide actual AT-SPI objects (linked together forming a AT-SPI hierarchy) implementing several of those interfaces (depending of the type of object) so ATs can “see them”.

This is the job of the AT-SPI registry, a daemon which takes care of maintaining a hierarchy of AT-SPI objects for every single accessible application in the system, in a centralized way, so ATs can interact with them. It is worth mentioning that the parent/children relationships in that hierarchy are modelled in terms of D-Bus, so different AT-SPI objects can belong to different processes.

ATK (Accessibility ToolKit):

The toolkit used by GTK+ applications to expose accessible representations of the toolkit’s objects, along with appropriate interfaces, on the side of the applications exposing content (the servers). This representation is an almost a 1:1 match with the objects and interfaces defined by AT-SPI (that is, almost).

The main difference when it comes to understanding its place in the puzzle is that AT-SPI is what clients (ATs) understand, and that is not process-bounded (see previous point). ATK, in contrast, is what servers implement to expose accessible information, and it is process-bounded. Thus the parent/children relationships in the ATK hierarchy are modelled by actual references (pointers) between objects living in the same process.

ATK <-> AT-SPI bridge:

The glue that makes sure there’s a mapping between the ATK hierarchy living in the server process and the AT-SPI hierarchy held by the AT-SPI registry. Such a bridge is implemented in terms of D-Bus too, as it needs to communicate with the registry whenever something needs to be updated there, as well as when the server needs to react to external actions coming from ATs (e.g. perform the default action for an object).

GTK+:

The widgets toolkit normally used by applications embedding WebKitGTK+. Explaining what GTK+ is beyond the scope of this post, so I will assume you already know what it is.

GTK’s Accessibility Implementation:

Provides ATK objects implementing different ATK interfaces for every widget from the GTK+ library, and uses the ATK <-> AT-SPI bridge to communicate with the AT-SPI registry. This means that if you use standard GTK+ widgets only, your application will be accessible out-of-the-box. On the contrary, should you use custom widgets, you’ll probably have to write custom ATK objects implementing the proper ATK interfaces to make them accessible too.

So that’s all so far, when it comes to GTK+ applications. Check the following diagram for a more detailed look at all these hierarchies for a hypothetical GTK+ application exposing information and a screen reader accessing it:

Accessibility in GTK+ applications: a specific exampleAs you can see, there’s an ATK tree matching the GTK+ hierarchy, and another AT-SPI tree matching the ATK one. Finally, the screen reader accesses the information through that AT-SPI tree, as explained above.

Accessibility in WebKitGTK+

Now that we already understand the basics of accessibility in GTK+ applications, let’s add the bits specifically related to WebKitGTK+. Namely:

Again, a picture is usually better than just text, so here you have one too:

Accessibility in WebKitGTK+

In order to clarify it a bit more before explaining each point, let’s just say that  you’ll have to look in the dashed box named WebCore accessibility world, where the hierarchy on the left (red & orange) represent the WebCore Accessibility objects, while the one on the right (the green one) represents the WebKitGTK+ ATK wrappers.

With this in mind, let’s examine these three points in more depth:

WebCore Accessibility objects:

Similar to GTK’s Accessibility Implementation, WebCore‘s accessibility objects are the implementation of an independent hierarchy exposing accessibility related information for objects present in a web page. As the mission of accessibility in WebKit is to expose information to users that are normally being rendered in the screen (as well as some other information that might be hidden to regular users), there is a tight relationship between this hierarchy and other ones in WebKit, such as the DOM tree and the Render Objects tree.

This layer is meant to be platform-agnostic, so you won’t find much WebKitGTK+ specific stuff here. Instead, you will find the implementation of the accessibility related specifications published by the W3C‘s Web Accessibility Initiative (WAI), such as WAI-ARIA.

WebKitGTK+ ATK wrappers:

An ATK-based implementation of an accessibility hierarchy where every ATK object will take care of wrapping the proper accessibility object from WebCore, as well as implementing the proper ATK interfaces depending on the situation (e.g. the role of the WebCore accessibility object, some properties coming from the associated Render Object…).

The ATK hierarchy created here is connected with the ATK hierarchy from the embedding application (normally a GTK+ app) by setting the root ATK object in this tree (normally representing DOM‘s root element) as the child of the leaf ATK object in the tree coming from the embedding application (normally the GtkWidget containing the WebView).

As is the case with any other regular GTK+ application, this ATK hierarchy will finally be seen by ATs thanks to the translation that the ATK <-> AT-SPI bridge will do for us, making the whole ATK tree from the WebKitGTK+ based application (from the top level GTK+ window down to the deepest accessibility object inside WebCore) available to the AT-SPI registry by means of D-Bus.

WebKit2GTK+ specific details:

I already talked about this in previous posts, so I will focus here just on commenting the main difference compared to the generic case for WebKitGTK+ described earlier (see previous diagram above):

WebKit2GTK+ implements a split-process model, where the  high level API belongs to one process (the UI process) while the core logic of the web engine lives in another one (the Web process).

From an accessibility point of view, this means that the full hierarchy of ATK objects we had before is also split in two parts: some accessibility objects are now in the UI process and the rest of them will be in the Web process.

To be more specific, we’ll find the following objects in each process:

As I explained previously, these two ATK hierarchies will be seen as a single accessibility hierarchy by ATs thanks to the “magic” of AtkPlug and AtkSocket classes, which takes care of exposing everything together in a single AT-SPI tree. And remember that such a tree is modelled by means of D-Bus, so it does not matter that things are actually in different processes.

Thus, since ATs just  understand AT-SPI, they will see The Right Thing ™ as in the previous case where we have one single process. See the following diagram for a more visual explanation of this:

Accessibility in WebKit2GTK+

Wrapping up

So that’s it. At the end the post turned out to be longer than what I was expecting, as my initial idea was to publish the stuff I wrote internally at Samsung this week, but ended up extending it quite a lot!

At least I hope this will be helpful for anyone willing to contribute to accessibility, either in WebKitGTK+ or in a more general way.

After all, most of the stuff I talked about here applies to  every accesible GTK+ application: Assistive Technologies (ATs)AT-SPIATK, the ATK <-> AT-SPI bridge

Last, I would like to thanks Joanmarie Diggs from Igalia for her help with this blog post. One certainly feels more confident writing a long article like this one about a very specific topic when you have one of the most experienced persons on the matter reviewing it!

por mario el February 03, 2013 12:26 AM

January 28, 2013

Convocatoria de Asamblea Extraordinaria 13/02/2013

Pola presente, convócase Asamblea Extraordinaria de GPUL para o mércores 13 de febreiro de 2013.

  • Lugar: Aula de Graos
  • Primeira convocatoria: 19:30
  • Segunda convocatoria: 20:00

Orde do día:

  • Lectura e aprobación, se procede, da acta da Asamblea anterior.
  • Lectura e aprobación, se procede, das contas de 2009.
  • Estado das actividades de 2013.
  • Lectura e aprobación, se procede, do novo Regulamento Electoral.
  • Convocatoria de eleccións, se procede.
  • Rogos e preguntas.

Dende a Xunta Directiva gustaríanos animar a todos os socios, pero en especial ós máis de 25 socios que se deron de alta dende a última Asamblea (e ós socios máis recentes en xeral), a asistir á próxima e aportar as súas opinións, pois o futuro desta Asociación depende deles.

 

Asdo.

Alejo Pacín,

Secretario do GPUL.

por xuco el January 28, 2013 09:03 PM

Chevrolet Camaro 1967 “Hot Wheels” Concept

Es habitual que, cuando un coche tiene éxito, alguna firma haga réplicas en miniatura. Lo que no es habitual es que ocurra al revés: que se haga un modelo real a partir de un coche en miniatura. Y sin embargo, es lo que ha pasado con el Camaro de 1967 de Hot Wheels, que ha sido encarnado en un coche real por Chevrolet.

Réplica y original. La réplica es, en este caso, el coche grande. (fuente: autoweek.com)

Réplica y original. La réplica es, en este caso, el coche grande. (fuente: autoweek.com)

“Ruedas calientes”

Eran tiempos más inocentes. Un nombre como éste, actualmente, daría mucho que hablar.

Hot Wheels fue creada en 1968 por Mattel para competir con el otro gran fabricante de coches en miniatura (técnicamente, escala 1:64), Matchbox. Empezó fabricando modelos icónicos de las marcas americanas, entre los que se encontraban varios “muscle cars”: el Mustang, el Plymouth Barracuda y el Camaro.

Camaro 1967 de "Hot Wheels"

Camaro 1967 de “Hot Wheels”

Una de las características especiales de estos coches era la pintura “Spectraflame”, que le daba un aspecto metalizado parecido al de los coches reales. El acabado se conseguía puliendo el metal de las carrocerías y cubriéndolas con laca coloreada, y había colores muy llamativos y exóticos. El menos frecuente era “Hot Pink”, que fue considerado un color “de chicas” y no se usó demasiado. Ahora es uno de los más valorados por coleccionistas, precisamente por eso.

El coche real

Camaro 1967

Camaro 1967 “Hot Wheels” (fuente: motortrend.com)

Chevrolet ya tenía un “pack” Hot Wheels, un Camaro “moderno” con algunas mejoras especiales (“Camaro Hot Wheels Edition”). Es el que pueden ver en la primera foto de esta entrada, con su versión en miniatura.

La réplica del modelo de 1967 es una obra del grupo Chevrolet Performance, que le ha puesto un “pequeño” motor de 430CV y cambio automático de cuatro marchas. Pueden ver más fotos, tanto del exterior como el interior, en este enlace.

 

por xouba el January 28, 2013 08:00 AM

January 23, 2013

Sobre investigación e patentes

Estes días atrás publicouse unha nota de prensa da UDC e saíu tanto en prensa coma en televisión, unha nova sobre a primeira patente de software da Universidade da Coruña, levada a cabo polo Grupo de Investigación en Visión Artificial e Recoñecemento de Patróns (VARPA) do Centro de Investigación TIC (CITIC), xurdido da FIC da UDC.

Desde o GPUL, coma Grupo de Programadores e Usuarios de Software Libre que somos, e ademais afincados na mesma Facultade de Informática, vemos con preocupación este tipo de feitos e cremos que nos corresponde en parte facer crítica do acontecido.

Pensamos que unha patente non é motivo de alegría por ningunha das partes implicadas: gobernos (desde o local ata o europeo), axencias de calidade, universidades (incluída a UDC), facultades (a FIC tamén) e os grupos de investigación (VARPA neste caso). Quizais canto máis arriba máis culpables sexan, pero cremos que o importante é comezar a educar e dar exemplo desde abaixo.

O primeiro mal exemplo vén da man da UDC, financiando en parte os orzamentos destes laboratorios ou grupos de investigadores, que logo acaban investidos en pagar os carísimos rexistros de patentes. Lembremos que a UDC é unha universidade pública e, polo tanto o financiamento que aporta a estes grupos tamén. É dicir, finánciase (en parte) con cartos públicos algo que logo só beneficia a uns poucos. Si, entre eses poucos está tamén a propia UDC pero, ¿realmente compensa?

Cómpre aclarar que desde o cambio de equipo reitoral xa non se financian directamente os gastos de solicitude e tramitación de patentes, pero iso non quita que os fondos públicos aportados pola UDC (ou instancias superiores) non acaben pagando ditos gastos de maneira indirecta.

Tamén nos gustaría pensar que o deixar de financiar ditos gastos foi porque entenden o problema e pretenden atallalo, pero vendo a nota de prensa que sacaron facendo propaganda do tema, semella que máis ben foi cousa dos recortes de gastos que da boa vontade.

Ademais, desde todas as instancias, foméntanse as patentes como un punto moi importante á hora de facer carreira nos ámbitos da docencia e a investigación, facendo que sexa un dos puntos que máis conta á hora dos concursos de méritos, acreditacións, etc.

O seguinte mal exemplo vén por parte da FIC que, por unha banda di apoiar ó Software Libre e pola outra, dá acubillo a laboratorios que promoven as patentes de software e, o que é se cadra máis recriminable, aínda por enriba dálles publicidade en portada.

Ademais do mal exemplo que se dá desde as institucións, vemos tamén certas incongruencias entre a investigación e as patentes. ¿Onde queda o I+D+i con elas?

As patentes matan a innovación, á que se chega mediante investigación e desenvolvemento dunha idea previa. Pero se esa investigación non a poden aproveitar outros investigadores de maneira libre para construír novo coñecemento, ¿onde queda a innovación? Un dos piares fundamentais da investigación é a colaboración e as patentes limítana case por completo. Ben é certo que existen maneiras de poñer distintos límites no uso das patentes pero, ¿por que complicar algo tan sinxelo? O coñecemento debe ser libre. Poñerlle portas ó campo nunca foi boa idea.

Xa coma último punto, gustaríanos tratar unha anécdota da nova en si. Nos anteditos artigos menciónase coma un fito moi importante que sexa "a primeira patente da UDC nos Estados Unidos" pero, ¿por que a foron rexistrar directamente aló e non aquí? Pois porque non poden. Esa é a realidade detrás do feito. Estados Unidos é dos poucos países do mundo onde se pode obter unha patente de software a día de hoxe (e que sexa rendible, claro). En Europa, polo de agora, non se pode (aínda que tampouco está de todo claro), pero non cremos que tarden moito en aprobalo. Craso erro.

E dicimos craso erro por algo. Existen múltiples artigos en varios idiomas que explican moi atinadamente a problemática das patentes de software (ou das patentes en xeral), pero particularmente neste último caso é tan grave que ata vaticinan a caída do actual sistema polo seu propio peso.

Pero isto último é algo que nos custa crer que chegue a pasar se non cambia a maneira de pensar da xente. Por iso non agardamos que todo o mundo estea de acordo connosco pero, alomenos, gustaríanos pensar que esta nota de prensa fará reflexionar á maioría sobre os problemas das patentes.

 

por xuco el January 23, 2013 11:35 PM

January 21, 2013

“La Puerta de Ishtar”, el juego de rol

He esperado a recibir el libro y a que se calmaran un poco las aguas para hablar de este juego. Hay tantas cosas buenas que decir, que no sé por dónde empezar.

La Puerta de Ishtar

Lo primero es explicar qué es. Sacado de su página en Verkami:

La Puerta de Ishtar es un juego de rol, de lápiz, papel e imaginación, que está ambientado en un mundo fantástico inspirado en la tradición Mesopotámica y del Oriente Próximo antiguo. Usa un sistema sencillo y que fomenta la narración. Un precioso libro de más de 350 páginas en tapa dura.

Lo más comentado sobre este juego ha sido su proceso de financiación. “La Puerta” ha sido un éxito de crowdfunding: Rodrigo García Carmona, su autor, se propuso reunir 2500€ para costear los gastos de impresión y publicación del juego; y acabó recaudando 14290€, seis veces más de lo planeado. Nunca se había hecho algo así en España: algunas editoriales, como Conbarba, han financiado la traducción de un juego de rol (Polaris, y ahora también Apocalypse World) mediante crowdfunding, pero no hay ningún caso de un autor independiente que decide publicar por su cuenta y consigue un apoyo popular tan grande.

Como todos los proyectos de crowdfunding, “La Puerta” ofrecía distintas recompensas según el dinero con el que contribuías. Con lo que pagué yo, además de una copia física del libro, también tuve acceso a los PDFs y recibí una bolsa con dados especiales (dados de seis caras “customizados”). Y lo mejor de todo: una dedicatoria del autor.

2013-01-11 21.32.52

El juego

Lo malo del gran éxito del crowdfunding del juego es que se ha hablado poco del juego en sí. Y sin embargo, son 350 páginas repletas. El libro tiene un tamaño considerable, y pesa lo suyo. Como un manual de rol al uso, todo sea dicho. Aún voy por la mitad, con lo que todo lo que diga aquí debe ser tomado con cierta precaución. A lo mejor al terminarlo tengo todavía más cosas que contar.

Logo del

Logo del “Motor de Emociones”

Las primeras páginas del libro se dedican a explicar cómo funciona el sistema usado en el juego, confeccionado también por Rodrigo y llamado “Motor de Emociones”. Está basado en seis atributos “estándar” (Fuerza, Destreza, etc.), oficios y rasgos de carácter. A diferencia de otros juegos más mecánicos, la creación del personaje va unida a su historia: mientras los atributos se tiran al principio, los oficios y rasgos de carácter se escogen según lo que ha vivido el personaje hasta un punto de inflexión, en el que empieza su vida aventurera. Dos características especiales llamadas “Pasión” y “Determinación”, usadas en los momentos más dramáticos, completan el sistema.

Lo que más me ha gustado ha sido la ambientación. Rodrigo ha usado fuentes históricas sobre Akkad y Sumer y ha tejido una historia fantástica con dioses al estilo H. P. Lovecraft (los “dioses de las estrellas”), brujos y bárbaros al estilo Robert E. Howard (los cimmerios son una de las razas del juego), magia oscura y terrible como la del Zothique de Clark Ashton Smith, y una sociedad decadente, injusta y multicolor con razas no humanas como los Uridimmu (hombres chacal) o  los Wardu (minotauros creados a partir de la sangre de un dios asesinado). Todo adornado con miles de nombres en Akkadio, el de verdad, el idioma extinto que sucedió al Sumerio como lengua de gobierno en la antigua Mesopotamia hace cuatro milenios, en el que se escribió la Epopeya de Gilgamesh.

Relieve de Gilgamesh, del palacio de Sargón II.

Relieve de Gilgamesh, del palacio de Sargón II.

La parte de los idiomas merecería una entrada aparte. Como friki de los idiomas, cada vez que veía un nombre no podía dejar de preguntarme qué significaría en realidad, sin dudar de que Rodrigo lo había tomado prestado de la transcripción de algún texto real. Creo que también las hay de cosecha propia, porque aunque muchas las encontré en un diccionario de Akkadio online, hay otras que no he encontrado. Todas esas palabras añaden una profundidad increíble a la ambientación, como (y salvando las distancias) todos los nombres en los distintos idiomas de la Tierra Media convirtieron “El Señor de los Anillos” en un libro sin igual. Espero de corazón que haya un “making-of” del libro en el futuro, explicando qué recursos ha usado Rodrigo para el idioma y qué partes de la ambientación se inspiran en historias o personajes reales. Hay varias referencias que conocía: la “Torre del Elefante” (“The Tower of the Elephant”) es un relato de Conan; y una de las ciudades de Kishar me recordó al relato “The Charnel House”, de Clark Ashton Smith. Pero muchas otras me son extrañas.

Todavía tengo que hablarles de la legión de dibujantes que Rodrigo ha reclutado para su proyecto, y del fantástico trabajo de marketing que ha hecho. Pero como por hoy ya he dicho mucho, lo voy a dejar para otra entrada.

por xouba el January 21, 2013 08:00 AM

January 14, 2013

El coche preferido de Marshall: Pontiac Fiero

Cuando vi este coche en bringatrailer.com supe que tenía la siguiente entrada sobre coches:

Pontiac Fiero de 1987 (fuente: bringatrailer.com)

Pontiac Fiero de 1987 (fuente: bringatrailer.com)

Éste es el Pontiac Fiero de 1987. No lo conocía hasta hace unos pocos años, cuando vi un episodio de una de mis series favoritas, “Cómo conocí a vuestra madre”. El episodio se llama “Arrivederci, Fiero” (temporada 2, episodio 17), y en él Marshall tiene que despedirse de un coche como éste que ha tenido durante muchos años. La banda sonora de este episodio se reduce a una canción, “500 miles”, de The Proclaimers.

El Fiero fue diseñado como un commuter car más deportivo que los habituales. Aunque tenía un motor bastante potente (2.5L, 90CV), los consumos eran razonables (para un coche americano de la época): 8.7% (litros/100 km) en ciudad, y 5.9% en carretera. El otro deportivo biplaza de General Motors era el Chevrolet Corvette, pero con su motor V8 no iba destinado al mismo público.

Como novedad, su motor estaba en posición central, parecido al Porsche 914. También incluía paneles de plástico, en lugar de metal, para reducir peso y costes. El parto del Fiero fue difícil, con parte de la burocracia de General Motors (la matriz de Pontiac) en contra del proyecto. Pero tras varios años de preparación y diseño (entre 1979 y 1984), el coche estuvo listo y fue un éxito de ventas: aunque dejó de fabricarse sólo cinco años después, más de 370000 salieron de las fábricas de la marca.

por xouba el January 14, 2013 08:00 AM

January 12, 2013

My first week at SERI

So, after almost 3 months of “holidays”, I’ve finally started working on my new job this Tuesday in Samsung Electronics Research Institute UK (aka SERI), where I’ll join a team mainly working in A/V and DTV related stuff while, at the same time, I’ll keep contributing to WebKit and WebKitGTK+.

Samsung Smart TV Unveils New Smart HubAs you can imagine, being the first week means that I mostly spent my time learning a lot of stuff about my new job and the tools I’d be using, as well as setting up my development environment and getting to know my colleagues and the things we’ll be working on.

But for the time being I have to say that my first impression has already been very positive and that I’m enthusiastically looking at the future and what it’s going to be next. Surely it will be a very different experience compared to what I was used to, but in a way that’s precisely what I was looking for, and so that’s why I feel very optimistic and motivated about it.

Also, and besides work related stuff, being a new resident in the UK also means that I had to spend some time doing some additional things, such as creating a bank account, getting a UK-based SIM card and starting to look for a place that should become our permanent residence in 2-3 months time, once my wife and my children move as well to the UK (they’re still in Spain), hopefully before Easter. Fortunately, being a EU citizen simplifies a lot the whole thing of coming here to work, since I don’t need any VISA or the like. Just my Spanish ID and/or Passport are more than enough.

Anyway, I’ve just arrived in the UK on Monday and started working on Tuesday (yeah, I love having big margins) so still much to do left, but I’m already on my way so it’s a matter of time that we are settled here, and that we start living the “English adventure” all together again.

But in the meanwhile we’ll have to live with me visiting them every 2-3 weeks and the typical audio/video conference tools.

Can’t wait!

por mario el January 12, 2013 02:11 AM

January 07, 2013

“El Hobbit”, o la distorsión de la nostalgia

Se estrenó la película de “El Hobbit”, y allí fuimos los de siempre a dejar nuestro dinero en el pequeño lujo que se ha convertido el cine. Tras una cena con comida basura, tres horas de película, varias discusiones con los amigos y un par de días para dejar que reposen los recuerdos, voy a poner por aquí otra opinión más sobre la última creación de Peter Jackson.

Para los que tienen prisa: la película me gustó. No me pareció un peliculón, ni la mejor película del año: sólo una película divertida y que ha puesto en imágenes escenas de uno de mis libros preferidos. Tampoco me esperaba nada más.

Póster de "El Hobbit" para la Comic-Con 2012 (fuente: Huffington Post)

Póster de "El Hobbit" para la Comic-Con 2012 (fuente: Huffington Post)

Mucha gente se queja porque esperaba que “El Hobbit” les hiciera sentir el mismo asombro y maravilla que las películas del “SdlA”. Esperaban una mejora respecto a esas películas: mejores efectos, mejores batallas, mejores historias. Esperaban sentir otra vez lo que sintieron hace once años (“La Comunidad del Anillo” se estrenó en diciembre de 2001).

Quizás no lo recordemos ahora, pero “La Comunidad del Anillo” también recibió muchas críticas. Las escenas de batallas fueron consideradas excesivas. Las licencias que Jackson y su gente se tomaron al recolocar personajes y diálogos fueron diseccionadas y condenadas “ad nauseam” por los fans más recalcitrantes (yo incluído). ¿La pelea de Gandalf y Saruman? Patética. ¿Toda la parte en la que sale Arwen? ¡Herejía! A Peter Jackson debieron pitarle los oídos durante mucho tiempo después del estreno.

¿Y las siguientes películas? Sólo hay que recordar la infame escena de Legolas haciendo una acrobacia imposible para subirse a un caballo, el cambio respecto al libro del personaje de Faramir, el terremoto en Mordor al final de la tercera película, Legolas otra vez encargándose personalmente de un olifante …

Pero entonces el contexto era diferente. No se había hecho nunca una película parecida, con la ambición de las producciones de Cecil B. DeMille y la tecnología de “Matrix”. Aunque “Gladiator” puso de moda otra vez las películas en épocas antiguas y con batallas campales (revivida antes también por “Braveheart”), no había un libro como “El Señor de los Anillos” detrás, que sacó a todos los frikis del mundo de sus habitaciones y los atrajo en manada a los cines. Nunca había habido un fenómeno de fans como aquel. Nunca había habido una película tan esperada.

“El Hobbit” no es una película revolucionaria, como lo fueron las anteriores. Pero es una buena película. Está bien hecha, y no insulta (demasiado) la inteligencia del espectador. Es lo bastante fiel al libro como para que cualquiera que lo haya leído la pueda disfrutar. Le gustará a todo el que le gustaron las anteriores.

Todo lo demás es la distorsión de la nostalgia.

 

por xouba el January 07, 2013 08:00 AM

January 05, 2013

El jardinero en la empresa

He entrado en una vorágine lectora de libros de empresa gracias a mi suscripción de en booquo. Por el momento, éste es el que más me ha llamado la atención.
A través de una historia sencilla, una ejecutiva desbordada por su trabajo, el autor explica las claves del coaching. Este palabro que los yanquis han puesto de moda sirve para definir el trabajo de tutela y enseñanza personalizada de un profesional.
Más sencillo: un tío veterano, con muchos conocimientos y excelentes capacidades para enseñar que consigue que un profesional con muchas responsabilidades pueda desarrollar mucho mejor su trabajo.
El libro literariamente no es que merezca mucho halago y la historia no es un suspense que mantenga en vilo a nadie aunque tiene ciertos momentos emotivos bien construidos que además sirven para enriquecer el mensaje.
¿Por qué me ha llamado la atención? Porque las claves que intenta enseñar el coach son principios que deberían imperar en cualquier persona que sea responsable de un equipo y que por desgracia no suelen ser comunes. Algunos ejemplos:

Y si crees que hay ir a un trabajo a una hora para salir a otra y recibir una cantidad a fin de mes no leas este libro. Si crees que se puede hacer el mundo un poco mejor empezando por tu trabajo, te ayudará. Eso sí, puedes acabar dándote cuenta que lo que te hace falta es cambiar de trabajo.

por Juan José Iglesias González (noreply@blogger.com) el January 05, 2013 10:27 PM

December 31, 2012

Hot Rods Datsun

La comunidad del “hot rodding” tiene ciertos coches fetiche. Son coches que se ven muy a menudo modificados, quizás porque eran muy abundantes y es fácil encontrar piezas para ellos, o porque son fáciles de modificar. De ellos, los Datsun aparecen a menudo en bringatrailer.com. Aunque ya hablé de esta marca hace tiempo, recientemente he visto otros modelos que me han gustado.

Datsun 610 turbo de 1974

Datsun 610 turbo de 1974 (fuente: bringatrailer.com)

Datsun 610 turbo de 1974 (fuente: bringatrailer.com)

Los fastback me encantan. Este diseño está presente en muchos coches clásicos, como el Mustang. Los japoneses también lo usaron, en este caso en un Datsun 610 turbo de 1974. Este coche en particular ha sido modificado con un motor Nissan de 300CV, y otros añadidos hasta llegar a un total de 15000 dólares. Yo sólo cambiaría el color: nadie te tomará en serio con un deportivo pintado de color huevo pasado.

Datsun 1200 de 1971

Datsun 1200GX de 1971 (fuente: bringatrailer.com)

Datsun 1200GX de 1971 (fuente: bringatrailer.com)

Aquí tenemos otro Datsun, un 1200GX de 1971. Entre las mejoras aplicadas hay varias piezas del modelo 280ZX. Por cierto, que el dueño es el mismo que el del Datsun anterior.

Datsun Bluebird SSS de 1970

Datsun Bluebird SSS de 1970 (fuente: bringatrailer.com)

Datsun Bluebird SSS de 1970 (fuente: bringatrailer.com)

Hablando de colores con los que nadie te tomará en serio … Voy a suponer que este amarillo horrendo es el del coche original, y se ha conservado para darle un toque más auténtico.

Por lo demás, este coche no es de fabricación americana, como los otros, sino una importación japonesa. En el artículo se ve que tiene el volante a la derecha, como los coches ingleses. Aparte de eso, el toque más exótico son los retrovisores en la parte delantera del morro, en lugar de al lado de las ventanillas. Son muy típicos en Japón, aunque no sé si serán muy cómodos.

 

por xouba el December 31, 2012 08:00 AM

December 29, 2012

Frogr 0.8 released

During the last weeks, I decided to make the most of some spare time I had while still in “nowhere land” (see my previous post) and so I’ve been working in frogr to see if I could release the 0.8 version before the end of the year. In my mind it looked like kind of a nice and humble Christmas present to the world and, at the same time, a interesting way to spent this time I had between my depart from my previous job and the start of the new one.

And it turns out that, at the end, I didn’t manage to have as much spare time as I initially expected to have (I was pretty busy most of the time, actually), mainly due to many unrelated things I needed also to take care of, but in the end I still managed to steal some minutes here and there and I’m now proudly announcing that the new release is finally out.

But before going on, see the mandatory screenshot, as taken in my Fedora 18 machine:

As you can already spot in the screenshot, some changes are already quite visible, but some others are not, so let’s now comment on the most important ones, one by one…

Ported to GtkApplication and GMenu

It’s no secret that one of my favourite changes in this release is the integration with GNOME 3‘s “global menu” (aka the application menu), which makes frogr more beatifully integrated with the desktop than ever. However that came with a price: I needed to port frogr to GtkApplication first and then implement both the application menu and the menu bar using GMenu, which also made me raise the required version for GTK+ up to 3.4.

Sure I could have kept adding more ifdefs to the code to keep supporting previous GTK+ versions, but I also saw this as a good opportunity to clean up the code and get rid of so many conditional compilation units that were increasingly harder to maintain, and so I did it. As a plus, the OS X specific code has been reduced enormously as well, since GTK+ 3.4 integrates very well with OS X without having to do anything special, as I needed to do when I used GTK+ 2.24 for that port.

Loading and saving ‘projects’

This has been one of the features that several people have suggested in the past in different occasions, and so one of those I hope people will enjoy the most with this new release: the possibility to save the current session into a “project file”, so you can resume your work later.

How it works it’s actually pretty simple: when you save a session to a project, frogr will just serialize your current pictures, sets, groups and local tags to a json file (using json-glib) that you can use to restore the state later. It could be more sophisticated, but I think that it works reasonably well in the tests I did considering what it was designed for. In any case, please feel free to report bugs or feature requests to improve or fix things if needed.

Support for video uploads

Believe it or not, frogr has been almost ready to upload videos since some time ago, since for Flickr a video is just a “moving picture”, and it’s treated in exactly the same way than pictures when it comes to the upload API.

The only thing that was missing to remove that almost from here was to generate thumbnails for videos so they could get loaded into the UI. Not rocket science, sure, but something which needed doing and which was not a priority at all until now. And to be honest, it is not a priority yet anyway, but I felt like doing it this time once and for all, so from now on you can upload videos too.

Other features & bug fixes

Besides those three and perhaps more noticeable features, frogr 0.8 comes with several other new things, bug fixes, small changes and refinement that I hope will make this release more stable, useful and fun to use than ever.

Some examples of those other new things are, as taken from the NEWS file:

Last, I’m also quite happy to tell that the OS X port of frogr has been finally migrated to GTK+ 3 in this release (at last!), and that the whole process of building it for that platform is now easier than ever, thanks to a specific Jhbuild moduleset I created for that purpose, following the lead of GEdit (thanks Nacho for the suggestion).

Check out the README file in the osx/ directory if you feel curious about the process or if you want to build it yourself. It shouldn’t take more than 2-3 commands in the terminal to get something like this running in your OS X machine:

Also, another advantage of having that moduleset created, is that now it’s trivial to properly document (by means of a shell script) the bundle file used to distribute frogr in OS X, instead of just providing an “opaque” pre-compiled bundle, as I used to do in an “unofficial way” with previous versions. Feel free to grab the bundle I’ve just created for this release from the GNOME FTP server.

So that’s it. I hope you enjoy using frogr 0.8 as much as I did writing it, and if you eventually find it useful too, then even better! As usual, check the website of the project for additional information or just to know how to install frogr on your system.

por mario el December 29, 2012 06:15 PM

December 15, 2012

“Pocket rockets”

De vez en cuando, algún chalado de la mecánica agarra un motor con muchos caballos y lo pone en un coche donde apenas cabe. Esta semana ha salido un nuevo ejemplo en bringatrailer.com, y me sirve de excusa para escribir algo.

El coche en cuestión es éste:

Mini de 1970 con motor Yamaha R1 (fuente: bringatrailer.com)

Mini de 1970 con motor Yamaha R1 (fuente: bringatrailer.com)

Este pequeñajo lleva un motor Yamaha R1, un motor diseñado para la moto Yamaha YZF-R1 que alcanza los 150 CV. Como se pueden imaginar, 150 CV en un coche que pesa sobre 750 kg son palabras mayores. En el anuncio original, el creador de este pequeñajo dice que da miedo conducirlo: una vez que se llega a la power band, es mejor agarrarse fuerte. Dice que la sensación de velocidad es mayor que en otro coche que tiene, un Camaro de 502 CV.

Había visto algo parecido hace tiempo, con los Smart a los que les ponen el motor de una Hayabusa, la moto más rápida de serie. Aquí hay un video en el que uno de éstos compite con un Ferrari en una carrera corta. Sigo prefiriendo el Ferrari, que conste.

Estos coches modificados son llamados pocket rockets (“cohetes de bolsillo”). Hay un hilo en este foro con una recopilación.

¿Son peligrosos? Muchísimo: el dueño del Mini de ahí arriba decía que le daba menos miedo conducir su Camaro de 502 CV. Un coche tan pequeño lanzado a gran velocidad, por muchos frenos que le pongas, no podrá reaccionar como uno más pesado y pensado para esas velocidades. ¿Son legales? Habría que verlo: en los EEUU hay manga ancha, pero no sé cómo sería aquí en España. ¿Son caros? Bastante: aparte del motor, que no es barato, haría falta el chasis del coche original y mucha mano de obra experta.

Pero eso no quita que me den una envidia tremenda cada vez que que veo los vídeos.

por admin el December 15, 2012 06:02 PM

December 12, 2012

Charla de Jacobo Tarrío y Rubén López

El próximo día 20 de diciembre, a las 10:30 de la mañana, tendrá lugar en la Facultad de Informática de Coruña un evento que nos llena de orgullo a los socios de GPUL: Jacobo Tarrío y Rubén López, socios fundadores de nuestra asociación, vienen a dar una charla sobre su trabajo como software engineers en Google.¡Allí nos vemos! :-)

por tsao el December 12, 2012 09:07 PM

December 11, 2012

Galardoados dous socios de GPUL no Premio ó mellor PFC con SL

Galardoados (gañador e mención especial) dous socios de GPUL no Premio ó mellor PFC con Software Libre.

Os nosos máis sinceiros parabéns a José Millán e Leandro Regueiro. Bo traballo rapaces!

Máis información: http://www.codigocero.com/O-galardon-ao-mellor-Proxecto-Fin

por xuco el December 11, 2012 05:50 PM

December 03, 2012

“C’etait un rendezvous”: atravesando París a toda velocidad

Gracias a Hemmings.com he recordado un vídeo que había visto hace tiempo, y que me ha impresionado: la imagen subjetiva de una conducción a toda velocidad a través de París.

En 1976, el director de cine Claud Lelouch decidió hacer algo innovador, arriesgado y, a la postre, ilegal: agarró su Mercedes 450 SEL 6.9, se levantó antes del amanecer, y atravesó París conduciendo como si fuera un piloto de carreras. Puso una cámara en el coche para grabar el recorrido como si el espectador fuera el conductor, un anticipo de las cámaras subjetivas que vemos en la Fórmula 1. Al final del vídeo se ve el supuesto motivo del conductor, algo que adivinarán si entienden lo que significa el título: “C’etait un rendezvous”.

Recientemente se ha editado una versión “HD”, que es lo que justificó el artículo de Hemmings. Se vende por 14.99 libras; pero si no les importa verlo en “baja definición”, en YouTube hay varias versiones. Aquí les dejo una de ellas.

<iframe frameborder="0" height="315" src="http://www.youtube.com/embed/Jy7r2mEfmcs" width="420"></iframe>

por xouba el December 03, 2012 09:00 AM

November 29, 2012

Asistencia de GPUL a eventos sobre Software Libre

Al igual que otros años, socios de GPUL han participado en eventos sobre Software Libre. En esta ocasión José Millán Soto ha asistido a los eventos FOSDEM 2012, Akademy-es 2012 y Akademy 2012; mientras que José Manuel Santamaría Lema ha asistido al evento Akademy-es 2012.

FOSDEM 2012

El FOSDEM es uno de los eventos de Software Libre con más asistentes de Europa, rondando los 5000 asistentes año a año. Al igual que todos los años se celebró en Bruselas, y este año tuvo lugar los días 4 y 5 de febrero. Los proyectos de Software Libre más signifativos: KDE, GNOME, Debian, OpenSUSE, distribuciones BSD, etc... tuvieron todos representación.

Akademy-es 2012

La Akademy-es es la reunión de usuarios y colaboradores de KDE más importante que se celebra en España. Este año tuvo lugar en mayo en Zaragoza. Algunas de las cosas de las que se hablaron en el evento fueron las principales novedades de KDE (Plasma Active, Qt5, KDE Frameworks), además de charlas generales sobre Software Libre, y también contamos con la presencia del proyecyo OpenSUSE.

Akademy 2012

La Akademy es la reunión de usuarios y colaboradores de KDE más importante que se celebra anualmente. La edición de este año tuvo lugar este año en Tallin del 30 de julio al 6 de julio. Algunos aspectos destacables de este año han sido la calidad de las ponencias y Keynotes, así como que Tallin es una ciudad muy agradable para un evento como la Akademy.

 

La asistencia a estos eventos forma parte de las actividades que GPUL realiza con financiación de la Xunta de Galicia a través del Convenio de Colaboración de las AGUSL con la Fundación para o Fomento da Calidade Industrial e o Desenvolvemento Tecnolóxico de Galicia incluído dentro del Plan de Acción FLOSS 2012.

por fid_jose el November 29, 2012 01:46 AM

November 28, 2012

QEMU and open hardware: SPEC and FMC TDC

Working with open hardware

Some weeks ago at LinuxCon EU in Barcelona I talked about how to use QEMU to improve the reliability of device drivers.

At Igalia we have been using this for some projects. One of them is the Linux IndustryPack driver. For this project I virtualized two boards: the TEWS TPCI200 PCI carrier and the GE IP-Octal 232 module. This work helped us find some bugs in the device driver and improve its quality.

Now, those two boards are examples of products available in the market. But fortunately we can use the same approach to develop for hardware that doesn’t exist yet, or is still in a prototype phase.

Such is the case of a project we are working on: adding Linux support for this FMC Time-to-digital converter.

FMC TDC

This piece of hardware is designed by CERN and is published under the CERN Open Hardware Licence, which, in their own words “is to hardware what the General Public Licence (GPL) is to software”.

The Open Hardware repository hosts a number of projects that have been published under this license.

Why we use QEMU

So we are developing the device driver for this hardware, as my colleague Samuel explains in his blog. I’m the responsible of virtualizing it using QEMU. There are two main reasons why we want to do this:

  1. Limited availability of the hardware: although the specification is pretty much ready, this is still a prototype. The board is not (yet) commercially available. With virtual hardware, the whole development team can have as many “boards” as it needs.
  2. Testing: we can test the software against the virtual driver, force all kinds of conditions and scenarios, including the ones that would probably require us to physically damage the board.

While the first point might be the most obvious one, testing the software is actually the one we’re more interested in.

My colleague Miguel wrote a detailed blog post on how we have been using QEMU to do testing.

Writing the virtual hardware

Writing a virtual version of a particular piece of hardware for this purpose is not as hard as it might look.

First, the point is not to reproduce accurately how the hardware works, but rather how it behaves from the operating system point of view: the hardware is a black box that the OS talks to.

Second, it’s not necessary to have a complete emulation of the hardware, there’s no need to support every single feature, particularly if your software is not going to use it. The emulation can start with the basic functionality and then grow as needed.

The FMC TDC, for example, is an FMC card which is in our case connected to a PCIe bridge called SPEC (also available in the Open Hardware repository).

We need to emulate both cards in order to have a working system, but the emulation is, at the moment, treating both as if they were just one, which makes it a bit easier to have a prototype and from the device driver point of view doesn’t really make a difference. Later the emulation can be split in two as I did with with TPCI200 and IP-Octal 232. This would allow us to support more FMC hardware without having to rewrite the bridging code.

There’s also code in the emulation to force different kind of scenarios that we are using to test if the driver behaves as expected and handles errors correctly. Those tests include the simulation of input in the any of the lines, simulation of noise, DMA errors, etc.

Tests

And we have written a set of test cases and a continuous integration system, so the driver is automatically tested every time the code is updated. If you want details on this I recommend you again to read Miguel’s post.

por berto el November 28, 2012 08:31 AM

November 25, 2012

Una de IPv6, por favor (1)

Nos han dicho tantas veces que no quedan direcciones IPv4 como que el petroleo se va a acabar en los próximos años. No nos lo hemos creído nunca. Ocurrirá, pero no será pronto. Y cuando ocurra, confiamos en que siempre habrá alguien que nos dirá lo que tenemos que hacer.

Por eso mismo es tan importante que los que estamos en el mundillo sepamos IPv6: para ser ese alguien al que los demás recurrirán cuando llegue el momento. Hoy, y en las siguientes entregas de esta serie (de periodicidad totalmente irregular, no prometo nada), os voy a hablar de cómo funciona una red local, como la que podríamos tener en casa o en el trabajo, pero con IPv6.

Requisitos

La mejor manera de abordar este problema es con máquinas virtuales. Yo voy a usar Virtualbox, que permite configurar varios interfaces de red en cada máquina virtual.

Linux tiene soporte de IPv6 desde hace mucho tiempo, pero vamos a necesitar software que no instalamos habitualmente. En concreto, radvd, que es algo ligeramente parecido a un servidor DHCP para IPv6. Ojo, que no es lo mismo: también hay servidores DHCP para IPv6, pero esto es diferente. El cambio a IPv6 no significa sólo que las direcciones IP son un tocho hexadecimal incomprensible, sino que también cambian varios conceptos a los que estábamos habituados en IPv4.

El plan

Voy a configurar una red privada con tres máquinas virtuales:


Los equipos (menos el firewall) no tendrán direcciones IPv4, sino que usarán IPv6 para todas sus necesidades. Habrá que configurar un "convertidor IPv6 a IPv4" (tiene otro nombre mucho menos divertido en realidad: túnel 6to4) en el firewall, y más cosas que ahora mismo, sin haberme metido en harina, no conozco.

Sobre IPv6

Puedes leer los detalles sobre IPv6 en muchos sitios, como aquí. En la práctica, IPv6 significa tres cosas:


Otra novedad es que en IPv6 hay varios tipos de direcciones: link-local, site-local (obsoletas, pero las verás en muchos sitios), global, anycast, multicast, 6to4 ... y creo que me he dejado alguna más. Da igual: para empezar, sólo te tienes que preocupar por las direcciones link-local y las direcciones globales (global address type).

De las otras mejoras de IPv6 (soporte de IPSec, QoS, rutado por jerarquía, etc.), ni caso. Te las encontrarás cuando haga falta, no antes. Y además, lo bueno y lo malo de IPv6 es que se trata de un estándar que aún está poco probado en el mundo real; "huele a nuevo", como se suele decir. Muchas de sus especificaciones son teóricamente perfectas porque no las usa nadie. En un tiempo, con unos años a las espaldas y varias implementaciones distintas en uso, acumulará parches e incompatibilidades; y entonces será un estándar de verdad.

El primer ping

Cada interfaz de red configura automáticamente una dirección IPv6 en cuanto se activa. Por ejemplo: en el interfaz eth1 de mis máquinas virtuales visix1 y visix2 no he configurado nada, y los he levantado a pelo con "ip":

# ip link set up dev eth1

Si ahora miro la dirección de red de eth1 en visix1:

# ip -6 a l dev eth1

3: eth1: <broadcast lower_up="lower_up" multicast="multicast" up="up"> mtu 1500 qlen 1000</broadcast>
    inet6 fe80::a00:27ff:fe5a:f5f/64 scope link 
       valid_lft forever preferred_lft forever

Eso que parece una dirección MAC precedido por "inet6" ("fe80::a00:27ff:fe5a:f5f/64") es la dirección link-local de eth1, incluyendo su máscara de red ("/64"). link-local significa que sólo sirve para comunicarse con los equipos que estén conectados al mismo segmento de red. Haciendo lo mismo en visix2 obtenemos la dirección fe80::a00:27ff:feba:f05d/64. Todas las direcciones link-local empiezan por el prefijo fe80::, los dobles dos puntos incluídos. Lo demás es una versión codificada de la dirección MAC del interfaz.

Con todo esto podemos hacer nuestro primer ping, desde la dirección de visix1 a la de visix2. Para eso usamos ping6, y además tenemos que indicar el interfaz de red por el que va a salir el tráfico:

# ping6 -c1 -I eth1 fe80::a00:27ff:feba:f05d
PING fe80::a00:27ff:feba:f05d(fe80::a00:27ff:feba:f05d) from fe80::a00:27ff:fe5a:f5f eth1: 56 data bytes
64 bytes from fe80::a00:27ff:feba:f05d: icmp_seq=1 ttl=64 time=1.44 ms

--- fe80::a00:27ff:feba:f05d ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.446/1.446/1.446/0.000 ms

Podemos indicar el interfaz a usar dentro de la misma dirección, añadiendo "%<interfaz>". O sea, que el comando de antes también podría haberlo tecleado así:</interfaz>

# ping6 -c1 fe80::a00:27ff:feba:f05d%eth1
PING fe80::a00:27ff:feba:f05d%eth1(fe80::a00:27ff:feba:f05d) 56 data bytes
64 bytes from fe80::a00:27ff:feba:f05d: icmp_seq=1 ttl=64 time=0.965 ms

--- fe80::a00:27ff:feba:f05d%eth1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.965/0.965/0.965/0.000 ms

Así es más fácil usar la dirección con servicios en los que no podemos indicar por qué interfaz salir, o simplemente por comodidad.

¿Por qué hace falta indicar el interfaz? Si lo piensas un poco, tiene sentido: todas las direcciones link-local tienen el mismo prefijo, que es lo que podrías intentar usar para rutarlas, por lo que no hay forma de saber cuál va a estar disponible en uno u otro interfaz.

Tu siguiente pregunta debería ser: "¿y por qué no mandas un who-has ARP por broadcast, y contestas por el interfaz en el que recibes la respuesta?" (que es lo que haríamos en IPv4). Pues porque no hay ARP en IPv6. Para lo que hacíamos con ARP se usará ICMPv6.

El Gran Principio Universal de IPv6

Llegados a este punto, tenemos que hacer un breve inciso teórico.

Ya has visto lo que son las direcciones link-local. Puedes usarlas para cualquier cosa que usarías una dirección "normal" IPv6 (aunque todavía no sepas bien qué es una dirección "normal" IPv6): para hacer ping, para conectarte a servicios TCP o UDP configurados en esa dirección, etc. Y además, como dependen de la MAC de la tarjeta, que no es algo que cambie frecuentemente, puedes usarlas como direcciones IP fijas. Podrías configurar toda una red local con estas direcciones. Podrías ponerlas en una zona DNS para no tener que recordarlas, y ya está. Tu LAN en IPv6, sin hacer nada. Puedes dejar de leer el artículo aquí mismo.

Esta facilidad para crear una red con direcciones IPv6 no es casual. Una parte muy importante de su diseño fue maximizar las posibilidades de autoconfiguración de los dispositivos que estuvieran conectados a una red con IPv6. No es algo nuevo: lo que hemos visto con direcciones IPv6 es, más o menos, lo mismo que hay en IPv4 con direcciones APIPA (169.254/16).

Pero estas direcciones no son rutables. No puedes salir con ellas a otras redes como, por ejemplo, Internet. Tu mente contaminada con IPv4 pensará: "puedo usar NAT". Pero no hay NAT en IPv6 (en teoría). Eso iría contra el Gran Principio Universal de IPv6: todas las direcciones deben ser rutables. Dicho de otra forma, todo dispositivo conectado a Internet debe tener una dirección única alcanzable por el resto de dispositivos de la red. ¿Significa eso que un pirata informático adolescente que vive en una habitación de 2x2 metros en Kowloon puede hacerle ping a tu impresora desde su ordenador? Idealmente, sí. Se espera que haya ciertos controles para que eso no pase salvo que tú quieras, pero los tiros van por ahí.

Este Gran Principio Universal es lo que tiró abajo uno de los tipos de direcciones que había hasta hace poco, las direcciones site-local. Si las direcciones link-local están restringidas a un segmento de red, las site-local están restringidas a la red de un site (una organización). Son el equivalente directo de las redes RFC 1918. Si ves por ahí alguna dirección que empieza por fec0::, sabrás que quien la usa no está a la última. Puedes señalarle con el dedo y reírte de él, o trolear su zona de comentarios.

Que tú puedas tener en casa una dirección site-local que, por ejemplo, una PYME en Chequia está usando para su LAN, va en contra del Gran Principio Universal. Habría dos direcciones IPv6 repetidas, y por lo tanto no rutables. Si un paquete IPv6 llegara a un router para esa IP, ¿cómo sabría a dónde mandarla? ¿A tu casa, o a la oficina del contable checo?

Por supuesto, esta decisión tiene sus inconvenientes. Si tienes que cambiar de proveedor de Internet, y estás usando direcciones site-local, sólo tienes que cambiar el NAT que haces en el firewall y ya está. Sin NAT, tendrías que cambiar todo tu direccionamiento IP para que encajara con el suyo. Hay atenuantes: la parte del proveedor sería sólo una parte de la dirección, y podrías mantener el resto; y las herramientas de autoconfiguración IPv6 se encargarían de que no tuvieras que hacer nada a mano. Aún así, muchos han protestado, diciendo que les quitarán sus redes privadas de sus fríos dedos muertos. No sé todavía en qué acabará el asunto, pero de momento las direcciones site-local siguen deprecated.

En resumen: lo ideal es que tu equipo tenga una dirección IPv6 única en el mundo, con la que pueda llegar tanto al equipo de la habitación de al lado como a un ordenador de Nueva Zelanda. Al mismo tiempo, también tendrá una dirección link-local que podrá` usar para comunicarse con los equipos de su mismo segmento de red. Tener varias direcciones IP es lo normal en el mundo IPv6.

Siguiente entrega: más allá de las direcciones link-local


En la siguiente entrega vamos a configurar un servidor radvd y, por el mismo precio, también un servidor DHCPv6 para dar servicio a nuestra red. Vamos a ver qué diferencias hay, a ver si entendemos por qué existen dos cosas tan parecidas. Atento a tu lector RSS.


por Roberto Suárez Soto (noreply@blogger.com) el November 25, 2012 10:36 PM

November 19, 2012

Moving On

Two months ago it was an important day for me. It was the day that I finally told my partners at Igalia that I’d be leaving the company, after almost seven years. It hasn’t been an easy decision to make and so this hasn’t been an easy post to write either… yet one I’d like to write anyway.

But let’s push the rewind button for a moment now…

I’ve joined Igalia on November 2005, initially as a trainee while I was finishing my studies of Computer Science Engineering, and got quickly hooked by the company, the people that was part of it back then and the kind of project they were trying to build.

Igalia as a company is one of a kind, you can be sure of it, and I felt enormously lucky for having found it and having been granted with the privilege of being part of it. And best of all… it happened to have its main office in my own town! I just couldn’t believe it…

I even still recall now how many mates of mine in the Faculty were telling me, back in the days of the University, things like “that Linux thing you like so much is not worth it”, “forget about Open Source, you won’t ever make a living out of it” or even “well, maybe there’s a chance for you to work on that, but it’s definitely not going to happen here”.

I have to say I never believed much in any of those statements (well, maybe a bit the last one), but I swear I couldn’t have ever imagined that I’d be able to prove all of them wrong at the same time without even having to move out of the country, let alone the town.

It was too good to be true. But it was true and real… it definitely was real.

And turns out that what started as a 3-month internship in late 2005, became my first permanent job (and the only one so far) when I became a regular employee on February 2006, to finally become a partner of the company in 2010. Not bad.

I worked on many different projects across all these years, from system administration tasks and pure web development to application development over the GNOME and the Maemo platforms, to end up working on what it probably became the most challenging and interesting thing I’ve ever worked on: the WebKit project and, more specifically, the WebKitGTK+ port.

Additionally, I also met a lot of awesome people while there, both inside Igalia and outside (e.g. at conferences), in some cases  becoming closer to “actual friends” than to “just work mates”, which is yet another great thing I will always feel lucky and grateful for.

In other words, I grew up there, both at the professional and the personal level, and I feel endlessly grateful for that. I’m sure my life wouldn’t have been the same now without that stage in my life, so I don’t have more than good words and thoughts about it.

However, and even if I still think Igalia is an awesome place to be part of, I’ve been lately feeling like I needed a change, to try something new, to move on…

I’m not sure about how much that could be related to the fact that my life is now quite different than seven years ago, and that perhaps my priorities could have shifted now I have my own family, but the fact is that at some point I very clearly saw that I would need to try something else, to change some things and patterns in my life, kind of a “fresh restart”.

And after so much thinking, I suddenly realized such a  change couldn’t ever happen if I stayed in Igalia, since it would probably require that the company stopped being as it is in some ways. And that’s something I don’t think I should ask for “just because I felt that way”. That would be too selfish, don’t you think?

So I made the only decision I thought it made sense: to quit.

Sure it was hard, and even tough at some moments, to make such a decision. But once I made it for real, I have to say I felt very well about it, as if everything was making sense once again, as if the puzzle I was trying so hardly to solve was finally complete.

In any case, this doesn’t mean I want to work on something completely different either. In my lollipop world, my plan is to keep working around the Open Source world as much as possible, hopefully also around GNOME and WebKit, the two platforms I learned to love during these years. Well, actually for the case of GNOME I must say it’s a platform I already loved before joining Igalia, but I can’t deny that being part of that company played a major role to help me get more involved on it, so that’s why I think it deserves some credit.

Fortunately, I’m a lucky guy and I can already say that, just two months after making that decision and starting looking for new opportunities, I already found a job where I think I’ll be able to keep working in what I love (see paragraph above) while, at the same time, being also able to try something different and new compared to what I’ve done so far.

Additionally, I think this new job will also help me find answers to the questions that have been crossing my mind lately, let alone learning new stuff… I’m sure I’ll learn a lot of new stuff as well, something I already can’t wait for.

Anyway, I won’t start working there until January, so let’s go step by step.

First I needed to write this post to tell the world about my new situation (check). Second, I need to use these “two months in nowhere” to re-organize my life and arrange many different things related to the short-term (work in progress). Finally, I’ll start that new stage in my life and finally announce here where I’m going to, something I’d rather keep for another post.

Surely I know all this will mean big challenges for both me and my family (we’ll be moving abroad, to begin with), but those are challenges we’re willing to face and can’t wait for. In a way, I kind of feel like I did 7 years ago right before joining Igalia, when I just finished my studies at the University and still had no clue what I was going to do with my life. Back then, the future looked uncertain and full of opportunities at the same time, and if I now look backwards I can clearly see it was even better than what I’ve would ever have expected. Really.

And you know what? That’s exactly how I feel right now, and that’s a feeling I’m liking a lot. And believe me, I’m pretty much aware that my current situation (married and with two children) is quite different compared to 7 years ago. Yet it doesn’t scare me well enough not to feel thrilled about this new stage in our life, a stage I’m already eager to deal with.

So it’s time to move on. I won’t ever forget the great time I had at Igalia, all the people I met here and all the good things that being part of such an special company brought to my life, but I also think now it’s time to look forward and focus on the future.

I have the most amazing family in the world and we’ll be together on this through thick and thin, so I’m already sure we’ll be fine. It’s just a matter of time we’ll get there, so what else can I ask for?

Just wish us good luck. That should do the rest :)

por mario el November 19, 2012 11:38 AM

November 18, 2012

“Overhauled”

En el coche de hoy se unen dos de mis cosas preferidas: el programa Overhaulin’ y un muscle car, el Dodge Challenger.

Dodge Challenger de 1972, "overhauled" (fuente: hemmings.com)

Dodge Challenger de 1972, "overhauled" (fuente: hemmings.com)

Overhaulin’

Overhaulin’ (“poniendo a punto”, o “puesta a punto”) es un programa de televisión que se emitió entre el 2005 y el 2009 en el canal americano TLC, y que desde hace tiempo se emite también en Discovery Max. Es un reality poco convencional: el equipo del programa “roba” (con la colaboración de algún familiar o amigo del dueño) un coche clásico. No hay una definición oficial para “clásico”: cualquiera de más de veinte años podría considerarse así. Mientras el dueño se pregunta qué ha pasado con su coche, un equipo de mecánicos repara, mejora y prácticamente reconstruye el coche para convertirlo en un hot rod: un deportivo de motor exageradamente grande (400 y 500 CV son habituales), llantas cromadas, tapicería de piel y equipo de música de miles de watios de potencia.

La “dirección artística” corre a cargo de Chip Foose, un diseñador de hot rods famoso en los EEUU. Viendo los resultados del programa, lo que me extraña es que no sea famoso en el mundo entero. Quizás otro día le dedique una entrada, porque se lo merece: su estilo respeta el espíritu original de los coches, sin demasiadas estridencias pero con un carácter netamente americano. Espero que viendo el coche de hoy se hagan una idea.

El Dodge Challenger

Ya hemos visto varios muscle cars en estas entradas, pero todavía no habíamos pasado por el Dodge Challenger, producto de la matriz Chrysler. Fue un pony car tardío: no apareció en los 60, como el Mustang y el Camaro, sino en el 1970. Compartía elementos con otro muscle car de Chrysler, el Plymouth Barracuda.

El modelo performance de 1970 montaba un V8 de 6.3 litros y 335CV … ¡con una transmisión manual de tres marchas! ¿Se imaginan hasta dónde podrían llegar en primera?

por xouba el November 18, 2012 09:00 AM

November 17, 2012

Nombres de "host" a partir de DHCP en Debian y Ubuntu

Ésta es una de esas entradas rápidas que le pegan más a Javier. Pero como me he pasado un día entero preguntándome por qué no funcionaba, y ahora al menos sé cómo hacer que funcione de forma más o menos limpia, lo pongo por aquí para que Google lo encuentre y les ahorre el trabajo a otros.

DHCP


No hace falta que explique qué es DHCP, ¿verdad? Todos hemos configurado algún servidor DHCP, sea para una red casera o para algo más serio. Lo típico es configurar una sección subnet para asignar direcciones IP en una red determinada. Un ejemplo sacado de la documentación del ISC DHCP Server (el servidor DHCP estándar):


subnet 10.254.239.0 netmask 255.255.255.224 {
  range 10.254.239.10 10.254.239.20;
  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}

Definimos la red 10.254.239.0/27 y asignamos direcciones IP entre la 10 y la 20 de ese rango. Como "bonus", también les decimos a nuestros clientes que los routers de la red son rtr-239-0-1.example.org y rtr-239-0-2.example.org. Personalmente pondría las direcciones IP y no los nombres DNS, porque no le hemos dicho a los clientes dónde está el servidor DNS; pero esto es sólo un ejemplo, y yo estoy divagando.

Aparte de esta definición, otra menos frecuente es la de host, con la que asignamos una dirección IP concreta a un dispositivo identificado por su MAC. Por ejemplo:

host pruebita {
  hardware ethernet 08:00:27:9c:28:77;
  fixed-address 192.168.1.198;
}

Que es lo mismo que decir: al dispositivo con MAC 08:00:27:9c:28:77 le das siempre la dirección IP 192.168.1.198. Yo lo he usado sobre todo para dispositivos como impresoras, en los que es más fácil dejar DHCP y asignar la IP en la configuración del servidor que pelearse con los menúes en miniatura que traen en el panel de control. También es práctico para otros equipos de gestión incómoda, como controladoras de cabinas de discos y similares.

Asignando nombres


Una opción adicional que podemos añadir al ejemplo anterior es la de host-name, con la que (en teoría) el equipo se pondrá el nombre que le indiquemos.



host pruebita {
  hardware ethernet 08:00:27:9c:28:77;
  fixed-address 192.168.1.198;
  option host-name "pruebita";
}

Casos de uso: si tenemos varios equipos que han sido instalados con una imagen genérica, y queremos darle a cada uno un nombre distinto. Por ejemplo, los equipos de un laboratorio, varias máquinas virtuales, etc.

Pues bien. Resulta que en Debian y Ubuntu esto no funciona. Para no ofender a nadie, voy a decirlo de otra forma: yo no conseguí hacerlo funcionar, y todos los comentarios que vi en Internet decían lo mismo.

La solución es hacer lo que pone en este artículo de Debian Administration: un script en /etc/dhcp/dhclient-exit-hooks.d que actualiza el hostname cuando dhclient obtiene una dirección IP. Pero el script que pone de ejemplo aquí no es muy limpio. Si se fijan, para obtener el nombre del equipo hace un host de la dirección IP y parsea la salida. Sucio. Feo. Poco elegante.

Así que, henchido de vanidad y con la inmodestia que me caracteriza, propongo una alternativa mucho más sencilla:

#!/bin/sh
h=$new_host_name
if [ "$h" ]; then hostname $h && echo $h > /etc/hostname; fi

(que iría como /etc/dhcp/dhclient-exit-hooks.d/hostname)

La variable "$new_host_name" es el nombre que ha asignado el servidor DHCP para el cliente, proporcionada por dhclient a los scripts que ejecuta como hooks. No hace falta recurrir al DNS, y de hecho ni siquiera tendría por qué estar funcionando (aunque es muy recomendable; os ocurrirán cosas horribles si tenéis un DNS mal configurado).

Y con eso quedaría solucionado el problema ... si no fuera por NetworkManager.

NetworkManager


Todo lo anterior sirve cuando hemos configurado el interfaz de red en /etc/network/interfaces. Nuestra configuración será algo así:

auto eth0
iface eth0 inet dhcp

En ese caso, todo funcionará como decía: se ejecutará dhclient y se actualizará el hostname con los datos de servidor. Pero en los equipos que instalan una Ubuntu o Debian moderna, "para escritorio", la configuración de red no se hace ahí: se hace mediante NetworkManager.

Este engendro programa no ejecuta los hooks de dhclient, aunque sea lo que usa "por debajo". Tiene su propio (e incompatible) sistema para acciones que se llevan a cabo tras la configuración de un interfaz de red en /etc/NetworkManager/dispatcher.d.

Los scripts ejecutados en ese directorio reciben ciertas variables de entorno de NetworkManager, incluyendo las relativas a DHCP. Éstas tienen la forma DHCP4_*, y en concreto la del nombre del equipo es DHCP4_HOST_NAME. Por lo tanto, tenemos que hacer una versión del script anterior para NetworkManager, y usando esta variable. Yo lo he puesto en /etc/NetworkManager/dispatcher.d/99hostname, con esto:

#!/bin/sh

case "$2" in
    up)
        hostname $DHCP4_HOST_NAME && echo $DHCP4_HOST_NAME > /etc/hostname
        ;;
esac

Esto, por fin, funciona. Es posible que al equipo no le guste mucho arrancar con un hostname y que luego, cuando ya hay servicios funcionando, cambie a otro. Aunque me duele decirlo, lo mejor en estos casos es un reinicio para que todo arranque con el nuevo hostname. A lo mejor llega con reiniciar lightdm o su equivalente, pero no puedo asegurarlo.



por Roberto Suárez Soto (noreply@blogger.com) el November 17, 2012 08:00 AM

November 13, 2012

VII Concurso Universitario de Software Libre (CUSL 2012/2013)

Logo CUSL

Un año más, la organización del CUSL vuelve a la carga con su concurso para fomentar el desarrollo de software libre en los Proyectos Fin de Carrera.

Si os interesa participar, podéis consultar las bases y el calendario (en principio la inscripción en esta edición termina el 23 de Noviembre) en su web: http://www.concursosoftwarelibre.org/1213/calendario.

¡Animáos a participar! Puede ser una buena forma de aumentar la rentabilidad de vuestro trabajo en el PFC.

El calendario para esta edición es el siguiente:

  • Fase de inscripción: 1 de Octubre al 23 de Noviembre de 2012
  • Fase de Desarrollo:

    Desde que se confirma la participación en el Concurso hasta el 9 de Abril de 2013 que será cuando se inicie el proceso de evaluación de los proyectos.

    Nota: Durante el periodo de evaluación, los participantes podrán seguir con sus desarrollos, pero no se asegura que lo desarrollado en este periodo sea evaluado.

  • Fase de evaluación: 2 al 22 de Abril de 2013. Fase en el que el comité de evaluación evalúa los proyectos participantes.
  • Fase Final: 10 y 11 de Mayo de 2013. Fecha por confirmar, lugar Granada

por emilioj el November 13, 2012 05:45 PM

November 05, 2012

Igalia at LinuxCon Europe

I came to Barcelona with a few other Igalians this week for LinuxCon, the Embedded
Linux Conference
and the KVM Forum.

We are sponsoring the event and we have a couple of presentations this year, one about QEMU, device drivers and industrial hardware (which I gave today, slides here) and the other about the Grilo multimedia framework (by Juan Suárez).

We’ll be around the whole week so you can come and talk to us anytime. You can find us at our booth on the ground floor, where you’ll also be able to see a few demos of our latest work and get some merchandising.

Igalia booth

por berto el November 05, 2012 10:08 PM

El hermano perdido del Corvette

Hace un par de semanas estaba leyendo Hemmings.com, y me encontré con este coche:

Roadster LaSalle II, 1955 (fuente: hemmings.com)

Roadster LaSalle II, 1955 (fuente: hemmings.com)

Es un modelo único: un prototipo del LaSalle II, de 1955. Fue creado para el GM Motorama, una exposición de coches “futuristas” celebrada anualmente por GM para comprobar la reacción del público a algunas innovaciones, enseñar músculo con fantásticos concept cars y anunciar nuevos modelos. LaSalle era una rama de la marca Cadillac, que un ejecutivo llamado Harvey Earl quiso resucitar a mediados de los cincuenta. El Motorama fue el sitio escogido para presentar los nuevos modelos, un roadster (el que aparece en la foto) y un sedán de seis plazas.

Se creía que este coche, junto con otros expuestos el mismo año (Chevrolet Biscayne, La Salle II sedan y Cadillac Eldorado Brougham Town Car), había sido destruído en 1958. Pero no era así: habían sido despiezados y conservados en pésimas condiciones en un desguace de Sterling Heights, Michigan. Un aficionado llamado Joe Bortz los encontró, los compró y se dispuso a restaurarlos. En la foto se puede ver el resultado.

El LaSalle II es un “hermano” del Corvette, del que no puede negar su parecido. Incluye algunos elementos novedosos, como el espacio abierto para las ruedas traseras o un cuerpo unibody (de una pieza). Montaba un motor V6 con bloque de aluminio, que se incluyó en el modelo expuesto en Motorama pero no llegó a usarse nunca. Para la restauración, Joe Bortz decidió desechar el V6 y convertir el LaSalle II en un coche eléctrico.

Aquí les dejo un vídeo en el que se ven detalles de la restauración:

<iframe frameborder="0" height="315" src="http://www.youtube.com/embed/CJ6MeUX9n8g" width="560"></iframe>

por xouba el November 05, 2012 09:00 AM

October 29, 2012

Taller SPQRol (2): Revisión y feedback

La segunda etapa del taller de rol de SPQRol ya ha pasado, y el resultado ha sido interesante.

Escribir es duro, amigos míos

Escribir es duro, amigos míos

El enunciado era éste:

 Cada uno de vosotros deberá leer con cariño el proyecto que presentó uno de vuestros compañeros en el anterior ejercicio y detallar, en un mínimo de doscientas y un máximo de cuatrocientas palabras, tres aspectos positivos y tres ideas de mejora de la propuesta que se le ha asignado. Este feedback lo postearéis aquí mismo, para que lo pueda leer la persona que se os ha asignado. Cada uno de vosotros deberá, entonces, responder al feedback recibido indicando qué aspectos de los comentados vais a tener en cuenta, cuáles no, y el porqué de cada uno.

A mí me tocó criticar el trabajo de Bayushi Yachi, que va a crear un autojugable ambientado en un instituto japonés “encantado”, en el que los alumnos usan la magia para defenderse y proteger a sus compañeros de los demonios y otros seres sobrenaturales que lo plagan. Mi autojugable fue criticado por Ryback, y aquí pongo lo que me dijo:

Aspectos positivos:

-          Un gancho sencillo y rápido con el que iniciar las partidas. La premisa del juego no engaña a nadie y permite montar partidas en un santiamén.

-          Un sistema ágil y dinámico que refuerza la sensación de sencillez expuesta en el argumento.

-          Todo un universo para explorar, aparentemente ilimitado, en el que te puedes encontrar de todo.

Posibles mejoras:

-          La exploración de mazmorras y el saqueo de tesoros es un tema muy trillado y bastante repetitivo. ¿Por qué no ampliar un poco más el abanico de posibilidades? En lugar de ser busca-tesoros, los personajes podrían ser mercenarios, de esta forma, además de buscar objetos o civilizaciones perdidas podrían ser contratados para misiones de escolta, sabotaje, asesinato o infiltración. Los PJS podrían especializarse en diferentes clases: combatientes (“guerreros”), técnicos (“pícaros”), investigadores (“magos”). Las razas alienígenas podrían ser optativas.

-          Algo de trasfondo habrá que añadir a la ambientación.  Si te decantas única y exclusivamente por la investigación, sería bueno añadir información sobre algunas culturas y civilizaciones perdidas; si deseas incluir también conflictos armados, igual te interesa detallar un poco los bandos enfrentados. Una forma de unificar ambas cosas sería que las reliquias, tesoros y restos, perteneciesen a civilizaciones extintas muy avanzadas, de tal modo que todas las corporaciones y grupos de poder las deseen, lo cual provocaría conflictos y guerras en los planetas que las contengan. Algo así como Indiana Jones y el Arca Perdida, pero en el espacio.

-          Ya que la exploración va a ser algo importante en el juego, sería interesante incluir algún modo de que todos los jugadores puedan añadir elementos a al narración, y que no todo quede en manos del DJ. Algo semejante a la Ley de los Éxitos en Donjon. De esta manera el universo de juego o ha de crearlo uno solo si no que se van añadiendo detalles partida tras partida.El Donjon trae también un sistema de ventajas persoanlizadas, de tal modo que los jugadores pueden añadir a su PJ rasgos únicos, muy útil si deseais inventar razas alienígenas sobre la marcha, SD6 seguro que podría incluir algo similar.

Todo bastante razonable. Alguna cosa de las que menciona ya la había pensado (que los personajes fueran mercenarios), y otras no las conocía (como lo que hacen en Donjon).

El taller sigue en marcha, y la tercera etapa tiene la deadline el 4 de noviembre. Seguiré informando.

por xouba el October 29, 2012 09:00 AM

October 22, 2012

El coche fantástico

Otro guiño a la nostalgia y a los 80 en esta entrada. Si son de mi generación, esto les sonará:

El coche fantástico es una trepidante aventura, de un hombre que no existe, en un mundo lleno de peligros. Michael Knight, un joven solitario embarcado en una cruzada para salvar la causa de los inocentes, los indefensos, los débiles, dentro de un mundo de criminales que operan al margen de la ley…

Efectivamente: el coche fantástico. El protagonista de la serie era este coche:

"El coche fantástico" (1982)

"El coche fantástico" (1982)

A nosotros llegó como un deportivo exótico y de líneas desconocidas, pero en los EEUU ya era famoso. El modelo en el que se basó fue el Pontiac Firebird Trans-Am, un muscle car que nació al mismo tiempo que el Mustang, el Camaro y otros parecidos.

La marca del indio

Pontiac es otra de las marcas que forman el conglomerado de General Motors. Su nombre viene del sitio donde se fundó: Pontiac, Michigan, que a su vez recibe su nombre de un famoso caudillo de los indios Ottawa que lideró una rebelión en el siglo XVIII.

El objetivo de la marca era hacer coches para el gran público, de coste reducido pero sin perder cierta garra deportiva, y se hizo famosa por los coches “afilados” como el Firebird. He aquí una foto de los Firebird desde el 67 hasta el 2002. ¿Reconocen el modelo del medio?

Familia de los Firebird Trans-Am (fuente: Wikipedia)

Familia de los Firebird Trans-Am (fuente: Wikipedia)

Como no podía ser de otra forma, todos los Firebird tenían motores de seis u ocho cilindros. El  primer modelo de seis cilindros era un OCH inline-6 (todos los cilindros en línea, no en “V”), diseñado por John DeLorean. Sí, el de la marca que vimos hace poco. Movía 3.7L y 165CV, que personalmente pienso que es buen rendimiento para lo acostumbrado en estos coches. Compárese con los 2.8L y 101CV del Mustang original, que es de la misma época.

Mucha gente optó (cómo no: son los EEUU) por el modelo V8, de 5.3L y 250CV, o una versión superior con el mismo desplazamiento y 285CV. El modelo más potente que se hizo fue un motor de 1969 (con el primer pack “Trans-Am”) de 5.0L y 330CV.

Firebirds en BaT

En Bringatrailer.com han aparecido varios Firebirds, aunque ninguno exactamente como el de “El coche fantástico”. Por ejemplo, he aquí uno del 79:

Pontiac Firebird Trans-Am del 79 (fuente: bringatrailer.com)

Pontiac Firebird Trans-Am del 79 (fuente: bringatrailer.com)

Y aquí otro del mismo año:

Y otro Pontiac Trans-Am del 79 (fuente: bringatrailer.com)

Y otro Pontiac Trans-Am del 79 (fuente: bringatrailer.com)

Viendo todos los coches que hemos mencionado aquí, diría que los muscle cars de los 70 siguen teniendo algo especial.

por xouba el October 22, 2012 07:20 AM

October 20, 2012

La ley d'Hondt y las mayorías (y las minorías)

Una característica del sistema d'Hondt que os expliqué ayer es que, aunque genera repartos proporcionales, tiende a favorecer a los partidos mayoritarios. Es decir, tiende a otorgar los escaños "sobrantes" primero a los partidos más votados. Esto puede causar problemas si se combina el sistema d'Hondt con un sistema electoral por circunscripciones (como el de España). En este caso, esta pequeña ventaja se magnifica.

Por dar un ejemplo bastante extremo, imaginad que tenemos un parlamento de 30 escaños y 2 partidos; uno recibe el 52% de los votos y el otro recibe el 48% de los votos. Si se reparten los 30 escaños en una circunscripción única, el primer partido recibiría 16 escaños y el otro partido recibiría 14. Sin embargo, si el territorio estuviese dividido en 10 circunscripciones de 3 escaños cada una, y en cada circunscripción cada partido recibiera el mismo porcentaje de votos que antes, en cada circunscripción el primer partido recibiría 2 escaños y el otro partido recibiría 1; en total, el partido ganador recibiría 20 escaños y el perdedor, 10.

Por supuesto, en España cada circunscripción tiene un número de escaños distinto, y los porcentajes de votos varían, pero el principio es el mismo, y explica por qué el partido más votado suele llevarse un porcentaje de escaños muy superior al porcentaje de votos que recibe en el territorio nacional.

Esto no significa que el sistema de circunscripciones sea malo per se. Este sistema tiene la ventaja de que posibilita que un partido que tiene mucho empuje en una provincia obtenga representación aunque su porcentaje global de votos en el territorio nacional sea bajo. El inconveniente (tiene que haber un inconveniente; no existe ningún sistema totalmente justo) es que los partidos que reciben un porcentaje bajo de los votos en todas las circunscripciones suelen recibir una proporción de los escaños inferior a la proporción de votos recibidos.

Para solucionar este problema, en algunos sitios utilizan un sistema d'Hondt modificado para favorecer ligeramente a los partidos minoritarios. Este sistema está modificado de forma que el primer escaño sea más fácil de obtener, por lo que un partido que no tenga ningún escaño tiene más posibilidades de recibir un escaño que uno que ya tenga varios. Esto se consigue haciendo que cada escaño después del primero cuente doble. Es decir, al hacer la tabla que describí en la historia de ayer, en lugar de dividir los votos entre 1, 2, 3, etc., se dividen entre 1, 3, 5, etc.

A B C D
1 1000 900 700 400
3 333,3 300 233,3 133,3
5 200 180 140 80
7 142,9 128,6 100 57,1
9 111,1 100 77,8 44,4

La tabla anterior os muestra el mismo ejemplo de ayer, pero utilizando el sistema d'Hondt modificado. El número de escaños asignado a cada partido es el mismo que antes, pero lo importante es que se asignaron en distinto orden. Mientras que ayer el partido D no recibió su escaño hasta el sexto turno, hoy lo recibió de cuarto, justo después de que A, B y C recibieran los suyos. En otras palabras: si sólo hubiese cuatro o cinco escaños en juego, hoy D habría recibido uno, y ayer no. En un sistema de circunscripciones, por lo tanto, y suponiendo que en cada circunscripción la situación fuese similar, la representación de D sería más alta que con el sistema d'Hondt "puro".

Y esto es todo lo que tengo hoy sobre el sistema d'Hondt. Espero que os haya resultado interesante. Si queréis dejar comentarios, id a la correspondiente historia en Google+.

por jacobo el October 20, 2012 08:52 PM

Otra historia más sobre la ley d'Hondt

Si no me equivoco, este domingo van a ser elecciones, así que es el momento de que alguien escriba la consabida historia que explica cómo funciona la ley d'Hondt. Hace unos años leí una explicación bastante buena, pero creo que en esta ocasión tengo una mejor, así que voy a intentar describirla.

La ley d'Hondt (o "sistema d'Hondt") sirve para repartir varios elementos entre varios grupos de forma proporcional. En España se usa, por ejemplo, para repartir escaños entre los distintos partidos en función del número de votos. También se puede utilizar para repartir los asientos en una cámara de representación territorial.

Uno podría pensar que, para repartir los escaños después de una elección, podría bastar con hacer una regla de tres y asignar a cada grupo la parte proporcional de los votos recibidos. No obstante, hay un problema obvio: al hacer esto tendríamos escaños "fraccionales". Por ejemplo, si tenemos dos partidos y un parlamento con 10 escaños, y un partido ha sacado el 53% de los votos y el otro el 47%, no podemos darle 5,3 escaños a un partido y 4,7 escaños al otro. Los escaños son indivisibles, así que un partido recibirá 5 y el otro 4, y tenemos que buscar la manera de asignar el escaño sobrante. ¿Se lo damos al partido que tiene 5, para reconocer su mayoría? ¿O se lo damos al que tiene 4, porque le falta menos para llegar a 5 que al otro para llegar a 6?

Lo habitual es asignarle el escaño al que tenga el "resto mayor". Al primer partido le damos 5 escaños y le "restan" 0,3; al segundo le damos 4 y le restan 0,7. El que tiene el resto mayor es el segundo, con 0,7, así que le damos el escaño a éste, y ambos quedan empatados a 5 escaños. Este sistema, aunque simple, tiene un problema bastante gordo: es posible que, si se reparten más escaños pero las proporciones de los votos son las mismas, un partido pase a recibir menos escaños (podéis ver un ejemplo en el artículo que enlacé antes). Esto se llama "paradoja de Alabama" porque tras el censo de los EEUU de 1880 hicieron cálculos para aumentar el tamaño del Congreso, y descubrieron que con un Congreso de 299 escaños, Alabama tendría 8 escaños, pero sólo 7 en uno de 300.

El sistema d'Hondt es un sistema que no tiene este problema. La idea principal del sistema es conseguir un reparto de los escaños lo más proporcional posible, asignando los escaños de uno en uno de manera que cada escaño represente al mayor número posible de votos.

read more

por jacobo el October 20, 2012 06:48 AM

October 18, 2012

Novos pulos para LinEx?: Extremadura transfire a CENATIC o control de LinEx

Según palabras de David Sánchez, Director de Comunicación y Relaciones Institucionales do CENATIC:

Logo LinEx

O Goberno de Extremadura ven de anunciar o acordo no cal se encarga ao CENATIC o desenvolvemento dunha nova estratexia que permita a sostibilidade económica da distribución rexional de softwarelibre LinEx. LinEx é unha distribución de software libre pioneira en España, e a orixe dunha forma diferente de entender os proxectos tecnolóxicos, baseándose na maior eficiencia do software libre.

Nesta nova etapa, o Gobierno de Extremadura encomendou ao CENATIC a creación dunha Comunidade de Desenvolvedores ao redor da distribución, coa fin de garantir a súa sustentabilidade técnica e económica, xa que o desenvolvemento totalmente aberto dunha aplicación de software libre permite que de cada euro invertido nunha Comunidade se aforren tres en futuros mantementos.

por gpul el October 18, 2012 06:19 AM

October 13, 2012

DD-WRT &amp; IPv6

I recently purchased a WRT610N router to replace my old WRT54GL. The main reasons for the change have been that the second (despite being one of the most versatile routers) falls a bit short in terms of network speed and memory, the first being a «dark beast» with its dual WiFi circuitry, which allows two real wireless networks that can operate at different speeds (which is very useful, because computers nowadays tend to work in standard N, but the phones are still stuck in G), its gigabit wired network and the USB port, to connect a storage device to extend the capabilities of the product.

Another reason why I decided to update my network hardware was that I wanted to try to work with IPv6.

Today my ISP offers no possibility of using IPv6 (like most), but that does not mean that we can not use the tunnel services that facilitate third-party companies, such as Hurricane Electric.

In my case the first thing I did was ask a tunnel with them, you have to be aware that when they checked the tunnel ask our public IP through a Ping to see if it is reachable, so we must have enabled ICMP response .

Once we get the tunnel (can request up to 5, but one is enough, in the /64 that we have given 18,446,744,073,709,551,616 possible directions) they provide the information necessary to configure it. What really interests us is the server IPv4 address, the IPv6 address and prefix IPv6 routing.

From here turn configure the router. I already had prepared with dd-wrt firmware. To no internal memory will exhaust I connect a 1GB USB flash drive which I was at home and use it as /jffs, so that all the scripts and big configurations get into this location.

To up the IPv6 network I use this script that I called hetunnelbroker.sh:

#! /bin/sh -x

# Load Module
insmod ipv6
insmod sit
sleep 5

# Get WAN IP
WANIP="$(ip -4 addr show dev vlan2 | awk '/inet / {print $2}' | cut -d/ -f1)"

# Configure HE Tunnelbroker
SERVER_IPV4_ADDR="209.51.181.2"
CLIENT_IPV6_ADDR="2001:470:bebe:cafe::2/64"
ROUTED_IPV6_ADDR="2001:470:bebe:cafe::/64"

# Write small log
echo "External IP: $WANIP" > /jffs/ipv6/startup.log

# Configure Tunnel if WAN is UP
if [ -n "$WANIP" ]
then

	echo "Configuring tunnel" >> /jffs/ipv6/startup.log

	# Set Public IP in HE Servers (if the user gives the passwd via stdin)
	[ -n "$1" ] && [ -n "$2" ] && [ -n "$3" ] && \
	echo "Updating tunnel" >> /jffs/ipv6/startup.log && \
	iptables -I INPUT 1 -p ICMP --icmp-type echo-request -s 66.220.2.74 -j ACCEPT && \
	MD5PASS=`echo -n $2 | md5sum | sed -e 's/  -//g'` && \
	wget 'http://ipv4.tunnelbroker.net/ipv4_end.php?ip='$WANIP'&pass='$MD5PASS'&apikey='$1'&tid='$3 -O - >> \
		/jffs/ipv6/startup.log && \
	iptables -D INPUT 1

	# Add HE tunnel
	ip tunnel add he-ipv6 mode sit remote $SERVER_IPV4_ADDR local $WANIP ttl 255
	ip link set he-ipv6 up
	ip addr add $CLIENT_IPV6_ADDR dev he-ipv6
	ip route add ::/0 dev he-ipv6 metric 1
	ip -6 addr add $ROUTED_IPV6_ADDR dev br0

	# Provide IPv6 Forwarding
	echo 1 > /proc/sys/net/ipv6/conf/all/forwarding

	# Start radvd to provide IPv6 pull to network
	echo -e "\nStarting radvd" >> /jffs/ipv6/startup.log
	radvd -C /jffs/ipv6/radvd.conf
fi

The operation of the script is simple, the first thing it does is load the modules needed to support IPv6. After it stored in the variable WAN_IP our IPv4 collecting it from the network interface that is connected to the Internet. Keep in mind that in my case this interface vlan2, but depending on the model of router you have this may vary.

From this point begins the configuration that will be personal in each case. In SERVER_IPV4_ADDR we will put the server IPv4 address that provides us Hurricane Electric, in CLIENT_IPV6_ADDR the client IPv6 address and in ROUTED_IPV6_ADDR the IPv6 routing prefix.

The following are the commands needed to up IPv6, the script writes a small log in /jffs/ipv6/startup.log. We can also see that it is able to pick up three variables of the input line. These variables are the API Key (shown as User ID in our start page of Hurricane Electric Tunnel Broker), our password and ID of the tunnel. If we call the script passing these values, we be able to upgrade our public IP Hurricane Electric, so if it changed, the tunnel will remain active.

Finally the script ups radvd (a service that advertise the network IPv6 prefix settings that should be used) reading settings from /jffs/ipv6/radvd.conf:

interface br0 {
	MinRtrAdvInterval 3;
	MaxRtrAdvInterval 10;
	AdvLinkMTU 1480;
	AdvSendAdvert on;
	prefix 2001:470:bebe:cafe::/64 {
		AdvOnLink on;
		AdvAutonomous on;
		AdvValidLifetime 86400;
		AdvPreferredLifetime 86400;
	};
};

Here, all you need is to set the prefix to match with our IPv6 routing prefix.

To make this all work just have to call the script hetunnelbroker.sh from the list of router startup commands. As said before if we call it without arguments simply ups the tunnel, but if we pass arguments then it update our IP. We can use one way or another depending on if our IP is static or dynamic.

Once up the router, we should have available IPv6. To verify, we can try to reach this same page via IPv6 in ipv6.ogarcia.moire.org.

IPv6 & Windows 7.

Although, once you have everything set up, works fine on Windows 7, in the machine that I have as game console I don’t like the default behavior that has this «Operating System».

Micro$soft, true to its principles, is passed through the … (wear what you want) the standards defined for IPv6 settings and instead of using an IP-based Ethernet MAC uses a random number based on a generated. While this may be interesting for privacy, is a hell when we are using local DNS.

If you want to disable this «feature», we can do this by running the following commands in a cmd console:

netsh interface ipv6 set privacy state=disabled store=active
netsh interface ipv6 set privacy state=disabled store=persistent
netsh interface ipv6 set global randomizeidentifiers=disabled store=active
netsh interface ipv6 set global randomizeidentifiers=disabled store=persistent

Once done, reboot the machine and see that the interface is configured correctly using EUI-64.

Finally, if you want to know a little more about these standards addressing you can read read this article that, curiously, I found in the Micro$oft TechNet.

por amhairghin el October 13, 2012 12:48 PM

October 08, 2012

Xornadas de Introdución a GNU/Linux e SwL

Cartel

Dende o GPUL comprácenos anunciar que o vindeiro 10 de outubro de 12:30 a 14:30 da mañá celebraranse as "VI Xornadas de introducción a GNU/Linux e Sofware Libre para alumnos noveis". Unha actividade orientada ós novos alumnos da Facultade de Informática. O evento terá lugar no laboratorio 0.5.

Dita actividade estará centrada no uso de Ubuntu Desktop nos laboratorios da facultade, pois é o sistema que os asistentes empregan maoiritariamente durante o curso. O programa comezará cunha pequena introducción sobre a filosofía do Software Libre, continuará cun cursiño acelerado das ferramentas máis útiles deste sistema e rematará cunha install party.

Ademáis teredes a ocasión de gañar algún que outro premio sorpresa.

 

 

AdjuntoTamaño
noveis2012_copia.png303.95 KB

por Juan el October 08, 2012 07:38 PM

Clásicos modificados para carreras

Uno de los usos más comunes de coches “clásicos” como los que han aparecido aquí últimamente es, tras algunas modificaciones, correr en carreras profesionales o semi-amateur. La materia prima ya está ahí: los muscle cars, con sus motores V8 y su estructura deportiva, no necesitan mucho para convertirse en coches de competición.

La SCCA

Una de las promotoras de estas carreras es la Sports Car Club of America, o SCCA. Esta sociedad lleva promocionando la conducción deportiva desde 1944, con varias “ligas” de carreras profesionales, “club racing”, autocross y rally. El “club racing” es el que agrupa la mayoría de coches modificados, desde sólo medidas de seguridad adicionales como barras antivuelco hasta cambios completos que sólo retienen la carrocería y el chasis originales.

1973 AMC Hornet Hatchback

Aquí tenemos un buen ejemplo de coche modificado para carreras:

AMC Hornet de 1973 (fuente: bringatrailer.com)

AMC Hornet de 1973 (fuente: bringatrailer.com)

Es un AMC Hornet del 1973 (AMC surgió de la fusión de Nash-Kelvinator y Hudson, que reusó aquí el nombre de uno de sus modelos más famosos), cuya máxima motorización original era un V8 de 5.9l y 175CV, pero que en este caso lleva un motor AMC 401 de 6.5l y 330CV. Corrió durante los 80 y ganó dos campeonatos de la SCCA, en 1987 y 1988. Fue uno de los modelos más vendidos de la marca.

Chevrolet Camaro Z/28 1968

El Camaro es uno de los coches que más han hecho para popularizar los muscle cars. Su lanzamiento (1966) fue un evento muy publicitado entre el periodismo automovilístico, con 200 periodistas recibiendo telegramas misteriosos antes de la fecha concertada. El nombre “Camaro” continuaba la tradición de nombres que empezaban por “c”: Corvair, Chevelle, Chevy II y Corvette. La respuesta de Chevrolet a la pregunta “¿qué es un Camaro?” fue: “un pequeño y fiero animal que se come Mustangs”. Por si no quedaba clara su intención al crear este coche.

Chevrolet Camaro Z/28 de 1968 (fuente: bringatrailer.com)

Chevrolet Camaro Z/28 de 1968 (fuente: bringatrailer.com)

Este modelo fue modificado en 1979 para correr en circuitos, aunque gracias a las laxas leyes estadounidenses tanto éste como el Hornet anterior pueden rodar por carreteras normales sin problemas. La lista de modificaciones es muy larga, incluyendo el kit Z/28 que le acompaña en el nombre; pero lo que más me ha llamado la atención es que incluye un aircraft engine oil-cooler. Caray.

 

por xouba el October 08, 2012 09:00 AM

October 05, 2012

GPUL nas Xornadas «Vivir mellor con menos»

O sábado 6 de outubro de 2012 GPUL participará cun expositor sobre software libre e sobre o traballo desenvolvido pola nosa asociación na feira de consumo responsable organizada en Compostela pola Coordinadora Galega de ONG para o Desenvolvemento. Se vos pasades pola feira, no dubidedes en facernos unha visita :o)

Programa do evento (jpg)

 

por administrador el October 05, 2012 05:09 PM

October 03, 2012

IndustryPack, QEMU and LinuxCon

IndustryPack drivers for Linux

In the past months we have been working at Igalia to give Linux support to IndustryPack devices.

IndustryPack modules are small boards (“mezzanine”) that are attached to a carrier board, which serves as a bridge between them and the host bus (PCI, VME, …). We wrote the drivers for the TEWS TPCI200 PCI carrier and the GE IP-OCTAL-232 module.

TEWS TPCI200
GE IP-OCTAL-232

My mate Samuel was the lead developer of the kernel drivers. He published some details about this work in his blog some time ago.

The drivers are available in latest Linux release (3.6 as of this writing) but if you want the bleeding-edge version you can get it from here (make sure to use the staging-next branch).

IndustryPack emulation for QEMU

Along with Samuel’s work on the kernel driver, I have been working to add emulation of the aformentioned IndustryPack devices to QEMU.

The work consists on three parts:

I decided to split the emulation like this to be as close as possible to how the hardware works and to make it easier to reuse the code to implement other IndustryPack devices.

The emulation is functional and can be used with the existing Linux driver. Just make sure to enable CONFIG_IPACK_BUS, CONFIG_BOARD_TPCI200 and CONFIG_SERIAL_IPOCTAL in the kernel configuration.

I submitted the code to QEMU, but it hasn’t been integrated yet, so if you want to test it you’ll need to patch it yourself: get the QEMU source code and apply the TPCI200 patch and the IP-Octal 232 patch. Those patches have been tested with QEMU 1.2.0.

And here’s how you run QEMU with support for these devices:

$ qemu -device tpci200 -device ipoctal

The IP-Octal board implements eight RS-232 serial ports. Each one of those can be redirected to a character device in the host using the functionality provided by QEMU. The ‘serial0‘ to ‘serial7‘ parameters can be used to specify each one of the redirections.

Example:

$ qemu -device tpci200 -device ipoctal,serial0=pty

With this, the first serial port of the IP-Octal board (‘/dev/ipoctal.0.0.0‘ on the guest) will be redirected to a newly-allocated pty on the host.

LinuxCon Europe

Having virtual hardware allows us to test and debug the Linux driver more easily.

In November I’ll be in Barcelona with the rest of the Igalia OS team for LinuxCon Europe and the KVM Forum. I will be talking about how to use QEMU to improve the robustness of device drivers and speed up their development..

Some other Igalians will also be there, including Juan Suárez who will be talking about the Grilo multimedia framework.

See you in Barcelona!

por berto el October 03, 2012 12:10 PM

October 02, 2012

Buscando el Shangri-La de los VPSs

Es muy satisfactorio cuando tus prejuicios de viejo carcamal se confirman. Lo malo es que a veces eres tú mismo el sujeto de pruebas, y tus quejas te afectan directamente.

Todo empezó cuando un compañero de trabajo me dijo que en kemsirve.es había VPSs (servidores virtuales privados) por 5€ al mes. Ahora mismo, mi otro weblog y una buena parte de mi correo están en un VPS de Gandi, por el que pago unos 14€ al mes. Sus características son:

Aparte, la E/S también está limitada, y se nota que cuando haces algo que requiera leer o escribir en disco duro (un "rpm -qa", por ejemplo) le cuesta un poco. No llega a ser molesto, pero tarda más que en un equipo normal.

En kemsirve.es hay VPSs por 5€, con estas características:

En resumen: doble de potencia, casi una tercera parte del precio. Irresistible. Tras varias semanas de darle vueltas (soy así de decidido), compré un VPS por tres meses para probarlo y, en algún momento, pasar mis cosas ahí.

Oro parece, OpenVZ es

Lo primero que vi al entrar fue que no tenía un disco duro virtual, como en Xen, sino un raíz de 25GB del sistema de ficheros "simfs". Buscando un poco vi que eso era OpenVZ. No lo había usado nunca (siempre me ha parecido un chroot con esteroides, no virtualización de verdad), pero por 5€ al mes estaba dispuesto a aparcar mis prejuicios. Y encerrarlos en un garaje cubiertos por una lona, si hacía falta.

También descubrí que sólo tenía 128MB de swap. En mi VPS de Gandi podía configurar el swap yo mismo: te dan un disco duro virtual, y tú haces con él lo que quieras. Puse LVM y dediqué un volumen de 512MB para swap. En OpenVZ no hay nada de eso: tienes 128MB de swap, y punto. ¿Y qué pasa cuando agotas la memoria y el swap? (que no es muy difícil, si quieres montar algo más que un servidor web chorras) Ahí empieza la diversión.

Primero os voy a describir el escenario, para que os hagáis una idea de la situación. Ahora mismo, los servicios que ejecuto en mi VPS son:


Con esta configuración, en el VPS de Gandi tenía regularmente unos 80-100MB de swap ocupados, y unos 50-60MB de RAM libre. Lo suficiente para que no notara retrasos al recibir correo ni al cargar mi página web. Si había un pico (si mi weblog pasaba de las 10 visitas diarias habituales, por ejemplo), todavía me quedaba swap de sobra.

Los procesos que más memoria ocupan son httpd, mysqld, named y amavisd. La configuración de MySQL no está muy optimizada, pero las de apache y amavis son muy espartanas: muy pocos procesos, pocas conexiones simultáneas, etc. Lo justito, vaya.

Con esta configuación he lanzado un par de "apachebench" con concurrencia de 20 y unos cuántos miles de consultas y nunca he tenido problemas. La página se vuelve lenta y todo se queda un poco frito durante la prueba, pero al acabar se recupera tan grácilmente como un octogenario con artrosis después de una caída.

Pero cuando haces esto contra el VPS con OpenVZ, los 512MB de RAM apenas llegan para todos los procesos de httpd que se lanzan; como no llega la RAM, se empieza a usar el swap; y en apenas un par de minutos, también se ha acabado el swap. Entonces el terrible "OOM killer" del kernel aparece, y siega con su guadaña procesos a diestro y siniestro. El primero en caer es amavisd, uno de los que más RAM ocupan. Si aprietas un poco más, luego cae mysqld. También named puede verse afectado, según cómo coincida. En resumen: masacre, destrucción total, apocalipsis, armaggedon, ragnarok. Mal rollo.

La solución más fácil es limitar de forma muy severa los procesos de apache, dejando sólo 10 simultáneos. Así siempre hay unos 60MB libres de swap, y otros tantos de RAM. Eso sí, el benchmark tarda muchísimo más, porque apache tiene que serializar todas las consultas que no puede atender de forma concurrente.

Aparte de eso, he instalado monit. No había usado nunca este programa, y ha sido una sorpresa muy agradable. Aparte de monitorizar los procesos, puede reiniciarlos cuando fallan. Tiene una sintaxis muy "human friendly", muy fácil de entender. Probé varios "stress tests" con monit instalado, antes de limitar los procesos de apache, y reinició correctamente todos los procesos que el OOM killer se había cargado.

Con monit y los límites de apache, pensé que podía sobrevivir sin miedo a que mitad de los procesos del sistema sufrieran una muerte horrible en cuanto la memoria estuviera un poco apretada. Pero OpenVZ tiene otras restricciones que todavía no había encontrado.

¿VPN? ¿Qué VPN?

Tengo una VPN con openvpn entre mi equipo de casa (con IP dinámica) y mi VPS de Gandi. Para entrar al VPS, incluso desde casa, me conecto por ssh; pero uso la VPN para hacer backup o para saltar desde cualquier sitio al VPS y luego a mi ordenador.

El kernel de OpenVZ no tiene soporte para módulos. Es un kernel "capado", más seguro, en el que no puedes ni cargarlos ni descargarlos. Eso quiere decir que, si no hay soporte para algo, no hay posibilidad de añadirlo de forma dinámica. Soporte para algo como, por ejemplo, los dispositivos TUN/TAP, que hacen falta para openvpn.

Pregunté al soporte de OVH si tenía que hacer algo especial o era una limitación del VPS, y me dijeron que era lo último. Que si quería, podía usar PPTP (la VPN que viene de serie con Windows). Pero PPTP está más pensado para "road warriors", gente que se conecta esporádicamente a un concentrador VPN para acceder a la red de su trabajo, no para una conexión estable y permanente. Así que me fui a la siguiente opción: IPSec, con openswan.

¡Ingenuo de mí! Ni de coña, tampoco había soporte para IPSec. Precisamente estaba usando openvpn porque apenas necesita soporte en el kernel, es todo en espacio de usuario. IPSec necesita soporte en el kernel de bastantes cosas, pero qué narices, tenía que probarlo.

Poco después, buscando en Internet, encontré un foro en el que un empleado de OVH reconocía que no se permitía ningún tipo de VPN "para evitar abusos". He estado buscando alguna opción que me valga para lo mismo desde entonces, pero en el fondo me duele tener que renunciar a una VPN sólo porque OVH tiene una política restrictiva respecto a lo que sus usuarios pueden hacer con sus VPSs. El precio es muy atractivo, pero si es lo único que pueden ofrecer, no es buena idea atarme a ellos.

Conclusión

No me gusta que me limiten arbitrariamente, como si fuera un niño pequeño. Y no me gusta OpenVZ. Por lo poco que he visto, son demasiadas cosas extrañas: el swap limitado, el espacio en disco no particionable, la IP 127.0.0.1 en el dispositivo venet0 (el equivalente a eth0), la falta de soporte en el kernel para cualquier cosa ... Si tengo un VPS es por cacharrear, por probar cosas, y con OpenVZ no podría. Con Xen tampoco puedo probar de todo, pero sí un poco más.

Así que dejaré que expire el VPS, me olvidaré de OVH y buscaré mi Shangri-La: un sitio con VPSs de tecnología Xen y precio más atractivo que el de Gandi. Si puede ser, en Europa, por eso de la proximidad geográfica.

Hoy mismo he encontrado algo que podría ser lo que busco: una oferta en providerservice.net por 1.9€ al mes (si se suscribe por 6 meses y antes del 30 de septiembre), con Xen, 512MB de RAM y 10GB de disco. Tiene un límite de tráfico de 500GB al mes, pero creo que no será un problema.

Seguiré informando por aquí. Estén atentos a sus pantallas.

por Roberto Suárez Soto (noreply@blogger.com) el October 02, 2012 04:26 PM

September 28, 2012

Expedición de certificados

Como saberedes, hai xa tempo que dende a secretaría de GPUL non se expide un mísero certificado. Cando accedín a presentarme coma candidato á nova secretaría hai uns meses, sabía que este era un dos puntos críticos que había que solucionar con celeridade, xa que hai certificados pendentes dende hai dous anos ou máis e iso non pode ser.

Polo tanto, unha vez obtidos tódolos rexistros de asistencia que puiden atopar (seguramente algún se extraviase, polo que pedimos desculpas), procederei á expedición de certificados a petición dos interesados mediante o seguinte procedemento:

  • Para eventos anteriores ó uso do xestor de eventos (Indico):
    • Recollerei os datos de tódolos participantes en ficheiros en formato electrónico.
    • Aqueles que superen o 80% de asistencia ó evento terán dereito a certificado, salvo datos ilexibles, incorrectos ou incompletos.
    • Para cada evento, publicarei a lista de xente (só nomes) que ten dereito a certificado. Dita lista estará dispoñible (tan só para aqueles que reciban o enlace, en modo lectura e sen posibilidade de descarga) por 30 días naturais, pasados os cales será debidademente eliminada.
    • Pasados ditos 30 días naturais, toda petición de expedición de certificados de eventos anteriores á data de publicación de dita lista será automaticamente denegada.
    • Toda aquela persoa da lista que desexe que se lle expida un certificado, debe enviar un único correo ó enderezo "secretario en gpul punto org" co asunto "Expedición de certificados", facendo constar os seguintes datos:
      • Nome e Apelidos
      • DNI
      • Evento ou eventos para os que solicita certificado, indicando o nome do evento e o ano ou edición (podedes consultalos en http://stuff.gpul.org).
    • Unha vez que o certificado esté listo, será notificado á persoa en cuestión, que terá 15 días naturais para recollelo no despacho de GPUL, pasados os cales o certificado será anulado e convenientemente destruido.
    • Para evitar problemas de apertura do despacho, publicarase un horario de apertura do mesmo que estará dispoñible na web de GPUL.
    • A persoa notificada terá que respostar a dita notificación especificando a data e hora de recollida dos certificados, respetando os horarios de apertura.
    • Excepcionalmente, de atoparnos en período non lectivo, dito prazo de 15 días naturais comezará a contar a partir do primeiro día lectivo posterior á notificación da expedición do certificado.
  • Para eventos con rexistro a través do xestor de eventos:
    • A expedición de certificados neste caso quedará restrinxida a aquelas persoas que se rexistraron previamente no evento e cumplan coas condicións do punto anterior.
    • Todo o dito no punto anterior é válido para este punto.
Undefined

por xuco el September 28, 2012 11:58 AM

Expedición de certificados de asistencia con aproveitamento

Comunicámosvos que xa está dispoñible a lista coa xente que ten dereito a certificado de asistencia con aproveitamento a eventos organizados polo GPUL dende o ano 2010.

Podedes consultar a lista durante 30 días naturais a partir de hoxe aquí.

Tedes o mesmo prazo pra solicitar os vosos certificados seguindo o procedemento estipulado aquí.

Undefined

por xuco el September 28, 2012 11:57 AM

September 24, 2012

Una máquina del tiempo

Los “niños de los 80″ tuvimos mucha suerte con el cine. Nos tocó una época en la que hubo películas fantásticas, en parte gracias a directores como George Lucas y Spielberg, pero también gracias a otros como Robert Zemeckis: director de “Forrest Gump”, “Náufrago”, “Quién engañó a Roger Rabbit” … y “Regreso al futuro”.

Esa película nos mostró un coche que aquí no veríamos nunca, uno de esos productos netamente americanos: grandes, deportivos y de aspecto espectacular. Estoy hablando del DeLorean, o para ser precisos, el DMC-12.

Delorean de 1981 (fuente: hemmings.com)

Delorean de 1981 (fuente: hemmings.com)

One hit wonder

La empresa DeLorean fue creada por John DeLorean en 1975. Tuvo una vida breve: en 1982 entró en bancarrota y sus acreedores se repartieron sus restos. Sólo fabricó un coche, el DMC-12. El primer prototipo apareció en 1976, y entró en producción en 1981. Sólo se fabricaron 9000 unidades.

Irónicamente, cuando protagonizó la película “Regreso al futuro” (1985), la compañía ya había dejado de existir. Zemeckis escogió el DMC-12 por sus puertas “ala de gaviota”, para darle un aspecto de nave alienígena.

Un coche y una historia

El coche de hoy apareció el 12 de septiembre en hemmings.com. Pertenece a Ian Yanagisawa, que cuando fue despedido decidió darse unas vacaciones viajando a través de los EEUU en el DeLorean de su madre, comprado cuando los niños se fueron de casa. Cuando se cansó de él, Ian lo adoptó y le hizo varias mejoras. Luego le despidieron, y antes de reincorporarse al mercado laboral, necesitaba desconectar un poco. Él lo explica así:

En algún momento necesitaré un trabajo, pero primero necesito alguna prueba de que el mundo no es tan frío ni impredecible como el ambiente corporativo en el que llevaba viviendo un tiempo. Aparte de quitarle el polvo a mi currículum, he decidido pasar cierto tiempo renovando mi optimismo. Necesito ver las cosas desde lejos, por decirlo así. Necesito poner esta decepción en un contexto más amplio y redescubrir el tipo de fe y esperanza que es tan difícil de encontrar y mantener estos días. Así que decidí hacer un viaje por carretera. Y no uno cualquiera. Decidí agarrar mi DeLorean y conducir hacia el atardecer para visitar sitios en los que no había estado, ver gente que no veo nunca y descubrir hasta dónde puedo ir en este poco fiable pero querido vehículo.

En el momento del artículo, Ian llevaba 12000 millas, y esperaba hacer unas 10000 más. Para los interesados, ha ido contando su viaje en su weblog.

 

por xouba el September 24, 2012 09:00 AM

September 16, 2012

Hay cosas intocables.

Todos los días veo noticias como esta y me pregunto cuánto tiempo puede seguir la sociedad sin explotar. Llevamos cinco años viendo como todo tipo de servicios que sin duda son buenos para las personas son recortados, modificados o simplemente suprimidos.
Los medios de comunicación nos dicen que gastamos más de lo que ingresamos y que por ello nos debemos sacrificar. Lo hacen muy bien y han conseguido que nuestros subsconscientes lo hayan grabado como una verdad sin discursión. Y es cierto, los números no engañan, dónde hay 100 no pueden salir 109 todos los años.
Ahora bien, estoy harto de ver que nuestros impuestos tienen que aumentar para:

Y me pregunto, si es que nuestros políticos y nosotros mismos nos hemos olvidado que hay derechos irrenunciables para cualquier Sociedad como la Educación, Sanidad,  la Seguridad, la Vivienda, la Supervivencia...
Si repasamos la Historia hay una cosa clara cuando en una Sociedad esos valores desaparecen siempre acaba pasando una cosa: desaparece la Sociedad.

por Juan José Iglesias González (noreply@blogger.com) el September 16, 2012 09:45 AM

Taller SPQRol (1): Saqueadores Interdimensionales

Desde hace varios meses frecuento el foro rolero SPQRol. Me había limitado a escribir alguna respuesta a los temas que salían, pero ahora también estoy participando en el taller de escritura de rol que modera uno de los foreros, Yirkash. Y como no quiero que el que llegue por casualidad al weblog piense que sólo escribo de coches antiguos, voy a poner por aquí lo que vayamos haciendo por allí.

Dados aleatorios. No sabía qué imagen poner. (fuente: trollandtoad.com)

Dados aleatorios. No sabía qué imagen poner. (fuente: trollandtoad.com)

Para explicar qué se pretende con este taller voy a citar el primer post de Yirkash:

Primero de todo, vamos a definir una vez más el objetivo final de este taller. A lo largo del mismo intentaremos crear un autojugable de alrededor de unas seis páginas de extensión. Al usar el término autojugable nos referimos a una obra final que contenga un sistema de juego, una ambientación en la que se desarrolla el juego y una aventura que tiene lugar en dicho juego. Es decir, podríamos definir autojugable como un reglamento básico con su aventura introductoria pero, en este caso, reducido a su mínima expresión. El motivo de que apuntemos a una extensión tan breve, tan solo alrededor de seis páginas, es por una parte el trabajar nuestra capacidad de síntesis y por otra el mantener este proyecto dentro de unos límites suficientemente reducidos para que podamos realizarlo con el escaso tiempo libre del que disponemos todos.

Sé por experiencia que es fácil empezar un proyecto de este tipo con algo sencillo, pretendiendo terminarlo pronto, y perderse en el desarrollo. Me pasó con el Exilio y muchos otros antes, que no llegaron a ver la luz del sol. En este taller se quiere evitar eso mediante hitos que irá marcando Yirkash, para construir el autojugable poco a poco y sin distracciones.

El primer hito es un planteamiento breve del diseño, resumiéndolo en un texto de entre 150 y 250 palabras. En el texto se debe dar una idea general del tipo de sistema que se usará, de cómo será la ambientación y de qué irá la aventura inicial. En mi caso, el juego se va a llamar “Saqueadores Interdimensionales”, y el texto introductorio es éste:

En “Saqueadores Interdimensionales” los jugadores llevan a un grupo de variopintos saqueadores con equipo de ciencia-ficción, que buscan tesoros en las ruinas accesibles a través del multiverso con la esperanza de hacerse ricos y retirarse jóvenes y enteros. Tendrán que enfrentarse a lo que encuentren en las ruinas, a otros saqueadores tan ambiciosos como ellos y al Gobierno del Nexo Interdimensional (GNI), que los considera proscritos.

Para el sistema de juego usaré el sistema libre SD6, que no conozco mucho pero parece sencillo y fácil de adaptar a cualquier situación.

En la primera aventura, un joven emprendedor quiere crear su propia compañía de saqueadores para buscar el tesoro que llevó a la muerte a la compañía a la que pertenecía. Para ello, buscará a varios personajes de perfiles muy determinados y les prometerá el oro y el moro a cambio de su colaboración.

Les mantendré al día con los progresos de este taller. ¿Quién sabe? Puede que, esta vez, hasta consiga terminarlo y todo.

 

por xouba el September 16, 2012 09:00 AM

September 14, 2012

WebKitGTK+ 1.10 is almost here!

As you might already know, the new and shiny 3.6 release of the GNOME desktop is right around the corner, and so it’s the next release of WebKitGTK+, the port of the WebKit web rendering engine to the GTK+ platform.

And it turns out that such a release is going to be a very special one for us, members of the WebKit team at Igalia,  since it comes with some very interesting features, like those I already mentioned in the talk I gave during the past GUADEC, mainly:

From all those, I’m specially happy because we will be finally releasing the very first beta version of the new WebKit2GTK+ API, based in the multi-process architecture of WebKit2, as well as providing support for Accelerated Compositing and WebGL.

This new WebKit2GTK+ API, as you perhaps already know, will allow applications gain the split process model of WebKit2 out-of-the box, which is awesome. Xan already mentioned  some of the advantages of it becoming beta for GNOME 3.6 in his last post this week, being my favorite ones the “increased responsiveness and stability” (quoting Xan) that will come with it, as well as the fact that it will be not only powerful enough to port old applications and write new ones, but also simpler and easier to use (we are putting a lot of effort on this).

And honestly, I think we are doing pretty well in that regard, even though there’s still a lot of work to do before we can release an stable version of this new API (due for WebKitGTK+ 2.0,  to be released with GNOME 3.8), which will also mean the very first version of Epiphany that will be using WebKit2 by default.

With regard to Accelerated Compositing and WebGL, I’d just like to mention that having them supported in WebKitGTK+ from now on is great because it means you will be able to render visually stunning web content in your browser of choice (epiphany, huh?), as well as enjoy more subtle improvements such as smoother animations or increased responsivenes while browsing. You can visit this post by my mate Martin for more details on this topic.

Anyway, all these are very nice words and all that, but sometimes it’s not that easy to properly understand just with words what exactly those things will actually mean for users, so I decided to spend some time today polishing a bit the videos I used as demos in my talk during GUADEC, and link them from here, so everyone can easily watch them now.

Hope you enjoy watching them as much as I did making them:

<iframe frameborder="0" height="280" src="http://player.vimeo.com/video/49440927" width="500"></iframe>

WebKitGTK+: WebGL and Accelerated Compositing

<iframe frameborder="0" height="281" src="http://player.vimeo.com/video/49443843" width="500"></iframe>

WebKit2GTK+: The UI and the Web process

<iframe frameborder="0" height="281" src="http://player.vimeo.com/video/49446048" width="500"></iframe>

WebKit2GTK+: The Plugin process

por mario el September 14, 2012 03:38 PM