KISS

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.

How to dump an encrypted DVD with "dd"

I'm trying to get the ISO image of a DVD but Brasero without GNOME behaves oddly and, frankly, I'm fed up with such complex programs for such a simple task. All around I see you can use dd if=/dev/dvd of=fitxer.iso to dump the DVD (I'd swear this didn't work some time ago), but my disc is encrypted with CSS and there's always an input/output error after reading part of the disc.

To my suprise, I open the DVD in VLC (which uses the libdvdcss library to decrypt it) and, after playing it for some seconds and closing VLC… dumping with dd works flawlessly! I've tried several times with several DVDs and it seems to be sistematic. Maybe there's some peculiar interaction with my DVD unit (I didn't check others), but… ain't it cool?

Com bolcar un DVD xifrat amb "dd"

Vull obtenir la imatge ISO d’un DVD però Brasero sense GNOME fa coses estranyes i, francament, ja estic un poc fart de programes tan complexos per a una tasca tan simple. Veig per tot arreu que es pot fer servir dd if=/dev/dvd of=fitxer.iso per a bolcar el DVD (juraria que açò no funcionava abans), però el disc està xifrat amb CSS i sempre es produeix un error d’entrada/sortida després d’haver llegit part del disc.

Per a la meua sorpresa, òbric el DVD amb VLC (que fa servir la biblioteca libdvdcss per a poder desxifrar‐lo) i, després de reproduir‐lo uns segons i tancar VLC… ¡el bolcat amb dd funciona a la perfecció! Ho he provat més d’una volta i amb diversos DVD i sembla que és sistemàtic. Potser siga alguna interacció peculiar amb el meu lector de DVD (no ho he provat en cap altre), però… ¿a que mola?

Dissenyant coses simples

I think most people just make the mistake that it should be simple to design simple things. In reality, the effort required to design something is inversely proportional to the simplicity of the result.Roy T. Fielding

P2P lleugeret com una ploma

Tinc Deluged (node BitTorrent escrit en Python) i BlocksNet (node OFF escrit en Ruby) corrent simultàniament al meu venerable iBook G4 que ara fa sis anys. Càrrega màxima del sistema: 30%. Prengueu‐ne nota, emules i freenets del món!

Total Recoll

Fins ara venia fent servir (poc) el Tracker per a indexar i cercar els meus fitxers pel seu contingut, però estava un poc fart de la seua complexitat, de que les consultes fallaren cada dos per tres i d’altres símptomes GNOME‐cèntrics de creure saber què vol l’usuari millor que ell mateix. Ahir el vaig reemplaçar per Recoll, que té una configuració senzilla, un manual exceŀlent, un disseny simple i fàcilment extensible, corre quan li dius, i fins i tot indexa el meu correu sense necessitar monstres com l’Evolution. Patà volaora a Tracker!

Sincronitzant els porta-retalls amb autocutsel

Si vosaltres, com jo, mescleu aplicacions d’escriptori com Firefox o Pidgin amb unes altres més clàssiques d’X com Emacs, probablement també estigueu fins als nassos de que el porta‐retalls d’unes i altres vagen cadascú pel seu lloc, forçant‐vos a tirar mà del ratolí per a enganxar text de l’editor al navegador, o arriscant‐vos a enganxar al xat el text que no volíeu. Al nostre rescat arriba autocutsel, un senzill programa que s’encarrega de mantenir ambdós porta‐retalls sincronitzats. autocutsel -f al vostre fitxer .xsession i assumpte arreglat!

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! ;)

Tot és text!

Últimament estic fent prou d’edició de text en formularis web, i la veritat és que és un conyaso. Els navegadors web no proporcionen capacitats serioses d’edició de texts, més enllà del moviment bàsic del cursor, tallar, enganxar i desfer. I em sembla prou i massa. La feina del navegador és possibilitar la navegació per la web, la d’editar texts és de l’editor de text. Aproximacions com la de FCKeditor aporten massa complexitat i requeriments a les aplicacions web, a banda d’estar reinventant la roda. El que cal és una forma còmoda d’editar els texts dels formularis web amb l’editor sense anar copiant i enganxant amunt i avall.

Hui he trobat una extensió del navegador Firefox anomenada It's All Text! (my friend), que fa una cosa ben senzilla: donada una caixa de text d’un formulari web, llança l’editor de text favorit de l’usuari. En tancar l’editor, el text és posat automàticament a la caixa. Simple, veritat? Tant com cal. A més té el detall de no esborrar el fitxer de disc mentre no es tanca (correctament) el navegador. Molt important per a evitar sorpreses desagradables si fallen les connexions (o la llum).

Amb això i el mode Wikipedia per a Emacs estic editant aquesta entrada i açò és la glòria. KISS!

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>

:,-))))