Probando, probando…

Esta tarde ha sido de pruebas: me puse a navegar y encontré varias aplicaciones para mi movil.

Hace unos días tuve que resetear mi móvil porque pensaba que tenía un virus o que se había corrompido. Perdí todos las aplicaciones, pero no sus datos.

Ya se me había olvidado las aplicaciones que tenía instaladas y encontré de casualidad otra vez Hubdroid. Esta aplicación simplificandolo mucho (lo he simplificado mucho) podría ser un equivalente de Facebook, pero para desarrolladores. La versión anterior que utilicé no era muy agradable, pero ahora han revisado la interfaz de usuario y la verdad es que les ha quedado muy bien. ¡Hasta se puede llegar a navegar por el código fuente!

Y también he descubierto BackPackTrack, una aplicación muy parecida a WhereBlogger, pero que parece que está algo más activa. Todavía tengo que probarla un poco más, viene junto con un plugin para WordPress.

 

¿Es el fin del Cisne Negro?

Leo un artículo que anuncia un algoritmo de Inteligencia Artificial capaz de analizar las noticias de Wall Street e invertir mejor que los fondos más prestigiosos. Afortunadamente, sólo sobre simulaciones.

Pero ha venido a mi cabeza algunas citas del “Cisne Negro” que leí hace unos meses, y que espero haber entendido correctamente. El autor nos propone que para algunos fenómenos, la información que tenemos sobre el presente poco nos puede decir sobre el futuro, con un ejemplo muy curioso: el del pavo que se engorda durante el año para acabar matandolo el día de Navidad; el pavo día a día va recibiendo alimento, cobijo, seguridad, y cada día ve lo mismo, por lo que podría pensar que todos los días van a ser así. Y sin embargo, un día de repente, lo matan. ¡¡Sorpresa!! Así es que poca información nos da el pasado de la Bolsa sobre lo que puede pasar en el futuro.

Hay un grupo de fenómenos como el de la Bolsa, en el que la aleatoriedad es de grandes extremos: se puede ganar o perder mucho. Lo que nos propone Taleb en su libro es que tú o yo podemos tomar decisiones en la Bolsa de la misma calidad que los mejores “analistas” (recomiendo la lectura del pasaje del libro sobre la bolsa…)

Su propuesta es que en la Bolsa se utilizan herramientas erróneas como la falacia narrativa o la distribución estadística normal.

Sin embargo, podemos proteger nuestras inversiones si las realizamos de forma adecuada, si nos damos cuenta de varias falacias, como la mentira de la distribución Gaussiana aplicada a la bolsa.

¿Cuánto valen mis datos?

Hoy voy al cine y voy a utilizar mi tarjeta de cliente. Sólo por ello me van a pagar 3,4 €.

Si utilizo mi tarjeta de cliente de FNAC puedo obtener un descuento del 5% en algunos productos.

Cuando compro en una gasolinera me hacen un descuento del 2%.

Al final del día … ¿cuánto han valido mis datos? Es difícil de valorar para mí pero está claro que para muchas empresas merece la pena.

Instalación de librerias de Python en 1and1

El hosting compartido de 1and1 permite crear scripts utilizando Python 2.6. Sin embargo, no permite instalar librerias en las rutas de sistema, por lo que hay que ingeniarselas un poco para instalarlas.

Primero, hay que bajarse easy_install e instalarlo en algún lugar de nuestro espacio de hosting.

Luego, ya es más fácil, solamente hay que decirle a easy_install que en lugar de instalar paquetes en la ruta habitual, los debe instalar en una ruta de nuestro espacio de hosting. Por ejemplo, este comando instalará en el directorio $HOME/lib:

easy_install --prefix ~ xlrd==0.7.7

Después tendremos que asegurarnos que nuestros scripts Python encuentren las librerias.

Para ello, se puede modificar la variable de entorno PYTHONPATH con la ruta de la libreria. Este método solo funciona para scripts lanzados desde la linea de comandos.

En el caso de scripts CGI lanzados por Apache, no podemos modificar el entorno de ejecución de Apache para una nueva versión de la variable PYTHONPATH. Por ello, tendremos que recurrir a otra opción, menos elegante, pero igual de efectiva: cargar la libraria “a mano” en nuestro script. Para ello, basta con añadir algo de este estilo:

if sys.version_info < (2, 7):
     sys.path.append( 'PATHTOLIBRARY/lib/python2.6/site-packages/xlrd-0.7.3-py2.6.egg' )

Permalinks en WordPress de 1and1

Ya he comentado que mi proveedor de hosting 1and1 ofrece un servicio llamado Click-n-Build para crear instancias de aplicaciones web con un solo click, en base a una plantilla.

Estoy creando ahora la web de la Comisión de Fiestas del Passatge Canti y voy a empezar a utilizar WordPress (version 3.1.3) en modo Click-n-Build.

Pero ya me he topado con el primer inconveniente: los permalinks. La instalación de Click-n-Build impide que se modifique el fichero .htaccess de WordPress, y no se pueden incluir las reglas de reescritura.

He intentado hacer alguna ñapa, colocando un .htaccess donde me ha dejado en el directorio wp-content y cambiando los permalinks para que tengan el prefijo /wp-content, pero ha funcionado parcialmente: solo para las categorías, pero no para los artículos o para el archivo por fechas.

Navegando un poco por ahí, he encontrado una entrada en el Codex que justamente trata el asunto de permalinks sin mod_rewrite. Se trata del método PATHINFO, que delega en el script principal de WordPress la tarea de redirección. Ya se indica que no es la mejor forma, pero es la única que puede implementar sin tocar el .htaccess.

La técnica recomendada es modificar el fichero .htaccess o si fuera posible el fichero de configuración de Apache.

Ya he aplicado el cambio y todo funciona correctamente.

Click-n-build de 1and1

Mi proveedor de hosting 1and1 ofrece un servicio llamado Click-n-Build que permite crear instancias de aplicaciones web con un solo click, en base a una plantilla que gestionan ellos.

He utilizando WordPress (version 3.1.3) y Drupal (versión 7.12). A pesar de que indican que no se pueden instalar plugins, no es cierto, pueden instalarse desde la interfaz de administración del servicio.

No soy muy partidario de utilizar este tipo de instalaciones, entre otras cosas porque suelen limitar las opciones de que dispondrás, en base a la plantilla, o a limitaciones en los permisos y configuraciones posibles.

Sin embargo, tienen varias cosas positivas: no tienes que preocuparte de la BD, pues es una instancia que no ocupa espacio de tu hosting; y las prestaciones parecen bastante buenas, se han preocupado de optimizarlo o poner alguna caché de por medio.

Tuve instalada una instancia de Drupal, pero finalmente necesitaba actualizar el core a las ultimas versiones y siempre iban algo por detrás, así es que la desinstalé.

¿Obsolescencia o reparación milagrosa?

El 1 de mayo (sí, exactamente ese día) mi movil Android HTC Desire dejó de funcionar correctamente. Los botones de búsqueda, bajar volumen y el click del cursor optico dejaron de responder. Además, se resetea continuamente y arrancaba en “Safe mode”. Total, una lata continua.

Inicialmente achaqué el problema a que se me había “resfriado”: había estado toda la noche en el pollete de una ventana  en Santiago de Compostela y la temperatura era de 6-10 grados. Pensé que se había condensado humedad dentro o que la batería se había quedado frita, pero como tenía otra batería de repuesto pude descartar ese problema.

Además, cada vez que pulsaba el botón de apagado para desconectar la pantalla, el trasto se reseteaba… y si no hacía nada solo arrancaba en “Safe mode”. De chiripa, descubrí que si mientras arranca pulsaba el boton de búsqueda (el que no funcionaba, sí) no entraba en “Safe mode”.

Estuve una semana buscando por Internet problemas similares y no vi a nadie que lo tuviera, ni siquiera cómo salir del “Safe mode” funcionaba. La recomendación era que se volviera a arrancar, pero a mí eso no me funcionaba.

En medio de todo, como pensaba que se me había corrompido algo, lo resetee, previa realización de una copia de seguridad. Apunté la lista de aplicaciones que tenía instalada, por si acaso. Eso sí, primero le saqué la tarjeta de memoria, no fuera que la vaciara sin darme cuenta. El reset fue bien, sin problemas, y pude volver a configurarlo todo desde cero… pero el problema persistía.

Ya no sabía cómo solucionarlo y alguien me recordó que igual todavía estaba en garantía. Afortunadamente, así era, faltaba aproximadamente un mes para que caducara, y llamé a HTC para saber cómo repararlo. Les facilité el número de serie y me dijeron que lo podía enviar por mensajero, que ellos se encargaban de ello.

Milagrosamente, el movil se arregló en un par de días: si llamé el jueves, el sábado ya estaba funcionando. Ha sido mucha casualidad, por lo que he pensado  si no tendría alguna relación con mi llamada a HTC. Espero que no.

Reset del contador de impresora DCP-117C

Nuestra impresora (Brother DCP-117C) nos dijo hace unos meses que contactaramos con el servicio técnico porque había un problema mecánico que le impedía realizar la limpieza de los cabezales. El problema es que la impresora lleva un contador de ciclos de limpieza de los cabezales y cuando llega a un cierto límite, considera que la esponja que hay debajo de los cartuchos ha llegado a su capacidad de absorción máxima y tienes que ¡¡TIRAR LA IMPRESORA!! porque no hay un procedimiento para reemplazar la esponja.

He encontrado por Internet unas notas de cómo resetear el contador, pero cuando me puse a probarlo, me surgieron dudas, así es que he mejorado las instrucciones, para que sirvan para torpes:

  1. Enchufar la impresora. Empezará a hacer ruidos de inicialización, pero no está encendida.
  2. Encender la impresora, pulsando el botón On/Off.
  3. Entrar en modo de mantenimiento. Para ello, pulsar el botón Menu y luego el botón “Inicio negro” (Mono start), y luego rapidamente pulsar 4 veces la tecla de fecha arriba, hasta que la impresora emita unos pitidos.
  4. Introducir los comandos de acceso a la configuración. Se trata de comandos numéricos. Para escribirlos, se utilizan las teclas de “+” y “-” o flecha arriba y abajo, que hacen que se vayan mostrando los dígitos posibles. Una vez seleccionado el dígito, se introduce pulsando la tecla “Fijar” (Set).
  5. Introducir primero un 8 (pulsar la tecla arriba hasta que aparezca un 8 en pantalla, pulsar Fijar/Set) y luego un 0
  6. Buscar el contador de limpieza de cabezales. Para ello, pulsar la tecla “Inicio Negro”, hasta que se encuentre el contador con el texto “PURGE”, que tendrá un valor aproximadamente de 6400.
  7. Resetear el contador: introducir los números 2, 7, 8 y 3 mediante el teclado.
  8. Pulsar la tecla Detener/Salir (Stop/exit) para volver a la posición inicial de mantenimiento.
  9. Introducir dos veces el número 9 para salir de mantenimiento.

Ahora sólo falta saber cómo sustituir la esponja de absorción… a ver si encuentro un tutorial sencillo, porque el único que he visto por ahora está en alemán y no lo entiendo :(

Obsolescencia programada en nuestras carnes

Hoy hemos visto el documental sobre la Obsolescencia programada emitido por RTVE hace unos meses.

El documental comienza con el problema de una impresora que deja de funcionar porque necesita mantenimiento.

Dandole vueltas al asunto, nos hemos acordado de que nuestra impresora (Brother DCP-117C) nos dijo hace unos meses lo mismo: que contactaramos con el servicio técnico porque había un problema mecánico que le impedía realizar la limpieza de los cabezales. El problema es que la impresora lleva un contador de ciclos de limpieza de los cabezales y cuando llega a un cierto límite, considera que la esponja que hay debajo de los cartuchos ha llegado a su capacidad de absorción máxima y tienes que ¡¡tirar la impresora!! porque no hay un procedimiento para reemplazar la esponja.

Pues bien, es un ejemplo más de la obsolescencia programada. Se puede encontrar la forma de solucionarlo si se busca por Internet, y ya lo hemos probado, por ahora, hemos reseteado el contador y luego probaremos a cambiar la esponja, pero eso es más difícil, hay que abrir toda la impresora, no hay ninguna forma sencilla de sustituirla. Con lo fácil que hubiera sido poner un panel extraible para sacarla, pero no, tienes que sustituir la impresora entera.

El documental trata más asuntos, como la “conspiración” empresarial para hacer que el ciclo de vida de los productos sea corto y se tengan que reemplazar, dónde van los desperdicios (para los curiosos, van a Ghana, un país precioso que se está convirtiendo en un basurero) o el decrecimiento, una forma de pensamiento que promueve la sostenibilidad.

Hace poco tiempo que hemos empezado a leer el libro “Consumir menos, vivir mejor” (podéis descargar el libro en PDF) y hay muchas fórmulas de consumo sostenible, por lo menos, invita a la reflexión. Tenemos esos hábitos de consumo muy automatizados y nos cuesta librarnos de ellos.

Bug de Eclipse Helios para Mac OS X

Me ha pasado ya un par de veces que arranco el Eclipse Helios y se me acaba colgando el Mac.

Finalmente detecté lo que pasaba: se empiezan a generar montones de mensajes al log y el proceso DirectoryService se come la CPU. Lo he posteado en los foros de soporte de Apple, pero me han dado una respuesta estándar.

Mirando los logs en /var/log/system.log se comprueba que el problema es que el mDNSResponder se queda sin descriptores de ficheros, eso genera montones de mensajes de error que el DirectoryService encola y encola, y encola, hasta el infinito.

Como el log está saturado, cualquier operación como un “sudo”, abrir una ventana, etc se queda bloqueada, esperando que el log se quede libre para escribir en él.

Afortunadamente, el otro dia descubrí una solución, algo extraña, y que tengo que verificar, pero que creo que funcionará:

  1. Matar el proceso de eclipse desde la linea de comandos. Como este proceso se ejecuta con los permisos del usuario actual, no hace falta hacer sudo y se muere.
  2. Intentar matar el proceso DirectoryService, con un comando sudo killall DirectoryService. El comando se va a quedar “colgado”, esperando que el log se libere.
  3. Poner el ordenador en stand-by
  4. Tras arrancar del stand-by, los procesos colgados se liberan y se recupera el control.