Solucionando ventilador al 100% al volver de suspender el sistema

recoveryLlevo teniendo este problema con Ubuntu en un portátil desde… bueno, desde siempre, que yo recuerde, pero como normalmente suelo apagarlo no me había preocupado de buscar cómo arreglarlo.

Hoy me picó la curiosidad y me puse a investigar. Resulta que al parecer el problema viene de que el SO asume que al volver del estado suspendido los ventiladores estarán en el estado en que estaban antes de suspender, y esto dependiendo del hardware no tiene por qué ser así.

Parece que en algunos sistemas (no se cuales, pero en el mío definitivamente debe ser el caso) al volver de la suspensión los ventiladores se ponen automáticamente al 100%, y como el SO no los restaura a ningún estado se quedan ahí bufando sin razón.

De hecho si cuando están ahí a tope lanzas un proceso intensivo que normalmente aumentaría la frecuencia de los ventiladores, al terminar dicho proceso los ventiladores se ralentizan de vuelta a un estado normal, así que definitivamente parece confirmarse la hipótesis del estado inicial incorrecto.

La primera solución que encontré hablaba de crear un script en /etc/pm/sleep.d que pusiese a cero los ventiladores. Supuestamente los scripts en esta ruta se ejecutan al volver desde el estado suspendido, así que debería funcionar automáticamente.

Al script le llamaremos por ejemplo 10_fancontrol, y sería:


#!/bin/sh
case "$1" in
        resume|thaw)
                for i in $(seq 0 15) ; 
                do 
                        echo "0" > /sys/devices/virtual/thermal/cooling_device${i}/cur_state
                done
;;
esac

En la ruta /sys/devices/virtual/thermal/ hay una serie de directorios, comenzando por cooling_device0 y llegando hasta cooling_device10 o más, dependiendo del hardware (en mi portátil va hasta el 15).

Si haces un cat del archivo cur_state dentro de cada uno de esos directorios verás que hay o bien un 0 o un 1, correspondiendo el 1 al estado en que el ventilador está activo, así que lo que hacemos es poner todos a cero.

El problema: resulta que ahora con systemd esto ya no funciona, ya que no se ejecutan automáticamente los scripts de esa ruta.

La solución: crear un servicio de systemd.

Sigue leyendo

Bloqueando publicidad desde el archivo hosts

block-adsNada nuevo realmente, pero no me había dado por usarlo hasta hace un par de días.

Cuando piensas en bloquear publicidad normalmente piensas en el navegador, y al pensar en el navegador piensas en extensiones. De hecho hay algunas muy conocidas como adblock que funcionan bien.

Usar extensiones tiene sus ventajas, como por ejemplo el que te olvides de gestionar las actualizaciones de la lista de bloqueos o que además la extensión se encargue de eliminar el contenedor de la publicidad en la página de forma que no queden huecos vacíos donde ésta debería estar.

También tiene sus inconvenientes: sólo bloquea publicidad en el navegador en el que está instalada y además ralentiza ligeramente la navegación.

Una opción alternativa es usar nuestro archivo de resolución de nombres para hacer el bloqueo.

Sigue leyendo

Programando con Node-Webkit. 3: cliente-servidor

nodewebkitHace unos días hablaba de montar una aplicación cliente-servidor rápidamente usando ssh para ejecutar comandos remotos.

Bueno, funcionar funciona, pero tiene algunos inconvenientes como por ejemplo depender de usuarios de sistema con los que hacer login. Disponiendo de tiempo y ganas sería mejor desarrollar nuestro propia app de servidor con nuestro propio sistema de autenticación, y mejor aun si además con ello conseguimos que nuestra aplicación sea totalmente portable.

Puede haber mil formas de hacerlo, pero ya que estamos metidos con node-webkit le daremos una vuelta a una de sus alternativas en la vertiente de server: express.js.

Sigue leyendo

Error con ssh2 en Node-Webkit

nodewebkitPongamos que quieres desarrollar rápidamente una aplicación cliente-servidor en node-webkit, y que precisamente por la parte de “rápidamente” quieres centrarte en el cliente sin liarte con la comunicación con el servidor.

Una opción sencilla es usar ssh, ejecutando de forma remota en el servidor lo que necesitemos y capturando y parseando las respuestas.

Además querremos que nuestro cliente sea multiplataforma, así que buscando librerías de ssh en javascript encontraremos el módulo ssh2 de npm. Todo perfecto, estás a cinco minutos de tecleo de tener tu aplicación funcionando…

…Y entonces resulta que la conexión falla 4 de cada 5 veces sin tener ni idea de por qué.

Sigue leyendo

Programando con Node-Webkit. 2: build

nodewebkitEn el artículo anterior sobre node-webkit nos habíamos quedado con una aplicación de prueba sin más contenido que una cadena de texto, pero que ya podíamos ejecutar a través de nw y ver que efectivamente la cosa funcionaba.

Bien, pongamos que ya le hemos echado unas horas a nuestro programa y queremos distribuirlo a más gente… lo de decirles que se descarguen el node-webkit y usen “nw ./” desde la carpeta no es muy atractivo, mucho mejor si les damos un ejecutable sobre el que sólo necesitan hacer click para arrancarlo, verdad?

Para ayudarnos con esto está Grunt.

Sigue leyendo

Programando con Node-Webkit. 1: empezando

nodewebkitPodría inventarme excusas más técnicas sobre por qué me ha dado por probar a desarrollar con node-webkit, pero la realidad se reduce a “porque puedo”.

Por eso, y porque siempre me ha picado la curiosidad de diseñar interfaces de escritorio con CSS, y aunque node-webkit no es la única opción para ello (ni seguramente la mejor) sí tiene un cierto interés particular por lo rebuscada que es.

A fin de cuentas programar una aplicación de escritorio con funciones asíncronas es un poco como partir el filete con el tenedor y comerlo con el cuchillo: un desafío absurdo de consecuencias potencialmente interesantes.

Sigue leyendo

Haciendo Gimp visualmente más parecido a Photoshop

Gimp 2.8Suelo ser de la opinión de que cuando dos cosas son diferentes, el tratar de asemejarlas superficialmente a lo único que lleva es a la confusión.

Por mucho que modifiquemos el interfaz, Gimp sigue siendo Gimp y Photoshop sigue siendo Photoshop, aunque sí es cierto que para los que estén habituados a trabajar con el programa de Adobe les resultará mucho más intuitivo trastear con GIMP si las herramientas, los paneles y los atajos de teclado son iguales (o al menos muy parecidos).

Sea como sea, porque conozcas bastante el Photoshop o simplemente porque te apetezca probar, he aquí como darle un lavado de cara al GIMP.

Sigue leyendo