por Juan José Iglesias González (noreply@blogger.com) el May 15, 2012 08:28 PM
Con el título de una canción de los infames Mötley Crüe (más famosos por otra canción, Dr. Feelgood) empezamos el segundo artículo de Linux Técnico. Hoy vamos a hablar del provisionamiento de equipos, usando un método que hasta hace unos años era exclusivo del mundo Red Hat pero que también podemos usar con Ubuntu: kickstart.
por Roberto Suárez Soto (noreply@blogger.com) el May 13, 2012 08:15 PM
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.
dyn IN A ns.linuxtecnico.es.Cuidado con el punto del final. Hubo unos minutos de rascamiento de cabeza y chirriar de dientes hasta que me di cuenta de que, la primera vez que metí la línea en la zona, me lo había olvidado. Y con un TTL de un día, eso significa que durante veinticuatro horas el error estará pululando por Internet, demostrando tu falta de pericia. La gente habla mal de ti por mucho menos. La configuración de Bind para esta zona sería:
zone "dyn.linuxtecnico.es" {
type master;
allow-transfer { none; };
file "dynamic/db.dyn.linuxtecnico.es";
update-policy {
grant raven.dyn.linuxtecnico.es. name raven.dyn.linuxtecnico.es. A TXT;
};
};
No hace alta mucha explicación sobre lo que hace esto. La parte novedosa es la de update-policy, en la que definimos qué vamos a permitir cambiar y a quién. La línea grant tiene la sintaxis: grant <llave> <ámbito> <registro> <tipos de registro>Significado de cada elemento:
$ORIGIN .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.
$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.
dnssec-keygen -b 512 -a HMAC-MD5 -n USER raven.dyn.linuxtecnico.esTé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. nsupdate -k Kraven.dyn.linuxtecnico.es.+157+55947.privateUna 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.esTodo 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í:
zone dyn.linuxtecnico.es
update add raven.dyn.linuxtecnico.es. 3600 A 1.1.1.1
show
send
update delete raven.dyn.linuxtecnico.es. APodemos 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 80Que, pasado a algo que podamos usar como una variable shell, sería algo así:
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.
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/shPodemos ejecutar esto en cron cada hora, y así tendremos nuestro registro actualizado. Comprobación posterior:
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
$ host raven.dyn.linuxtecnico.es
raven.dyn.linuxtecnico.es has address 213.60.49.251
por Roberto Suárez Soto (noreply@blogger.com) el May 13, 2012 08:15 PM
Dende GPUL comprácenos anunciar a celebración das "I Xornadas sobre Hardware LIbre" os días 17 e 18 de maio de 2012 na Facultade de Informática da Universidade da Coruña (Salón de Actos, andar 0).
Podedes ver o programa do evento no seguinte enlace ou descargalo dende aquí. Podedes rexistrarvos no mesmo a través do seguinte enlace, así coma mantervos ó día das novas relacionadas.
É de facer notar que contaremos coa presenza (virtual) de David Cuartielles, un dos membros máis mediáticos do Arduino Team.
Así mesmo, contaremos con varios espazos de participación para o público que se achegue ata o evento:
¡E temos un lote de sorpresas preparadas!
Dende a directiva, agardamos a vosa asistencia, pero sobre todo que o pasedes ben e que lle deades a máxima difusión posible ó evento.
por xuco el May 10, 2012 10:26 PM
Dende GPUL comprácenos anunciar a celebración do "IV Obradoiro de Criptografía, Privacidade e Seguridade" do 14 ó 16 de maio de 2012 na Facultade de Informática da Coruña (Salón de Actos, andar 0).
Como sempre, haberá charlas e obradoiros de expertos locais no campo,que expoñerán as últimas técnicas coas que están a traballar. Nesta ocasión, tamén, contamos coa presencia do gran especialista internacional o Doutor Ross Anderson, da Universidade de Cambridge, que impartirá a súa charla titulada "Cryptology and security – where is the research frontier?"
Podedes ver o programa do evento no seguinte enlace ou descargalo dende aquí. Podedes rexistrarvos no mesmo a través do seguinte enlace, así coma mantervos ó día das novas relacionadas.
Dende a directiva, agardamos a vosa asistencia, pero sobre todo que o pasedes ben e que lle deades a máxima difusión posible ó evento.
por xuco el May 07, 2012 06:57 PM
Mucha gente no sabe usar correctamente los puntos y las comas. Podría decir que no me importa, que acepto que mi opinión puede no ser la correcta y que el uso que la gente da a estos signos de puntuación es tan válido como el que hago yo. Pero mentiría. Me cuesta mucho ver un email escrito con párrafos de diez líneas sin un solo punto y no reprimir un gruñido de frustración. Me duelen los ojos. Se me encoge el corazón. Es la maldición del pilkunnussija.
Hay reglas sobre cómo usar la coma. Pueden verlas en Wikipedia y en muchos otros sitios de Internet. Por ejemplo, aquí, aquí y aquí.
Pero lo importante, quizás la razón de que tanta gente no la use correctamente, es saber cómo leerla. La coma hace nuestras frases ágiles: vuela, salta, corre, va de un sitio a otro sin parar, dejándonos respirar lo justo antes de llegar, exhaustos, al punto del final de la frase. Hay autores que las usan de forma muy particular, como Saramago (o Jack Kerouac, por lo que me han dicho); y otros que no las usan en absoluto o muy poco, como Cormac McArthy. En “No es país para viejos” o “La carretera”, las frases van hilvanadas con una conjunción tras otra (“hizo esto y lo otro y también aquello otro y además …”), y en las más largas parece que vas a ahogarte antes de terminarlas.
Como antes, también hay normas sobre cómo usar los puntos: pueden verlas en Wikipedia, o aquí, o aquí.
A diferencia de la coma, ligera como una pluma, el punto es pesado. Detiene la lectura. La paraliza. La congela. Nos obliga a parar y reflexionar sobre lo que se ha leído. El punto se planta delante nuestra y nos dice: “¡No … puedes … pasar!”. Da un final a la frase; y si es punto y aparte, al párrafo, lo que es todavía más intenso. El punto y seguido es un peso pesado, un Mike Tyson en sus mejores días; pero el punto y aparte es Godzilla, derribando rascacielos a manotazos y sembrando el caos en Tokyo. Sólo tienen que ver el efecto que tiene una frase por sí misma, fuera de cualquier párrafo.
Quizás por esa entidad tan abrumadora que tiene, mucha gente apenas usa puntos al escribir. Enlazan frase tras frase con comas, a veces divagando de tal manera que el principio y el final no tienen que ver. Para esa gente, sólo existen los puntos y apartes: un punto por párrafo es suficiente. Su ímpetu al leer debe ser tan grande que derriban todos los puntos y seguido que se encuentran, convirtiéndolos en tímidas comas que se apartan para dejarlos pasar. O a lo mejor es al revés: les cuesta tanto sobrepasar la barrera representada por un punto, que prefieren usar sólo comas para no cansarse tanto al leer un párrafo.
Los puntos son sus amigos. No muerden. Úsenlos cuando hace falta. Como regla general, si en una frase han puesto más de tres comas, piensen si realmente hacen falta y no podrían dividir la frase en dos (o más) usando algún punto. La gente que lea lo que escriben (sean posts en Facebook o Twitter, entradas en weblogs o emails) se lo agradecerá. Y yo podré dormir un poco más tranquilo.
por xouba el May 07, 2012 12:00 PM
| Adjunto | Tamaño |
|---|---|
| 844.18 KB |
Dende GPUL comprácenos anunciar a celebración das "V Xornadas Multimedia" o 05 de maio de 2012 na Facultade de Informática da Coruña (Aula de Graos, andar 2 / Salón de Actos, andar 0).
Anexo a este comunicado está o programa do evento. Podedes rexistrarvos no mesmo a través do seguinte enlace, así coma mantervos ó día das novas relacionadas.
Dende a directiva, agardamos a vosa asistencia, pero sobre todo que o pasedes ben e que lle deades a máxima difusión posible ó evento.
por xuco el April 30, 2012 03:00 PM
I'm happy today because I can finally announce my latest project, Debloat.
Debloat is an Enterprise-ready, extensible Java data compression/decompression framework. It supports many different compression algorithms and data encoding formats that can be plugged in as needed, using simple configuration files written in XML, or programmatically using a very simple, intuitive DSL. Debloat is Open Source and available under the terms of the Apache License 2.0.
The typical problem with data compression algorithms is that the output they produce often consists in opaque binary blobs, which nobody can inspect to see what's inside, and it's very hard to write tools that can operate on those blobs. Debloat solves that by using a new codec that produces easily parsed, human-readable XML files!
For example, assume you would like to compress the following string:
Trololololo lololo lololo.
A regular compression library would produce something that perhaps looks like this:
▼ï◘┘üöO♥♂)╩╧üB♣¶JÅ♂ê╝P!←You can see that this is a complete opaque bag of random symbols corresponding to various binary values. However, Debloat produces well-formed output that looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<compressedData algorithm="lz77">
<byte value="84"/>
<byte value="114"/>
<byte value="111"/>
<byte value="108"/>
<reference distance="2" length="7"/>
<byte value="32"/>
<reference distance="7" length="13"/>
<byte value="46"/>
<byte value="10"/>
</compressedData>Undoubtedly, this format has many, many advantages for Java Enterprise applications respect to the opaque binary blob.
I hope you try Debloat out and post your feedback on Google+! I have many ideas for the next few versions of Debloat, hopefully they'll be released soon!
por jacobo el April 22, 2012 10:19 PM
| Adjunto | Tamaño |
|---|---|
| 913.36 KB |
Dende GPUL comprácenos anunciar a celebración das "XI Xornadas Libres" o 23 e 24 de abril de 2012 na Facultade de Informática da Coruña (Aula de Graos, 2º andar).
Anexo a este comunicado está o programa do evento. Podedes rexistrarvos no mesmo a través do seguinte enlace, así coma mantervos ó día das novas relacionadas.
Dende a directiva, agardamos a vosa asistencia, pero sobre todo que o pasedes ben e que lle deades a máxima difusión posible ó evento.
ACTUALIZACIÓN:
Debido a motivos de control de calidade das charlas, houbo modificacións importantes no programa das xornadas. Dende GPUL queremos pedir desculpas polas posibles molestias ocasionadas (pois ata o de agora nunca se dera un caso coma este), pero pensamos que é mellor ter poucas charlas e ben, que moitas e mal.
Adxunta a esta nova, tedes o programa actualizado. Así mesmo, tédelo dispoñible no enlace publicado anteriormente.
ACTUALIZACIÓN 2:
Debido a problemas de saúde do poñente, o obradoiro "Gestor de Proyectos. Redmine + GIT + Nginx" queda suspendido. No seu lugar farase unha proxección do documental "Revolution OS".
por xuco el April 16, 2012 05:53 PM
El próximo lunes 16, desde las 16:00, en el Salón de Actos de la Facultad de Informática se celebrará una interesante jornada sobre el presente y futuro de la nube. Dicho evento está organizado por Amazon Web Services y el Grupo de Arquitectura de Computadores de la FIC. El horario es el que sigue:
16:00 Inicio de la recepción de asistentes
16:30 Inauguración de la Jornada, con
Alberto Valderruten, decano de la Facultade de Informática da Coruña (FIC)
Fernando Suárez, presidente Colegio Profesional de Enxeñaría Informática de Galicia (CPEIG)
Mario Herraiz, Amazon Web Services Iberia Manager
16:35 AWS-IaaS Master Class. Carlos Condé (Amazon Web Services EMEA Solutions Architect)
17:35 The Global Cloud. Telvent
18:00 iBest. El primer core bancario en cloud. Incita
18:15 Modelos de negocio en IaaS. Altia
18:30 Pausa
18:45 High performance computing y big data en AWS. Universidade da Coruña
18:55 Cloud computing tras bambalinas en la web 2.0: el caso Menéame. Ricardo Galli
19:45 Mesa redonda sobre desafíos y oportunidades del Cloud computing
Mario Herraiz, AWS Iberia Manager
Fernando Suárez, CPEIG
Ramón Costa, Director del Data Center de Altia
Isidro Parga, Grandes Cuentas de Tecnologías Plexus
Ricardo Galli. meneame.net
Telvent
Modera: Guillermo López. Universidade da Coruña.
por tsao el April 14, 2012 02:30 AM
Por la página web de la Facultad de Informática, nos enteramos:
A Facultade de Informática da Coruña anuncia a celebración dun acto de homenaxe ao profesor e investigador Víctor M. Gulías Fernández que terá lugar o próximo venres 27 de abril de 2012 ás 19.00 h no salón de actos deste centro.
A homenaxe, que será presidida polo Reitor Mgfco. da UDC, D. Xosé Luís Armesto Barbeito, contará tamén coa presenza de membros das distintas universidades, centros de investigación e empresas do sector das TIC coas que Víctor Gulías mantiña relación.
A Facultade fai estensiva a invitación a calquera persoa que desexe asistir a este acto.
También hemos sabido que el Aula de Grados de la FIC se convertirá en el Aula Victor Gulías, en homenaje al que, como sabéis, también fue socio de GPUL.
por tsao el April 14, 2012 02:23 AM
Máis información: https://www.gpul.org/indico/conferenceCFA.py?confId=4
por xuco el April 12, 2012 01:13 PM
Máis información: http://www.gpul.org/indico/conferenceCFA.py?confId=3
por xuco el April 02, 2012 07:12 PM
Tercera y última entrega de esta pequeña serie, en la que abordamos el tema de las espadas malditas: ésas que te permiten cortar a tus enemigos como si fueran de papel, y a cambio lo único que quieren es tu vida (y tu alma).
Hoy vamos a ver el origen de estas espadas, escondido en las brumas de los antiguos cuentos nórdicos.
La espada maldita más famosa en la mitología nórdica, merecedora de toda una saga para ella solita, tiene un nombre conocido: Tyrfing.
Efectivamente, es el mismo nombre que la espada de “The Broken Sword”. Poul Anderson tomó prestada la espada de los Edda, los poemas en nórdico antiguo que contienen todo lo que conocemos de la mitología nórdica y germánica.
Curiosidades lingüísticas: Tyrfing significa “el dedo de Tyr“, dios de la guerra (que era manco, para más señas). Este nombre también sirvió para denotar a los Godos, que pasaron al latín como Tervingi. Tyr fue el dios de la guerra durante mucho tiempo en el panteón nórdico, pero posiblemente sus publicistas no eran muy buenos y perdió popularidad en favor de Thor y Odín.
Como dice Bolverk en “The Broken Sword”, Tyrfing fue creada por los enanos Dyrin y Dvalin para Svafrlami. Este señor era un nieto de Odín, y rey de Gardariki. Atrapó a los enanos y les obligó a hacer para él una espada mágica, que nunca fallara un golpe y cortara la piedra y el acero tan fácilmente como la ropa. Los enanos cumplieron, pero también la maldijeron para que cada vez que se desenvainara tuviera que matar a un hombre, para que ninguna de las heridas que causara se pudiera curar, para que fuera la causante de tres grandes males, y para que matara a su propio dueño.
Y así fue: Tyrfing mató a Svafrlami, causó la muerte de un dueño posterior llamado Angantyr, mató a su pariente Hjalmar, causó la muerte de otro pariente de éste y sus dos hijos, y finalmente mató al último en la línea de sucesión de la familia. No hay que bromear con las maldiciones enanas.
Supongo que no les sonará de nada este nombre. A mí no me sonaba hasta hace un tiempo, cuando empecé a bucear en los orígenes de la literatura de Tolkien. Kullervo es el nombre de un personaje trágico de las leyendas finlandesas, y la inspiración explícita para Túrin Turambar. Y sí: él también tenía una espada mágica, aunque no exactamente maldita.
Según el mito, dos hermanos nacieron y fueron separados: Kalervo y Untamo. Crecen, se hacen hombres y se asientan en sitios diferentes con sus familias. Un día se enfrentan por un tema de pesca, y hay una escalada de violencia que degenera en guerra y termina con la tribu de Kalervo exterminada. Pero no todos mueren: la embarazada hija de Kalervo, Untamala, sobrevive y se rinde a Untamo. Pronto da a luz a un niño, Kullervo.
Desde pequeño, Kullervo declara que vengará la muerte de su tribu. Se hace tan pesado que Untamo intenta matarlo hasta tres veces, pero el condenado niño sobrevive gracias a sus latentes poderes mágicos. Tras nuevos intentos de deshacerse de él, lo vende como esclavo y se olvida del tema.
Pero Kullervo sobrevive, y habiéndose hecho mayor se reencuentra con los restos de su familia. Han sobrevivido todos salvo por su hermana pequeña, perdida y dada por muerta. El padre de Kullervo tampoco tiene éxito con la educación de su hijo, que en uno de los viajes que le han encargado encuentra a una pordiosera a la que seduce usando sus artes mágicas. Pero la pordiosera resulta ser su hermana, que se suicida por vergüenza.
Kullervo, avergonzado y dolido, llega a la conclusión de que todos sus problemas son consecuencia del exterminio de su tribu por parte de Untamo, y pide al dios Ukko (el dios del cielo y la tempestad, muy similar a Thor) su espada mágica. Con ella aniquila a toda la tribu de Untamo, a pesar de la insistencia de su familia para que se olvide de la venganza. Pero después de la matanza, Kullervo se encuentra a su familia muerta. Más allá de cualquier consuelo, le pregunta a la espada mágica si le quitará la vida; y ella dice que sí, que es una espada y le da igual a quién tenga que matar.
Con esto habrán visto que tanto Anderson como Tolkien han tomado muchos elementos de la mitología “canónica”. Tolkien es el que sin duda más ha bebido de esa fuente, como atestiguan los cientos (quizás exagere un poco) de nombres sacados sin cambios de los Edda y el Kalevala (el poema épico en el que se recoge la historia de Kullervo). Pero tanto Anderson como Haggard han hecho un trabajo fantástico de adaptación de las leyendas nórdicas al formato de novela actual. Anderson ha integrado todos los elementos de la mitología en una historia nueva, y Haggard escribió “Eric Brighteyes” como si lo hubiera copiado verbatim de un skald de la época.
Lo más interesante para mí son los elementos en común entre Kullervo, un mito del que no había oído hablar, y los protagonistas de Moorcock, Anderson y Tolkien:
Túrin es casi una fotocopia de Kullervo, aunque adornada y tamizada por el arte de Tolkien. Elric tiene bastante de Kullervo, aunque también muchas diferencias. Skafloc no es una copia tan evidente como Túrin, pero también tiene muchos elementos en común.
Tolkien y Anderson reconocen sin ambages su influencia, pero Moorcock dijo en uno de los foros que frecuenta que no conocía el mito de Kullervo cuando escribió la escena final entre Elric y Stormbringer. Es curioso, pero verosímil: dada la personalidad de Stormbringer, con especial apetito por las almas de amigos y parientes, que acabara con su dueño no es más que una forma apropiada de terminar la saga.
Y con esto también termino yo la saga de espadas malditas en la literatura fantástica. Espero que les haya gustado; y si es así, o no, tienen la sección de comentarios para decirlo.
por xouba el April 01, 2012 07:00 PM
Máis información: https://www.gpul.org/indico/conferenceCFA.py?confId=2
por xuco el March 26, 2012 09:31 AM
Bienvenidos a la segunda entrega sobre nuestras grandes amigas, las espadas malditas. Nada como una espada poseída por un espíritu maligno o condenada a matar a su portador para alegrarnos el día (como lectores de literatura fantástica, se entiende).
Hoy vamos un poco hacia atrás en el tiempo, saltando del año 1954 en el que habíamos dejado a Poul Anderson y su espada rota al año 1891, año de publicación del libro “Eric Brighteyes”, de Henry Rider Haggard.
Henry Rider Haggard fue un prolífico autor de fantasía, aunque en su época (siglo XIX) el género todavía no tenía una entidad propia. Sus relatos de aventuras fueron una inspiración para otros grandes autores posteriores, como Robert E. Howard y Edgar Rice Burroughs.
En 1891, Haggard ya había publicado sus dos obras más famosas, “Las Minas del Rey Salomón” y “She” (“Ella”). Ambas están basadas en el modelo del explorador europeo que viaja a un reino oculto en el interior de África, continente que estaba empezando a ser descubierto. Aunque sus obras rezuman de los pecados comunes a la literatura victoriana (los protagonistas siempre son europeos, anglosajones y cristianos; y siempre contrasta su civilización con el barbarismo de los nativos que encuentran), son uno de los primeros ejemplos de ficción de entretenimiento puro y duro, y todavía son muy populares.
“Eric Brighteyes” sorprendió a sus lectores por el cambio de tono y ambientación. Es una imitación de historias escandinavas y germánicas conocidas como sögur (plural del islandés saga, “lo que se dice” o “historia, cuento”), ambientadas durante la söguöld o “edad de las sagas” (siglos X-XI), y recogidas por escrito mucho más tarde, en el siglo XIII. Irónicamente, fueron pasadas a pergamino por clérigos cristianos, que no creían en todos aquellos dioses y criaturas que estaban describiendo.
El protagonista es Eric Thorgrimursson, islandés, también llamado “Eric Brighteyes” (Eric “Ojos Brillantes”) por el brillo de sus ojos. A lo largo de la novela, intenta ganarse el amor de Gudruda “The Fair” (Gudruda “la Bella”), que también está enamorada de él. Pero la bruja Swanhild y otro vikingo, Ospakar “Blacktooth”, intentarán impedírselo. Como las sagas tradicionales, el relato es trágico a pesar de los actos heroicos de Eric y sus aliados. La novela no tiene apenas elementos sobrenaturales, aunque los que aparecen son muy importantes para la trama. Están personificados por Swanhild, que usa sus maléficos poderes para impedir que Eric y Gudruda se reunan.
Y como no podía ser de otra forma, también hay una espada, Whitefire. Su origen es muy antiguo:
“Ay, Asmund, a wondrous blade indeed. There is no other such in the world, for the dwarfs forged it of old, and he shall be unconquered who holds it aloft. This was King Odin’s sword, and it is named Whitefire. Ralph the Red took it from King Eric’s cairn in Norway”
Y aunque no tiene la mala leche de Stormbringer o Tyrfing, las runas inscritas en ella tampoco auguran nada bueno para su portador:
“Whitefire is my name—
Dwarf-folk forged me—
Odin’s sword was I—
Eric’s sword was I—
Eric’s sword shall I be—
And where I fall there he must follow me.”
Como se podrán imaginar, la profecía inscrita en la espada acaba siendo cierta. Y hasta aquí puedo leer para no estropearles el relato.
“Eric Brigheyes” fue una gran influencia en “The Broken Sword”, como verán si leen ambos libros. Pero no vamos a cerrar nuestra saga de espadas malditas aquí. Vamos a dar otro pequeño salto, esta vez hacia adelante, y volver con uno de nuestros autores favoritos: JRR Tolkien. Porque tampoco el Maestro se pudo escapar al atractivo de las espadas malditas.
La historia de Túrin Turambar es un relato que Tolkien empezó a escribir, con posteriores modificaciones, en 1917. Originalmente se llamaba “Turambar and the Foalókë”, y ha sido recogida en “El Silmarillion” (donde la leí yo) y más recientemente en otro libro póstumo llamado “The Children of Húrin”.
Como todas las anteriores, la historia de Túrin es trágica: un príncipe humano alto y apuesto, hijo del gran rey Húrin, perdió a su padre con ocho años, cuando éste fue capturado en la “Batalla de las Lágrimas Innumerables”. Fue adoptado por el rey elfo Thingol (el padre de la famosa Lúthien), pero años más tarde tuvo que huir por causar la muerte de uno de sus consejeros. Su mejor amigo, el elfo Beleg Cúthalion, fue a buscarle y le ayudó. Pero con él llevaba la semilla de su destrucción: Anglachel, la espada negra, hecha por el elfo oscuro Eöl a partir del hierro de un meteorito.
Melian, una maia y esposa de Thingol, ya percibía que aquella espada no era trigo limpio:
There is malice in this sword. The dark heart of the smith still dwells in it. It will not love the hand it serves, neither will it abide with you long.
Y acertó: por accidente, Túrin confundió a Beleg con un enemigo y le mató con aquella espada. Después de haberse recuperado del dolor por haber matado a su mejor amigo, Túrin hizo reforjar la espada y le dio su nombre definitivo: Gurthang, “Hierro de Muerte”.
Tras muchas otras aventuras y desventuras, Túrin mató al dragón Glaurung con Gurthang, pero éste le reveló un gran secreto: Túrin se había casado con Finduilas, que aunque él no lo sabía, era su hermana. Previamente se lo había dicho también a Finduilas, que se suicidó tirándose por un acantilado; y luego Túrin, incapaz de soportar la tristeza, le pidió a Gurthang que le quitara la vida. Lo que, huelga decir, la espada aceptó encantada.
¿Les suena esta parte final del diálogo entre Túrin y Gurthang? Debería: pasa lo mismo entre Elric y Stormbringer al final de su saga. ¿Plagio? ¿Es posible que Moorcock, que ha dicho hasta la saciedad que no le gustaba la ficción de Tolkien, le copiara en algo así?
¿Y también encuentran ciertas similitudes con “The Broken Sword”? ¿Es que también Poul Anderson copió el relato no publicado entonces de Tolkien?
No es eso, en realidad. Pero aclararemos el misterio en la siguiente entrega.
por xouba el March 25, 2012 07:00 PM
(esto iba a ser sólo una entrada, pero creció y creció hasta convertirse en otra serie más)
Las espadas son un elemento básico de la literatura de fantasía. No hay otro arma que haya capturado nuestra imaginación como este trozo de metal. Ha dado nombre a todo un género (“Espada y Brujería”), y nuestros antepasados les daban tanta importancia que hasta les ponían nombres. En Wikipedia tienen toda una entrada dedicada a las espadas de ficción, y otra a las espadas históricas.
Si la leen un poco por encima, verán que muchas tienen varias cosas en común: un origen antiquísimo, la capacidad de hacer invencible a su portador, y cierta personalidad más o menos presente. En la literatura fantástica estos poderes se han llevado hasta el extremo, haciendo que haya espadas que tienen tanta o más importancia que sus portadores. Es el caso de Excalibur, y de otra de la que les quiero hablar hoy:Stormbringer, la espada negra, la espada de Elric de Melniboné.
“Stormbringer” es un término de ésos que en inglés suenan bien pero que es difícil traducir a castellano sin que pierda toda su gracia. En las novelas de Elric, el rey albino proscrito creado por Michael Moorcock, se ha traducido por “Portadora de Tormentas” y “Tormentosa”. No me gusta ninguna de las dos opciones, porque ninguna es fiel al significado real de ese nombre: “la que trae la tormenta”, la que atrae a la tempestad; un arma que lleva a la perdición tanto a sus enemigos como a su portador.
Stormbringer aparece desde el principio en la saga de Elric, como metafórico bastón en el que se apoya. Enfermizo, débil y dependiente de drogas y hierbas para sobrevivir, Elric encuentra en la espada un elixir que le da las fuerzas que necesita para vengarse de su primer gran enemigo, Yrkoon. Lo malo es que Stormbringer necesita ser alimentada a base de almas, pero ya se sabe: las mascotas raras necesitan de cuidados especiales.
Stormbringer es el epítome de la tradición de “espadas malditas”. Es la que tiene una personalidad más desarrollada, y la más moderna de todas ellas. Hoy quiero analizar con ustedes de dónde viene esta tradición.
Para eso, lo primero es dar un paso atrás: de los 60 en que fue escrito el primer relato de Elric a una década atrás, los años 50.
Año 1954. Marilyn se casa con Joe DiMaggio. Bill Haley & The comets crean el Rock and Roll con “Rock around the clock”. La primera película de Godzilla aparece en Japón. Y en el frente literario, se publican dos libros fundamentales en la literatura actual: “The Lord of the Flies” (“El Señor de las Moscas”), de William Golding, y los dos primeros volúmenes de “El Señor de los Anillos”, de JRR Tolkien.
Pero entre tanto acontecimiento notable, un autor relativamente novel (sólo había publicado tres novelas hasta entonces), Poul Anderson, publica otro libro: “The Broken Sword” (“La Espada Rota”).
“The Broken Sword” es un relato moderno inspirado por el estilo y fuentes de las sagas nórdicas. Los Æsir, elfos, trolls y gigantes de estas sagas aparecen en ella. De este libro me quedo con dos cosas: los elfos (que beben de la misma fuente que los de Tolkien, pero son más fieles a los elfos de la tradición nórdica) y, como no, la espada rota que le da título: Tyrfing.
El libro cuenta la historia de Skafloc, un niño humano que es robado por un noble elfo, Imric. Como es tradición en estos casos, Imric deja en su lugar un vástago suyo, Valgard, que crecerá idéntico a Skafloc en apariencia pero no en naturaleza (lo que en inglés se llama unchangeling). A lo largo del libro, Skafloc y Valgard crecen en fuerza y fama, llevando a cabo diversas proezas, hasta llegar a la trágica confrontación final.
Tyrfing es un regalo de los Æsir (los dioses nórdicos, como Odín y Thor) para Skafloc. Es Bolverk, el jotun (gigante) que la forjó, quien habla de su naturaleza y poderes:
“Aye,” he breathed. “Well I remember this blade. Me it was whose help Dyrin and Dvalin besought, when they must make such a sword as this to ransom themselves from Svafrlami but would also have that it be their revenge on him. We forged ice and death and storm into it, mighty runes and spells, a living will to harm.” He grinned. “Many warriors have owned this sword, because it brings victory. Naught is there on which it does not bite, nor does it ever grow dull of edge. Venom is in the steel, and wounds it gives cannot be healed by leechcraft or magic or prayer. Yet this is the curse on it: that every time it is drawn it must drink blood, and in the end, somehow, it will be the bane of him who wields it.”
Por cierto, me gustaría que se fijaran en esos dos nombres que salen ahí: Dyrin y Dvalin. Escrito de otra forma, Durin y Dwalin. Seguro que les suenan.
Son obvias las fuentes de esta novela, pero hay otra anterior que sentó las bases del estilo “pseudo-vikingo” en el que está escrito y que fue una de sus principales influencias. Para conocerla damos otro salto atrás: al año 1891, en el que Henry Rider Haggard publica una novela llamada “Eric Brighteyes”.
Pero eso será dentro de un par de semanas, en la siguiente entrega de esta serie. ¡Nos vemos!
por xouba el March 18, 2012 06:00 PM
A few eons ago I was a member of a network called Fidonet, which had an echoarea (the equivalent of a mailing list) dedicated to file compressors. As I was fascinated by them at the time, I was naturally a subscriber.
Every once in a while someone would come in and ask if there could be a compressor that were guaranteed to compress the input data by at least one byte. The response was invariably that no, there couldn't be one, and the argument was based on the pigeonhole principle: if there were such a compressor, you could use it to compress some data, then use it on the compressed data to compress it even more, and so on until you are left with a byte, which would mean that there are only 256 possible distinct files in all of the Universe. This is clearly absurd, so there can't be such a compressor.
While I agree with the conclusion, I find the argument unsound, so let's explore it with the help of a close cousin of this compressor everyone asked about.
There is a compressor that is guaranteed to either produce an output the same size of the input, or produce an output one bit smaller than the input. This compressor simply interprets the input data as a big binary number and subtracts 2 from it. The corresponding decompressor is also very easy: just interpret the input data as a big binary number and add 2 to it.
It is easy to prove that the compressor will always produce an output file that is either the same number of bits as the input file, or 1 bit smaller. Therefore, you can use the compressor, get an output file, use the compressor on the output file, get a new output file, use the compressor on the new output file, and so on until you get a file that only contains 1 bit that can be 0 or 1. According to the argument above, this would mean that only two documents exist in the whole Universe; however this is clearly not true, so what's the catch?
The catch is that we can't reconstruct the original document with the compressor's output alone (the 0 or 1 bit). We need more information to do that: we need to know how many times we applied the compressor so we can apply the decompressor an equal number of times to reconstruct the original file. So let's add the number of compression operations to the last compressed file. How big is the resulting file?
The compressor works by subtracting 2 from the number we interpret the input file as. If I apply the compressor once, I will have subtracted 2; if I apply it twice, I will have subtracted 4 from the original file; if I apply it 1000 times I will have subtracted 2000. To get a single bit I need to apply the compressor enough times that the original file minus twice the number of applications is 0 or 1. That means that, if I call the original file "i", the ultimately compressed bit "c" and the number of compressions "n", I have that i=2*n+c.
Therefore, to compress the input file i you will need n operations, and n is one half of i. You will now need to append the number n to the output of the last compression step to be able to reconstruct the original file. The input file i has b bytes, and n is one half of i, so n has b-1 bytes. Therefore, you will have to store 1 bit for the compressed data, plus b-1 bits for n, which amounts to b, which is the length of the original file!
So yes, while it is not true that being able to reduce a file to 1 bit or 1 byte by successive compressions means that there are only 2 or 256 files in the Universe, it is still true that doing so will be of no benefit.
Comments are welcome — on the Google+ post.
por jacobo el March 15, 2012 04:43 PM
Ahora que os he mostrado cómo es un currículum para EEUU/UK, llega el momento que todos estábais esperando: cómo escribir la carta de presentación ("cover letter", en inglés).
Como mencioné antes, deberíais adjuntar una carta de presentación cada vez que enviéis un currículum. No confundáis la carta de presentación con una carta de recomendación: la carta de presentación la escribís vosotros mismos, y sirve para decirle a la persona que reciba el currículum por qué deberían tener en cuenta vuestra candidatura.
A grandes rasgos, una carta de presentación tiene una extensión de una carilla como máximo y consta de tres partes: a qué puesto optáis, por qué sois perfectos para el puesto, y por qué queréis el puesto. La carta de presentación es, como su propio nombre indica, una carta, así que no pongáis encabezados y listas de puntos y negritas y cosas de esas.
Si estáis enviando el currículum por correo, adjuntad la carta de presentación en el mismo sobre y no la grapéis al currículum. Si lo estáis enviando por email, mandad el currículum en un fichero adjunto y usad el cuerpo del email para la carta de presentación. Si podéis averiguar quién recibirá la carta de presentación será mucho mejor si la encabezáis "Dear Mr. Smith" que si la encabezáis "Dear Sir/Madam". Por cierto, aseguraos de utilizar una dirección de email "seria"; aunque tengáis que emplear webmails gratuitos, es mejor usar "francisco.paredes@gmail.com" que "erpisha23@gmail.com", y mejor "carolinacf@hotmail.com" que "preziossa89@hotmail.com".
Antes de enseñaros un ejemplo de carta de presentación, permitidme reiteraros que el objetivo de la carta de presentación es que la persona que recibe el currículum sepa que no va a perder su tiempo leyendo vuestro currículum, y para eso deberéis hacer énfasis en los beneficios que proporcionará a la empresa contrataros. Al fin y al cabo, las empresas no contratan gente para tener más amigos, sino para poder ganar más dinero, así que tenéis que "atacar" por ese lado.
(De hecho, si os fijáis en el currículum de ejemplo, veréis que se sigue la misma filosofía a la hora de describir la experiencia laboral. El trabajador del ejemplo describe cómo ha rescatado un proyecto o cómo ha reducido costes el 20% o cómo ha dirigido un equipo, no cómo ha formado parte de un equipo formado para estudiar la posibilidad de implementar una recomendación para un proyecto exploratorio).
Y una última reflexión: para variar, estos consejos para la carta de presentación no son sólo válidos para optar a empleos en EEUU o el Reino Unido. Si preguntáis a alguien que trabaje en RR.HH. de una empresa española os dirá que todos los días les llegan un montón de currículums "desnudos" o con cartas de presentación poco atractivas. Seguramente, si comenzáis a enviar vuestros CV acompañados de cartas de presentación en este estilo, vuestros CV destacarán más. Haced la prueba y decidme si resulta :-)
Dicho todo esto, en el enlace de "leer más" podréis ver una carta de presentación, enviada por correo acompañando al currículum de ejemplo. El autor quiere trabajar de ingeniero jefe de software en una empresa británica llamada "Super Company".
Tened en cuenta que este ejemplo es algo más corto que una carta de presentación normal porque, honestamente, tener que inventarse todos los detalles es un peñazo :) Pero bueno, podéis utilizarlo para haceros una idea de qué tipo de cosas se dicen en una carta de presentación; cuando tengáis que escribir la vuestra, simplemente buscad "cover letter example" en Google y usad lo que os salga para inspiraros.
Podéis escribir vuestros comentarios en Google+.
por jacobo el March 10, 2012 08:21 PM
Ayer se presentó el nuevo ipad. Cientos de revisiones en webs especializadas y blogs hablarán sobre sus nuevas funcionalidades, por ejemplo xataka.
por Juan José Iglesias González (noreply@blogger.com) el March 08, 2012 09:15 AM
Hace poco más de un año escribí una historia sobre cómo redactar un currículum para enviarlo a una empresa de EEUU, Reino Unido o Irlanda (aprovechando que los formatos para los tres países eran casi iguales). Lo que ese artículo no incluía eran ejemplos, y alguien me los ha pedido, así que voy a poner aquí un ejemplo recién inventado de résumé para el Reino Unido. Como comenté en el artículo anterior, el résumé americano sería prácticamente igual, salvo que en lugar de un "Profile" tendría unos "Objectives".
Espero que os sirva para redactar vuestro propio currículum. Recordad que, cuando lo enviéis, deberíais acompañarlo de una carta de presentación, de la que os daré un ejemplo otro día.
Podéis poner vuestros comentarios en Google+, que aquí siempre se me echan los spammers encima cada vez que abro una nueva historia con comentarios.
por jacobo el March 03, 2012 09:21 PM
¡Albricias, hemos llegado a la última entrega! No mientan, lo estaban deseando. Yo también, para qué mentir. Escribir entradas como ésta es entretenido, pero a la larga se hace cansado. Sobre todo, porque no he recibido ni un triste comentario. ¡Avergüéncense!
La imagen de la que partíamos era ésta:
Y la imagen final a la que vamos a llegar es ésta:
Les pongo ya la imagen final porque ha pasado un tiempo desde que escribí la parte anterior de la serie, y no estoy seguro de recordar todo lo que hice para llegar aquí. Ups. No podré darles todos los pasos, pero sí la mayoría.
Aunque parezca mentira, una vez que tenemos el primer mapa que les puse en esta entrada, lo único que queda es estropearlo para que parezca un pergamino viejo y gastado. Que es mucho más difícil de hacer que de decir, claro.
El primer paso es manchar el mapa. Para eso vamos a usar el filtro de generar plasmas de Gimp (“Filtros” -> “Renderizado” -> “Nubes” -> “Plasma”) sobre una capa en blanco que colocaremos, más o menos, encima de las que teníamos con los colores de la tierra y el mar. Luego le quitaremos el color (“Colores” -> “Desaturar”) y creamos un mapa de relieve con ella en una capa superior (“Filtros” -> “Mapa” -> “Mapa de relieve”). Ambas capas las pondremos en modo “Solapar”, ajustando su opacidad según nos parezca. A veces se pierde intensidad con el modo “Solapar”, y lo que hago es crear una copia de la capa y solaparla también. Pueden ver el resultado aquí:
(nótese que cambié el color del agua del mar desde el mapa anterior: ahora es #add7d0)
A continuación, vamos a simular el sangrado de la tinta. Aunque el ordenador nos permite hacer trazos perfectos, la tinta sobre el papel no es tan precisa: se filtra a los poros del papel y se difumina, que es lo que se llama “sangrado”. Para imitarlo, vamos a oscurecer los bordes del mapa y los contornos de los ríos.
Para esta parte vamos a usar la herramienta de seleccionar colores y trabajar en las capas de bordes del mapa y de ríos. En cada una seleccionaremos las líneas sobre las que vamos a trabajar, y luego ampliaremos la selección con la opción “Agrandar” (dentro del menú “Seleccionar”) unos 5 pixels. Crearemos una nueva capa (“Sangrado de bordes” y “Sangrado de ríos”, respectivamente) y en ella rellenaremos la selección de color negro. Pondremos esta capa en modo “Solapar”, y ajustaremos otra vez la opacidad. Este ciclo de solapar y ajustar opacidad se repite mucho en este tipo de trabajo, como ya habrán visto.
Ahora aplicaremos una máscara a la capa de “Sangrado de bordes”. Tal como está ahora, el borde se oscurece por ambos lados; y aunque eso nos viene bien para los ríos, no queda tan bien en los bordes de los continentes. Aplicando la máscara de “Tierra” a esta capa conseguiremos que sólo se vea la parte interior.
Algo que vi en los foros de Cartographers’ Guild es que mucha gente aplica también un ligero brillo a los bordes de los continentes, como contraste al sangrado interior que acabamos de hacer. En este mapa también está aplicado, y para conseguirlo hice lo mismo que para el sangrado de los bordes pero con dos diferencias: usé un color claro para el relleno, y en lugar de la máscara de “Tierra” usé la de “Mar”, que sólo deja ver la parte exterior de los bordes.
Without further ado, he aquí el resultado:
Para terminar, vamos a darle al mapa una textura apergaminada. Contamos para ello con el filtro “Aplicar lienzo” (dentro de “Filtros” -> “Artísticos”) de Gimp. Como además queremos darle cierto color antiguo, vamos a aplicárselo a una capa con un color: escogemos uno adecuado en la paleta (#815f00, en mi caso), creamos una capa de ese color por encima de todas las demás, y usamos el filtro de “Aplicar lienzo”. Como todavía se ve demasiado del color original, he creado una capa por encima del pergamino con un color marrón algo oscuro (#614f16), y la he puesto en modo “Color”.
En teoría, con los pasos anteriores ya está terminado el mapa. Pero luego, para mí al menos, es imposible no pasar un rato revisándolo y añadiendo alguna cosa más: una capa más de textura, diferentes ajustes de opacidad, algo de “blur” en algún sitio, etc. Eso ya depende mucho de las obsesiones de cada uno, y del tiempo y ganas de las que se dispongan.
Otro retoque final son los bordes oscuros que ven alrededor de los continentes. El término técnico es woodcut, y hay muchas formas de hacerlos. Yo lo hice seleccionando los continentes, ampliando la selección varias veces (una por nivel de woodcut) y usando la opción de “Seleccionar” -> “Borde” para rellenarlos.
También he visto gente que añade líneas cartográficas, rosas de los vientos, un recuadro con el título del mapa (como en los mapas antiguos), y muchas cosas más. Todo está en Cartographers’ Guild, que es donde se junta la gente que más sabe de estas cosas. Si tienen dudas, pasen por allí.
Y con esto doy por terminada la serie. Es la que más tiempo me ha llevado de todo lo que he escrito para Retrincos, incluyendo sus dos encarnaciones anteriores. Me ha gustado, pero da bastante trabajo.
Espero que a los del otro lado del monitor les haya gustado también, o al menos les haya parecido interesante. Siempre se aprenden cosas, aunque entiendo que no todo el mundo se dedique a crear mundos imaginarios y luego hacer mapas para ellos (o al revés). Hay mucho que aprender de Gimp e Inkscape, y esto es una buena excusa para practicarlo.
por xouba el March 02, 2012 12:00 PM
The first modlys album was made with FLOSS, mostly Ardour, Muse, Specimen, ZynAddsubfx, ams, pd and phasex + plugins. I found that lash (or what the name was at that time) wasn’t really working reliably. So to load a song I wrote a bash script that simply loaded all relevant files in the correct applications. All audio was routed through ardour where audio recordings (vocals and viola) were coming from. It loaded the project correctly 95% of the time.
Unfortunately I found that this setup was hard do keep up-to-date. If I upgraded one application, “something” would go wrong and send me back to testing-mode, looking for the problem. This was fun in the beginning, but not in the long run.
The (newly renamed) Sxx (trigger at slice) and Rxx (retrigger) are really powerful commands that make it easy to reshuffle a breakbeat, for instance. I use beats quite a lot, but I don’t think there’s one example of a beat just playing straight through. So ranging from simple rearranging the individual beats to more extreme breakcore-ish manipulations (“fodspor”, “til kernen” or “det nu/remix”) it easy to handle esp with Sxx.
The great idea of doing it the unix-way (lots of small tools, each doing one job, the user interconnecting them for his exact purpose) means that something like session handling is the most important thing IMHO. I don’t know the current state of lash (or similar project), but that’s really paramount in my view. Also the stability of applications should be improved: some developers are really good at this, but if just one application in a FLOSS setup blows up, the whole setup blows up.
I had knobs on my BCR2000 assigned to stuff like “syncopation”. The music was actually a lot of programs running in parallel, one for each instrument (like hi-hat or bass) and they would each make semi-random decisions on the position of the knobs. So if the syncopation knob was all the way to the left the hi-hat would be playing mostly down beats or accentuating the downbeats, whereas if the syncopation knob was all the way to the right it would accentuate the off beats.
I usually start with some atmosphere. I then pretty early decide how the general feel should be. On more energetic tracks I then usually add bass and drums. Modlys is the only really loop-based music I work with, and I’m still learning how to do that properly. One thing I’ve learned, is that I need to get away from a short loop pretty quickly and arrange something in the larger form, otherwise my ears get tired and I have trouble hearing anything fresh. So I copy my loop to four minutes or so, and start thinking about contrast, should there be another part, Some tracks have more of a pop structure, verse-bridge-chorus kinda thing, those are usually worked out on my acoustic piano.
A thing I really like to do is to surf my sample library and just go with the flow. Load something that sounds nice and play it back without knowing which key it’s in.
That way I can get away from the theory and just go by ear. It’s also a refreshing way of composing, that every idea doesn’t have to come from me, but the computer can inspire me, which often leads to tracks I wouldn’t have thought of myself.
el February 25, 2012 10:56 PM
Vais a hacer que me sienta culpable, cojones. Que resulta que bastante gente se pira con lo puesto a Noruega, sin un euro en el bolsillo, sin conocer a nadie, sin trabajo ya buscado y sin hablar una palabra de noruego, y resulta que se mueren de frío porque no tienen casa, ni trabajo, ni saben hacer papeleos, ni saben encontrar nada, etc. Qué cosa más rara.
Como he hecho mi parte para animaros a que salgáis del país, ampliéis horizontes, tengáis experiencias en el extranjero, etc., etc., y antes de que venga nadie a acusarme de haberle pintado todo de color de rosa, dejadme deciros algunas verdades sobre la emigración.
En primer lugar, emigrar cuesta dinero. Para empezar está el coste del avión. Cuando queráis alquilar piso, tendréis que depositar la fianza, que puede ser de varios meses de alquiler. Mientras no encontréis el piso, sin embargo, tendréis que pagar un alojamiento temporal; posiblemente varios meses, que si encontrar un piso asequible en una buena ubicación es difícil, conseguir que se lo alquilen a un extranjero recién llegado sin referencias ni historial crediticio es más difícil todavía. Y, por supuesto, tened en cuenta que tendréis que hacer frente a muchos de estos gastos sin tener ingresos, ya que la mayoría de los empleos pagan a mes vencido. O sea, que si ya llegáis allí con un contrato hecho, no cobraréis hasta el fin de mes. Si llegáis sin contrato, tardaréis en cobrar lo que tardéis en encontrar empleo más un mes.
En segundo lugar, cada país es diferente a los demás, y tiene sus propias costumbres, leyes, tradiciones, e idiosincrasias en general. En Francia, el Hôtel de Ville no es para dormir. En EEUU, el pan, los huevos y la leche se compran en la farmacia. En el Reino Unido no te sirven en la mesa de un pub. Si no sabes esas cosas, o si no estás acompañado de alguien que las sepa, lo vas a pasar un poco mal. Y si no hablas el idioma local, ya no digamos.
El idioma es otro asunto que trae tela. En muchos países hay mucha gente que sabe hablar inglés, pero eso no significa que todo el mundo hable inglés, y mucho menos que sea perfectamente posible desenvolverse hablando sólo inglés. Para empezar, los papeles del Estado vendrán todos en el idioma local (buena suerte rellenando la declaración de la renta en islandés), al igual que los letreritos del supermercado o las indicaciones en la estación de trenes. En segundo lugar, no puedes esperar que la cajera del supermercado o el funcionario del ayuntamiento hablen inglés a un nivel adecuado para comunicarse con efectividad. Y si tú mismo no hablas inglés o hablas "inglés medio", apaga y vámonos.
Por cierto, si esperas ganarte la vida en el extranjero, espero que seas un trabajador cualificado, porque estoy seguro de que en Noruega y en cualquier otro sitio ya les sobran los trabajadores no cualificados, y no tienen la más mínima intención de contratar de reponedor a un extranjero que no habla una sola palabra de noruego cuando pueden contratar a Karl Petersson, el hijo de la vecina. Y tened cuidado, que os sorprendería saber cuántas profesiones no valen mucho fuera de España. En España las casas son de ladrillo. ¿Sabéis de qué son en Noruega? De madera. ¿Qué puede hacer en Noruega un albañil español?
Y esto es lo que quería deciros. No quiero desanimaros, pero quiero que seáis realistas y sepáis a lo que os enfrentáis cuando os vais del país, que aunque es una experiencia tremendamente enriquecedora (en varios sentidos), no todo es tan fácil y bonito como nos lo ponen en ciertos programas de TV, y no es cuestión de ir a lo loco y sin haberse informado y preparado de antemano.
por jacobo el February 17, 2012 11:22 PM
robe@raven:~$ dpkg -S /sbin/initY sobre todo, notaremos una gran diferencia:
upstart: /sbin/init
robe@raven:~$ ls /etc/inittabComo decía la canción, “se fue, se fue”. Con upstart ya no existe /etc/inittab, sino un directorio /etc/init en el que hay un fichero de configuración (“*.conf”) por cada servicio del sistema. Y son muchos: aparte de los procesos típicos, upstart también se encarga de levantar la red, montar los discos, activar las TTYs y configurar la consola. En Ubuntu 11.10 muchos programas ya han migrado su script en /etc/init.d a un fichero de configuración de upstart, y es de esperar que en algún momento /etc/init.d y los directorios /etc/rcX.d desaparezcan.
ls: cannot access /etc/inittab: No such file or directory
start sshY para ver si está funcionando:
robe@raven:~$ status sshFundamental en el diseño de upstart son los eventos. A diferencia de init, que lanzaba los procesos siguiendo una secuencia prefijada en /etc/inittab, upstart reacciona a eventos que genera el sistema o él mismo. Todos los ficheros de configuración de upstart contienen una línea “start on” y “stop on”, seguida de uno o varios eventos del sistema. Por ejemplo, /etc/init/mountall.conf viene con éstas:
ssh start/running, process 1322
start on startupQue significa: empieza cuando detectes el evento “startup”, y detente cuando detectes que está lanzándose el proceso rcS. upstart se basa en estas líneas para determinar las dependencias entre servicios, y paraleliza el arranque todo lo que puede. Por eso, al menos durante un tiempo, Ubuntu fue la distribución con arranque más rápido.
stop on starting rcS
_SERVICE=systemd-logind.serviceMESSAGE=User harald logged inMESSAGE_ID=422bc3d271414bc8bc9570f222f24a9_EXE=/lib/systemd/systemd-logind_COMM=systemd-logind_CMDLINE=/lib/systemd/systemd-logind_PID=4711_UID=0_GID=0_SYSTEMD_CGROUP=/system/systemd-logind.service_CGROUPS=cpu:/system/systemd-logind.servicePRIORITY=6_BOOT_ID=422bc3d271414bc8bc95870f222f24a9_MACHINE_ID=c686f3b205dd48e0b43ceb6eda479721_HOSTNAME=waldiLOGIN_USER=500Este formato está inspirado por los ficheros de log tradicionales y por los repositorios git. Dice el artículo que, a pesar de que hay mucho más que escribir, esto no afectará negativamente al espacio que ocupen los logs en disco: aparte de que los campos de datos serán comprimidos antes de ser grabados en disco, cada clave será guardada como un objeto individual, y luego otras entradas que hagan referencia a ellas no tendrán que incluirlas explícitamente.
por Roberto Suárez Soto (noreply@blogger.com) el February 17, 2012 04:48 PM
Volvemos a la carga con la quinta entrega de esta serie. Hoy viene una de las partes más divertidas, la de poner los nombres en el mapa. Para eso vamos a abandonar momentáneamente Gimp y lanzar Inkscape.
Gimp trabaja sobre gráficos bitmap, mientras que Inkscape es un programa de dibujo vectorial. Cada uno tiene sus ventajas y sus inconvenientes, pero lo importante para nosotros es que con Inkscape es muy fácil pintar textos en cualquier tamaño y disposición, y en Gimp todo lo contrario. Un ejemplo sencillo: como Inkscape trabaja con vectores, podemos aumentar o disminuir el tamaño de un texto sin distorsionarlo. Si lo hiciéramos en Gimp, tendríamos un texto muy pixelado o uno que casi no se leería.
Además, veremos que con Inkscape es muy fácil colocar un texto para que siga un trayecto determinado. En teoría, en Gimp es posible; en la práctica, es tan difícil y el resultado tan horrible que no merece la pena ni intentarlo.
Para trabajar con Inkscape vamos a sacar una copia del mapa que teníamos, en full-blown detail, importarlo y luego pintar los nombres por encima. Luego exportaremos esos nombres a un bitmap y los importaremos en Gimp, en una capa, para seguir trabajando en el mapa. ¿Parece un coñazo? Lo es. También en teoría, Gimp soporta el formato SVG para leer gráficos; pero en la práctica, tampoco merece la pena. Es mejor usar el truco de la exportación a un bitmap para poder trabajar cómodamente.
Cambié un poco el mapa al que habíamos llegado en la última entrega, para arreglar unos ríos que no me gustaban y añadir unas colinas que me venían bien. Para refrescarles la memoria, se lo pongo por aquí de nuevo.
Lo primero que hago es importar el bitmap y cambiar las propiedades de la página (“Archivo” -> “Propiedades del documento”) para que se ajuste a él. Luego, para evitar pinchar en él constantemente y moverlo sin querer, uso “Propiedades del objeto” para bloquearlo. Así se quedará todo el rato, como fondo inerte de nuestro trabajo.
Como todo el mundo sabe, no importa la calidad de lo que escribas sino lo bonito que sea el tipo de letra. Así que la elección de un tipo de letra adecuado al mapa es fundamental. Yo voy a usar dos: Mawn’s Handwriting y Miltonian Tattoo. La primera será la que use para los nombres “grandes” (continentes, océanos), y la segunda para las zonas más pequeñas, los detalles del mapa.
Pongo los nombres de los continentes primero: Pyron, Jont, Zentaeri, Gausiania, Cathýsiar, Brotrôro y Bascacân. No sé por qué lo hago en ese orden, en lugar de empezar por la izquierda. Supongo que será porque Pyron está en el centro, y gravito inconscientemente hacia él.
Los nombres se ven bien (el blanco es un buen contraste con el fondo), y he ajustado algunos de los tamaños de los textos a mano (“estirando” el objeto con “Control”, para que las proporciones se mantengan), pero todavía no queda bien. Lo que vamos a hacer para darle un poco de gracia es girar algunos nombres un poco, y poner otros en un trayecto.
La parte de girar los nombres no es difícil de entender. Los nombres que están cien por cien en horizontal resultan artificiales, así que me aseguro de que ninguno lo esté. Pueden ver el resultado en los nombres de Pyron, Cathýsiar y Gausiania.
Pero otros nombres no los voy a girar, sino que los voy a poner en un trayecto. Esto significa que voy a trazar una línea, más o menos ondulada, y voy a hacer que el texto siga esa línea. Para hacerlo, hay que trazar la línea, seleccionarla junto al texto que queremos colocar sobre ella (shift+click, para añadir a la selección) y luego ir al menú “Texto”, opción “Poner en trayecto”. Verán que inmediatamente el texto se coloca encima de la línea, siguiéndola de cerca con todas sus curvas y giros.
Uno de los problemas que suelen aparecer aquí es el espacio entre letras. Suele ser pequeño, adecuado para un texto en el que queremos meter muchas letras en poco espacio. Pero ahora lo que nos interesa es extender un nombre por toda la curva, así que tenemos que incrementar ese espacio. Para ello, pinchamos dos veces en el texto y usamos la combinación de teclas shift+alt+”<”. Si nos hemos pasado y queremos reducir el espacio, lo mismo pero sin shift. Cuando acabemos, no tenemos más que pinchar fuera del texto o pulsar la tecla de “Escape”.
Puede que ahora el texto ya ocupe todo lo que queremos, pero que el trayecto que hemos dibujado sea tan complicado que el texto no se lea bien. Este problema suele ocurrir porque hemos dibujado a mano una línea con muchos nodos (las líneas, en Inkscape, se forman con la unión de nodos). Para evitarlo, en lugar de la herramienta de dibujo a mano alzada, suelo usar la de curvas Bezier. Pero una vez que ya está dibujado, la mejor manera de mitigar el problema es seleccionar el trayecto y usar Control+L, la función de “simplificar”. Eso eliminará nodos manteniendo (más o menos) el aspecto del trayecto. Luego podemos usar la herramienta de modificación de nodos (F2) para verlos y moverlos o cambiar su orientación a mano.
Con esto termino el resto de los nombres, incluyendo los dos océanos. Para que queden mejor, aplico una sombra: los selecciono todos (Control+A), voy al menú “Filtros”, submenú “Sombras y brillos”, y selecciono “Sombra paralela”.
Para terminar, creo otra capa en el dibujo, por debajo de la de los nombres que acabo de poner, y me paso un rato marcando en ella sitios que me parece interesantes. Nada complicado: marco cada uno como “Zona X”, siendo “X” un número.
Voy a generar nombres para todas estas zonas. Las he marcado primero porque ahora sé cuántos necesito (28). Puedo usar el mismo generador que usé para los demás nombres o alguno diferente. No me importa tanto, porque son nombres de relleno. No se van a ver mucho, sólo están ahí para que parezca que hay muchas cosas en el mapa.
Para escribirlos, si queremos hacerlo en plan industrial, podemos editar el fichero SVG (es un texto XML) y cambiar ahí los nombres. Luego seguramente tengamos que recolocarlos un poco en el mapa, pero será mucho más fácil que cambiarles los nombres uno a uno en Inkscape. Es lo que hice yo, usando un pequeño script en bash.
Les dejo con la imagen final del mapa, con todos los nombres y los efectos:
por xouba el February 17, 2012 12:00 PM
El equipo de mantenimiento de los juegos en Debian (y Ubuntu, creo), Debian Games Team, está preparando una screenshots party, es decir, una reunión en la que la gente se dedicará a jugar a los distintos juegos incluidos en la distribución para obtener unas buenas capturas de pantalla de los mismos. Estas capturas serán subidas al repositorio oficial en screenshots.debian.net, lugar donde cualgan las capturas tanto de las páginas de los paquetes como por algunos gestores de paquetes. Este tipo de iniciativas puede facilitar que muchos usuarios se decidan a colaborar de esta sencilla forma con estas dos grandes distribuciones de software libre.
Las instrucciones precisas para apuntarse a la party las podéis ver aquí. El anuncio original de esta convocatoria, en la lista de correo debian-devel-games, es este.
por emilioj el February 07, 2012 03:53 PM
Bienvenidos a la cuarta entrega de esta serie. Hoy vamos a empezar la parte más artística (y para mí, la más difícil) del mapa: las montañas y los ríos.
Las montañas son fundamentales en un mapa, tanto como lo son en el mundo real. Son las responsables en gran parte del clima de las regiones circundantes, las que determinan dónde aparecen los ríos, y las que bloquean o permiten los flujos migratorios de personas y animales: no por nada muchas fronteras están delimitadas por cadenas montañosas. También tienen un gran significado religioso, siendo las primeras “casas de los dioses” en el desarrollo de una civilización. Las montañas son las protagonistas del mapa.
Hay muchas formas de dibujar las montañas en un mapa. A mano (como hice en Praathamika) o haciendo “corta y pega” de pequeñas secuencias (como hice en el mapa del Exilio). Quería hacer algo mixto en este mapa, dibujando varias secuencias de montañas (en lugar de montañas hechas con vectores, como hice en el Exilio) y cortando y pegándolas en el mapa. Pero al final, la cabra tira al monte, y acabé haciéndolas a mano como siempre.
Dejémoslo claro ahora mismo: mis montañas son horrorosas. Como el hijo feo de Quasimodo y el Hombre Elefante. Mi método es: dos líneas con un ángulo y una sombra en el lado este.
Si quieren ver montañas bien dibujadas, les sugiero estos mapas:
Para hacer los ríos también opté por la vía artesana. La otra opción era lanzar Inkscape, dibujar trazos a mano y luego fractalizarlos. Quedan bastante bien, pero si has empezado con Gimp, es un lío mezclar partes hechas con Inkscape: hay que exportar un bitmap desde Gimp, cargarlo en Inkscape, dibujar los ríos y luego hacer al revés (importar los ríos en Gimp). Dibujarlos a mano es más rápido, aunque no quede tan bien.

Con Inkscape podemos fractalizar trayectos para simular ríos. Aquí, la versión normal y la fractalizada.
Para las montañas podemos tomarnos licencias artísticas y hacerlas más o menos como queramos, siempre que nos guste. Pero los ríos siguen leyes muy estrictas, que hay que respetar para no cometer barbaridades. Hay un post en Cartographers’ Guild con un buen resumen, que viene a decir:
Una vez conocidas estas reglas, sólo hay que ponerse a dibujar los ríos. No te vuelvas loco con los detalles: intenta que sean ramificados y que fluyan en curvas más o menos abundantes, y ya está. Lo importante es que quede bonito, no que cumpla todas las leyes de la termodinámica.
En el contorno del mapa generado por planet hay muchas entradas que podrían interpretarse como rías o desembocaduras de ríos. Si puedes, haz que tus ríos acaben en ellas. Añadirá un punto de realismo a su trazado. También puedes hacer que terminen en un lago: hay muchos en los mapas generados por planet, y si no haces que algún río desemboque en ellos va a parecer que hay muchos pequeños mares interiores en tu mapa. Puedes conectar los más cercanos con un río, y luego dibujar un río que saque toda ese agua hacia el mar. Aunque no es estrictamente necesario, es lo más habitual, y lo que tus jugadores/lectores intuirán como correcto.
Aparte de lo anterior, hay dos reglas que sigo para darle algo más de verosimilitud al mapa:
Básicamente, en el hemisferio norte los vientos húmedos del mar llegan desde el oeste, regando las caras de las montañas vueltas hacia ese lado; y en el hemisferio sur ocurre al revés. Un efecto asociado es que del otro lado de las montañas se produce una sombra orográfica (rain shadow, en inglés), una zona árida a la que no llega lluvia porque se ha quedado toda del otro lado. Es lo que explica la formación de las praderas norteamericanas, a la sombra de las montañas rocosas.
En este mapa he dibujado los ríos en negro. En muchos mapas se dibujan en azul, como el mar, pero las veces que he probado no han quedado muy bien. Aquí lo he hecho en negro porque es más fácil y porque va con el estilo que me gusta para este mapa, monocromo. De momento no lo es, pero lo será: tú confía en mí.
Para terminar esta parte le he dado textura al mapa, quitándole ese aspecto “plano” de dibujo de ordenador. He hecho una copia de la capa con bump-mapping, la he desaturado y la he puesto como “Solapar” encima de las del mar y la tierra. Luego he hecho una copia de la capa de la tierra y he aplicado un mapa de relieve, usando otra vez la capa de bump-mapping desaturada. Como para dibujar las montañas he usado las zonas elevadas que aparecían en el mapa generado por “planet”, parece que están en un terreno ligeramente distinto.
Todavía es demasiado brillante y limpio, no gastado y sucio como debería ser un mapa antiguo. Pero para solucionar ese problema, y para empezar a poner los nombres al mapa, tendrán que leer la siguiente entrega.
por xouba el February 03, 2012 12:00 PM
Tras as votacións realizadas na Asamblea do 1 de Febreiro de 2012, a nova Xunta Directiva do GPUL, con 11 votos a favor e un voto nulo, está formada por:
A nova XD decidiu nomear como vogais asociados a Brais Arias Río, Emilio J. Padrón González e José María Casanova Crespo.
por administrador el February 02, 2012 09:12 AM
So it seems I’m going to FOSDEM this year (yay!), together with a bunch of other Igalians who will be attending as well, coming from different places from across the globe (well, mainly from Europe this time).
I know some people will probably disagree with me on this, but for me FOSDEM is one of the greatest events of this kind, and so I’m quite happy to go there this time, specially after not being able to attend last year due to some unexpected (and unavoidable) personal matters.
Opposite to other occasions, this time I’ll be there not only as an attendant but also as an speaker, talking about WebKitGTK+, its status and the roadmap of the project towards WebKit2 (the split process model “flavour” of WebKit), together with my mate Philippe, on Sunday afternoon. Thus, for the first time ever, nobody will be able to accuse me of going there just because of the beer event, which wouldn’t be true anyway.
For the impatient ones, the talk will be mainly about reporting on the work done during the last months in “WebKitGTK+ land“, as well as on the stuff that is already planned for the upcoming releases. Good examples of those would be, for instance, the ongoing effort to add support for Accelerated Compositing, or just the new features related to WebKit2GTK+ such as, of course, the solution for enabling accessibility support there. Ah! And of course, we’ll try to run some demos there too… fingers crossed!
Besides, I’m of course looking forward to meeting some people I haven’t seen for a while now (haven’t attended to the latest Desktop Summit either, due to very good reasons too), so if you see me around and want to chat and/or meet for a while, just let me know. I must look shy, but it’s usually a matter of minutes (seconds?) for my shyness to go away…
So that’s it. Just a final line to say “thanks” to my company for fully sponsoring this thing.
See you in Brussels!
por msanchez el February 01, 2012 01:19 AM
Mañá, mércores 1 de febreiro de 2012, GPUL celebra unha Asamblea na que se votará unha nova Xunta Directiva. A orde do día é a seguinte:
A asamblea de socios comezará ás 18:00h en primeira convocatoria, e ás 18:30h en segunda convocatoria.
por administrador el January 31, 2012 07:47 PM
This post explains how to compile C source code for Android using the Native Development Kit (NDK) by using autotools to set up the building infrastructure and using androgenizer to convert that autotools infrastructure into Android.mk files understood by the ndk-build tool. I’ll first review some autotools concepts very quickly trough examples and iterate over them.
(Download the testapp.tgz example or browse it online)
We start from a simple helloworld program with its main() function that depends on a sayhello() function. We want to compile it using autotools in the simplest possible way.
To create an autotools template from scratch, follow the instructions of this presentation, which are abridged here:
autoscan mv configure.scan configure.ac # Add this line below the AC_INIT line: # AM_INIT_AUTOMAKE nano configure.ac autoheader aclocal touch NEWS README AUTHORS ChangeLog automake --add-missing --copy autoconf
Makefile.am should contain:
bin_PROGRAMS = testapp testapp_SOURCES = testapp.c
Then, to compile, just:
./configure make
The testapp.tgz file is an example of this. Look at the “autoall” script.
(Download the testlib.tgz example or browse it online)
In this case we have to add a new libtool line to configure.ac, apart from the automake one, under the AC_INIT line:
AM_INIT_AUTOMAKE AC_PROG_LIBTOOL
This is how Makefile.am should look like:
lib_LTLIBRARIES = libtestlib.la libtestlib_la_HEADERS = testlib.h libtestlib_la_SOURCES = testlib.c libtestlib_ladir = $(includedir) libtestlib_la_LDFLAGS = -avoid-version bin_PROGRAMS = testapp testapp_SOURCES = testapp.c testapp_LDADD = .libs/libtestlib.so testappdir = $(includedir)
The LDFLAGS are the flags passed to libtool, and are documented here and here in the Autobook reference. In this case, the “-avoid-version” forces generation of libtestlib.so instead of libtestlib.so.0.0.0 (versioned libs aren’t supported in Android).
Look at the “autoall” script in the example for all the details. Now it’s fully automatic, so you don’t have to do the insertions by hand in configure.ac.
(Download the androgenized-testapp.tgz example or browse it online)
All the C code must reside in a directory called “jni”, inside the main directory of the Android project we want to create (in the androgenized-testapp example only the jni is included, technically the other ones aren’t needed):
androgenized-testapp
src (Java source code)
libs (compiled binary libs and executables)
obj (intermediate object code for libs and exes)
jni
Application.mk (actually not mandatory)
Android.mk (generated by androgenizer, drives the compilation when using NDK)
Makefile.am
testlib.c
...
A new target called Android.mk must be created in Makefile.am:
Android.mk: Makefile.am
androgenizer -:PROJECT testlib
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir)
-:SHARED testlib
-:SOURCES $(libtestlib_la_SOURCES)
-:LDFLAGS $(libtestlib_la_LDFLAGS)
-:PROJECT testapp
-:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir)
-:EXECUTABLE testapp
-:LDFLAGS -ltestlib
-:SOURCES $(testapp_SOURCES)
> $@
Androgenizer must be downloaded and installed somewhere in our PATH from here. It has a very brief parameter documentation, and the best way to understand it is by seeing usage examples, such as all the androgenizer lines added to the Makefile.am in the GStreamer project.
In the Android.mk target shown above two modules are going to be compiled: “testlib” and “testapp”. Each module is declared with a “-:PROJECT” parameter. The rest of the lines belong to the current project (current module) until a new one is declared. I’ve left a separation between projects to illustrate this.
Next line should always be a “-:REL_TOP” and “-:ABS_TOP”, as recommended in USAGE.txt. These two values are used to check all the paths in LDFLAGS, CFLAGS, etc. and substitute local paths with absolute paths. This is important, because normal makefiles usually assume that the rules are executed from the subdirectory the makefile is in, while what is considered as the working directory for Android.mk makefiles is always the directory from which ndk-build is invoked. As you can imagine, compiler directives such as “-I..” are going to have a very different meaning and cause the wrong behaviour when passed to the compiler by ndk-build.
After that, we indicate the type of target for the project (“-:STATIC” for libtestlib.a, “-:SHARED” for libtestlib.so, and “-:EXECUTABLE” for testapp). The extension of the library/app is automatically calculated.
The “-:SOURCES” parameter is used to indicate the files to be compiled. In this case we can use the list of files already calculated by the previous automake rules (see testlib.tgz and testapp.tgz examples) and stored in the “libtestlib_la_SOURCES” variable.
The “-:LDFLAGS” parameter is used to generate the needed library dependencies for the current module. In the case of testlib, those dependencies are already calculated by automake in the “libtestlib_la_LDFLAGS”. In the case of testapp, it depends on testlib, so we indicate it manually with “-ltestlib”. That will translate into this line in the generated Android.mk file:
LOCAL_SHARED_LIBRARIES:=libtestlib
this will make the NDK build scripts to link against the proper “libtestlib.so” (if the lib was dynamic) or “libtestlib.a” (if it was static). The NDK already knows how testlib was built and how it has to be linked.
The final “> $@” line just means that make has to take the output of the androgenizer command and dump it to a file named just like the target it’s being build, that is, “Android.mk”.
After all the autoscan, configure.ac customization, autoheader, aclocal, libtoolize, automake and autoconf steps we can “./configure” and “make Android.mk” to generate the “Android.mk” file. Note that no full “make” is needed. Then we step back one directory (“cd ..” to the project root) and perform the actual build using NDK (which has to be downloaded from here, installed and be in our PATH):
ndk-build V=1
The V=1 option just prints out all the executed commands, which is very handy. The compilation result will be placed in the “libs” directory.
To understand the process a bit more, it’s a good idea to look into the generated Android.mk file:
LOCAL_PATH:=$(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:=testlib
LOCAL_SRC_FILES :=
testlib.c
LOCAL_LDFLAGS:=
-avoid-version
LOCAL_PRELINK_MODULE := false
include $(BUILD_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE:=testapp
LOCAL_SRC_FILES :=
testapp.c
LOCAL_SHARED_LIBRARIES:=
libtestlib
LOCAL_PRELINK_MODULE := false
include $(BUILD_EXECUTABLE)
Apart from some boilerplate (LOCAL_PATH, CLEAR_VARS, LOCAL_PRELINK_MODULE), we can distinguish the two modules (LOCAL_MODULE), its source files (LOCAL_SRC_FILES), inherited LDFLAGS (LOCAL_LDFLAGS), required libs (LOCAL_SHARED_LIBRARIES) and finally, the building instruction (BUILD_SHARED_LIBRARY, BUILD_EXECUTABLE).
Seeing the Application.mk and Android.mk supported directives are documented somewhere in your installation of the NDK. They support more options than the ones explained here. With this basic introductions, that documentation should be more understandable. Application.mk can be edited directly. Android.mk has to be customized using the “-:PASSTHROUGH” androgenizer parameters in Makefile.am. For example:
-:PASSTHROUGH LOCAL_ARM_MODE:=arm
Unfortunately, real life autotools build scripts are a bit more complex than the examples shown here. Here are some debug tips that can be helpful:
por admin el January 30, 2012 05:05 PM
Ha fallecido Victor M. Gulías, uno de los más antiguos socios de GPUL. Muchos lo conocereis, como uno de los mejores profesores de la Facultad de Informática de Coruña. Gulías además formó parte de una generación de informáticos que impulsó una cultura, una forma de entender la informática, que años después se consolidó en nuestra asociación.
Desde aquí le queremos hacer llegar nuestro pesar a su familia y sus allegados.
por tsao el January 28, 2012 06:53 PM
As Piñeiro already mentioned in some posts, last week a bunch of hackers attended the ATK/AT-SPI Hackfest 2012 here at the Igalia offices, in the lovely city of Coruña.
As the guy working on accessibility support for WebKitGTK+, I attended the hackfest to join some other great people representing different projects, such as Mozilla, Orca, AT-SPI, ATK, GTK+ and Qt. So, apart from helping with some “local” organizational details of the hackfest and taking some pictures, I spent some time hacking in WebKitGTK+‘s accessibility code and participating in some discussions.
And from that dedication I managed to achieve some interesting things too, being my favorite ones a big refactoring of the a11y code in WebCore (so it’s now better organized and hence more readable and easy to hack on) and pushing my patch for enabling accessibility support in WebKit2GTK+, after going through a meticulous process of review (see the related WK bug), which started with the patch I wrote and attached back when attending to the WebKitGTK+ hackfest, as I mentioned in my previous entry in this blog.
Yeah, I know that some weeks have already passed since then and so perhaps you’re thinking this could have been done faster… but I’ve spent some weeks on holidays in Barcelona in December (pictures here!) and so I wouldn’t have much time before January to devote to this task. However, the patch got integrated faster than what I would expect when I proposed the first version of it, so I’m quite satisfied and happy anyway just by being able to announce this at this moment. Hope you share my joy
So, what does this mean from the point of view of accessibility in GNOME? Well, that’s an easy question to answer: from now on, every browser that uses WebKit2GTK+ will be as much accessible as those using the previous version of WebKitGTK+, and this is definitely a good thing. Of course, I’m certain there will be bugs in this specific part that will need fixing (as it always happens), but for the time being this achievement means “yet another thing less” preventing us from pushing for upgrading some applications to switch to WebKit2GTK+, such as devhelp (some ongoing work already done, as my mate Carlos announced yesterday), yelp, liferea… and the mighty Epiphany browser, which is rocking more and more ech day that goes by.
Last, I’d like to share with you an screenshot showing this new stuff, but as I am a little bit tired of always using Minibrowser (that small browser we use for testing WebKit2), so I decided to try instead that new branch Carlos recently pushed for devhelp, so you could check that what I mentioned before is actually true.
So here you have it (along with a couple of additions done with Gimp):
As you can see, devhelp is running and Accerciser is showing the full hierarchy of accessible objects associated to the application, starting in the UI process (GTK+ world) and continuing in the Web process, where all the accessible objects from the WebKitGTK+ world are being exposed. As I explained in a previous post, the magic making possible the connection between the two process is done by means of the AtkSocket and the AtkPlug classes, also represented in the screenshot attached above.
So, that’s it.
por msanchez el January 27, 2012 02:06 PM
Tercera entrega de esta serie. Pensé que iba a llevarme menos. Seguro que ustedes también. Mala suerte: para mí por tener que hacerlo y para ustedes por tener que leerlo. Como dicen los budistas: “la vida es sufrimiento”.
Hoy empezamos la parte “de verdad” de la creación del mapa. Es hora de lanzar Gimp.
Para el mapa “artístico” vamos a necesitar algo más que 1600 pixeles. Como decía en el primer post, suelo usar 3000×3000 pixels de resolución. Por lo tanto, he generado un mapa de ese tamaño para cargar en Gimp.
La proyección que voy a usar es la rectangular. No es muy fiel a la realidad, como ninguna lo es: sólo la ortográfica, en la que se ve la esfera del mundo, lo podría ser. Las demás intentan mapear una esfera sobre un rectángulo, y siempre hay algún tipo de distorsión. En la proyección Mercator, el mapa “se estira” a medida que se va hacia los polos; y en la rectangular, parece que encoge. Pero es la más cómoda para trabajar, al menos para mí. Usé la proyección ortográfica en el pasado (para el mapa de Praathamika), pero la vista estaba limitada a un continente. Y en éste mapa me gustaría que saliera todo el mundo.
Lo primero que hago es cargar el inmenso GIF en Gimp. Cada imagen aparecerá como una capa: primero la cuadrícula, luego las curvas de nivel, luego el contorno en negro, luego el mapa con bump-mapping y luego el mapa en color, a secas. Pongo las tres primeras a “Oscurecer sólo”, y así puedo ver el mapa con bump-mapping y la cuadrícula, curvas de nivel y contorno superpuestos.
Una vez tengo esto, doy un paso atrás. Vuelvo a poner la capa de “Contorno” como “Normal”, y dejo que sea la única visible. Lo que quiero hacer es obtener un par de máscaras para la parte de tierra y la parte de agua del mapa.
Para seleccionar todo el mar o toda la tierra usé la “varita mágica” de Gimp. Me encontré un problema: el contorno tenía “fugas”. En algún punto, había un contorno que no estaba cerrado del todo, y al seleccionar con la varita mágica era incapaz de limitarme a la tierra o el mar. La manera más fácil de entender lo que significa esto es usar el “cubo de pintura”: si los contornos estuvieran cerrados, pintaríamos sólo el espacio dentro de cada uno. Pero al no estarlo, la pintura se desparrama por todo el dibujo.
La mejor manera de arreglar este problema es buscar las fugas y arreglarlas con el pincel. Sólo les llevará un par de días.
Por otro lado, la manera rápida de arreglarlo es seleccionar todo lo que sea de color negro en el dibujo con el selector de color, y luego usar la opción de Editar -> Trazar selección, con un ancho de 1 pixel y color negro. Así el contorno será continuo, y evitaremos las fugas. Después podemos usar la opción de “Brillo y contraste” para eliminar los tonos de gris, subiendo el contraste a tope. Sólo habrá blanco y negro en esta capa, y podremos seleccionar fácilmente las partes de agua y tierra con la varita mágica.
La selección lleva un tiempo, más o menos dependiendo de lo perfeccionistas que sean. A mí me gusta seleccionar no sólo los océanos y mares, sino también todos los lagos que se pueden ver en el mapa. Eso implica mucho shift+click para añadir a la selección; si se lo quieren ahorrar, con tal de seleccionar los océanos y los mares interiores llegará. Pero no les quedará tan bonito, se lo advierto.
Una vez seleccionados todos los mares, guardo la selección con Seleccionar -> Guardar en canal. Para hacer lo mismo con la tierra es mucho más sencillo: invierto la selección con Control+i, y ya está. “Guardar en canal” otra vez y ya tengo máscaras para el mar y la tierra.
Colores
Lo siguiente que hago es escoger los colores de la tierra y el mar. Para eso creo dos capas en blanco justo por encima de la de bump-mapping (o justo por debajo de la de contornos, como prefieran verlo), y les aplico las máscaras de “Mar” y “Tierra” que acabo de crear. Desmarco la opción de “Editar la máscara de capa”, y busco dos colores que me gusten. Para eso suelo recurrir a la paleta “Topographic” de Gimp. En este caso, he escogido el color e8bc34 para la tierra y 54b0f8 para el mar. Posiblemente los cambie luego, pero me dan una base para empezar.
En este punto el mapa empieza a parecerse a uno de verdad. Pero todavía le faltan los elementos que le darán personalidad: montañas y ríos.
Y van a tener que esperar hasta la siguiente entrega para saber cómo lo hago
por xouba el January 20, 2012 12:00 PM
En la entrada anterior les hablé de planet y de cómo generar un mapa con él. Como vieron, los resultados son un buen comienzo, pero todavía falta mucho para tener algo que se pueda presentar como un mapa. Hoy vamos a ver otra etapa del proceso: un borrador sobre el que anotar los primeros nombres para este mundo.
Normalmente, una vez hecho lo descrito en la entrada anterior, me lanzaría a crear un mapa de 3000×3000 y trabajaría ahí. Pero contar este proceso me está sirviendo para analizarlo con un poco más de calma, y me he dado cuenta de que es mejor ir algo más despacio. Por lo tanto, antes de ponernos a trabajar “en serio”, vamos a hacer un primer borrador del mapa.
Los objetivos de este borrador son:
Muchas expectativas para un simple mapa fractal, ¿verdad?
Para el borrador he generado un mapa con proyección rectangular de 1600×1600, con rejilla de 15×15 grados. Luego lo habría cargado en Gimp y hubiera escrito sobre él varias notas, pero como hay un bug en Gimp que hace que mi tableta gráfica no funcione bien cuando tengo activados los efectos del escritorio, usé Xournal para lo mismo. Es un gran programa que no conocía hasta hace relativamente poco, y para anotaciones sobre imágenes o PDFs es inapreciable. De lo mejorcito, oiga.
Las primeras notas son un tanto caóticas: dibujo unas líneas por donde creo que podrían ir las cadenas de montañas, anoto lo que se me ocurre al ver ciertas zonas (como lo de “meseta Tibet”, para una meseta elevada similar a aquella), apunto dónde quedan el ecuador y las zonas árticas, delimito los continentes y los marco con un número. Como verán, en este mapa hay 7 continentes, aunque tres de ellos (5, 6 y 7) son bastante pequeños. El 5 y el 6 podrían ser uno solo, pero como una parte queda por encima de la línea ártica y hay una especie de estrecho entre ellos, he decidido separarlos.
No hay que tomarse esto demasiado en serio. El mundo que vamos a crear tendrá graves incoherencias si lo estudiamos a fondo. Por ejemplo, en el mundo real la zona ártica no es todo lo que hay sobre el paralelo 75º, sino una zona variable delimitada por la temperatura media a lo largo del año. Y el trazado de las montañas es bastante aleatorio, sin seguir posibles líneas tectónicas. Pero el objetivo no es hacer un estudio científico, sino un mapa para jugar a rol o entretenerse.
Como no queremos rompernos la cabeza ni desarrollar toda una familia de lenguas relacionadas entre sí para nuestro mundo, vamos a ir a lo rápido: los generadores aleatorios. Hay muchos para escoger, pero a mí me gustan éstos:
Para el mapa voy a usar el último, y en concreto el titulado “Greek Names”. Después de ejecutarlo varias veces, me quedo con estos nombres: Pyron, Zentaeri, Gausiania, Thylithe, Ircmimas, Prothe, Yitenth, Bascacan, Brotroro, Jont, N’chect y Cathysiar. Los usaré para los continentes y cualquier otra cosa que se me ocurra. Si luego me hacen falta más, puedo conseguirlos en el mismo sitio.
Para los continentes me quedo con Bascacan (continente 5), Brotroro (6), Cathysiar (1), Jont (4), Pyron (2), Zentaeri (3) y Gausiania (7). Como un elemento fundamental de los mundos de fantasía son los nombres exóticos, voy a “exotificar” algunos de éstos:
Todo esto es un buen ejemplo de las ventajas de los generadores aleatorios. Aunque todos éstos nombres han sido sacados del mismo, los resultados son suficientemente distintos como para suponer que cada palabra está en un idioma diferente.
Me quedan todavía unos cuántos nombres, así que voy a usarlos para algunas otras features del mapa. Los candidatos más evidentes son los mares y océanos, pero siempre me han costado: tiendo a abusar de los “mar de” y “océano de”, que en el mundo real no abundan. Para este mundo voy a usar “Prothe” (suponiendo que “prothe” significa “océano” en algún idioma) para el océano central, “Ircmimas” para el mar interior más grande, “Mar de Pyron” para el mar interior más pequeño (parece adecuado, siendo Pyron la tierra circundante) y “Gausián” (que no tiene nada que ver con el matemático de nombre similar) para el océano del sureste. Parto de la idea de que “Gausiania” es algo así como “la tierra que está en el Gausián”, y me ahorro un nombre nuevo. Otra opción sería un genérico tipo “Océano del Sur”, pero no queda tan bien.
Todavía podría poner muchos más nombres, pero con éstos tengo un buen principio para mi mundo; y para ustedes, un buen final para este post. Si todavía tienen ganas de leer más sobre este proceso, sigan atentos a este weblog.
por xouba el January 06, 2012 12:00 PM
Como quería hacer un mapa para un nuevo proyecto en el que estoy trabajando, y muchas veces es difícil encontrar información de este tipo en castellano, voy a poner por aquí el proceso que sigo habitualmente. Los resultados no son comparables al mapa de “La Marca del Este” de A. J. Manzanedo, o de alguno de “mappers” profesionales como Sapiento y los grandes gurús de Cartographers Guild, porque para eso hace falta un talento del que carezco; pero sirven para tener algo con lo que pasar un rato.
La raíz de todos los mapas que he hecho está en un pequeño programa llamado planet, hecho por un profesor danés llamado Ægidius Mogensen. Genera mapas fractales en varios tipos distintos de proyección: Mercator, Mollweide, ortográfica, estereográfica, y varias más que ni entiendo ni he usado.
planet es un programa en línea de comandos, hecho en C, que hay que descargar y compilar. La instalación se reduce a hacer “make” y luego usar el binario generado. Funciona en base a una semilla, un número decimal a partir del que se genera el mapa. Esta semilla es lo más importante del mapa, porque si cambia en un solo dígito el mapa resultante será diferente. Cuando consigamos un mapa que nos guste, debemos apuntar la semilla para poder reproducirlo en todas las proyecciones y a todas las resoluciones que queramos.
Yo suelo usar mapas de 3000×3000 o 4000×4000 pixels. Parece mucho, pero siempre es mejor trabajar a mucha resolución para que sólo haga falta encogerlos, no ampliarlos (como cualquiera con una cámara de fotos digital habrá comprobado). Para las vistas previas uso mucha menos resolución: 800×600, por ejemplo. Así puedo hacerme una idea de qué aspecto tendrá el mapa sin pasarme varios minutos esperando.
Aparte de la proyección, planet puede generar el mapa en varios modos: en color, en blanco y negro, con línea de contorno o sin ella, y con “efecto 3D” (bump-mapping) o sin él. Por defecto se generan en color y sin bump-mapping, y con un mapa de colores que recuerda al de la tierra. No es realista, porque los colores se asignan por altura: verde para la costa, marrón para media altura, gris para sitios más altos y blanco para las cimas. Y como cualquiera que conozca el desierto de Atacama sabrá, eso de las costas verdes no es siempre cierto.
El primer paso para hacer un mapa es generar uno que nos guste. Eso implica buscar una semilla adecuada, que es un proceso tedioso e imposible de hacer durante mucho tiempo por humanos cuerdos. Yo la genero aleatoriamente y veo qué mapas salen, usando unos scripts en Python y las utilidades ImageMagick. El script principal (“runplanet.py”) tiene un modo “vistazo” para generar varios mapas a la vez, a baja resolución, y colocarlos todos en una sola imagen. Así puedo cargar la imagen, ver los mapas y generar más si no me gusta ninguno.
Como todos los generadores aleatorios, planet tiene sus vicios. El más frecuente es el exceso de tierra o de agua: tiende a generar “supercontinentes” que ocupan casi todo el mapa, más bien cargados en uno de los polos, o formando una barrera de polo norte a polo sur; y también son típicos los mapas en los que sólo hay unas pocas islas esparcidas por el océano.
Otra limitación del programa es que no genera montañas realistas. En el mundo real, las montañas forman largas cadenas que surgen donde las placas tectónicas colisionan, elevando el terreno. En los mapas generados por planet hay ciertos puntos en los que se acumula la masa y da la impresión de caer por su propio peso hacia los alrededores, como las laderas de un volcán. Hay tierras altas y bajas, pero no tienen el aspecto que tienen en el mundo real. Podemos aprovechar estos cambios de altura para dibujar montañas luego, o para separar placas tectónicas imaginarias. Hace falta echarle un poco de imaginación al mapa generado para convertirlo en algo útil.
Algunos de estos mapas sirven si buscamos un mapa para un sitio determinado: una montaña, un valle, una península, una isla, un fragmento de costa, etc. Pero no son adecuados para un mapa de un mundo imaginario.
Para este ejemplo he usado la semilla 0.560789, que aparte de ser un número bonito da un mapa con un par de continentes de buen tamaño y una gran isla a bastante distancia de ellos, perdida en medio del mar del sur. También tiene varios mares interiores, siempre interesantes y abundantes en los mapas generados por planet. En el continente inferior izquierdo pueden ver uno de los defectos habituales de planet, un ejemplo del aspecto “volcánico” de las algunas montañas: todo el continente parece una isla volcánica de tamaño épico, con aspecto de cono con bordes irregulares.
El siguiente paso es buscar la orientación adecuada para el mapa, para lo que suelo crear mapas en una resolución un poco mayor, como 800×600. Con planet podemos “mover” el mapa variando la latitud y longitud. En las proyecciones “totales” (en las que se ve todo el mapa), suelo cambiar la longitud para que se vean mejor los continentes. En las proyecciones esféricas (como la ortográfica), cambiar la longitud y la latitud es la única forma de ver distintas partes del globo (como los polos, por ejemplo).
En el caso del ejemplo, no hace falta tocar nada: aunque a veces los continentes están a caballo de los bordes del mapa (se ve una parte en cada lado), en éste ven todos perfectamente. Sí que hará falta tocar la latitud y longitud para la proyección ortográfica, que muestra sólo una parte del mundo y tendremos que “enfocar” hacia la que nos interesa.
Como verán en las imágenes, hay algo más que también hace planet: generar una cuadrícula sobre el mapa. Yo uso una de 15º, más que nada para ayudarme a decidir cuánto tengo que mover el mapa en un sentido u otro si las cosas no encajan. Para el mapa sobre el que voy a trabajar la quito, pero mientras estoy probando si el mapa es adecuado es una ayuda muy valiosa.
Aparte de éstas, que sólo afectan a cómo se ve el mundo, hay otras opciones en planet que alteran su composición: altitud inicial, variación debida a la distancia y variación debida a la altitud. Con éstas podemos aumentar o disminuir la cantidad de tierra que se ve por encima del agua y hacer el mundo más o menos “rugoso”.
Cuando todo está decidido, genero unos GIFs monstruosos que contienen, cada uno, cinco versiones diferentes del mismo mapa. En concreto:
Y esto cuatro veces, una por proyección: Mercator, Mollweide, ortográfica y rectangular. Suelo usar sólo la rectangular, pero siempre genero las cuatro por si acaso luego me hacen falta. Todavía no ha ocurrido, pero me niego a aceptar que las demás son prescindibles. Es como tener el síndrome de Diógenes.
La ventaja de “empaquetar” todas estas imágenes en un GIF es que al cargarlas con Gimp se muestran como capas diferentes. Así puedo, por ejemplo, superponer la cuadrícula al mapa en color, o superponer el contorno sobre el mapa con bump-mapping. Por supuesto, ocupan una barbaridad: entre 5 y 10 megabytes cada GIF. A Gimp suele costarle un poco abrirlos.
Y hasta aquí todo lo que les quería contar hoy sobre planet. Inicialmente pretendía cubrir en un sólo post todo el proceso típico para hacer un mapa de los míos, que como verán no necesita de demasiado talento. Pero visto lo que me ha llevado la parte de planet, he pensado que es mejor dividirlo en dos.
No sé cuándo publicaré la siguiente entrada. Tendrán que añadir el weblog a su lector RSS y esperar pacientemente. Espero que merezca la pena
por xouba el December 23, 2011 07:23 PM
I was released a month after Pink Floyd’s “Wish You Were Here”, around the time of Van der Graaf Generator’s “Godbluff”, but have yet to be certified gold or platinum! I was born – and still live – in the part of the world that produced Allan Holdsworth, Bill Nelson and Steve Rothery.
I’m influenced very much by Änglagård, White Willow, Sinkadus, Anekdoten and a host of other Scandinavian prog bands. There’s a healthy dose of English pastoral influence in there as well: Camel, Genesis and things like that.
I always seem to end up with very safe and staid chord progressions though, even then! But it allows more freedom for the theme or melody to go where it wants. Voice-leading of chords can generate some nice melodies, but I find that often the melody inherent in the chords is so strong that it can be difficult to write other melodies to fit over.
Great engineers can make great sounding records with basic tools and a fool with all the gear and no idea will churn out crap. There’s no reason why you can’t make great sounding music with Linux, it just depends on your workflow and whether you feel you need specialist features, which are only available with some specific app on a specific other OS.
I sometimes think the bar to listening to music has been lowered much too far. You can blame the ubiquity of cheap MP3 players for that. There are many people that supposedly listen to music that reckon they really care about music, but have probably never heard it properly, just as MP3s on players with cheap DACs through a pair of cheap earbuds. And even when listening conditions are better, how many people actually actively listen, rather than just sitting there passively “hearing” music? I think all this does a real disservice to musicians and engineers.
This devaluing of music leads on neatly into the areas of intellectual property and compensation. I think copyright and most other intellectual property is fine and a Good Thing. You see a lot of people trying to justifying warez or uncleared sampling on music forums and a lot of it just seems to me to be a distorted sense of entitlement. The same goes with illegal downloading of music. It pisses me off that people are so disrespectful of the musicians or developers they supposedly like.
I think if some musicians or other artists want their art to be free, fine, that should be entirely up to them. But I don’t think music should be free, as in, no-one should ever have to pay for music.
The irony is that the demise of the big corporate labels has possibly made music much more commercial and artists less artistically free. What I mean is, bands are having to become personally much more business-like and spend more of their time conducting their own business affairs and less making music.
el December 17, 2011 03:07 PM
Un día se me ocurrió publicar un articulito sobre el fundamento matemático del método para calcular raíces cuadradas usando lápiz y papel. Desde entonces me llega un montón de visitas de gente que quiere saber cómo calcular una raíz cuadrada (supongo que les da igual por qué funciona el método si no saben cómo emplearlo, ¿no?). Por lo tanto, he decidido escribir este artículo explicativo.
Para empezar, vamos a ver cómo calcular la raíz cuadrada de un número de una o dos cifras. Por ejemplo, calculemos la raíz cuadrada de 71:
![]()
Esto es fácil: simplemente tenemos que hallar el número más alto, del 0 al 9, que multiplicado por si mismo nos dé 71 o menos. En este caso, el número que buscamos es 8, ya que 8x8=64, que es inferior a 71, y 9x9=81, que es superior a 71. Además, la operación tiene un "resto" que vale 7, ya que 71-8x8=7. Todo esto lo escribimos de esta manera:

Fácil, ¿no?
Pues ahora vamos a ver cómo se calcula la raíz cuadrada de un número de más de dos cifras. Por ejemplo, el 71.492:
![]()
El primer paso consiste en dividir el número en grupos de dos dígitos, comenzando por la derecha:
![]()
A continuación, calculamos la raíz cuadrada del grupo de más a la izquierda:

En este caso hemos calculado la raíz cuadrada de 7, que es 2 con un resto de 3.
A continuación "bajamos" el siguiente grupo de dos dígitos y lo ponemos a la derecha del resto:

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

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

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

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

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

Y, como podéis ver, la raíz cuadrada de 71492 es 267, con un resto de 203. Podemos comprobarlo fácilmente, calculando 267x267=71289, y 71492-71289=203.
Fácil, ¿no?
Algunos os preguntaréis cómo se pueden calcular las cifras decimales de la raíz cuadrada. Es decir, si usamos una calculadora, ésta nos dirá que la raíz cuadrada de 71492 es 267,3798... ¿cómo se pueden calcular estas cifras decimales con lápiz y papel?
La respuesta es muy simple: sólo tenéis que "bajar" grupos de dos ceros y seguir calculando la raíz cuadrada hasta que os canséis. Por ejemplo, aquí veis cómo he calculado las dos primeras cifras decimales:

Otra pregunta que algunos os haréis es: ¿cómo se calcula la raíz cuadrada si el número que nos dan tiene decimales? La respuesta es simple: cuando dividáis el número en grupos de dos cifras, en lugar de empezar por la derecha, empezad por la coma decimal. Si el grupo de más a la derecha se queda con una sola cifra, completadlo con un cero. Después, simplemente calculad la raíz cuadrada como siempre, acordándoos de poner la coma en el resultado cuando alcancéis la coma en el número original.
Y esto es todo de momento. Espero que esta explicación os haya sido útil y hayáis encontrado lo que buscábais.
por jacobo el December 12, 2011 12:41 AM
He caído, ya llevo Internet en el bolsillo. R me ha enganchado con su estupendo sony arc (gratis para consumos mínimos de 29 euros).
por Juan José Iglesias González (noreply@blogger.com) el December 06, 2011 07:12 PM
Some posts have been already published about this during the last days, but just in case you missed them I will mention it here again: Last week, a bunch of hackers gathered together in the Igalia office in Coruña for the third edition of the WebKitGTK+ hackfest , and a lot of work has been done, as Juanjo has already summarized in his “WebKitGTK+ hackfest wrap up” post.
So, as everything has been already said from a more general perspective, I’d like to write my very personal wrap up here, focused on the tasks that I’ve been working on, which can be summarized in three:
This has been, by far, the task I devoted most of the time to during the hackfest, mainly focused on writing a ‘feature complete’ patch that could be applied upstream, and thus that could be reviewed in first place. But, what do I mean by “a ‘feature complete’ patch”? Well, perhaps you are already aware of the initial results already got in the WebKit2GTK+ a11y realm, but those results were obtained with a patch still in a very early state and, among other things, lacking a very important requirement for getting it accepted upstream: tests.
Fortunately, I can now proudly say that I managed to find a good way to write those tests (specially tricky due to the multiprocess architecture of WebKit2) and that there shouldn’t be any problem either with getting them work properly in the buildbots, which was something I was quite concerned about by the begining of the week, to be honest.
Besides the tests, the other obvious problem was that such a patch was not widely tested yet with the Orca screen reader (I use Accerciser for development purposes most of the time), and that would for sure unveil issues that would need fixing before being really able to propose a patch for reviewing, and so that was the other aspect where I put the spotlight during this week.
And regarding to this, I have to say that Joanmarie Diggs was working tirelessly by testing Orca with my WebKit2GTK+ a11y patch, reporting bugs, and helping me a lot to prioritize the tasks that would need to be done. From all those, I mainly worked this week in the following ones:
So, the conclusion of this part would be that we have now a patch in WebKit’s bugzilla (see bug 72589) that, once it’s approved, would enable accessibility in WebKit2GTK+ once and for all. Of course, this will probably take some time before it gets accepted upstream, but it’s yet another nice milestone in my opinion, and I personally hope it would happen on time for GNOME 3.4. Time will tell, though.
This was another thing I’ve been randomly working on since some time ago (whenever “spare” time permitted), and that I was able to advance quite a lot right after coming back from the parental leave I enjoyed on September (did I say my second child was born on August the 30th?). However, the patch was not finished by any means, and some issues kindly pointed by Xan in bugzilla needed fixing before being able to say aloud something like “hey, the new ad blocker is now in town!”.
Thus, we thought it would be good to devote some time during the hackfest to try to close this task too, so we did: Xan reviewed the new version of the patch (addressing the issues he previously pointed out), I made some last changes based on that new feedback from him and we finally pushed it to the repository, replacing the old ad blocker extension with this new one, which is based in Midori‘s ad blocker and so is compatible with Adblock Plus filters, which work very well IMHO.
So, this basically means that the new ad blocker extension will be present from Epiphany 3.4 on. Check out the related bug in GNOME‘s bugzilla: bug 660154
Besides working in the WebKit2GTK+ a11y realm and on finishing the new ad blocker extension, I’ve also spent some time (although not as much as I would have wanted) fixing regressions in WebKitGTK+‘s a11y code as reported by Joanie (basically bug 72804 and bug 72830).
Compared to the other two points, this has been of course a pretty small contribution, but worth doing anyway since they were very important for Orca to work properly with WebKitGTK+ based browsers (special mention to bug 72830 here).
From the work-related point of view, I’d say this hackfest has been highly productive in general, as we achieved many goals which, as Juanjo pointed out in his wrap up post, “were not mainly about fixing critical and blocker bugs and implementing basic missing features, but about more ambitious and challenging” ones. As for me, I’m pretty happy with the results I got, specially with the WK2 a11y patch, which has now a much better shape, and so I hope we can integrate it soon upstream.
And from a more personal point of view, I’d like to say I had a great time (again!) this year in the hackfest, and not only because of the achiements got, but also because I had quite a lot of fun as well, because I met new people and because I felt, more than ever, part of a community and a project which I love.
To finish, I’d just like to mention that I’ve been taking some pictures during the hackfest, which you can check out in this photo set in flickr (pictures uploaded with Frogr, of course!). Nayan has also taken some pictures as well, check them out here.
Of course, thanks a lot to the sponsors that made this possible: Collabora, Motorola, Igalia and the always awesome GNOME Foundation. I hope we’ll be able to repeat it next year, since this hackfest it’s only getting more and more awesome every time it happens.
por msanchez el December 05, 2011 10:01 PM
Soy consciente que el número de visitantes de este blog ha caido en los últimos meses (o años) conforme han caido el número de posts que Ak, niushka y yo hemos ido escribiendo en el blog pero, bueno, esto es algo que hace ya tiempo me plantee compartir y haya va!
Hace ya algunos meses, desde la UOC me propusieron que diera una pequeña charla sobre alguna experiencia personal que pudiera ser interesante para los alumnos que se acercaran a la primera conferencia que iban a dar por Galicia. Esta proposición coincidió con un momento en el que estaba leyendo “Presentation Zen” un buen libro de cómo deben hacerse las presentaciones en el siglo XXI lo que hizo que aceptara sin rechistar la proposición y me puse a pensar “¿De qué voy a hablar?”
La busqueda sobre un tema para los asistentes me llevo más de lo esperado, no encontraba nada de lo que pudiera hablar y que le sirviera a la gente. Quería algo que me hubiera marcado y que fuera lo suficientemente común como para que le sirviera a la mayor parte de gente que viniera por las jornadas … finalmente, después de unos días, encontré el tema ¡Superación de problemas!
El siguiente paso era el “Cómo presentar el contenido”, para ello tenía claro que quería seguir las recomendaciones que Garr Reynolds me estaba dando en cada capítulo de su libro… parecía -y sólo parecía- una tarea facil. La máxima de Garr es algo como el KISS(Keep It simply Stupid) pero en realidad esto lo hace más dificil de implementar…
Hacer la presentación, prepararla y pulirla me llevo algún tiempo… no estoy acostumbrado a hacerlas y tenía muy claro cómo quería que saliera … la puesta en escena… aunque al final no pudo ser cómo lo tenía planificado…
Cuando llegue al salon de actos, me sorprendieron varias cosas:
http://www.youtube.com/watch?v=of-rj4GqsHk
En conclusión, era novato (y sigo siendolo), la puesta en escena no era la que yo buscaba… pero aun así… creo que vale la pena, por lo menos, oirlo creo que a alguien puede que le ayude
Ya me direis qué opinais
por kour el November 30, 2011 02:26 PM
Last May, I wrote about some initial tests I did back then with AtkSocket and AtkPlug, just to learn a bit about that API that allows connecting accessibility trees in different processes, thanks to the magic of the ATK bridge. I did that in order to prepare for the work that would probably be needed when adding accessibility support in WebKit2GTK+, so browsers using the new version of this web engine could be at least as much accessible as those using the single-process WebKitGTK+ library. Looking back, I think that the effort has definitely payed off…
However, because of one reason or another (and not necessarily work-related), I was not able to devote much time to keep working on this until some weeks ago, but fortunately I’m now again working on this as my primary task in Igalia, as part of our WebKit team, so I expect to have some nice results soon, hopefully also in the form of integrated patches upstream.
And talking about results, I can’t avoid sharing the following at this very same moment, which is actually the trigger that made me write this post: today I was able to make Orca read, for the very first time, web content rendered through WebKit2GTK’s MiniBrowser, which has been not an easy task since the multiprocess architecture of WebKit2 made it a little bit challenging, to say the least.
Of course there’s still much to do in this regard, so do not think of the current status of the task as it was nearly finished or anything… but still I thought it was a nice milestone to share with the world, and what a better way to do it than using a video for that. After all, Orca‘s main job is about speaking, right?. So here it is:
Orca and WebKit2GTK+: initial results
[video in Vimeo] [video in Ogv (Theora / Vorbis)]
By the way, I’d like to make the most of this post by saying I’m really proud and happy to have Joanmarie Diggs aboard in Igalia for a few weeks now, who contributed a lot to making possible that I was writing this post today. Thanks , Joanie!
por msanchez el November 11, 2011 09:38 PM
There is a guy in LAU that uses Nama, an audio sequencer with a text-only interface. The first time I read about such a thing, I wondered: “who in his right mind would use something like this?” Audio sequencers are already quite complicated without having to resort to ungodly keyboard shortcuts. Surely nothing good could come out of such a thing, right?
Wrong. That guy made wonderful music. Much better than what I’ve heard from other people with heaps of hardware and nice GUI programs. The sheer complexity of songs like “Less is more” and “No use crying for spoiled milk” is astounding: lengthy compositions with many instruments and several parts, all knitted together like silvery elven cloth. As it happens, a text-only audio sequencer makes a lot of sense when you’re using a Braille display.
Ladies and gentlemen, meet Julien Claassen.
Julien is a german youth of thirty. He’s been involved with music since he was a child, when he played Glockenspiel in kindergarten. At this age, the piano looked like an intimidating beast to him; but it wouldn’t for much longer.
As you probably have guessed, Julien is blind. Or rather, as he puts it:
I am partially sighted. For all intents and purposes you could call it blind. I have meager sight on one eye, which is good enough for me, but not terribly important in the big scheme of things.
He went to a primary school for blind students, and after classes, while he and the other children waited for a “big taxi” to carry them home, the teachers let loose the horde of children in a room full of instruments. It could have meant mayhem, but it seems it was fun and no one got (musically) hurt. Julien showed preference for keyboards at that early age, and at 11 he had his first keyboard and started piano classes. He’s still taking classes with the same teacher, now 87 years old.
In his teens Julien took part in several short-lived music projects (“three day projects”), and spent most of his time playing and composing. His keyboard had a sequencer and he was recording his own music when he only was a lad of 12 or 13. At first it was electronic music, akin to eurodance and other popular styles of the time; but as he grew, his music did too, and a few years later “there were pieces carrying messages or where I was trying to express something”.
Now Julien is studying computer science and electro techniques, hoping to work in the musical instrument industry, perhaps in the field of hardware or software user-interfaces. But music is still a central part of his life:
I couldn’t live without playing music. Two weeks without a keyboard must be two very full and highly impressionable weeks, so that I don’t feel the withdrawal.
Most of Julien’s stuff could be classified as “progressive rock”. His compositions are long and elaborated, with several layers of instruments vying for attention, chatting, arguing; like actors in a play, or lovers in distress. He plays synths, but you’ll hear every kind of instrument in his songs: drums, pianos, basses, strings, electric guitars. In fact, he’s a fanatic of drums, and wants them to sound “good and natural”. He’s got some friends collaborating on “Shout”, but usually it’s only him: the full orchestra at his fingertips.
His main influence is the band Flower Kings:
My main influence would be the Flower Kings. They have been for years. A friend told me that they should take my Flower Kings’ CDs away, after having listened to one or two songs of mine.
He’s also been influenced by Bach, in particular by the playing of Glenn Gould, and some heavy metal too: Symphony X, which Julien says are the culprit of “the metallic tidbits”. Last but not least, you’ll find a bit of 70s entertainment music and … Britney Spears! Well, not quite, but Julien says he has been inspired by her too. Wicked, I know.
I asked him where he got all the inspiration needed for music so long and complex, and if he had some kind of method or way of working to get these tracks done:
Ideas come at odd times. They might happen when just walking along, but mainly when I already sit at the keys. Sometimes I work up to them, but even then something has been there before. I’m not a constructing person. I rely more on fantasy. I use some structure later on, when connecting all the ideas and making sense.
Being blind has given Julien a different insight into making music with a computer. There are other people working with Nama and Ecasound, two main pieces of his musical weaponry, and they do it for various reasons: scriptability, slimness of the whole solution, or pure eccentricity. In Julien’s case, it’s nothing so frivolous: it’s the way he has of getting the information in the best way possible, which means line oriented.
I work with a braille display. It is a device connected via USB (or serial port or whatever), which shows me 40 or 80 character lines (or half lines). It has some navigation buttons for “move focus to next/previous half line”, “move focus to cursor”, etc. There are also buttons above each character to force the cursor to go to a certain position, good when editing texts. I don’t have to look for the cursor, just tell it to come to me.
Julien’s first computer had MS-DOS, when he was 15 or 16, but not long afterwards he switched to Linux. Soon he discovered Ecasound and was amazed, because “it was very intuitive to me and very perfect for my way of thinking”. It took a while to tame the beast, though: finding the right soundcard, paying for it and then mastering Jack. After that, in 2002, he “started recording like mad”.
When you talk about music making in Linux, you’re almost always implying Ardour. So I was specially interested in Julien’s answer: without Ardour, is Linux ready for music making?
For me Linux is ready for music. There still are rough corners which could be smoothed; but for knowledgeable people, who are bent on making music, that’s fine. We might perhaps need some more access to other professional and commercial systems, like VST, Kontakt and the likes, but I’ve seen people out manouvering that as well. We certainly do have a few features that really make up for that.
And an obligatory question: should music be free?
I can definitely see that musicians need to earn a living, so why not sell their music. Painters sell their pictures, and I’ve never heard that discussed before. I’m not idealistically sold on the idea of free music.
And what about record companies? Ken Restivo had some strong opinions about them, but Julien is more moderated:
Record labels can be hell and heaven. It is difficult at the moment for independent musicians not going through the channels of labels to get airplay, but I wouldn’t say that this has to be the case in a few years. The net gets more and more attention, even some of the big names releasing music online only. It depends on what you want from life and music. I don’t begrudge anyone being a superstar.
I’ve listened to a few tracks by Julien, and my favourite is “(Sometimes) Less is more (than more)”, also known as “Slim (TM)”. It’s a tour de force of 14 minutes containing bits of piano pop, jazz, odd meters, symphonic synths and rock. I asked Julien if there was anything special about the making of that song, and this is what he said:
I paid more attention to detail. I went the long way, if I saw an improvement in doing so. So I actually did write a csound orchestra or two for processing the effects sounds, the scenic impressions. I did use other technology to a larger extent and I did take uncomfortable hints and suggestions from good friends, to whom I’ve played that song before it was released.
For me, the process worked. Bring those csound orchestras and uncomfortable hints again anytime you want.
The first installment of “FLOSS your music” has been very welcome, and that was good and bad: good because it encouraged more in the series, but bad because it also created expectations. I was a little worried that I couldn’t meet them again, but fortunately there’s always something interesting behind each of the people I’m featuring.
A big “thank you” to Julien, who’s been very warm and amiable during our exchange of information. He spilled his innermost secrets in our emails, but told me not to write more than a few here. Well, ok, not really: but you’ll never know for sure. Ha!
Next month we’ll feature no other than the mysterious artist formerly (and currently) known as “Q”. Who’s behind that capital letter? That’s for you to know in the next installment of “FLOSS your music”.
el November 01, 2011 06:54 PM
Un experimento fácil de hacer para el que tenga un poco de familiaridad con software de retoque fotográfico:
Nadie tiene la cara completamente simétrica, así que los resultados suelen ser interesantes.

Si alguna vez me van a clonar usando de ejemplo una foto de un lado de mi cara, ya sé qué lado quiero que usen. Uno de estos dos macizos tiene una gran carrera en el mundo del cine. El otro es John Cleese cuando aún no tenía bigote.
por jacobo el October 31, 2011 04:42 AM
He aquí las últimas novedades sobre mi intento de votar en las próximas elecciones generales.
Como ya habéis podido leer, a finales de agosto descubrí que mi inscripción en el CERA no se había actualizado cuando fui a registrar mis mudanzas, así que aún tenía mi primera dirección en Dublín. Me puse en contacto con el consulado para enviarles los datos actualizados, pero éstos entraron en el censo de octubre, mientras que para las elecciones se usa el de julio, así que hace un par de semanas tuve que ir a San Francisco a hacer la reclamación al censo electoral.
El siguiente paso es enviar un impreso a la delegación provincial de A Coruña de la oficina del censo electoral. Este impreso, en teoría, me lo mandan a casa y luego tengo que enviarlo de vuelta firmado y acompañado de una fotocopia del DNI, para lo cual tengo el 22 de octubre de plazo. Ayer me llegó una carta de la oficina del censo electoral, así que fui a la oficina de correos a recogerla. Sin embargo, no era el impreso de marras, sino una confirmación de que habían estimado mi reclamación (aunque copiaron incorrectamente el número del apartamento -- menos mal que parece que el cartero se sabe mi nombre y ha dejado el aviso en mi buzón).
Como ya me conozco el percal y ya sé que este impreso no llegará hasta después del plazo (si es que llega), lo he descargado y cumplimentado yo mismo y lo he enviado directamente por fax a la susodicha oficina del censo electoral (en la web del proceso electoral dice que se admite el envío por fax).
Ahora, en teoría, me deberían enviar las papeletas y toda la documentación para que yo pueda ejercer mi derecho al voto. Espero que no ocurra como en las últimas elecciones gallegas, que las papeletas no llegaron hasta que ya era demasiado tarde para ello (me parece percibir un patrón). Ya os contaré qué ocurre.
por jacobo el October 20, 2011 08:49 PM
Seguimos con las semanas de tartas… hoy toca la tarta de chocolate blanco (no apta para regimenes
)
Bueno, empecemos con los ingredientes
Un poco de chocolate negro (5 ó 6 onzas).Se utiliza para "pegar " las galletas.
2 tabletas de chocolate blanco
1 tarrina de queso de untar
2 cucharadas de azúcar
1/2 litro de nata
100 cc de leche.
1 sobre y 1/2 de cuajada
Galletas María o napolitanas
Una pizca de sal
Una vez tenemos los ingredientes, el siguiente paso es ponerse manos a la obra!!
Lo primero, es deshacer el chocolate negro en el microondas. Con este chocolate y las galletas, forramos el molde. Mi recomendación es poner la capa de galletas primero de forma que no se vea el fondo del molde y, después echarle el chocolate negro por encima y exparcirlo bien. Esto es muy importante porque será la base de la tarta. Cuando esté bien hecha la base, la dejamos un rato enfriar en la nevera.
Mientras enfria la base (5min son más que suficienteS), con el resto de los ingredientes los echaremos en un cazo al fuego hasta que se deshaga todo, hay que moverlo para que no hierva y para que no se pegue.La cuajada es mejor echarla al final.
Solo queda echar la mezcla sobre las galletas y dejar enfriar.
Bom apetit
por kour el October 09, 2011 08:37 PM
450 grs de nata
450 grs de leche
3cucharadas de azúcar
1 tableta de chocolate negro
2 tabletas de chocolate con leche
2 tabletas de chocolate blanco
3 sobres de cuajada
1 paquete de galletas tipo María
Un poco de mantequilla para mezclar con las galletas y poder hacer la base
Triturar las galletas y mezclar con la mantequilla. Echar la mezcla en el molde y aplastar bien.Meter un momentito en el horno para que quede una masa compacta.
En un cazo calentar 150 de leche con 150 de nata , dos cucharadas de azúcar y el chocolate negro.Revolver la mezcla, que no hierva, hasta que se deshaga bien el chocolate.Añadir un sobre de cuajada (que no forme grumos) y seguir calentando un minuto.
Verter la mezcla en el molde de las galletas.
Hacer lo mismo con el chocolate con leche pero con solo una cucharada de azúcar.
Hacer lo mismo con el chocolate blanco pero sin azúcar.
Dejar enfriar y meter en la nevera para que endurezca.
Recomendación: Es mejor hacerla la víspera
por kour el October 02, 2011 08:35 PM
I knew Ken Restivo through the LAU mailing list. There were two ocasions when the presence of Ken was apparent to me: when he published “Moment with Monosynth”, an eerie and beatiful instrumental made using the CALF Monosynth DSSI plugin synth, and when he wrote that he was quitting the music business. He tried to make a living out of it, but it didn’t work. Luckily for us, he’ll still be making music, even if it’s only “things that I can knock out in an hour or so”.
Musically, Ken is a keyboardist deeply anchored in New York 70s funk. You wouldn’t tell by “Moment with Monosynth”, but you can check it out by listening to the rest of his music at his page in Bandcamp or his work with his most recent band, “Better than Lahar”.
Ken is a purebred newyorker, born of second generation italian immigrants rooted in Sicily and spanish ancestors. He loved the music of “Sesame Street”, and by six years old he was already committing his first musical crimes using a church-like organ that his parents bought for him; though, on the inside, it was “a cheesy transistor console organ, with an equally cheesy drum machine attached”. They hoped to raise a well-behaved and cultivated gentleman with musical knowledge; but instead, they raised a musician.
During childhood he also found his biggest influence: funk music. As he wrote:
I grew up in New York in the 1970s. I remember listening to AM radio, WABC-AM, and hearing all the funk hits of the day. I’d get up on Saturday morning and watch Soul Train on the TV. I loved the city, and I loved the funk.
And then comes adolescence and High School. This is the time where we all joined our first band, and Ken’s no exception. He did a few stints as keyboard player (often playing also the bass parts) and even heavy metal singer:
Heavy metal was hugely popular where I grew up, and there wasn’t much keyboards in that. But I could scream like Ozzy fairly well, and I was lacking enough in self-awareness to be able to stand up on stage and do that without dying of mortification.
After High School, Ken was thrown out to the Real World. That meant getting a job, and he worked as computer network technician in the Gold Age before the dot-com bust, while playing music in the evenings with and without a band. He hoped to make enough money with computers to be able to make his living with music; but instead he got married, spent 6 years at home raising his daughter, got divorced, tried to make a living as a professional musician for a few years, and gave up. Now he’s back to contract programming and sysadmin work.
Ken plays keyboards, but his influences are not what you’ll suspect at first. I was aiming for Herbie Hancock, Thelonius Monk, Joe Zawinul and that kind of big-time Jazz and Fusion musicians, but Ken feeds off of much more: he dug punk and heavy metal in High School before discovering Prog Rock and other enlightened genres. With this background, you won’t be too surprised to see how he defines his playing:
My keyboard playing is very, very much influenced by the flashy shreddy guitar heroes of that day, guys like Satch, Vai, Roads, Eddie Van Halen, etc. I bought a cheap old locally-made analog mono synth Moog knockoff called the CAT, and fed it through an Ibanez distortion pedal, an amp, and the AGC of an old cassette recorder to dirty it up but good, and then through an amp. Really fucking loud too.
And though he’s not playing professionally anymore, he knows how he’d like to do it if he were. Speaking about “Moment with Monosynth”, he said:
If I had the money and inclination to keep playing music, that’s the direction I would keep heading in: fundamentals like chords, melodies, using both hands, simpler production, and fixing weaknesses in my musical technique.
Back to the roots of music?
¡Eso!
A big part of Ken’s fun with music was not in the playing, but the knob-twiddling. He enjoyed mixing records, and he’d like to do that if he got involved with music again. It all began in high school, when he hid in his parents’ basement “making overdubbed recordings on a homemade reel-to-reel 2-track multitracker and later on a TEAC 4-track”. That took him to the Atari ST, and then to Linux.
He uses Linux exclusively, though he’s used a lot of weird stuff along his life. With that background, I asked him: is Linux ready for the studio?
I think that anything is “ready” for anything if a creative person decides to use it for that purpose. The tools matter in terms of what *kind* of music you make, but it’s the artist, not the tools, that determines the *quality* of it.
Which I take for a “it’s ready enough”. If people like Ken were making music with things like 4-tracks and the such long years ago, what we have now in Linux must be enough.
When speaking about Linux and free things in general, it’s hard not to broach the topic of free music. Should music be free?
For most of human history, folk music was simple music that told a story or was part of some ritual of daily life. Nobody got paid, but if you were good, you could travel from place to place performing and people would feed you and give you a place to stay.
In the last 100 years, what had been “folk” or “popular” music became an industry, and suddenly thanks to radio and records there was a mass market for it. With that system you ended up with the great songwriters of the 60s and 70s and the one-hit-wonders of the 80s.
Then the punk revolution, and indie revolution, and the costs of recording technology being driven down by 4-tracks and then computers, and the costs of distribution being driven down by mail order and indie and then by the internet, and now, here we are. You can’t afford to pay people like Jimmy Page to make “Led Zeppelin IV”, or Steely Dan to make “Aja” nowadays, or Pink Floyd to make “Dark Side”, or even Quincy Jones to make “Thriller” or Radiohead to make “OK Computer”. That infrastructure is gone. There will not be mega-super-hits like that anymore.
I think we’ve gone back to the folk music model now. It’s produced on computers and distributed on the internet, but it’s very democratic, like folk music, and it’s simple as a result.
Is it better or worse? His veredict:
Neither and both. It’s just different. I have no love for that old music industry, I’m glad it’s gone, and I consciously chose not to get involved in it when it was at its peak. I’m disappointed that there’s less overall money available in music now, though. It’s a tradeoff.
I’m a fan of “Moment with Monosynth”. It’s a strange and brooding song that grows slowly towards the climax. It has a story:
I had been studying songwriting and chord progressions, moving away from the kind of linear modal jams I’d been doing for decades. Emotionally, I was deep in the woods in the rain with no internet, practicing, and just got taken with the beauty of the sound of that 24dBi Moog ladder VCF plugin, and how expressive it was.
So there you have: to craft good music, all you need is a cabin in some rainy woods, with no Internet. Henry David Thoreau and the luddites were right all along.
Here you are, the first installment of “FLOSS your music”. It’s been a pleasure to cross emails with Ken: he’s been the first “recruit” of this feature, and neither of us knew very well how to do it. I must thank him for all his patience and the time he spent answering to my lengthy emails and my (sometimes quite gossipy) questions.
Thanks for reading, and don’t forget to add the weblog to your RSS reader for next installments of this feature.
Next installment: Julien Claassen, a young german composer that dives into Prog-Rock or OST-like music with ease.
el October 02, 2011 09:59 AM
There’s a lot of talent out there. There are a lot of people making beautiful music that you and me don’t know about.
Many of these musicians distribute their work for free. If you are an artist of some kind, even if only an amateur, you know that art is not easy. These people are putting time and effort into something which they afterwards share with the world. Free for the taking. Gratis.
So, if we have talented people making beautiful music and publishing it for all to listen, what is keeping us from knowing about them? We could blame it on “The Man”, but truth is simpler: there’s too much information and too little time. Without the heavy hand of a corporation behind, it’s difficult for an artist to make him or herself known.
I want to change that. That’s why a time ago I had the idea of “featuring” some of these musicians and their music in my weblog. For me, they are important. They can be anonymous to most, but are known to me. And I want to make them known to other people too.
Why “FLOSS”?
“FLOSS” is the acronym of “Free Libre Open Source Software”. It’s common knowledge that FLOSS has advantages and disadvantages compared to proprietary software; but no one can deny that it’s a boon for people with limited resources. Never in the history of computers has so much quality software been available to everyone.
I wanted to feature people that uses FLOSS to create music. It looks like you need a lot of expensive stuff to make music, but that’s not the case. These people are the best examples. They make good music with software that you can get for free.
Free music made with free software. Can’t get much better than that.
First in line: Ken Restivo
The first feature of “FLOSS your music” will be Ken Restivo, funk keyboardist extraordinaire from New York. He’s been recently in the band “Better than Lahar”. Check out his work here.
He’ll be here this weekend. Don’t miss it!
el September 29, 2011 08:03 AM
Receta
4 manzanas
3 tazas de harina
1 sobre de Royal
250 grs. de mantequilla o margarina (vale tb aceite de girasol)
5 huevos
2 tazas de azúcar morena (si no tienes vale blanca)
1 taza de nueces
Por un lado, mezclar la harina y el Royal, por otro, batir la mantequilla medio derretida (a temperatura ambiente) con los huevos y el azúcar y mezclar bien las dos mezclas
Una vez bien mezclados, añadir las nueces y la manzana cortada en cuadraditos.
Echar en un molde engrasado y enharinado (otra opción buena es enharinarlo con pan rallado en lugar de harina)
Hornear mas o menos una hora a temperatura media y listo
Si os gusta más jugosa podeis echarle una salsa cuando la saques del horno
SALSA
INGREDIENTES:
1 taza de azúcar moreno.
1/2 taza de leche
150 grs. de mantequilla
Receta:
Mezclar todos los ingredientes y cocer 5 minutos
Que aproveche.
por kour el September 18, 2011 09:49 AM
Siguiendo con las recetas de la abuela (en este caso de mi madre), hoy le toca el turno a una de las ultimas en llegar, la bizcocho de almendras. Este postre es muy socorrido y suele tener mucho exito entre los comensales. Espero que os guste:
Ingredientes:
150 grs azúcar
3 huevos
200grs nata
200 grs harina
1 sobre royal
un pellizco de sal.
2 sobres de almendra fileteada
200 grs mantequilla
100 grs azúcar
Receta
Se baten los huevos con la nata, pellizco sal, se añade el azúcar, la harina y sobre royal. Se mezcla todo bien y se vierte en una bandeja de horno. Hornear durante 10 minutos a 150-160 grados
A continuacion, se pone a hervir la mantequilla con los 100 grs de azúcar. Se le añaden en caliente los dos sobres de almendra fileteada y se vierte por encima de la pasta que ya hemos quitado del del horno.
Se aplasta con un tenedor y se mete al grill durante 7 minutos.
PD: Prometo poner una foto la proxima vez que la hagamos en casa
por kour el September 11, 2011 09:47 AM
El censo electoral en España es permanente. Esto quiere decir que se mantiene un censo que recibe actualizaciones constantemente, en lugar de hacer un censo nuevo cada cierto tiempo. Aún así, el 1 de cada mes se "cierra" el censo con las actualizaciones recibidas durante el mes anterior. Cuando hay elecciones, el censo que se utiliza es el cerrado en el segundo mes anterior a la convocatoria. Si no me equivoco, tienen previsto publicar la convocatoria de las próximas elecciones generales el día 27 de setiembre, con lo que se utilizaría el censo cerrado el 1 de julio.
Cuando un español se va a vivir al extranjero ha de ir a registrarse a la oficina consular correspondiente; al mismo tiempo, le añadirán al CERA, que es el censo de los españoles que viven en el extranjero. Cuando me fui a vivir a Irlanda acudí a la embajada, y allí me dieron de alta en el CERA. Un tiempo más tarde me cambié de piso y di aviso del cambio de dirección. Algo más tarde todavía me vine a EEUU, y también fui al consulado a registrarme.
Podéis imaginar la sorpresa que me llevé la semana pasada cuando fui a la web del INE para revisar mis datos del CERA y vi que seguía figurando con mi primera dirección irlandesa. Es decir, que no actualizaron mi inscripción en el censo cuando fui a registrar mi cambio de dirección en Irlanda ni cuando fui a registrarme en San Francisco.
He enviado los correspondientes impresos para actualizar mi dirección en el CERA, y anteayer me dijeron que ya han actualizado mis datos en el censo. Estos datos saldrán en el censo del 1 de octubre, que es después de la convocatoria y, por lo tanto, no voy a poder votar en las próximas elecciones.
(Los españoles residentes en el extranjero tenemos un obstáculo más a la hora de votar: en la reciente modificación de la ley electoral se han sacado de la manga que los votantes tienen que enviar una solicitud para poder ejercer su derecho al voto, utilizando un formulario que se les enviará antes por correo. Me disculparéis que me entre una sonrisita cínica al recordar que en las últimas elecciones de la Xunta de Galicia mis impresos y papeletas de votación se retrasaron tanto que, cuando al fin llegaron, ya no tuve tiempo para enviar mi voto).
Añadido: parece que mi lectura de la normativa electoral no fue lo suficientemente profunda y no me di cuenta de que, viviendo en el extranjero, mi circunscripción electoral está separada de mi lugar de residencia. Como en periodo de reclamaciones no admiten cambios en la circunscripción, pensaba que esto significaba que mi cambio de consulado tampoco lo admitirían y querrían que votara en Dublín. Sin embargo, aunque he cambiado de país de residencia (y, por lo tanto, ahora trato con un consulado distinto), sigo votando en Santiago de Compostela, con lo que mi circunscripción electoral no ha variado, y, en teoría, deberían admitir mi reclamación cuando la presente. Ya os diré qué tal.
por jacobo el September 04, 2011 06:34 AM
Shit happens in many ways, and sometimes that means you release an application with some bugs you just can’t stand and need to roll out a bugfixing release as soon as possible. Does this sound familiar to you?
So that’s why this new release of frogr, just one week after the 0.6 version had been published, has arrived, taking care exclusively of fixing the following problems, as stated in the NEWS file:
From those above, patches for some them were already included in the debian packages from frogr’s Ubuntu PPA and in the package for the Mac, but the most important ones -the leaks- were not, so that’s why I decided to roll this new version out.
So that’s all, if you were already an user of frogr, go and grab it through the usual ways.
por msanchez el August 19, 2011 05:18 PM
por Juan José Iglesias González (noreply@blogger.com) el August 14, 2011 04:31 PM
After some changes here and there frogr 0.6 is finally out.
Besides the usual bugfixing work, the main new features on this release are:
As usual, you can get frogr through different ways: you can grab the source code from its git repository or via the xz and bzip2 tarballs, specific packages for Fedora or for Ubuntu (ranging from Karmic to Oneiric) and even a version for MacOSX, if you dare to use it.
By the way, at the moment frogr is already being packaged in some distros (see this) and others might follow, so perhaps it could be that you already were able to install it by just using your favorite package manager with the standard repos. Otherwise, it might be just a matter of time, I guess…
For more information about the project and also how to contribute, check out its web site.
Last, but not least, I’d like to make an special mention here to the awesome Quinn Dombrowski, who very well could be the “most passionate frogr user I’ve ever known” and who was kind enough to design, handcraft and send -from Chicago to Spain- a stuffed frogr mascot plus a beautiful vest for my son (which design comes also with its own incredible story), as a sign of gratitude for writing this tiny app. I’m still shocked about it, see what I’m talking about:
If you want to see more pictures you can check my set in flickr, although I warn you these two ones taken by the artist are way better than mine
Seriously Quinn… and yet once again: Thank you!
por msanchez el August 13, 2011 09:02 AM
“If a man does not know to what port he is steering, no wind is favourable to him.”
- Seneca
el July 18, 2011 08:32 AM