jueves, 30 de diciembre de 2010

Comprar e instalar una impresora: elige siempre HP

Hoy he tenido que devolver una impresora que compré para mi suegro, una Canon PIXMA MP252, porque no iba bien con Linux. Menos mal que eso lo descubrí foreando y no por experimentación propia, porque no hubiera podido devolverla. Por sólo 14 euros más, le compré una HP Photosmart C4600: en un cuarto de hora ya estaba imprimiendo, escaneando y copiando. Bastó con un apt-get install hplip y se autoinstaló solita.

Por eso me gusta apoyar a los fabricantes que apoyan a Linux.

martes, 7 de diciembre de 2010

Subir a 6Mb (y cuarto paso)

Finalmente, tras tener ya la conexión de 6Mb y ver que mantenga la dirección IP estática de antes, todo ha sido cosa de volver a poner los servicios en casa y nuevamente sufrir a Nominalia para cambiar los DNS raíz de mi registro.

En fin, todo en orden.

lunes, 15 de noviembre de 2010

Dejar KDE

Al final ha ocurrido: me he cansado de que KDE se coma mi memoria y me he pasado a Gnome. Lo peor: que seguiré usando las aplicaciones de KDE, pues (en general) intentan hacerme quedar como estúpido menos veces.

sábado, 13 de noviembre de 2010

Subir a 6Mb (tercer paso)

Pues en fin, que tras un par de estupideces o incompetencias por parte de los repartidores, me llegó un módem ADSL nuevo (un SAGEM F@ST™ 2604 capado para que solamente se pueda utilizar con redes de Orange y socios) con cuatro puertos Ethernet y red wifi. Aunque no lo necesito, pues mi NETGEAR DG834v3 comprado a tocateja funciona perfectamente y coge la nueva velocidad, pero en fin. Como no tiene wifi, me quedaré el nuevo y el NETGEAR se lo dejaré a alguien que lo necesite.

Resumiendo: que ya tengo mi nuevo ADSL en marcha.

viernes, 12 de noviembre de 2010

Montar un dispositivo FAT en modo shortname=lower

Hace cierto tiempo el modo de montar los dispositivos de tipo vfat cambió en Linux: pasó de ser shortname=lower a shortname=mixed. Un cambio necesario, ya que con el anterior todos los nombres de fichero se mostraban en minúsculas, y los nuevos se escribían en minúsculas en el dispositivo, lo cual era ciertamente un problema a la hora de utilizar dispositivos con canciones. El problema viene porque quien utilizó rsync con el modo anterior, por ejemplo para hacer copias de seguridad de o en un disco duro vfat, se encuentra ahora conque los nombres que antes estaban siempre en minúsculas ahora están a veces en mayúsculas, con lo que al no ser ya los mismos nombres el programa de copias no hace lo que se esperaba.

El problema es que no hay manera de cambiar esto en HAL: se supone que se podía usando un fichero fdi como el siguiente:

<?xml version="1.0" encoding="UTF-8"?><!-- /etc/hal/fdi/policy/preferences.fdi -->
<deviceinfo version="0.2">
  <device>
    <match key="volume.fstype" string="vfat">
      <merge key="volume.policy.mount_option.shortname=lower" type="bool">true</merge>
    </match>
  </device>
</deviceinfo>
pero no funciona: el sistema de volume.policy.mount_option está desaconsejado por los propios desarrolladores de HAL, que dicen que este tipo de cosas (las opciones de montaje) las debería especificar el entorno de escritorio, y no una política.

Así que he tenido que irme al /etc/fstab a ponerlo allí, pero claro, nadie garantiza que un dispositivo vfat tenga un UUID, ¿no?

Finalmente ha quedado así:
/dev/disk/by-id/usb-OLYMPUS_D555Z_C315Z_000J03011507-0:0-part1 /media/olympus vfat users,rw,nosuid,nodev,uhelper=hal,utf8,shortname=lower,flush 0 0
y no sé si eso es bueno o malo: lo que sí sé es que he tenido que crear el punto de montaje, y que no se desmonta bien desde el escritorio.

miércoles, 27 de octubre de 2010

Subir a 6Mb (interludio)

Por alguna razón (que aún no comprendo del todo) mi nuevo servidor se caía repetidamente. Puede ser culpa (en parte) del hardware: viejo y lleno de polvo; puede ser también culpa de la línea ADSL de allí, cerca del límite de distancia; puede ser también cosa del enrutador ADSL, que es verdaderamente viejo (con decir que no tiene interfaz web sino tan solo telnet); puede que sea culpa de la instalación de cobre de la casa (oxidada en sitios, húmeda en otros, y mal mantenida); o puede, en fin, que sea cosa de todo lo anterior junto.

Pero sí ocurría que a veces el ordenador en cuestión (el factor 1, el «jargüar») se quedaba bloqueado (cosa que empezó a hacer allí). Quizá el viaje le echó un meneo al polvo, quiero decir, el viaje meneó el polvo.

Así que cogí un microportátil con una Debian recientita (una testing de hace un mes), le instalé el Bind, Postfix y el Courier, copié las configuraciones del polvoriento, y a correr.

De momento, funciona.

Seguiremos informando.

martes, 26 de octubre de 2010

Subir a 6Mb (segundo paso)

Pues bien, una vez que tengo los DNS correctamente apuntados a un servidor paralelo (aunque solamente funcionen bien allí los servidores de nombres (DNS) y de correo), ha llegado el segundo paso: llamar a mi ISP (Proveedor del Servicio de Internet) y decirle que ya puede pasar mi ADSL de 1Mb/150Kb a 6Mb/300Kb. Vamos a ver cuanto tarda Orange (la verdad que hoy han sido muy amables y, al parecer, eficientes) en efectuar el cambio, y vamos a ver si pierdo mi dirección IP estática por el camino.

Seguiremos informando.

lunes, 25 de octubre de 2010

Subir a 6Mb (primer paso)

Estoy intentando subir mi conexión casera de 1Mb/150Kb a 6Mb/300Kb y, como supondrán, no quiero quedarme sin recibir correo durante el proceso. Y como en el cambio puede que tenga un corte de conexión o, incluso, pierda la IP fija durante un período de tiempo de hasta 15 días, pues el primer paso ha sido montar un servidor de correo en otro sitio por ahí con IP fija (gracias papi) y decirle a los DNS que manden el correo allí.

Y ese ha sido el problema: Nominalia ha tardado cinco días y medio en pasar a los servidores raíz para el primer nivel el cambio de servidores autorizados para mi dominio (de segundo nivel).

En fin... seguiremos informando.

lunes, 13 de septiembre de 2010

Centralizar los datos de kstars

Kstars es el proyecto de un planetario para KDE. Funciona bastante bien, pero hay un pequeño detalle que puede llegar a molestar: la opción "Obtener nuevos datos" está disponible para cada usuario, así que los catálogos e imágenes (algunos de los cuales ocupan 2GiB) corren el riesgo de ser descargados individualmente por cada usuario. Esto, en un ordenador de un aula de astronomía, por ejemplo, significa un montón de espacio desperdiciado, y un montón de ancho de banda gastado en descargar cosas que ya se tienen.

Tras una pequeña charla con gente de KDE, he encontrado el lugar y la manera de evitarlo, centralizando los datos y usando el kiosk mode de KDE para evitar que los usuarios puedan descargarse los datos.

Espero, ahora, ponerme a hacer un paquete Debian que centralice el caso. A ver si me sale bien.

viernes, 10 de septiembre de 2010

El botón de apagado

Ya he comentado alguna vez que no me gusta el polvo. El polvo en los ordenadores, se entiende. Y hoy, por tercera o cuarta vez, pasando una brocha (una simple brocha) por mi ordenador nuevo para quitarle el polvo ambiente, se apagó. Eso es lo que se llama tener un botón de encendido muy sensible, tanto que ahora lo llamo «botón de apagado».

Así que ni corto ni perezoso, y sabiendo que voy a seguir pasando la brocha o incluso un paño para limpiar el polvo externo de vez en cuando, me he metido en la carcasa y he tirado de los cables blanco y rojo, para desconectar de la placa base el susodicho interruptor.

martes, 7 de septiembre de 2010

Descargar enlaces ed2k:// desde Firefox (II)

Hace aproximadamente un año y medio escribí este artículo sobre cómo registrar un nuevo protocolo en Iceweasel (más conocido por ahí como Firefox).

Pero con la llegada de Firefox 3 las cosas han cambiado y el método ya no funciona. Pero la solución es parecida: se trata de añadir a mano un a nueva clave booleana, network.protocol-handler.expose.ed2k, y darle como valor false. La siguiente vez que pulsemos un enlace ed2k:// nos preguntará la aplicación que queremos usar, y ahí buscaremos /usr/bin/ed2k en el árbol de directorios.

Y claro, lo mismo vale para cualquier otro protocolo que queramos.

Todo viene (más o menos) explicado en http://kb.mozillazine.org/Register_protocol.

lunes, 30 de agosto de 2010

Leer una base de datos Berkeley DB

Muchísimas aplicaciones utilizan bases de datos BerkeleyDB, y no hay (que yo sepa) ninguna aplicación específicamente diseñada para ver el contenido de éstas. Así que busqué un lenguaje de programación que me permitiera trabajar rápidamente con ellas y encontré que la papeleta me la resolvió PHP:

error_reporting(E_ALL);
$id = dba_open("file", "r", "db4");
var_dump($id);
$key = dba_firstkey($id);

while ($key != false) {
if (true) {
$handle_later[] = $key;
}
$key = dba_nextkey($id);
}
echo("\n");
foreach ($handle_later as $val) {
$string=dba_fetch($val,$id);
echo("$val||$string\n");
}

miércoles, 25 de agosto de 2010

Sobre la posible responsabilidad de la Administración Pública en un programa desarrollado mediante un modelo libre (aspectos técnicos)

El modelo de trabajo en dos fases, con repositorio a cargo de la comunidad de desarrolladores y versiones oficiales a cargo de la A. P. es fácilmente implementable en los sistemas de «forja» de código actuales, y con poca dificultad en cualquier otro que se desee. Por ejemplo, el sistema ya existe en la forja de OSOR.eu. A tal fin se distingue entre tres formas de obtener el código:

  • A través de los medios propios del repositorio o a través de su interfaz web

  • En forma de bola 'tar' o archivo comprimido generado automáticamente por la forja

  • En forma de bola 'tar', archivo comprimido o paquete (fuente o binario) creado por los desarrolladores propios de la A. P.


En los dos primeros casos el usuario obtiene una versión del código que se considera, a todos los efectos, como inestable o de desarrollo. En el tercero, el código obtenido se considera, a todos los efectos, código publicado por la A. P.

A modo de ejemplo, véase el proyecto SEXTANTE de la Junta de Andalucía alojado en OSOR.eu que nos proporciona los tres modos:



Los casos a) y b) quedan claramente al alcance de cualquiera, pero sin embargo quien obtiene el código por dichas vías es plenamente consciente de que obtiene código no necesariamente comprobado, mientras que el caso c) es el resultado del esfuerzo consciente por parte de ciertos desarrolladores en empaquetar una versión determinada del código.

De esta manera, el flujo de trabajo comienza con desarrolladores que realizan cambios en el código y añaden tales cambios al repositorio. Según la confianza que se tenga en dichos desarrolladores, podrán añadirlos directamente a la rama «tronco» del repositorio o no, pero en cualquier caso dichos cambios son parte de la base de código desde ese mismo momento. Nótese que la responsabilidad es puramente personal del desarrollador que realiza el cambio, y que no se trata necesariamente de personas responsables ante la A. P.

El flujo continúa con la evaluación de dichos cambios por parte de dos grupos, los usuarios que decidan obtener esa versión del código y probarla, y con ello informar de posibles fallos o regresiones de código, y los restantes desarrolladores que decidan hacer una «revisión por iguales» del cambio y, en su caso, portarlo a otras ramas del repositorio.

El siguiente paso es que uno de los desarrolladores que sí tienen la responsabilidad ante la A. P. de seleccionar el código aceptable para su publicación haga una revisión de una serie de cambios al «tronco» del repositorio y publique una nueva versión oficial del programa. Es en este punto, y solamente en éste, donde aparece la responsabilidad de la A. P. ante los usuarios.

Queda el caso puntual de las versiones inestables oficiales, entendiendo por tales las versiones «candidatas para la liberación» que se publican por muchos proyectos, tanto libres como privativos. Dichas versiones son necesarias, casi imprescindibles, para probar el código antes de liberarlo, pero suelen publicarse de la misma manera que las versiones oficiales. Suelen contener una indicación clara de su estado no definitivo, como las letras 'rc' (Release Candidate) o el indicativo 'beta'. Sin embargo, el publicarlas de la misma manera que las versiones oficiales definitivas puede tomarse, con un poco de mala fe o de ineptitud, como indicativo de que se encuentras endosadas por la A. P.

El caso con estas versiones es que efectivamente se trata de versiones publicadas oficialmente, ya que es código que ha sido comprobado por los desarrolladores de confianza. En ese sentido la A. P. es responsable de la publicación de una versión inestable, pero es el usuario el responsable de haber elegido esa versión para su descarga estando disponible una versión estable oficial aunque sea más antigua: ningún usuario puede aducir que descargó una versión 'rc', 'beta' o '0.x' sin saber que se trata de versiones de prueba. Para reforzar este punto, versiones tales no deben presentarse en la página principal del proyecto, pero sí en la página de versiones liberadas de la forja. No es un problema que aparezcan en la zona de noticias de la página principal del proyecto si se presentan como versiones de prueba.

La diferencia presentada entre código en el repositorio y código publicado oficialmente hace posible el modelo de comunidad en el que la única normativa para ser considerado como desarrollador es haber contribuido con código válido.

martes, 24 de agosto de 2010

warning: SASL authentication problem: unable to open Berkeley db /etc/sasldb2: No such file or directory

Configurando la autenticación de mi servidor de correo Postfix con Cyrus SASL2 me encontré con que no funcionaba: el fichero /etc/sasldb2 estaba en su sitio y con los permisos correctos, pero no había manera.

Esta página de Matthew Chapman me dio la pista de lo que pasaba (y, consecuentemente, la solución): la biblioteca Cyrus SASL2 se mete en una jaula chroot en /var/spool/postfix antes de comprobar si /etc/sasldb2 existe, y por ello aunque exista correctamente, no lo encuentra.

La solución creando un enlace simbólico no funciona, ojo, porque desde dentro de la jaula chroot resulta que /etc/sasldb2 se apuntaría a si mismo. Por lo tanto, hay que copiar el fichero, o crear un enlace duro si quieres olvidarte de actualizar la copia en la jaula cada vez que cambies el original:

ln /etc/sasldb2 /var/spool/postfix/etc

viernes, 20 de agosto de 2010

Mover descargas entre instalaciones de aMule

Tenía, en un disco duro que ya no uso para eso, un .aMule con su configuración y todo lo demás, incluido su Temp, que contiene los ficheros de las descargas parciales.

Hoy probé a mover esas descargas parciales (los ficheros *.part, *.part.met, *.part.met.bak y *.part.met.seeds, que contienen, respectivamente, los datos descargados, la información de la descarga, una copia de seguridad de ésta, y una lista de fuentes cuando son escasas.

He comprobado que simplemente moviendo estos ficheros al .aMule/Temp que uso ahora, renombrando aquellos cuyo número de serie coincidía con un grupo ya existente, la cosa funciona perfectamente.

Ojo, eso sí, hay que usar la misma numeración para los que tenían la misma numeración. Así, si tienes que mover 001.part, 001.part.met y 001.part.met.bak, y ya existen esos nombres en el Temp de destino, los puedes llamar 901.part, 901.part.met y 901.part.met.bak pero no 901.part, 902.part.met y 903.part.met.bak.

martes, 17 de agosto de 2010

Sobre la posible responsabilidad de la Administración Pública en un programa desarrollado mediante un modelo libre

Si una Administración Pública distribuye un programa libre, tiene cierta responsabilidad con los usuarios del mismo incluso en el caso de que la propia Licencia del programa indique lo contrario, ya que, al contrario que un distribuidor cualquiera, una A. P. sí tiene una obligación legal real de velar por los receptores del programa, que son sus ciudadanos. Dicha responsabilidad puede ser mayor aún en el caso de que el usuario del programa sea la propia A. P. de modo tal que un problema en el programa suponga para aquélla la pérdida de datos de los ciudadanos o cualquier otro resultado que les perjudique.

Al mismo tiempo, crear un programa al modo de los proyectos libres implica que varias personas (los desarrolladores en quienes se tiene confianza suficiente como para permitirles acceso de escritura al repositorio), algunas de las cuales no tendrán ningún tipo de relación contractual directa ni indirecta con la A. P. que promocione el programa, podrán realizar cambios al mismo, algunos de los cuales pueden ser perjudiciales, bona fide o maliciosamente.

Parece entonces que llegamos al dilema cruel de que una A. P. debe renunciar a liberar un programa y desarrollarlo a través de una comunidad o aceptar la responsabilidad de un programa que no se encuentra bajo su control.

Sin embargo, se trata de un falso dilema, ya que hay un paso intermedio entre el desarrollo y la publicación, que es el punto en el que la A. P. puede intervenir a fin de controlar el proceso conforme a su responsabilidad sin correr el riesgo de molestar a la comunidad de desarrolladores con injerencias. Dicho punto es la liberación de versiones oficiales del programa.

El flujo de trabajo correcto para bordear adecuadamente el problema es:

  1. que los desarrolladores trabajen libremente, hasta el punto en que tal cosa sea posible para que el programa no se aleje de las especificaciones, en el repositorio de código

  2. que un grupo seleccionado de desarrolladores, responsables ante la A. P. (funcionarios, contratados por la A. P. o contratados por una empresa contratada a tal fin por la A. P.), seleccione regularmente el código de la rama «tronco» del repositorio, lo empaquete (a modo de paquete fuente o de paquetes fuente y binario) y lo publique


De este modo, los usuarios que lo deseen pueden obtener las versiones de desarrollo del código, lo cual es imprescindible para la detección de fallos en el mismo y su mejora, sin responsabilidad para la A. P., y ésta puede proporcionar versiones oficiales que hayan pasado el filtro de los desarrolladores contratados, con plena responsabilidad.

Es conveniente, pero no necesario, que la distinción entre estas dos maneras de proporcionar el código sea patente en la interfaz web del repositorio de código, con una mención del tipo «[La A. P.] no se hace responsable de los posibles fallos de estas versiones de desarrollo y niega toda responsabilidad sobre el mismo. Si no es usted un usuario avanzado, por favor utilice las versiones oficiales que puede encontrar en [sitio web].».

Ante un problema real que se produzca como consecuencia del uso del código, la estrategia de defensa de la A. P. debe variar en función de que dicho fallo se produzca en un código obtenido del repositorio o en un programa de la distribución oficial.

En el primer caso, la A. P. debe negar toda responsabilidad, indicando que el usuario sabía lo que hacía al descargar una versión de desarrollo, e indicando que el usuario asumió toda la responsabilidad al usar la interfaz web del repositorio de desarrollo del código (si lo hizo así) o indicando que el usuario era plenamente consciente del peligro de utilizar una versión de desarrollo, ya que es inconcebible que un usuario lo suficientemente avanzado como para utilizar el repositorio sin usar su interfaz web no lo sea.

En el segundo caso, la A. P. debe aceptar la plena responsabilidad por el perjuicio causado, ya que es, al menos, responsable civil subsidiario, pero al mismo tiempo debe averiguar qué desarrollador aceptó el cambio en el código que causó el problema e iniciar las acciones penales y, en su caso, disciplinarias adecuadas, ya que sin duda se trata de uno de los «desarrolladores de confianza» plenamente identificados por ser funcionarios, contratados por la A. P. o contratados por una empresa contratada a tal fin por la A. P.

viernes, 13 de agosto de 2010

Usuario que reparte el correo

Me ha costado un buen rato ver qué pasaba, pero lo he conseguido.

Tengo una máquina que recibe mi correo electrónico, y estaba tratando de configurar el servicio en una máquina nueva. Utilizo Postfix, y tiene la sana costumbre de que el usuario que reparte el correo, es decir, el usuario que el proceso local utiliza para escribir en los buzones, es el usuario nobody.

Pero yo necesitaba que fuera el usuario mail, ya que utilizo directorios Maildir, por fiabilidad. Me ha costado averiguar cómo hacerlo (estoy desentrenado), pero finalmente lo he conseguido: basta con añadir la línea

default_privs = mail


al fichero /etc/postfix/main.cf.

viernes, 30 de julio de 2010

Pidgin no suena en KDE 4

Bueno, por fin voy a trabajar de manera estable con KDE4.
Una de mis aplicaciones usuales es pidgin, un cliente de mensajería instantánea. Y es muy útil que suene cuando te llega un mensaje.

Pero en KDE 4 (al menos en Debian) no suena.

Menos mal que San Google Bendito lo sabe todo (no sé si demasiado) y me envió a http://mandrivausers.org/index.php?/topic/43987-help-pidgin-has-no-sound/ (aunque sea de Mandriva). La solución funciona.

Traducido:

Tuve el mismo problema con Pidgin en Ubuntu 7.10. Esto debería funcionar:

1 En Pidgin, selecciona Preferencias en el menú Herramientas (o pulsa Ctrl+P)
2 Pincha en la pestaña Sonidos
3 En la lista desplegable Método, selecciona Comando
4 En la caja de entrada Comando para sonido escribe lo siguente: aplay %s
5 Selecciona un evento con un sonido asignado en la lista Eventos de sonido
6 Pulsa el botón Previsualizar. Deberías oír ahora el sonido de notificación
7 Pulsa el botón Cerrar

¡Espero que te ayude! :D

sábado, 17 de julio de 2010

Interprogramación de Fortran y C (II)

Hace relativamente poco tiempo, un mes o dos, buscando cómo hacer funcionar la biblioteca libdl en Fortran, me tropecé con este artículo de Aleksandar Donev, en el que explica muy rápidamente cómo hacerlo, y además de un modo que facilita la interprogramación entre Fortran y C en general.

Básicamente, comienza creando las rutinas que usaremos para pasar cadenas de caracteres de C (terminadas en \0) a Fortran (con indicación de longitud) y viceversa. A continuación crea las interfaces Fortran para las principales funciones de libdl y luego muestra un ejemplo.

Sencillo, conciso y correcto.

Claro que no funciona «nada más sacarlo de la caja», por dos razones. Por un lado, utiliza punteros a funciones, algo que entró en Fortran 2003 (en C lo tenemos «de toda la vida»). Y por otro, los valores RTLD_LAZY, RTLD_NOW, RTLD_GLOBAL y RTLD_LOCAL hay que hallarlos a mano antes de empezar. Pero eso no cuesta nada.

Finalmente, lo mejor de todo es que el Sr. Donev me ha autorizado a usar no solamente su método sino el código que presenta en la página. En sus propias palabras:

The code is available with absolutely no restrictions: feel free to incorporate it into your software.

El código está disponible absolutamente sin restricciones. Siéntase libre de usarlo en su propio programa.

sábado, 26 de junio de 2010

Truquitos de la shell

Con la ayuda de dos pequeñas páginas, Bash Prompt HOWTO de Giles Orr y How to change the title of an xterm de Ric Lister, acabo de resolver un problemilla que me traía mal: saber dónde estoy trabajando:

export PS1='\[\033]0;\u@\h:\w\007\]\t \u@\h:\w\$ '

lunes, 3 de mayo de 2010

Expresión regular para CIDR

Me ha dado por ahí, y he sacado la expresión regular para una dirección IPv4 en notación CIDR.

Hay mucha gente por ahí que usa

([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\/([0-9][1,3})


Pero no es correcta. La buena es ésta:

((0|1[0-9]{0,2}|2([0-4][0-9]?|5[0-5]?|[6-9])|[3-9][0-9]?)\.){3}(0|1[0-9]{0,2}|2([0-4][0-9]?|5[0-5]?|[6-9])|[3-9][0-9]?)/(0|[1-2][0-9]?|3[0-2]?)


Si la vas a compilar en C, no olvides doblar las barras invertidas.

viernes, 30 de abril de 2010

Medias actualizaciones

No es bueno tener un sistema estable y actualizarlo por partes, no señor.

Mi impresora estaba hoy tonta. No sé por qué, pero el CUPS y sus hijitos (hasta el ghostscript) se quedaban tontos, y no sacaban los trabajos.

Actualizar los paquetes correspondientes al cups, hpijs y sus dependencias lo ha solucionado.

miércoles, 28 de abril de 2010

Por la calle de la amargura

El Fortran (en particular el programa que estoy haciendo) me trae por la calle de la amargura. En un sitio en particular, debería salirme algo cercano a 2, y me sale poco más de 1. Y se supone que lo tengo todo bien. Así que no sé, lo mismo soy idiota o no sé implementar métodos numéricos.

martes, 6 de abril de 2010

Polvo en la fuente

Después de ¿Cuanto polvo cabe en un ordenador? tengo una segunda parte que contar: hoy he tenido que acudir de urgencia a un cliente porque se le había apagado y no le encendía el ordenador en que tiene todos los datos de la empresa.

Sí, lo adivinan: polvo en la fuente de alimentación. El ventilador se paró, la fuente se quemó, el lobo sopló y sopló y sopló y el servidor se cayó.

Unas horas más tarde, todas las piezas excepto fuente y carcasa habían sido transferidas a una carcasa nueva, con una fuente nueva.

Consejo: nunca pongan un ordenador con el ventilador hacia arriba.

lunes, 29 de marzo de 2010

Makefile para Fortran 95 cuando se usan módulos

En mi trabajo tengo que usar módulos de Fortran 95, y no solamente usarlos, sino a veces crearlos. Vienen a ser como las bibliotecas compartidas de C, pero su gestión es distinta. Desde unos puntos de vista, más fea y engorrosa, y desde otros, más simple y clara.

En este caso, los ficheros .mod vienen a hacer el papel de los ficheros .h de C, solo que no se pueden escribir a mano, ya que no son ficheros de texto. Se generan al compilar los ficheros fuente de Fortran que contienen módulos.

Por esa razón me ha costado un poco hacerme a trabajar con ellos, en particular en los Makefiles, pero finalmente creo que ya tengo cómo tratarlos:


testprogram : testprogram.o testmodule.o
gfortran -J. -o testprogram testprogram.o testmodule.o

%.o : %.F95
gfortran -J. -c -o $@ $<

testprogram.o : testmodule.mod

%.mod : %.o
@


Esa simple arroba hace el papel de línea de órdenes vacía que no causa errores, y, al depender el módulo del objeto, depende transitivamente de su fichero fuente, con lo que cambiar éste hace saltar la regla, se detecta que el objeto no está actualizado y se recompila, creando el módulo en el proceso. Poco importa que después la regla para el módulo vaya a ser invocada cuando ya no sea necesaria por tener ya el módulo, porque no hará nada.

miércoles, 24 de marzo de 2010

Como no pueden ganar, intentan amenazar

Artículo cruzado desde mi bitácora principal:

Como no pueden ganar, intentan amenazar

Por favor, los comentarios allí, gracias.


Hoy, en mi aMule, he encontrado este mensaje:


*** Sesión Chat Iniciada: CoPeerRight Agency (87.222.184.204:55511) - 2010-03-23 17:21:54
[17:21:54] *** Conectado al cliente ***
[17:21:54] CoPeerRight Agency: Le recordamos que la obra - Daybreakers - esta protegida por la ley Espanola de Propiedad Intelectual (LEY 23/2006, de 7 de julio) a titulo de derechos de autor y por Tratados Internacionales. Unicamente el titular de estos derechos puede decidir si la obra ha de ser divulgada y en que forma. La puesta a disposicion, distribucion sin autorizacion y en ciertos casos, la reproduccion son ilicitas.
[17:22:00] CoPeerRight Agency: Le instamos a abandonar la descarga y suprimir los ficheros ilegales de su lista de intercambio. En caso contrario, los titulares de los derechos podran adoptar medidas judiciales para la defensa de los mismos. Este mensaje no viola ningun derecho a la privacidad. Se limita a utilizar las caracteristicas comunes de los programas de intercambio de ficheros.



En primer lugar, ¿ha visualizado alguien de esa tal CoPeerAgency los archivos que comparto a fin de comprobar si se trata de la obra que dicen proteger?

En segundo lugar, ¿todavía no se enteran de que, caso de que efectivamente estuviera compartiendo tal obra, no cometería ningún delito sino un ilícito civil?

En tercer lugar, ¿tan mala es la susodicha película que quieren compensar su fracaso en taquilla con multas a los internautas?

En cuarto lugar, ¿qué derecho tienen a meterse en mi casa, en mi pantalla, a amenazarme?

Y para acabar, si tengo derecho a ver y probar un coche antes de comprarlo, ¿qué bula se creen que tienen los que contratan a esos, llamémosles, detectives para evitar que haga lo mismo antes de ir al cine?

Les aseguro que ahora sí que no iré a ver dicha película.

Por cierto, la red desde la que se conectan estos asaltantes de pantallas es la JAZZTEL-TRIPLEPLAY, propiedad de Jazz Telecom S.A. (red 87.222.0.0/16). Y lo siento por el resto de clientes de esa empresa, pero creo que los voy a bloquear por completo de acceder a mi sistema.

Si quieren más información (sesgada, por supuesto) sobre estos invasores de intimidad, pueden leer este artículo de El País.

domingo, 21 de marzo de 2010

Bolas enfriadoras

Hace un tiempo comenté que, para evitar el recalentamiento de mi portátil, lo levanto sobre trabas de la ropa.

Cuando eso no basta, por ejemplo, porque fuerzo al ordenador a trabajar al 100% durante horas, lo que hago es ponerle debajo de la entrada del ventilador unas bolas enfriadoras. Las mismas bolas plásticas rellenas de gel que se guardan en el congelador y que uso para enfriar los refrescos.

domingo, 14 de marzo de 2010

Disco duro externo (II)

Mis problemas de espacio se han terminado (otra vez). He vuelto a comprar un disco duro externo.

Esta vez se trata de una caja Datastor de TVISTO. Al contrario de lo que dice la página, trae un disco SAMSUNG de 1TB que no he tardado ni un cuarto de hora en poner a formatear como ext3 (venía con NTFS y, aunque no es un mal sistema de ficheros, es un problema en Linux porque hay que asignarlo a un usuario o todos los ficheros quedan como propiedad de root).

Y luego, para completar la jugada, y porque no aguanto más ver esos ficheros llamados fsck.0000 y no hago mucho eso de dejarle mis discos a otros, pues el disco que tenía formateado con VFAT ha pasado también a ser ext3.

sábado, 27 de febrero de 2010

¿"name" no estaba fuera de servicio?

Estaba creando un formulario para una aplicación de Facebook que estoy escribiendo, por puro placer de probar, y resulta que no funcionaba.

Y claro, estaba probando a poner en los campos el atributo id, pero no el atributo name, porque yo pensaba que name ya no se usa. Pero resulta que en los formularios es justamente lo que se usa.

Pues nada, una para ver y otra para aprender.

viernes, 22 de enero de 2010

Enrutador inalámbrico (II)

Pues bueno, aquí estamos otra vez.

Como escribí ayer, el enrutador inalámbrico WRT54GL de Linksys no permite asignar direcciones IP estáticas a clientes DHCP determinados. Además, su sistema de QoS (Calidad de Servicio) es bastante grosero, así que me he liado la manta a la cabeza y le he instalado un «firmware» nuevo: Tomato.

Tomato es un código interno de funcionamiento para el WRT54G. Es, digamos, el sistema operativo del enrutador, y sustituye al sistema operativo original de Linksys. En el caso de un WRT54GL, el sistema operativo que viene de fábrica es una versión especializada de Linux, adaptada por Linksys para el aparato. Tomato se basa en esta versión pero introduce un gran número de cambios. Algunos son visibles en la interfaz, pero otros son más profundos. Entre estos tenemos el acceso SSH, la posibilidad de asignar direcciones IP estáticas dentro o fuera del rango DHCP, un cortafuegos mejorado y un sistema de clasificación de tráfico y QoS muy superior al original.

De momento, he clasificado el tráfico de mi red casera en función de la máquina de origen y asignado anchos de banda fijos y, la verdad, todos los que compartimos esta conexión hemos notado una mejoría sustancial.

Por supuesto, no quiero desmerecer al enrutador anterior, un WGR614 de NETGEAR, que no pienso retirar, sino simplemente cambiar a otro sitio donde seguirá dándome un buen servicio inalámbrico.

Seguiremos informando...

jueves, 21 de enero de 2010

Enrutador inalámbrico

Pues sí, entre otras cosas, en estas Navidades ha caído un enrutador inalámbrico. Un bonito WRT54GL de Linksys. Es como el conocido WRT54G pero es un WRT54GL. Y sí, la «L» es de «Linux».

Este amiguito trae Linux por dentro. Y enseguida se hizo con mi red inalámbrica.

Parece duro como una piedra, y su historia dice que me va a hacer un buen servicio. No obstante, tiene (al menos) un grave defecto: no se pueden asignar direcciones DHCP estáticas a dispositivos predeterminados.

Ya les iré contando.

Concentrador USB (II)

Pues los discos externos no me han vuelto a dar fallos, así que este concentrador se va a ir a la basura (o a un cajón, que nunca se sabe). Es un Slimline USB2.0 HUB de Point of View.

Que conste que no le echo la culpa a la empresa, no me disgustan particularmente. Puede que el problema no sea el concentrador sino el cable, o el polvo que hay en mi escritorio, pero en fin... el próximo concentrador creo que será de otra marca, solo por si acaso.

sábado, 16 de enero de 2010

Concentrador USB

Uno de mis discos duros externos se desconecta constantemente. Creo que sea cosa de mi concentrador USB externo.

Voy a probar a tenerlo enchufado directamente un par de días a ver qué pasa.