bricolatge

warning: Creating default object from empty value in /home/ivan/vc/git/elvil-drupal/drupal/sites/all/modules/i18n/i18ntaxonomy/i18ntaxonomy.pages.inc on line 34.

My anti-RFID wallet

I built the wallet in the attached photograph hoping that it could block inadvertent detection of RFID chips included in more and more cards, which jeopardise our privacy in ways still unknown by most people. It consists of an empty cigarette case (which kept a delicious vanilla scent for a long time) and a simple strip of adhesive clear plastic film folded over itself like an accordion. Last weekend I checked that an RFID reader was unable to detect a card inside of the wallet. Hooray!

Mi tarjetero anti-RFID

Construí el tarjetero de la foto con la esperanza de que pudiera bloquear la detección inadvertida de los chips RFID que cada vez más tarjetas incluyen, y que ponen en riesgo nuestra privacidad de formas de que mucha gente aún no es consciente. Está construido con una pitillera vacía (que mantuvo durante mucho tiempo un delicioso aroma a vainilla) y una simple banda de forro de plastificar plegada sobre sí misma como un acordeón. Este fin de semana comprobé que un lector RFID era incapaz de detectar la tarjeta que había en su interior. ¡Viva!

El meu targeter anti-RFID

Vaig construir el targeter de la foto adjunta amb l’esperança de que poguera blocar la detecció inadvertida dels xips RFID que cada volta més targetes inclouen, i que posen en risc la nostra privadesa de formes de què molta gent encara no és conscient. Està construït amb un cigarrer buit (que va mantenir durant molt de temps un deliciós aroma a vainilla) i una simple banda de folre de plastificar plegada sobre ella mateixa com un acordió. Aquest cap de setmana vaig comprovar que un lector RFID era incapaç de detectar la targeta que hi havia a dins. Visca!

Uzbl, el navegador web amb filosofia Unix

Uzbl és un nou navegador web que segueix la filosofia Unix de comptar amb múltiples programes que fan una sola feina, la fan bé, i es poden combinar entre ells. El nucli de Uzbl està basat en WebKit, i es comunica amb l’exterior pels canals Unix tradicionals (fitxers, canonades, cues, connectors…) que permeten implementar les funcionalitats que l’usuari imagine com vulga. Recomane veure la presentació rellamp de Uzbl a la FOSDEM 2010. El navegador ideal per al bricoleur! ;)

El bonsái que rompió la maceta

En el relato Días verdes en Brunéi (Bruce Sterling, 1989) hay un bonsái. El arbolito es pequeño, crece con poca cosa e incluso lleva unas instrucciones detalladas para que su amo, Turner Choi, pueda cuidarlo. Debería de ser fácil para un ingeniero como él, y aún así el bonsái se va marchitando inexplicablemente con cada día que pasa.

Turner ha sido contratado por el sultanato de Brunéi para ayudar al pequeño país (embarcado en el ecologismo autosuficiente y el aislamiento cultural desde la crisis definitiva del petróleo) a abrir tímidamente su comercio marítimo al exterior. Turner es un bricoleur, un apasionado de la tecnología que sabe cómo arreglárselas reciclándola para darle utilidad. Recicla la obsoleta tecnología bruneana del siglo anterior para poner a punto unos astilleros robotizados, igual que los bruneanos reciclan las ciudades para convertirlas en granjas urbanas. Todo es reciclaje en Brunéi. Bien, todo excepto la realeza. ;)

El bonsai que trencà el test

Al relat Dies verds a Brunei (Bruce Sterling, 1989) hi ha un bonsai. L’arbret és menut, creix amb poca cosa i fins i tot porta unes instruccions detallades per a que el seu amo, Turner Choi, puga tindre’n cura. Hauria de ser fàcil per a un enginyer com ell, i tanmateix el bonsai es va marcint inexplicablement amb cada dia que passa.

Turner ha estat contractat pel sultanat de Brunei per a ajudar el xicotet país (embarcat en l’ecologisme autosuficient i l’aïllament cultural des de la crisi definitiva del petroli) a obrir tímidament el seu comerç marítim a l’exterior. Turner és un bricoleur, un apassionat de la tecnologia que sap com apanyar‐se‐les reciclant‐la per a donar‐li utilitat. Recicla l’obsoleta tecnologia bruneiesa del segle anterior per a enllestir unes drassanes robotitzades, igual que els bruneiesos reciclen les ciutats per a convertir‐les en granges urbanes. Tot és reciclatge a Brunei. Bé, tot excepte la reialesa. ;)

El bricolaje digital, Lovecraft y el viaje ciberiano

Hace unos días acabé de leer (como parte del Itinerario Indiano) Ciberia, un curioso libro donde Douglas Rushkoff muestra un panorama de personajes y tendencias alternativas o contraculturales de principios de los '90, ligadas todas por la experimentación de diferentes formas de explorar y construir la realidad colectivamente: hackers y crackers, viajeros psicodélicos, neopaganos tecnófilos, músicos industriales y house, escritores más o menos ciberpunk, jugadores de rol… ciberianos todos, habitantes de Ciberia, para Rushkoff.

Si seguís mi blog habréis visto que estos días también he estado liado haciendo pruebas con IPv6. Contrastando la experiencia con lo que narra el libro, me sorprende cómo el bricolaje digital se alinea con el esquema de viaje que resume cómo viven los ciberianos la exploración de la realidad. En primer lugar uno toma la determinación de adentrarse en el tema a tratar, tal vez atraído por las experiencias de otros o con propósitos concretos, aunque a menudo por el simple placer de hacerlo. Después comienza la propia experimentación, que requiere cierta autodisciplina para no perderse en la inmensidad de los nuevos caminos de conocimiento que se abren. Finalmente hay una vuelta o descenso a la realidad en que hemos de ser capaces de consolidar lo que hemos aprendido e incorporarlo a nuestra experiencia.

El ejemplo arquetípico descrito en Ciberia es el viaje psicodélico con sustancias como el LSD, donde la falta de autocontrol durante el apogeo o el descenso puede resultar en un mal viaje. Pero hay más formas de viajar de las que recoge Ciberia. Como el HPL.

El bricolatge digital, Lovecraft i el viatge ciberià

Fa uns dies acabí de llegir (com a part de l’Itinerari Indià) Cibèria, un curiós llibre on Douglas Rushkoff mostra un panorama de personatges i tendències alternatives o contraculturals de principis dels ’90, lligades totes per l’experimentació de diverses formes d’explorar i construir la realitat coŀlectivament: hackers i crackers, viatgers psicodèlics, neopagans tecnòfils, músics industrials i house, escriptors més o menys ciberpunk, jugadors de rol… ciberians tots, habitants de Cibèria, per a Rushkoff.

Si seguiu el meu blog haureu vist que aquests dies també he estat embolicat fent proves amb IPv6. Contrastant l’experiència amb allò narrat al llibre, em sorprén com el bricolatge digital s’alinea amb l’esquema de viatge que resumeix com viuen els ciberians l’exploració de la realitat. En primer lloc u pren la determinació d’endinsar‐se en el tema a tractar, potser atret per les experiències d’altres o amb propòsits concrets, però a sovint pel simple plaer de fer‐ho. Després comença la pròpia l’experimentació, que requereix una certa autodisciplina per a no perdre’s en la immensitat dels nous camins de coneixement que s’obrin. En acabant hi ha una tornada o descens a la realitat en la qual hem de ser capaços de consolidar el que hem aprés i incorporar‐ho a la nostra experiència.

L’exemple arquetípic descrit a Cibèria és el viatge psicodèlic amb substàncies com l’LSD, on la manca d’autocontrol durant l’apogeu o la davallada pot resultar en un mal viatge. Però hi ha més formes de viatjar de les que recull Cibèria. Com l’HPL.

XWrits to Workrave and back again

Portava molt de temps usant XWrits per a obligar‐me a fer pauses per a eviar la síndrome del túnel carpià. És un d’eixos programes senzills i que fan la seua feina bé: quan dus massa temps escrivint, mostra una finestra amb una imatge parpellejant que no deixa de fer la punyeta fins que descanses.

Al poc de temps vaig començar a usar el gestor de finestres Ion, que agrupa les finestres en marcs de forma que tries quina és visible mitjançant unes pestanyes. XWrits deixà de ser efectiu perquè quan la finestra punyetera apareixia, en seleccionava una altra i XWrits deixava de ser visible, així que passava olímpicament d’ell.

Aleshores vaig vore en una MaratOO.o el Workrave a l’ordinador de Jordi. Tenia bona pinta perquè, a banda de ser més pesat a l’hora de mostrar els avisos (quadre sense finestra directament sobre la pantalla) i proposar exercicis per al descans, també suggeria fer micropauses (descansos curts cada poc de temps). Així que em vaig passar a Workrave.

La veritat és que Workrave no està malament, però és un mamotret que ocupa prou de memòria, té estranyes interaccions amb altres aplicacions GTK+ i està contínuament alterant multitud de fitxers d’estat, cosa que em destorba a l’hora d’emprar Unison per a les còpies de seguretat.

Casualment l’altre dia vaig fer una ullada al manual d’XWrits a la web i em va sorprendre que, per a fer alhora micropauses i descansos es podia simplement llançar el programa dues voltes amb diferents arguments. «Vaja», vaig pensar, «què em deté ara de tornar al vell XWrits?». Els exercicis ja me’ls sabia de memòria però, i el problema de les finestres? Com faig per a no passar una altra volta d’XWrits?

Aleshores vaig recordar quelcom que he aprés després de tants anys d’usar Ion:

No hi ha res més incòmode en una interfície gràfica que les pròpies finestres flotants.

Doncs pareu l’orella que resulta que Ion és capaç de fer flotar finestres per sobre dels marcs. Quin usuari d’Ion voldria una finestra flotant, si són tan molestes? DONCS JO, per a que XWrits done bé la brasa quan toca! Ací va la configuració per a cfg_kludges.lua:

defwinprop {
    class = "XWrits",
    instance = "xwrits",
    float = true,
    switchto = false,
}

Amb això, i llançant XWrits tal que així a ~/.xsession:

# Per a les micropauses.
xwrits title=micropausa \
       typetime=5 breaktime=:30 canceltime=2 &
# Per als descansos.
xwrits title=descans \
       typetime=50 breaktime=10 canceltime=3 &

aconseguim una funcionalitat equivalent a Workrave, amb un programa molt més senzill! KISS!

Actualització (2007-09-12)

Que les finestres flotants d’XWrits siguen pesades passa, però que siguen escollides com a actives només apareixen és quasi, quasi perillós. Per això he afegit l’opció switchto = false, que evita aquest comportament. Així, quan apareix una finestra d’XWrits, la finestra en ús continua seleccionada.

fonts.conf

ivan[X]tardis:~$ cat ~/.fonts.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
        <match target="font">
                <edit name="antialias" mode="assign">
                        <bool>false</bool>
                </edit>
        </match>
</fontconfig>

:,-))))

Ortotipografia

Després de la genial FOSDEM 2006 (vegeu un resum en la web de Jordi Mallach), i de veure allà al Daniel Stone escriure una ela geminada prement AltGr+L, em vaig quedar amb les ganes de tenir-ho JA en el meu ordinador. Jordi i jo ho duiem rumiant un temps, i sembla que encara caldrà esperar un poc per a que l’X.org de Debian porte de casa aquesta funció (vegeu aquest altre text de Jordi).

D’altra banda, vaig veure l’altre dia una notícia a Barrapunto on es parlava de la distribució de teclat Colemak. Diu la gent de Colemak que s’inclouen caràcters per a diversos idiomes, incloent el català, i que funciona sota X. «Com ho hauran fet?», vaig pensar. I tafanejant un poc, vaig trobar que xmodmap admet noms de caràcter Unicode directament! Tios, vaig veure la llum! S’acabà el Control+Shift i l’ucs-insert!

Després d’instruïr‐me un poc sobre la forma correcta d’usar les cometes, apòstrof i guions, em vaig llançar a calçar els caràcters següents en el teclat via xmodmap:

  • L’ela geminada minúscula (ŀ, U+0140) i majúscula (Ŀ, U+013f).
  • Els punts suspensius (…, U+2026).
  • El guionet normal (‐, U+2010, sempre visible i separable), el dur (‑, U+2011, sempre visible i no separable) i el tou (­, U+00AD, visible a voltes i separable). Els dos últims més que res per completesa, ja que no s’usen massa.
  • El guió (—, U+2014).
  • La cometa simple esquerra (‘, U+2018) i la dreta (’, U+2019). Aquesta última resulta ser també la forma correcta de l’apòstrof.
  • L'espai dur ( , U+00A0, no separable).

Les ordres que vaig usar van ser:

# Per tal d’escriure fàcilment en català com 0xA mana…

# … l’ela geminada.  A la tecla de l’ela, naturalment.
# Substitueixen l’ela barrada polaca, que encara mantenim nacionalment
# en la tecla de la ve doble.
xmodmap -e "keycode 46 = l L U140 U13f U140 U13f"

# … els punts suspensius, on la resta dels punts,
# substituint el punt volat, que ja està en la tecla 3
# (i que esperem no tornar a usar, veritat? ;) ).
xmodmap -e "keycode 60 = period colon U2026 division U2026 division"

# … el guionet normal i el guió, on el menys i el guió baix,
# substituint els punts inferior i superior morts. (???)
xmodmap -e "keycode 61 = minus underscore U2010 U2014 U2010 U2014"

# … la cometa simple esquerra, en la ve, on és la cometa doble esquerra,
# substituint l’accent obert que encara està en la seua tecla.
xmodmap -e "keycode 55 = v V leftdoublequotemark U2018 leftdoublequotemark U2018"

# … la cometa simple dreta, en la be, on és la cometa doble esquerra,
# substituint l’apòstrof ASCII que encara està en la seua tecla.
xmodmap -e "keycode 56 = b B rightdoublequotemark U2019 rightdoublequotemark U2019"

# … l’apòstrof i l’espai dur, en la tecla de l’apòstrof ASCII,
# substituint la barra i interrogant invertits, que estan en altres llocs.
# He provat a posar l’espai dur en la tecla d’espai,
# però no sembla reaccionar.  Suggeriments?
xmodmap -e "keycode 20 = apostrophe question U2019 nobreakspace U2019 nobreakspace"

# … el guionet dur i el guionet tou, en la tecla de l'exclamació invertida,
# substituint la titlla ASCII que està en el 4 i en la ñ.
xmodmap -e "keycode 21 = exclamdown questiondown U2011 hyphen U2011 hyphen"

Amb això em sembla que es poden escriure texts en català ortotipogràficament correctes sense haver de perdre temps amb els símbols especials. També és cert que cal acostumar‐se a usar els nous símbols (guionets i apòstrofs són els que més rellisquen), però això és un altre tema! ;)

Actualització (2006-03-05)

Jordi Mallach m’avisa que «completitud» no és una paraula catalana. Com cantava Serrat, ai qui ho diriaaa! Acceptem completesa, doncs.

Actualització (2008-10-06)

Greg Baker ha penjat una plana molt completa on descriu els caràcters freqüentment confosos i com obtenir‐los en diferents sistemes.

UML ràpid com el llamp!

Preparant una màquina virtual amb User Mode Linux (UML) per al taller de seguretat de l'altre dia va ocórrer-me una cosa ben estranya: vaig crear un ordinador virtual ultra-ràpid! Mireu si no l'eixida d'aquesta ordre (damocles és la màquina virtual):

ivan@damocles:~$ time sleep 60

real    0m7.565s
user    0m0.000s
sys     0m0.490s
ivan@damocles:~$

Uau! Un ordinador que fa una espera d'un minut en set segons i mig! No és genial?

Doncs no, no ho és. Proveu a fer una connexió per SSH o IMAP a una màquina així. Abans de que tingueu temps d'entrar la contrasenya, el servidor diu que la connexió ja ha expirat! O sou Billy «dits ràpids» o no hi ha forma d'entrar.

Ja havia llegit la frase de Linus Torvalds dient que Linux és tan ràpid que completa un bucle infinit en 10 segons, però no em va semblar que fora el cas. Després de quasi un dia de trencar-me les banyes amb el portàtil i la màquina virtual, una sospita («idea feliç», que diuen els matemàtics) s'apoderà de mi. Així que vaig consultar les caràctiques de la CPU de tardis, la màquina amfitriona:

ivan[LX]tardis:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Pentium(R) 4 CPU 2.53GHz
stepping        : 7
cpu MHz         : 315.495
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce [...]
bogomips        : 4997.12

ivan[LX]tardis:~$

CPU de 2.5 GHz funcionant a 315 MHz (gràcies a CPUFreq i PowerNowd) per a estalviar bateria. Sense novetat en el front. Però, ostres, i si UML usa la freqüència en Hz de la CPU amfitriona per a saber quants tics de rellotge dura un segon? Si així fora, l'acceleració hauria de ser proporcional a la disminució de freqüència. Així que vaig posar el portàtil a la freqüència màxima i torní a llençar la UML i l'ordre anterior:

ivan@damocles:~$ time sleep 60

real    1m0.116s
user    0m0.030s
sys     0m0.060s
ivan@damocles:~$

Ei, això és un minut! Bé, el meu ordinador virtual torna a respectar les lleis de l'espai-temps. Prenguem nota de la freqüència de la CPU amfitriona:

ivan[LX]tardis:~$ cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Pentium(R) 4 CPU 2.53GHz
stepping        : 7
cpu MHz         : 2523.968
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce [...]
bogomips        : 4997.12

ivan[LX]tardis:~$

Es compleix la proporcionalitat? D'una banda tenim una acceleració de 2523.968 MHz / 315.495 MHz = 8, val. I d'altra banda, 60.116 s / 7.565 s = 7.95, voilà!

En efecte, és necessari posar la màquina amfitriona a la freqüència màxima (on un segon dura un segon, per dir-ho així) per a llençar-hi una màquina UML. Fixeu-vos en que és un poc desconcertant veure com la mateixa màquina UML amb la mateixa configuració en l'amfitriona funciona en un ordinador de sobretaula, però no en un de portàtil. Em sembla que posaré una nota al respecte en la guia UML+debootstrap.

Companys, què perversa és la informàtica!