software

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?

How to split the screen of a web browser

I've always missed the possibility of splitting Firefox's screen horizontally in order to view two parts of the same document stacked one over the other, e.g. for following internal references and footnotes, comparing passages or simultaneously seeing two different rows far apart in a very long table. A feature present long ago in editors like Emacs, spreadsheets and some other programs like Mac OS X's terminal emulators.

The other day, after trying some interesting but overkill solutions like Tile Tabs for Firefox or Split Screen for Greasemonkey I found this tip for splitting any browser's screen in two frames using a little Javascript. My version of it is even simpler since it always loads the current address. Just use the bookmark management window to create a new one (the quick method of clicking the star won't work), call it “Divide horizontally” (or whatever) and enter the following location:

javascript:with(document){write('<frameset%20rows="*,*">\n<frame%20src="'+location.href+'"/>\n<frame%20src="'+location.href+'"/>\n</frameset>');close()}

If you want a vertical division instead of horizontal, just change rows by cols. When you select the new bookmark while having a page open, the screen will split into two frames with the same page. Voilà!

Caveat: this code doesn't really split the current document's view, instead it reloads its address both in the upper and lower frame. Since two independent documents are created I don't expect this to work too well with dynamic pages and form results. In fact, I doubt that the same document can actually be shown in two simultaneous views while respecting the CSS standard (where should an element fixed to the top right of the view be shown?).

Nonetheless, it's a really simple approach which works most of the time. :)

Cómo dividir la pantalla del navegador web

Siempre he echado en falta en Firefox la posibilidad de dividir la pantalla horizontalmente para poder ver dos partes del mismo documento una sobre la otra, p.ej. para seguir referencias internas y notas al pie, comparar pasajes o ver simultáneamente dos filas separadas en una tabla muy larga. Una función presente desde hace tiempo en editores como Emacs, las hojas de cálculo y en algunos otros programas como el emulador de terminal de Mac OS X.

El otro día, después de probar soluciones interesantes pero excesivas como Tile Tabs para Firefox o Split Screen para Greasemonkey me encontré con este truco para dividir la pantalla de cualquier navegador en dos marcos usando un poco de Javascript. Mi adaptación es aún más sencilla porque siempre carga la dirección actual. Simplemente usad la ventana de gestión de marcadores para crear uno nuevo (el método rápido de hacer clic en la estrellita no funcionará), ponedle el nombre «Divide horizontalmente» (o lo que sea) y escribid en la dirección:

javascript:with(document){write('<frameset%20rows="*,*">\n<frame%20src="'+location.href+'"/>\n<frame%20src="'+location.href+'"/>\n</frameset>');close()}

Si queréis una división vertical en lugar de horizontal, cambiad rows por cols. Cuando escojáis el nuevo marcador teniendo abierta una página, la pantalla se dividirá en dos marcos con la misma página. ¡Voilà!

Cuidado, este código no divide realmente la vista del documento actual, sino que vuelve a cargar su dirección tanto en el marco de arriba como en el de abajo. Como se crean dos documentos independientes no creo que funcione muy bien con páginas dinámicas o resultados de formularios. De hecho, dudo que se pueda representar el mismo documento en dos vistas respetando el estándar CSS (¿dónde iría un elemento fijado a la esquina superior derecha de la vista?).

Aún así es una aproximación supersimple que funciona en un buen montón de casos. :)

Com dividir la pantalla del navegador web

Sempre he trobat a faltar en Firefox la possibilitat de dividir la pantalla horitzontalment per a poder veure dues parts del mateix document l’una sobre l’altra, p.ex. per a seguir referències internes i notes al peu, comparar passatges o veure simultàniament dues files separades en una taula molt llarga. Una funció present des de fa temps a editors com Emacs, als fulls de càlcul i a alguns altres programes com l’emulador de terminal de Mac OS X.

L’altre dia, després de provar solucions interessants però excessives com Tile Tabs per a Firefox o Split Screen per a Greasemonkey vaig trobar‐me amb aquest truc per a dividir la pantalla de qualsevol navegador en dos marcs fent servir un poc de Javascript. La meua adaptació és encara més senzilla perquè sempre carrega l’adreça actual. Simplement feu servir la finestra de gestió d’adreces d’interès per a crear‐ne una de nova (el mètode ràpid de fer clic a l’estreleta no funcionarà), poseu‐li de nom «Divideix horitzontalment» (o el que siga) i entreu a la ubicació:

javascript:with(document){write('<frameset%20rows="*,*">\n<frame%20src="'+location.href+'"/>\n<frame%20src="'+location.href+'"/>\n</frameset>');close()}

Si voleu una divisió vertical en lloc d’horitzontal, canvieu rows per cols. Quan escolliu la nova adreça d’interès tenint oberta una pàgina, la pantalla es dividirà en dos marcs amb la mateixa pàgina. Voilà!

Compte, aquest codi no divideix realment la vista del document actual, sinó que torna a carregar la seua adreça tant al marc de dalt com al de baix. Com que es creen dos documents independents no crec que funcione molt bé amb pàgines dinàmiques o resultats de formularis. De fet, dubte que es puga representar el mateix document en dues vistes respectant l’estàndard CSS (on aniria un element fixat al cantó superior dret de la vista?).

Tanmateix és una aproximació supersimple que funciona en un bon grapat de casos. :)

Safari serà el nou Explorer 6

Molt bon article de Kroc Camen a OSNews on l’autor aposta que Apple seguirà amb Safari l’estratègia que Microsoft va seguir amb el seu Internet Explorer 6 per a minimitzar la utilitat de la web, portar els usuaris a les aplicacions locals (sobre les quals Apple cada volta exerceix més control) i així atreure desenvolupadors a les seues plataformes tancades. En aquest sentit, Microsoft i Apple juguen en el mateix bàndol contra Google en la guerra de la inteŀligència a l’ordinador o a la xarxa. Pels perills que comporta l’anomenat cloud computing de centralització i la manca de control sobre les pròpies dades, veig el programari lliure més proper al primer bàndol que al segon.

Bones notícies sobre patents

Dues bones notícies recents sobre patents: a Nova Zelanda, el Comité de Comerç rebutja les patents de programació a la nova Llei de Patents; als Estats Units, un jutge federal invalida dues patents sobre gens humans relacionats amb el càncer, parcialment en propietat d’una universitat pública per a més inri (via). Per cert, recordeu que la petició de la FFII i Eurolinux contra les patents de programació a la Unió Europea continua oberta.

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.