Lo hice y lo entendí

El blog de Vicente Navarro
02 sep

Configurar un FVWM con sabor clásico en Debian

¿Te sentiste melancólico al leer la entrada Los Linux de mi vida? ¿Te llenó de nostalgia ver la captura de pantalla que tomé de las X Windows con FVWM en Slackware 1.1.2?

A mí, desde luego, sí, y por eso me puse a ver cómo poner un FVWM con el sabor de aquél en una Debian moderna. Y lo digo porque el FVWM puede tomar más aspectos diferentes que un camaleón, como podemos ver en la página de capturas de pantalla de FVWM. Por tanto, voy a proponer, con unos pocos y sencillos pasos una forma para disfrutar un ratito de un FVWM “retro” con una Debian actual. En este viaje al pasado no vamos a romper nada ni vamos a cambiar nada de la configuración actual que podamos tener para arrancar KDE, Gnome, o lo que sea que estemos usando, ya que entiendo que nadie quiera usar esta configuración para siempre…

1) Instalamos el paquete fvwm1:

# apt-get install fvwm1
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
  librplay3
The following NEW packages will be installed:
  fvwm1
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/297kB of archives.
After unpacking 831kB of additional disk space will be used.
Selecting previously deselected package fvwm1.
(Reading database ... 146100 files and directories currently installed.)
Unpacking fvwm1 (from .../fvwm1_1.24r-51.2_amd64.deb) ...
Setting up fvwm1 (1.24r-51.2) ...

2) Copiamos este fichero system.fvwmrc-menu a /etc/X11/fvwm/. Opcionalmente, antes de hacerlo, podemos querer hacer un backup del archivo system.fvwmrc-menu que pone Debian por defecto.

3) Ejecutamos “update-menus” para añadir todos los programas instalados en el sistema al menú de FVWM. En Debian, el fichero system.fvwmrc-menu es una plantilla a partir de la cual el update-menus crea un system.fvwmrc con un menú con todos los programas. Igual que hace con cualquier gestor de ventanas instalado en el sistema.

4a) Si estamos usando un Display Manager o Login Manager como kdm, gdm o xdm, lo paramos con /etc/init.d/kdm stop, /etc/init.d/gdm stop o /etc/init.d/xdm stop. Si estábamos en una sesión gráfica se cerrará y volveremos a la consola de texto.

4b) Si solemos entrar en las X Windows con startx, salimos.

5) Si existe el fichero ~/.xinitrc en el $HOME de nuestro usuario, podemos hacer una copia de seguridad o renombrarlo temporalmente. En cualquier caso, editamos el fichero ~/.xinitrc y en la primera línea ponemos “fvwm“.

6) Ejecutamos startx y ¡volvemos 12 años atrás!

¿Qué cambios lleva el fichero system.fvwmrc-menu que propongo sobre el de por defecto de fvwm1?

Sigue leyendo »

02 sep

Deshabilitar los comentarios en todas las entradas de WordPress

En algunos casos puede interesar que la base de datos de WordPress no cambie durante algún tiempo para cualquier tarea de mantenimiento. Nuevas entradas, si tú eres el único que escribe el blog, no va a haber, claro. Pero te puede interesar que nadie haga el esfuerzo de escribir nuevos comentarios si luego podría ocurrir que se fueran a perder.

Para ello, puedes cerrar los comentarios y los pings en todas las entradas fácilmente entrando en mysql:

mysql -u usuario_mysql_wordpress -p nombre_base_de_datos_wordpress

y ejecutando la siguiente sentencia SQL:

UPDATE wp_posts SET comment_status = 'closed', ping_status = 'closed' WHERE comment_status = 'open';

Para volver a permitir los comentarios después:

UPDATE wp_posts SET comment_status = 'open', ping_status ='open' WHERE comment_status = 'closed';

Encontrado en: Enable or Disable WordPress Comments on all posts in one step

01 sep

La importancia de comprar hardware con drivers abiertos

Hace un rato os contaba cómo configurar el Epson 2480 en Linux. Ha sido muy fácil, ¿verdad? Bueno, pues era más bien una excusa para entrar caliente en un tema que quería abordar hace tiempo…

Siendo el caso del Epson Perfection 2480 uno de los casos más fáciles que podemos encontrar para configurar un dispositivo hardware que no esté directamente soportado por el kernel, nos toca reconocer que a Linux aún le queda un buen camino que recorrer en el área del reconocimiento automático del hardware, algo que sin el apoyo real de los fabricantes nunca será posible del todo. Este dispositivo está bien soportado en Linux, pero como el firmware es cerrado, no puede ser incluido en distribuciones que tengan un mínimo reparo a las licencias del software que incluyen.

En la época de Windows 95 anterior a la llegada del 98 teníamos otro escáner, un Mustek Paragon 6000p de puerto paralelo. Estábamos contentos con aquel escáner, aunque como el 486 no tenía EPP/ECP, la velocidad de transmisión de imágenes al PC era lamentable. Pero bueno, el caso es que cuando salió Windows 98, Mustek no sacó drivers para este nuevo sistema operativo. Incluso hoy en día, si vamos a la página de drivers del 600 III EP Plus (¡el 6000p no está!) vemos que sólo hay drivers para Windows 95. ¿Qué pasó? Pues que si migraba no tenía escáner. Ahí me di cuenta de que si el escáner estaba soportado en Linux con un driver abierto (sí que lo está, aunque no sé desde cuándo), jamás me tendría que preocupar en adelante porque un dispositivo hardware dejara de estar soportado. Desafortunadamente, aquel escáner tuvo una muerte temprana, pero si aún estuviera funcionando, yo, en 2007, más de 10 años más tarde, podría poneros capturas obtenidas con él con mi Debian, pero desde luego no podría hacer lo mismo con Windows XP ni con Vista.

Estos problemas le ocurrieron a mucha gente cuando Windows 98 no aceptaba los drivers de Windows 95 y el fabricante no hacía drivers para dispositivos de un año o dos de antiguedad para Windows 98. Volvió a ocurrir cuando muchos dispositivos quedaron en la cuneta en el paso a Windows 2000. Ahora, como los drivers de Windows 2000 sirven para Windows XP, llevamos mucho tiempo sin vivir estos problemas y se nos habían olvidado, pero con la salida de Vista, de nuevo está ocurriendo que ante la ausencia de drivers para Vista, muchos tienen que elegir entre su hardware o Vista (que yo lo tendría claro, pero en fin, para gustos están los colores).

Es el paraíso de los fabricantes. No me extrañaría que desearan con todas sus fuerzas que con cada nueva versión Microsoft cambiara el formato de sus drivers para que todos los usuarios tiraran a la basura sus dispositivos totalmente funcionales y compraran nuevos compatibles con el nuevo Windows Tuerto de turno.

Y es que comprar hardware para el que exista un driver en Linux te garantiza que tu hardware morirá cuando tú quieras, no cuando quiera el fabricante dejar de soportar el dispositivo porque con dos años ya está obsoleto.

Pero no sólo eso: Hay esforzadísimos programadores de drivers de Linux que se lo curran muchísimo para, contra el viento y la marea de los fabricantes que no proporcionan las especificaciones de sus dispositivos, crear drivers usando ingeniería inversa de los drivers de Windows. Su labor es altamente loable, pero no hemos de conformarmos con eso. Un driver obtenido por ingeniería inversa normalmente será de peor calidad que uno hecho a partir de las especificaciones. Así que, como dicen los americanos, tenemos que votar con nuestros euros y favorecer a los fabricantes que proporcionan las especificaciones de su hardware o, incluso mejor, que favorecen e impulsan la creación de drivers abiertos.

El poder está en nuestras manos si lo usamos bien. Si te vas a comprar una tarjeta WiFi fíjate en que Ralink hace un esfuerzo grande para que tengamos buenos drivers para sus chips, fíjate en que Intel proporciona los mejores drivers abiertos de procesadores gráficos de hoy en día, fíjate en que con la ayuda para hacer drivers para Linux que proporciona VIA a los desarrolladores y los que ella misma distribuye, las placas VIA EPIA van mejor en Linux que en Windows…

…y fíjate en que si ahora mismo NVidia y ATI cerraran sus puertas, nos quedaríamos con tarjetas gráficas compradas por entre 100 y 600€ que en pocos meses no servirían para nada que no fuera 2D.

Por tanto, por favor, antes de comprar cualquier hardware nuevo, comprueba previamente si está soportado en Linux. Estarás favoreciendo a los fabricantes que colaboran con la comunidad de código abierto, estarás perjudicando a los que no lo hacen y, sobre todo, saldrás ganando tú. Es posible que no uses Linux ni quieras usarlo en el futuro, pero haciéndolo así sabes que dentro de 10 años, si quieres volver a usar ese dispositivo que tienes en el armario, podrás hacerlo, aunque tenga que ser con Linux.

01 sep

El escáner Epson Perfection 2480 en Linux

Hace unos años compramos en casa un escáner Epson Perfection 2480 para un tema muy concreto que tuvimos que hacer en Windows. Es un buen escáner. Como llevábamos tiempo buscando uno que diera una calidad razonable sin llegar al precio de un escáner profesional, cuando dimos con él por fin pudimos respirar, ya que habíamos tenido que devolver varios anteriormente porque de verdad no llegaban al límite de lo aceptable.

Epson Perfection 2480

Ya no lo habíamos vuelto a usar desde entonces, pero hace unos días lo recuperé para escanear los CDs de la entrada Los Linux de mi vida. Como no podía ser de otra forma, lo hice en mi Debian, así que os voy a contar los pasos que hay que seguir para ello.

1) Instalar el SANE (Scanner Access Now Easy), si no lo está ya:

apt-get install libsane

El paquete libsane-extras contiene soporte para algunos escáneres adicionales.

2) Desde la página lista de escáneres soportados por SANE vamos a la página del driver SnapScan, que es el que hace falta para este dispositivo, que nos informa de que necesitamos obtener el fichero de firmware esfw41.bin de los drivers de Windows.

2a) Descargamos el driver del Epson Perfection 2480 para Windows, que es un fichero zip autodescomprimible. Lo descomprimimos con unzip y obtenemos varios ficheros, uno de los cuales es el ModUsd.cab. Si lo descomprimimos con cabextract encontraremos finalmente el esfw41.bin.

O también:

2b) Si tenemos el driver instalado en Windows, copiamos el fichero de c:\windows\system32

3) Copiamos el fichero esfw41.bin al sitio que deseemos del sistema de ficheros

4) Editamos el fichero /etc/sane.d/snapscan.conf y especificamos el sitio donde hemos dejado nuestro fichero de firmware:

# Change to the fully qualified filename of your firmware file, if
# firmware upload is needed by the scanner
firmware /mi/path/esfw41.bin

5) Editamos el fichero /etc/group y añadimos el usuario que vaya a hacer uso del escáner (no se debe usar root para esto) al grupo scanner.

scanner:x:110:supercoco

6) Usamos unos de los frontends de SANE para escanear, como por ejemplo el XSane, casi tan bueno o más que el software oficial Epson para Windows.

XSane Scanning Devices

XSane Preview

¡Ya está! Como veis, no tiene ninguna complicación. Al final, si no fuera por el fichero de firmware y por tener que darle permisos al usuario para escanear, no habría que hacer nada, sólo pinchar y usar (plug & play).

30 ago

Recuperar una entrada perdida de WordPress. MySQL Point-in-Time recovery: mysqlbinlog.

Estaba ayer finalizando la entrada Los Linux de mi vida en el editor de WordPress cuando en un momento dado quise deshacer lo último que había escrito y pulsé Control+Z. Vi algo raro en la pantalla (aparecía todo el texto seleccionado y hubo unos movimientos raros de texto) pero no le di mayor importancia. Le di a guardar y refresqué la página para ver cómo iba quedando el borrador.

Cuando vi que únicamente me aparecían unos cuantos párrafos del principio me dio un vuelvo el corazón. ¡No sé cómo, había borrado casi todo el texto y lo había guardado!

Y bueno, no es que la pérdida fuera brutal. Supongo que algún empleado de banca que pierda todas las transacciones de un día tiene más motivos de qué preocuparse, pero el cabreo y el disgusto no te lo quita nadie por un rato. Por supuesto, pasé por todas las fases que se requieren en estos casos. A saber:

  • Negación: ¡No puede ser! ¡No ha ocurrido! ¡Es un mal sueño!
  • Enfado: ¡Me ca%$ en tó lo que se menea!
  • Discusión: ¡Pues ahora la entrada esta la va a escribir Rita la Cantaora!
  • Depresión: ¿Por qué a mí? ¿Qué he hecho yo para merecer esto?
  • Aceptación: ¡En fin! ¿Qué voy a hacer? Reescribiré la entrada… como ya la había escrito una vez y tenía las ideas claras, igual ahora sale mejor.

Cuando se me fue despejando la mente pensé que si en Oracle existían los Redo Logs (Oracle: Managing the Online Redo Log) y la posibilidad de indagar en ellos con el LogMiner (Oracle 10g: Using LogMiner to Analyze Redo Log Files, Oracle Magazine: Mining for Clues), y la capacidad de dejar la base de datos como estaba en un momento dado en el pasado o Point-In-Time Recovery (Oracle 10g: Performing Database Point-In-Time Recovery), igual había algo similar para MySQL que me permitiera deshacer los últimos cambios.

Sigue leyendo »

29 ago

Los Linux de mi vida

Como hoy tengo cuerpo de abuelo cebolleta, voy a contaros la batallita de los Linux que han pasado hasta el momento por mi vida. Igual que el programa de TVE que había hace tiempo llamado Las canciones de tu vida pero con distribuciones de Linux en vez de con canciones.

Corría el año 1994 cuando me compré un flamante 486DX2 66MHz con 4MB de RAM, 400MB de disco y una Cirrus Logic CL-GD5428. Era una máquina impresionante, porque ya tenía bus PCI además del típico VESA Local Bus de la época. Como siempre ocurre en el mundillo, a pesar de la fortuna que costó, pronto hubo que añadirle 4MB más y ponerle otro disco duro más grande. En sus primeros meses de vida, mi potentísimo ordenador usó MS-DOS 6.2 y Windows 3.1. Aunque le sacaba buen provecho, notaba que algo no iba fino del todo: El MS-DOS era muy limitado y en el Windows 3.1, las inestabilidades del sistema eran continuas.

En ese mismo año salió el OS/2 3.0 Warp, sistema operativo que pudo ser algo y no lo fue. Salió en muy buen momento, antes del Windows 95 y todo eran ventajas: Multimedia, Internet, multitarea real, soporte completo de aplicaciones de Windows 3.1 y MS-DOS, no se colgaba nunca… El precio muy razonable (yo aún lo tengo original) y hubo una fuerte campaña de publicidad por parte de IBM: ¿Alguien se acuerda de los anuncios de Antonio Resines diciendo que él guardaba su colección de bigotes en OS/2?. Sin embargo, no cuajó. Tal vez porque con 4MB (muy pocos tenían más de eso: 4MB adicionales valían sobre 30000 ptas) no iba demasiado bien, o tal vez porque todo el mundo estaba demasiado expectante ante la inminente salida del Windows 95. Con el OS/2 le puse mis primeros cuernos a Microsoft.

Por aquellos días alguien me ofreció probar una cosa llamada Linux (era la primera vez que oía tal palabra) que era como si fuera UNIX, algo que sí me sonaba algo más, pero vamos, que sólo eso, sonarme. Lo asociaba a un MS-DOS (por lo de las letras blancas sobre fondo negro) en el que se podían hacer muchas cosas serias.

Me decidí a probarlo. Copiarme los disquetes (era lo único que teníamos para meter cosas en el ordenador por aquél entonces) del tal Linux iba a ser costoso para mi, porque hacían falta unos 30 disquetes en una época en la que cada caja valía unas 1000 ptas, y eso si eran sin marca.

Sigue leyendo »

25 ago

Configuración de una Hauppauge WinTV-HVR-1100 en Linux

En Sobre las VIA EPIA (II): Mi ordenador basado en una SP8000E comentaba que tengo una Hauuppauge WinTV-HVR-1100 y tenía pendiente contar cómo configurarla en Linux. Se trata de una tarjeta híbrida, capaz de sintonizar TV analógica, TDT (DVB-T) y radio FM. Usa el chip Conexant CX23880, sucesor de los famosos chips BT878 y BT848 de la empresa Brooktree. En 1996 Brooktree fue comprada por Rockwell International y en 1999 la división de semiconductores de dicha compañía, Rockwell Semiconductor, se segregó dando lugar a Conexant.

Si estás pensando en comprar esta tarjeta, es posible que también te interese considerar a los modelos superiores, la WinTV-HVR-1300, con codificador de MPEG2 por hardware y la WinTV-HVR-3000, con soporte adicional de DVB-S (emisiones por satélite en digital) .

Hauppauge WinTV-HVR-1100

Sigue leyendo »

22 ago

Directorio por defecto del Explorer de Windows. Combinaciones útiles de la tecla Windows.

Acabo de ayudar a mi chica a configurarse su portátil nuevo. Entre otras cosas, quería que al darle al icono del Explorer que hay en el menú Inicio (ella se lo había copiado a la barra de Inicio Rápido) el Windows Explorer no se le abriera por defecto en el directorio de Mis Documentos.

Icono del Windows Explorer en el menú Inicio

Mis Documentos Windows

Sigue leyendo »

02 ago

Sobre el plugin de Flash en Firefox/Iceweasel en Debian AMD64: El nspluginwrapper aceptado en Testing

Me encanta tener el Debian AMD64. Lo uso desde que tengo mi ordenador principal con un procesador Athlon64 y cuando el AMD64 aún no era una arquitectura oficialmente soportada por Debian (lo es desde Debian 4.0 Etch). Eligiendo este port liberamos a nuestro ordenador de compatibilidades hacia atrás con arquitecturas de hace 20 años (386) y elegimos binarios que únicamente se tienen que ajustar a modelos mucho más recientes de procesadores (el primer Opteron con soporte de AMD64 salió en el 2003).

La única pega por la que me he sentido siempre atado ha sido el plugin de Flash Player, ya que aunque existe para Linux, Adobe aún no se ha dignado a sacarlo para plataformas de 64 bits. Ni siquiera tras la salida del Flash 9:

When will a 64-bit version of Adobe Flash Player for Linux be available?

The Adobe Flash Player team is working on support for 64-bit platforms as part of our ongoing commitment to the cross-platform compatibility of Adobe Flash Player. We have not yet announced timing or release dates.

Que no se me entienda mal… yo odio el abuso de los contenidos en Flash, como todo hijo de vecino que entiende cómo funciona una web y la indexación de contenidos por los buscadores y la accesibilidad y todo eso. Sin embargo, entiendo que el producto tiene su nicho de mercado legítimo en los contenidos multimedia, como juegos, animaciones, aplicaciones interactivas y… ¿cómo no? En vídeos. Mientras que tradicionalmente ha sido un lío configurar un Linux para poder ver bien los vídeos incrustados en páginas web, el Flash Player ha llegado y nos ha resuelto todos los problemas de un tacazo. ¿Qué internauta linuxero de hoy en día tiene problemas para ver vídeos de YouTube o similares con el plugin de Flash Player?

Sigue leyendo »

29 jul

pump no funciona con los Zyxel Prestige 660HW-61

¿Tienes un router ADSL Zyxel Prestige 660HW-61? ¿Cuando arrancas con Knoppix (o con distribuciones derivadas de Knoppix) no eres capaz de obtener una dirección IP por DHCP?

No te vuelvas loco… El cliente de DHCP pump, que es el que lleva por defecto Knoppix, no es capaz de obtener una IP por DHCP de un 660HW-61 (al menos no el mío con firmware V3.40(PT.0)b46 de Telefónica). Hay incluso un bug de Debian abierto que expone el problema: Bug#362207: pump does not get IP address from Zyxel Prestige 660HW-61.

Como hay varios clientes de DHCP para Linux:

# apt-cache search "dhcp client"
dhcdbd - D-Bus interface to the ISC DHCP client
dhcp-client - DHCP Client
dhcp3-client - DHCP Client
dhcpcd - DHCP client for automatically configuring IPv4 networking
pump - BOOTP and DHCP client for automatic IP configuration
resolvconf - nameserver information handler
udhcpc - very small DHCP client

la solución es usar uno de los otros, siendo el dhcp3-client el que instala Debian por defecto y funciona bien con este router.

Si estamos con Knoppix o con algún otro LiveCD, como no podemos instalar un cliente diferente, tendremos que asignar la IP manualmente tras eliminar todos los pump que puedan estar corriendo con un “killall -9 pump” seguido de un “ps -ef | grep pump“. El pump puede tardar un poco en morir, así que esperamos a que lo haga y a que no salga en la lista del ps. A continuación, si nuestro interfaz ethernet es el eth0, nuestro router tiene la IP 192.168.1.1/24 y la dirección que queremos asignarle al sistema es la 192.168.1.40, para especificar la IP, añadir la IP del servidor de nombres (en este caso el propio router) y añadir la ruta por defecto haremos:

# ifconfig eth0 192.168.1.40 netmask 255.255.255.0 up

# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:16:D4:C3:D2:F2  
          inet addr:192.168.1.40  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:4248 (4.1 KiB)  TX bytes:2128 (2.0 KiB)
          Interrupt:16 

# echo 'nameserver 192.168.1.1' >> /etc/resolv.conf

# cat /etc/resolv.conf
# Insert nameservers here
# nameserver 127.0.0.1
nameserver 192.168.1.1

# route add default gw 192.168.1.1

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
default         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
Tema LHYLE09, creado por Vicente Navarro