16 abr
Recientemente un familar muy cercano se ha comprado un flamante portátil HP Pavilion dw9286ea. Es, y será durante unos meses, un ordenador impresionante, con Intel® Core™ 2 Duo T5600, 2GB de RAM, dos discos de 120Gb, NVIDIA® GeForce™ Go 7600 con 512Mb de memoria dedicados, pantalla BrightView de 17″ y para redondear, sintonizador de DVB-T y mando a distancia.
Viene con Windows Vista, y aunque el Knoppix va de maravilla en él, su propietario prefiere tener Windows XP, ya que los programas de CAD no van bien en Vista ni en términos de rendimiento ni en términos de compatibilidad. En cualquier caso, aunque no usara CAD yo apoyaría la decisión, ya que el Windows Vista parece un sistema operativo mucho más bloated que el veterano XP. Y de cualquier forma, parecería conveniente esperar a que el SP1 apareciera antes de que acabe el 2007.
Sigue leyendo »
Publicado en Hardware, Windows | Etiquetas: drivers, nLite, SATA, VFD, Windows | | Escrito por Vicente Navarro
13 abr
Estaba intentando hacer un CGI muy sencillo usando bash (como lo que quería hacer era algo muy específico de bash, no he querido usar ni Perl, ni PHP). La única dificultad que he encontrado ha sido obtener las distintas variables que el método GET pasa al CGI a través de la variable $QUERY_STRING, que normalmente tiene este aspecto:
QUERY_STRING='parametro1=valor1¶metro2=valor2¶metro3=valor3'
Estaba yo ya comenzando a darle vueltas a una Expresión Regular para interpretar dicha salida cuando he decidido buscar en Google para ver si alguien tenía una solución más completa que la que yo ya tenía a medias. He llegado al artículo CGI Scripting Tips for Bash or SH que propone lo siguiente para extraer del QUERY_STRING la variable que nos interese:
PARAMETROX=`echo "$QUERY_STRING" | grep -oE "(^|[?&])parametrox=[^&]+" | sed "s/%20/ /g" | cut -f 2 -d "="`
Y es que con bash y sus compañeros sed, awk, cat, grep, etc. aún se puede hacer casi de todo, incluso un weblog o un servidor web. Como las Expresiones Regulares son tan excepcionalmente útiles como complicadas a la hora de usarlas, me he decidido a comentar algunos ejemplos, comenzando por el que me ha llevado a este artículo.
Sigue leyendo »
Publicado en GNU/Linux, UNIX | Etiquetas: aMule, awk, Debian, ed2k, expresiones regulares, GNU/Linux, grep, sed, shell, UNIX | | Escrito por Vicente Navarro
05 abr
Todos los ficheros y directorios en un sistema UNIX tienen asociado un número compuesto de cuatro cifras en octal. Los tres dígitos menos significativos (least significant digit) especifican los permisos que tienen los usuarios sobre ese fichero (lectura (r), escritura (w) y ejecución (x) para el usuario, los usuarios pertenecientes al grupo o para otros):
sst rwx rwx rwx
421 421 421 421
S U G O
S=SUID, SGID y Sticky Bit
U=Usuario
G=Grupo
O=Otros
Esto forma parte de los conocimientos básicos y mínimos de cualquier usuario de UNIX y podemos leer sobre ello en Permisos de ficheros del manual Seguridad en UNIX y Redes. También es muy conocida la existencia de los bits SUID y SGID, formados por los dos bits más significativos del octal más significativo. Aplicados sobre un fichero ejecutable, permiten que el programa se ejecute como si lo hiciera el usuario propietario (SUID) o el grupo propietario(SGID) del fichero.
Pero el propósito de esta entrada es resaltar la curiosidad, bastante menos conocida, de aplicar el bit menos significativo de la cifra octal más significativa (el que en el esquema anterior he marcado con una t), el Sticky Bit, a un directorio (aplicado a un fichero no se usa para nada en la gran mayoría de los UNIX modernos). En el man del chmod leemos:
Sigue leyendo »
Publicado en GNU/Linux, UNIX | Etiquetas: Debian, filesystems, GNU/Linux, Sticky Bit, UNIX | | Escrito por Vicente Navarro
03 abr
En el pasado a menudo he tenido problemas con los acentos y las eñes al montar particiones FAT o NTFS o al montar o compartir directorios usando Samba. Esto ocurre porque GNU/Linux usa distintos juegos de caracteres que Windows y DOS. En esta entrada vamos a tratar de aclarar todos los aspectos que pueden impedirnos disfrutar de nuestra apreciadas eñes cuando nos enfrentamos con ficheros cuyo origen o destino sea un sistema operativo de Microsoft.
á é í ó ú ñ Á É Í Ó Ú Ñ €
Existe una multitud de juegos de caracteres. Podemos ver muchos de ellos en popular character encodings . Allí vemos el Windows-1252, el CP850, el ISO 8859-1 (Latin 1), el ISO 8859-15 (Latin 9) o el Unicode (con su sistema de codificación de longitud variable más típico, el UTF-8) , que son los que más nos interesan para el asunto que nos ocupa aquí en España. En el artículo de la WikiPedia Western Latin character sets tenemos una tabla mostrándonos las diferencias entre estos juegos de caracteres.
Antes de poner manos a la obra, es conveniente que verifiquemos que el bash nos muestra correctamente acentos, eñes y si acaso, el símbolo del euro € escribiendo en un terminal áéíóúÁÉÍÓÚñÑ€. Si no salen bien, puede ser por dos motivos principalmente:
- El bash no está correctamente configurado para mostrar acentos. Esto ocurría bastante hace unos años, y era necesario hacer todo tipo de ajustes. Sin embargo, en las distribuciones actuales normalmente no es necesario hacer nada.
- La fuente usada en el terminal que estamos usando (Consola de Linux, Putty, Konsole, GNOME Terminal, etc.) no lleva acentos o no están correctamente mapeados.
Sigue leyendo »
Publicado en GNU/Linux | Etiquetas: acentos, CP850, Debian, eñe, FAT, filesystems, GNU/Linux, internacionalización, ISO-8859, juegos de caracteres, Kernel, NTFS, NTFS-3G, Samba, Unicode, UTF-8 | | Escrito por Vicente Navarro
29 mar
Linux ha mejorado mucho últimamente en lo que a dispositivos hotplug se refiere. Es mucho más flexible de lo que solía y con la últimas distribuciones y los últimos escritorios como KDE o GNOME, al meter una memoria USB, automáticamente nos la detecta y monta sin tener que hacer absolutamente nada más.
Esto se hace realidad gracias a tres componentes de Linux:
- El Linux Hotplugging, que se encarga de cargar automáticamente los módulos/drivers para los dispositivos que el kernel detecta, bien en el arranque, bien dinámicamente.
- El udev, que permite usar nombres lógicos en los ficheros de dispositivo (los que están bajo /dev).
- El HAL – Hardware Abstraction Layer, que es el que permitiría que, por ejemplo, al conectar una cámara de fotos nos saliera en el escritorio una aplicación de gestión de fotos, pero también se encargaría, por ejemplo, de montar automáticamente las memorias USB al conectarlas.
- El D-Bus, usado por el HAL para comunicar a todos los procesos interesados en la máquina los eventos de hardware que se vayan produciendo.
El documento de GNOME Integración de Hardware en el Escritorio cuenta todo esto muy bien en el capítulo El núcleo Linux y sus ayudantes.
Pero en este artículo quería centrarme en el udev. Yo tengo un montón de dispositivos de almacenamiento USB: Un dedo de 256MB (Kingston), otro de 512MB (sin marca aparente), otro de 8GiB (TrekStor) , un enclosure Venus DS3 con un disco Maxtor estándar de 250GB y finalmente, el típico lector de tarjetas de memoria (SD, CF, MS). Además también tengo por ahí un reproductor de MP3, la cámara de fotos, etc. El caso es que me resultaba muy desagradable tener que buscar cada vez en la salida del dmesg el fichero de dispositivo que le había tocado a cada cacharrito para poder montarlo. La solución a mi problema era el udev.
Sigue leyendo »
Publicado en GNU/Linux | Etiquetas: dbus, Debian, filesystems, GNU/Linux, hal, Kernel, memorias USB, udev | | Escrito por Vicente Navarro
21 mar
Tras las últimas instalaciones que he hecho de Debian, había una cosa que me disgustaba mucho Cuando ejecutaba “ls -la”, el comando me ordenaba las entradas escondidas (precedidas de punto) como si no lo tuvieran. Por ejemplo, si tenía un fichero llamado mi_fichero en el $HOME de root, el “ls -la” me devolvía lo siguiente:
rwxr-xr-x 8 root root 4096 2007-03-21 20:51 .
drwxr-xr-x 20 root root 4096 2006-11-18 11:34 ..
-rw------- 1 root root 6805 2007-03-19 19:56 .bash_history
-rw-r--r-- 1 root root 535 2006-11-11 11:10 .bashrc
drwxr-xr-x 2 root root 4096 2006-11-21 21:16 .config
-rw-r--r-- 1 root root 605281 2006-11-21 21:16 .fonts.cache-1
-rw-r--r-- 1 root root 0 2007-03-21 20:51 mi_fichero
-rw-r--r-- 1 root root 110 2004-11-10 17:10 .profile
-rw------- 1 root root 4394 2007-03-14 21:13 .viminfo
-rw------- 1 root root 0 2006-10-13 19:31 .Xauthority
-rw------- 1 root root 135 2006-10-13 19:31 .xsession-errors
cuando yo hubiera querido que me devolviera, como estoy acostumbrado, lo siguiente, para poder ver fácilmente qué archivos son los míos y cuáles son los de configuración (unos abajo y otros arriba del listado):
rwxr-xr-x 8 root root 4096 2007-03-21 20:51 .
drwxr-xr-x 20 root root 4096 2006-11-18 11:34 ..
-rw------- 1 root root 6805 2007-03-19 19:56 .bash_history
-rw-r--r-- 1 root root 535 2006-11-11 11:10 .bashrc
drwxr-xr-x 2 root root 4096 2006-11-21 21:16 .config
-rw-r--r-- 1 root root 605281 2006-11-21 21:16 .fonts.cache-1
-rw-r--r-- 1 root root 110 2004-11-10 17:10 .profile
-rw------- 1 root root 4394 2007-03-14 21:13 .viminfo
-rw------- 1 root root 0 2006-10-13 19:31 .Xauthority
-rw------- 1 root root 135 2006-10-13 19:31 .xsession-errors
-rw-r--r-- 1 root root 0 2007-03-21 20:51 mi_fichero
Sigue leyendo »
Publicado en GNU/Linux | Etiquetas: Debian, GNU/Linux, internacionalización, LC_COLLATE, ls | | Escrito por Vicente Navarro
15 mar
Uno de los primeros artículos del blog fue el de Algoritmos útiles en JavaScript. Allí puse un par de algoritmos muy sencillos en JavaScript que suelo usar a menudo. También puse un sencillo simulador de la Ley D’Hondt, pero lo dejé en una página externa al blog. Curiosamente, recibo muchas visitas a dicha página. Debe de ser porque en el momento de escribir estas líneas, esta página sale en el puesto 34 de Google al buscar Ley D’Hondt y las municipales del 2007 están a la vuelta de la esquina.
Bueno, pues ya que el simulador es popular, he decidido integrarlo más en la página para que se pueda usar sin tener que salir del blog. Como ya comenté, el algoritmo está en hondt.js, y la explicación del mismo en la web de Jordi Binefa.
Sigue leyendo »
Publicado en Misc | Etiquetas: JavaScript, Ley D'Hondt, ley electoral | | Escrito por Vicente Navarro
12 mar
Durante el pasado fin de semana tuve un nuevo efecto Barrapunto. El artículo “Por qué me gusta el Firefox” apareció en la portada por sí mismo, a diferencia de lo que ocurrió con el artículo “La pesadilla de compartir partición entre Linux y Windows” que, aunque apareció en portada, no suponía el meollo de la noticia.
Teniendo en cuenta que el artículo se publicó el Viernes 09/03/2007 a las 10:29h y estuvo en portada hasta el Lunes 12/03/2007 a las 12:50h, la distribución de las casi 5000 visitas ha sido:
Sigue leyendo »
Publicado en Sobre el Blog | Etiquetas: Barrapunto, blog | | Escrito por Vicente Navarro
11 mar
Desde que uso el excelente WordPress, hay algo que nunca me ha gustado: El no poder guardar las imágenes subidas al servidor desde el editor de entradas fuera del árbol de directorios de WordPress cuando la Dirección de WordPress es distinta de la Dirección del blog. Por ejemplo, tenemos el blog en http://www.ejemplo.com, el WordPress en http://www.ejemplo.com/wp y queremos tener las imágenes subidas en http://www.ejemplo.com/img.
Es en Opciones → Miscelánea donde podemos elegir en qué directorio debajo de la estructura de WordPress queremos tener las imágenes subidas, pero si tenemos el WordPress en, por ejemplo, <DocumentRoot>/wordpress, nunca podríamos tener las imágenes en <DocumentRoot>/img.
Buscando si había alguna forma estándar de cambiar esto, encontré a mucha gente que preguntaba lo mismo, pero pocas respuestas. Finalmente llegé a una entrada en el foro de soporte de WordPress que me daba pistas, pero para mi versión actual, la 2.1.2, la solución propuesta no se podía aplicar directamente.
Sigue leyendo »
Publicado en Desarrollo Web, LAMP/WordPress | Etiquetas: MySQL, patch, PHP, WordPress | | Escrito por Vicente Navarro
08 mar
El Firefox es, en mi opinión, el mejor navegador que podemos usar actualmente. El Internet Explorer 7 ha tomado algunas de las cosas buenas de su competidor como la navegación con tabs o pestañas pero nunca podrá llegar al nivel del Firefox sobre todo gracias a las excelentes extensiones de Firefox que cubren casi cualquier necesidad imaginable del usuario.
Algunas extensiones especialmente útiles:
- IE View Para abrir IE desde el Firefox para esas páginas que no se ven bien.
- IE Tab Igual que la anterior pero mete el IE dentro de un tab de Firefox.
- MAF ¿Te gusta la capacidad del IE de crear ficheros MHT (que contienen los ficheros html e imágenes de una web en un sólo fichero)? Pues esta extensión añade esa capacidad al Firefox.
- FlashGot Para descargarte todas las imágenes o ficheros de una selección o página.
- PDF Download Para todas esas veces que no quieres que el PDF de turno se abra en el navegador sino que quieres descargarlo.
- ScreenGrab En mi opinión, ¡la extensión más imprescindible! Permite hacer una captura de toda la página en la que estamos.
- Mouse Gestures Nos permite controlar la navegación con movimientos del ratón.
Estas son las que más uso diariamente, pero hay muchísimas más extensiones que nos pueden facilitar muchísimo nuestra navegación diaria.
Sigue leyendo »
Publicado en Misc, Navegadores | Etiquetas: Firefox, Iceweasel | | Escrito por Vicente Navarro