lunes, 8 de septiembre de 2014

Vim: ejecutar comandos el crear cierto tipo de archivos

La idea es esta: cada vez que vaya a crear un archivo .{cpp|h} quiero ejectuar algun comando/script desde vim. En este caso el comando es copiar un template de ycm (ycm_extra_conf.py) para programar en C++, y este archivo se deberá copiar en cada directorio que vaya a crear un nuevo codigo C++.

El procedimiento es sencillo una vez encontramos la manera, y simplemente debemos agregar esta linea a nuestro $HOME/.vimrc :
autocmd FileType cpp silent! !cp $HOME/devel/program/c/ycm/.ycm_extra_conf.py $(pwd) && notify-send "a copy of ycm was moved for C++ code to $(pwd)/"

Lo cual funciona como esperado, pero... cada vez que editemos/creemos un nuevo cpp en el mismo directorio, esa funcion *siempre* se ejecutará, lo cual copiará el mismo archivo y mostrará el mismo mensaje de forma repetitiva, cosa que se torna un bastante incomodo despues de cierto tiempo. Entonces lo mas conveniente es hacer una funcion que verifique si el archivo ycm ya existe en el directorio actual y si existe pues salimos, si no existe, lo copiamos.

La funcion en cuestión quedará de esta manera:
function! Ycm_check()
let file_path= getcwd()."/"
if filereadable(file_path.".ycm_extra_conf.py")
return
else
!cp $HOME/devel/program/c/ycm/.ycm_extra_conf.py $(pwd) && notify-send "a copy of ycm was moved for C++ code to $(pwd)/"
endif
endfunction

autocmd FileType cpp silent! call Ycm_check()

Un screenshot:

miércoles, 2 de julio de 2014

Error: activated service 'org.freedesktop.systemd1' failed

Nos enfrentamos a un error que causa que el sistema no roconozca ciertos ACPI events, lo cual nos deja sin suspension, botones fin funcionar (boton de encendido, ej) y una serie de errores en nuestro syslog.

Resulta que este problem es producto de una actualizacion de systemd que rompe la captura y transmision de eventos entre ACPI y D-Bus porquee systemd no inicia con los permisos necesarios para poder "comunicar" estos eventos. Como podemos ver en bugs #731649 y #729576 (el segundo dando una explicacion mucho mas detallada entre desarrolladores como Ian Jackson, fundador de Debian) se entiende quee la solucion es instalar un paquete sacado de ese mismo hilo como "workaround": systemd-shim.

Despues de eso los servicios son reiniciados automaticamente y magicamente todo vuelve a la normalidad. Vemos en el source de ese paquete que entre otras cosas hace registrar systemd en D-Bus de forma adecuadad para que dicho error no sea generado y tanto systemd, d-bus y acpi vivan felices.

Definitivamente tener Debian Testing algunas veces nos saca de la rutina ^_^

martes, 11 de febrero de 2014

Busybox >= 1.21.0-2exp | <= 1.21.0-5exp rompe todos los kernels >= 3.11 en Debian Jessie (testing)

Y principalmente lo que rompe es el arranque, resultando en un kernel panic. Este problema lo tuve por mas de un mes y no tenia tiempo de buscarle solucion hasta hace unos dias.

Lo que sucede es que despues de actualizar busybox a las versiones mencionadas empieza a ocurrir el problema y manualmente debes seleccionar un kernel inferior para arrancar el sistema. La solucion es facil: revertir la actualizacion de busybox:
$ sudo apt-get install busybox=1:1.21.0-1

Despues de eso es necesario reinstalar la ultima version del kernel para que actualice el initramfs y todos sean felices.

Ese bug esta arreglado en la version experimental de busybox. Aqu el changelog:
busybox (1:1.21.0-6exp) experimental; urgency=low
...
...
* fix busybox initramfs hook to actually _run_ (make it executable)
and actually strip leading /usr from applet paths. Stupid.
(Closes: #732256)

miércoles, 5 de febrero de 2014

TODO.TXT: Gestionar tareas en bash

Si sos de los nuestros, esos que se proponen hacer mil cosas y terminan haciendo nada... esto te puede ayudar.

Existen N aplicaciones para llevar una lista de tus tareas y prioridades mediante interfaces graficas muy guapas, pero te toma mas tiempo revisarlas, marcarlas y priorizarlas que llevarlas a cabo. Algunos super-users suelen crear archivos de textos que se muestran en la consola al iniciarlas, llevar manualmente el control de tareas en un archivo de texto y otras muchas opciones ya que este procedimiento suele ser mas eficiente que cualquier aplicaciones grafica. Y ese archivo de texto plano... muchas veces es llamado todo.txt

Esta joya se define a sí misma como
If you’ve got a file called todo.txt on your computer right now, you’re in the right place. Countless software applications and web sites can manage your to-do list with all sorts of bells and whistles. But if you don’t want to depend on someone else’s data format or someone else’s server, a plain text file is the way to go.

TODO.TXT es un poderoso y simple script en bash que permite gestionar tareas, priorizar y marcar como terminadas mediante la consola (CLI). Todo esto es manejado mediante archivos de textos planos que tambien nos permitiran manipularlos a nuestro antojo. Manos a la obra:

Decargamos el paquete comprimido que contiene tres archivos que conforman la aplicacion. Una vez descargado ubicamos los archivos en sus respectivos directorios:
$ tar -xzf todo.txt_cli* && cd todo.txt_cli*
$ mkdir ~/.todo
$ mv -v todo.sh ~/.todo && chmod +x ~/.todo/todo.sh
$ mv -v todo.cfg ~/.todo/config # lo renombramos porque es necesario
$ sudo mv -v todo_completion /etc/bash_completion.d/

Y listo, ahora solo resta agregar dos lineas al .bashrc para que podamos encontrar todo.sh al momento de ejecutarlo en la consola:
$ echo -e "alias t=\"~/.todo/todo.sh\"\ncomplete -F _todo t" >> .bashrc
$ source .bashrc

Ahora simplemente con hacer $ t add "Mi primer tarea" vamos a poder empezar a crear y gestionar nuestras tareas ^_^. Si quieren saber como usar la aplicacion pues los invito a que vean el screencast de la pagina oficial, tambien pueden hacer $ t help y van a tener una muy clara explicacion de como sacarle el jugo a esta app.

Personalmente no quiero que esta herramiente sea otro de los muchos metodos que he intentado para poder llevar un control de mis tareas pendientes y que al final termino en lo mismo, asi que ademas de mi fuerza de voluntad agregue una pequeña linea a mi script de inicio para que me muestre la cantidad de tareas y cuantas tengo que son urgentes de seguir. La linea en sí es esta:
notify-send -i "cab_view" "TODO" "Rocordá que tenes $(cat ~/.todo/todo.txt | wc -l) tareas pendientes\
\nde las cuales $(cat ~/.todo/todo.txt | grep "^(A)" | wc -l) son urgentes"

Con este resultado:

Tambien me gustaria agregarlo a mi barra de estado, pero debo integrarlo en conky para poder extraer esa informacion.. por ahorita no estoy muy interesado en ello.

En fin, eso es todo. Espero les sea de utilidad ;)

martes, 27 de agosto de 2013

Habilitar SNA y TearFree para drivers Intel en Debian

Esto es será como un milagro para muchos, incluso para mi. Sucede que el driver intel para Linux no es considerado de lo mejor, pero tiene su buen soporte. Desde que utilizaba Ubuntu siempre tuve ese molesto problema al momento de reproducir videos *sin importar que sean HD* que aparecia un tipo de rayas o "tears" en el reproductor cuando habia mucho movimiento en el video, y nunca pude solucionarlo. Ahora que estaba actualizando mi Debian observé una actualizacion disponible para mi driver: xserver-xorg-video-intel.

Cuando mire esa actualiacion recorde el molesto problema que siempre habia tenido, y recorde que actualmente intel esta trabajando en reemplazar el mecanismo de aceleracion en su driver de UXA a SNA. Entonces me decidí a darle una probada a este ultimo mecanismo de aceleracion.

Lo primero que hice fue aplicar la actualizacion y ahora esta asi:
rcart*debian:~$ apt-cache policy xserver-xorg-video-intel
xserver-xorg-video-intel:
Installed: 2:2.21.14-4
Candidate: 2:2.21.14-4
Version table:
*** 2:2.21.14-4 0
990 http://ftp.us.debian.org/debian/ testing/main amd64 Packages
-10 http://ftp.us.debian.org/debian/ sid/main amd64 Packages
100 /var/lib/dpkg/status
rcart*debian:~$

Una vez tengamos el driver updated, vamos a crear un archivo de configuracion para el servidor X con el siguiente contenido:
rcart*debian:~$ cat /etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "sna"
EndSection

Con eso habilitamos la nueva aceleracion (SNA). Pero eso no es todo, debido a que esa aceleracion nos provee una interfaz grafica mas fluida, el problema de las "tears" todavia persiste. Asi que debemos establecer una nueva opcion en ese mismo archivo para poder librarnos de este castigo:
rcart*debian:~$ cat /etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "sna"
Option "TearFree" "true"
EndSection

Ahora intenten reproducir algun video en 1080p para comprobar los sorprendentes resultados.

Sources:
https://wiki.archlinux.org/index.php/Intel_Graphics
http://forums.gentoo.org/viewtopic-t-933410-start-0.html
$ man intel

miércoles, 7 de agosto de 2013

Debian: hibrido entre testing y unstable

Como lo mencione en mi actualizacion, he logrado montar (facilmente) un sistema hibrido entre estas dos ramas de Debian. El procedimiento es bastante sencillo pero muy eficaz.

Esto es posible estableciendo una configuracion en apt para que pueda distinguir entre las ramas que tenemos disponibles en nuestro /etc/apt/sources.list y sea posible identificar que rama tenemos como preferida, de esta forma los paquetes que tenemos instalados no se actualizan directamente de unstable sino que de la rama preferida, obviamente testing y asi evitamos romper el sistema con cada actualizacion. Comencemos.

Inicialmente vamos a establecer las ramas que querramos tener disponibles en nuestro sources.list, algo parecido a esto:

deb http://ftp.us.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.us.debian.org/debian/ testing main contrib non-free

deb http://security.debian.org/ testing/updates main
deb-src http://security.debian.org/ testing/updates main


####### DEBIAN MOZILLA TEAM #########
deb http://cdn.debian.net/debian experimental main


####### PACKAGES FROM UNSTABLE #########
deb http://ftp.us.debian.org/debian/ sid main contrib non-free
deb-src http://ftp.us.debian.org/debian/ sid main contrib non-free
Como vemos, hay dos tipos de ramas: la testing (Jessie) y la unstable (Sid). Ahora vamos a configurar apt para que sepa las prioridades entre las diferentes ramas.

Creamos el archivo /etc/apt/preferences con el siguiente contenido:
Package: *
Pin: release a=testing
Pin-Priority: 900

Package: *
Pin: release o=Debian
Pin-Priority: -10
Y eso se lee asi: Para todos los paquetes (*) en la rama (release) testing se estable una prioridad (pin) de 900 ($ man apt_preferences para conocer las prioridades) y todos los demas paquetes de cualquier otra rama tienen una prioridad negativa; no se van a instalar a menos que se indique directamente que queremos instalar un paquete de otra rama

Despues de hacer un #apt-get update nos damos cuenta que tenemos disponibles las ramas indicadas en nuestro archivo sources.list. Ahora bien, si queremos instalar cualquier paquete no va a ser posible porque todos los paquetes en este momento se consideran "virtuales debido a que apt-get no sabe de qué rama elegir para instalar un determinado paquete. Ahora debemos indicarle a apt-get lo que queremos y para eso creamos el archivos /etc/apt/apt.conf con el siguiente contenido:
APT::Default-Release "testing";
Y listo, con eso establecemos la rama que queremos indicarle a apt-get que será nuestra rama principal: testing. Ahora sencillamente instalan cualquier paquete sin ningun problema. Y que pasa si queremos instalar un paquete de la rama unstable? Lo hacemos de esta manera:
# apt-get install -t sid $paquete
Como vemos, si no indicamos el parametro -t (target), apt-get va a instalar el paquete de la rama testing, porque es asi como lo tenemos configurado de manera predeterminada.

En fin... como podran ver es un procedimiento bastante sencillo pero que nos da la posibilidad de poder instalar software en sus ultimas versiones para Debian y que se encuentran en la rama unstable. Sinceramente tengo firefox (iceweasel) de la rama experimental (# apt-get install -t experimental iceweasel) y desde que lo tengo no he tenido el mas minimo problema. Aunque como saben esto no es garantia para todos los paquetes.

martes, 23 de julio de 2013

ACTUALIZACIONES MISC, OTRA VEZ

He estado ausente en este mundo debido a muchos estupidos factores, pero creo que hasta este momento ya tengo lo necesario para continuar con ciertos detalles.

En fin, aqui unos recientes cambios:

Abando Ubuntu despues de 5 años, me paso a la raíz

Asi es, dejo mi adorada distribucion y me paso a Debian por un principal factor: Los secretos que Canonical guarda para su producto principal.

Despues del boom que hizo Mir al salir a la luz a muchos usuarios/desarrolladores les parecio algo hasta cierto punto insultante debido a que Ubuntu es una distro "comunitaria", lo cual refleja lo contrario.

Por mucho tiempo quise llegar a ser MOTU, pero lo anteriormente mencionado ha dejado en mi un tipo de intranquilidad que no he podido soportar y es por eso que dificilmente decidi cambiar de rumbo. Todo lo que afortunadamente aprendi respecto al desarrollo de Ubuntu lo aplicare tambien en Debian, ya que tengo el objetivo de involucrarme en el desarrollo de Debian.

Quizas en algun punto quiera volver a regresar a Ubuntu y seguramente lo hare sin problemas, pero mientras tanto, me quedo con Debian.

Debian: una distribucion orgásmica

Definitivamente es el Sistema Universal con muchisima razon. Algunas personas piensan que las versiones estables de Debian son demasiadas desactualizas y quizas tengan razon, pero las posibilidades son muchas.

Realize una instalacion minimalista casi identica a la que tenia en Ubuntu, pero ademas de eso tengo varias mejoras:
  • Mi sistema de particiones esta montado sobre un LVM encriptado con particiones logicas obviamente encriptadas
  • Tengo un sistema hibrido: un sistema mixto entre Testing (Jessie) y Experimental. Esto significa que tengo un sistema base lo suficientemente estable y con la posibildad de poder instalar las aplicaciones mas recientes desde Experimental. Bello.
  • El sistema es ligeramente mas fluido
  • Google Reader murió, larga vida a Feedly
  • Ya no utilizo pidging, simplemente irssi para IRC
En fin, creo que hasta este momento estoy mas que satisfecho con los resultados que he obtenido. Por ahorita lo unico que me hace falta es montarme un entorno de desarrollo y comenzar desde cero. Será un viaje divertido.

lunes, 11 de marzo de 2013

Drivers Intel de Ubuntu 12.10 en Ubuntu 12.04 Precise

ADVERTENCIA: ESTO TE PUEDE DEJAR SIN SERVIDOR GRAFICO! CONTINUÁ POR TU CUENTA.

Ademas de tener el ultimo driver de quantal para tarjetas Intel, tambien tendremos la ultima version del X Windows Server, asi que contaremos con un muy actualizado apartado grafico. Creo que esta es una de las ventajas de contar con una version LTS de Ubuntu.

Bien, cuento con un sistema minimalista y no pienso llenar mi equipo de paquetes que no necesito, asi que debo saber especificamente qué paquetes debo instalar.

Antes que nada veamos la diferencia entre versiones:
rcart*ubuntu:~$ rmadison xserver-xorg-video-intel
xserver-xorg-video-intel | 2:2.2.1-1ubuntu12 | hardy | source, amd64, hppa, i386, ia64, lpia, powerpc
xserver-xorg-video-intel | 2:2.2.1-1ubuntu13.8 | hardy-updates | source, amd64, hppa, i386, ia64, lpia, powerpc
xserver-xorg-video-intel | 2:2.9.1-3ubuntu5 | lucid | source, amd64, i386
xserver-xorg-video-intel | 2:2.15.901-1ubuntu2 | oneiric | source, amd64, i386
xserver-xorg-video-intel | 2:2.15.901-1ubuntu2.2 | oneiric-updates | source, amd64, i386
xserver-xorg-video-intel | 2:2.17.0-1ubuntu4 | precise | source, amd64, i386
xserver-xorg-video-intel | 2:2.17.0-1ubuntu4.3 | precise-updates | source, amd64, i386
xserver-xorg-video-intel | 2:2.20.9-0ubuntu2 | quantal | source, amd64, i386
xserver-xorg-video-intel | 2:2.21.4-0ubuntu1 | raring | source, amd64, i386

Como vemos, la version de precise es la 2.17, quantal 2.20.9 y raring 2.21.4.

Lo ideal seria tener la de raring, ya que incorpora *notables* cambios en comparacion a las versiones anteriores. Pero por ahorita no tengo prisa en utilizarla, asi que me conformo con la de quantal asi que esperaré hasta que este lista. (Esto de esperar no me lo crean...)

Instalamos los paquetes específicos de quantal proporcionados por el equipo LTS (y asi siempre tendremos disponibles las versiones actualizadas):
rcart*ubuntu:~$ sudo apt-get install xserver-xorg-core-lts-quantal xserver-xorg-input-all-lts-quantal xserver-xorg-video-intel-lts-quantal
Con eso se "rompe" el inicio de las X, por que? Porque solo instalamos el sistema base del servidor X y no en su totalidad, asi que debemos hacer algunas pequeñas modificaciones a los archivos de arranque ya que ese paquete base proporciona Xorg en vez del tipico X.

Entonces, editamos /etc/X11/xinit/xserverrc y lo dejamos de esta manera:
exec /usr/bin/Xorg -nolisten tcp "$@"

Utilizo Slim como DM, entonces debo hacer alguna modificacion alli tambien y dejamos la linea 4 asi:
default_xserver /usr/bin/X11/Xorg

Ahora solo queda crear el archivo xorg.conf para que todo este listo:
rcart*ubuntu:~$ sudo X -reconfigure && mv -v xorg.conf.new /etc/X11/

Listo. Ahora podemos reiniciar. Si todo arranca con normalidad, contaremos con un apartado grafico actualizado. Para comprobar esto revisen el log en /var/log/Xorg.0.log.

Algunos pensaran que es mucho mas facil instalarlo desde un PPA, pero... no sé, no me siento tranquilo con ese metodo :\

En fin, espero sigan con el apartado grafico con vida x'D

En la proxima actualizaré mi Window Manager (spectrwm) a su ultima versión.

martes, 19 de febrero de 2013

Actualizaciones misc

Bueno, despues de andar perdido por alli recordé que tenía blog. Aunque creo que no tengo nada relevante que documentar sobre las cosas que estado haciendo porque, en realidad, no he estado haciendo nada.

Dejé muchas cosas planificadas pero debido a diversos factores, y ningun justificable, las he dejado en espera indefinida. Pero bueno, creo que vengo con un poco de animos para enderezar mis pasos.

Algunas cosas relevantes que deberia mencionar.

Tengo nuevo telefono =)_
Es un Nexus One que he podido traer a la vida instalandole Jellybean 4.2, aún sabiendo que oficialmente no lo soporta pero debo decir que no tengo ninguna queja al respecto. Anda bastante bien para ser un telefono que no fue diseñado para soportar esa version de Android. GRACIAS XDA-DEVELOPERS!

Mi actividad relacionada al desarrollo de Ubuntu
Deje pendiente muchas cosas en este apartado. Por ejemplo un bug sobre xpdf que me asigne en LP y no continué buscando la solucion a un problema que tenia para aplicar el parche en Quantal.

Personal
Estos primeros meses del 2013 he sido un desastre en todos los sentidos. Its enough.

En fin, continuemos con esto.

Saludos.

viernes, 7 de diciembre de 2012

Irssi y libnotify

Si extrañas esas pequeñitas alertas que los clientes graficos IRC envian cuando alguien menciona tu nick, te envia y mensaje privado o te quiere transferir un archivo, irssi puede con ello.

La manera mas facil de obtener notificaciones de irssi en tu escritorio minimalista o entorno grafico, es utilizando el plugin irssi-libnotify el cual consiste de un "listener" en python que crea una instancia D-Bus para estar a la escucha de los eventos de irssi, y luego estos eventos son transmitidos al demonio de notifacion del sistema que finalmente nos muestra esa preciada ventanita emergente =)

La instalacion es bastante facil, primero que nada debemos clonar el repositorio para obtener la version mas reciente del proyecto (si no lo hacen de esta manera las ventanas de notificacion serán horribles porque utilizan gtk a secas y no son emergentes):
git clone https://code.google.com/p/irssi-libnotify/

irssi-linotify, como dije, consta de un "listener" en python y un plugin en perl (obvio) para irssi que envia los eventos del IRC al listener y este finalmente al sistema de notificaciones del SO.

Una vez tengamos la rama clonada tendremos que ubicar estos archivos en sus directorios respectivos. El listener notify-listener.py deberia estar en el directorio ~/bin de nuestro $HOME por razones de comodidad, asi que lo ubicamos en ese directorio o donde quieran (pero que recuerden). El archivo notify.pl lo ubicamos en el directorio de plugins de irssi ~/.irssi/plugins y lo linkeamos a ~/.irssi/scripts/autorun para que sea iniciado cada vez que ejecutemos irssi.

Para hacerlo desde la consola y ubicados dentro del directorio donde esta la rama, hacemos:
cp -v notify-listener.py ~/bin
cp -v notify.pl ~/.irssi/plugins/
ln -s ~/.irssi/plugins/notify.pl ~/.irssi/plugins/autorun/

Ahora debemos ejecutar los ultimos detalles para poder comenzar a utilizar este plugin:
  1. instalar la libreria con la que interactua Perl con D-Bus (sino, el plugin no funciona)
  2. ejecutar el listener
  3. cargar el plugin desde irssi
  4. ejecutar agregar el listener a los archivos de inicio del sistema

sudo apt-get install --no-install-recommends libnet-dbus-perl
python notify-listener.py &
#esto es desde irssi
/scrips load notify.pl
Con el ultimo paso, depende de nuestro WM/DE. Utilizo spectrwm asi que los archivos de inicio los cargo desde .xinit.

Una captura para ejemplificar ;)




notification-daemon no te funciona? Utiliza notify-osd

Desde la version 12.04 de Ubuntu notification-daemon esta roto para la mayoria de aplicaciones GTK2.

Hace unos dias me descargué Linux Mint Nadia (14) para una amiga, y casualmente la estuve testeando (increible distribucion, muy buena) antes de meterla en la USB y me dió la curiosidad de saber los paquetes que utilizaba para el sistema de notificacion, tomando en cuenta que esta basada en Ubuntu 12.10.

Haciendo un dpkg -l |grep notify obtuve lo que buscaba, y me dí cuenta que utiliza notify-osd junto con otros paquetes para hacer uso de las notificaciones.

En mi instalacion minimalista utilizo pidgin para IM, y debido a que notification-daemon esta roto para mi version de Ubuntu y no he encontrado solucion hasta este momento, no cuento con notificaciones emergentes. Instale los paquetes necesarios de Mint para hacer funcionar de alguna manera notify-osd, y lo he conseguido. Vamos a ello:

Instalamos todo el sitema de notificaciones (yo lo tenia parcialmente instalado):
sudo apt-get install --no-install-recommends notify-osd notify-osd-icons libnotify4 libnotify-bin pidgin-libnotify gir1.2-notify-0.7 python-notify vlc-plugin-notify
Y con eso he podido encontrar la felicidad =)

Ahora ya cuento con un sistema de notifiacion funcional y no pierdo ninguna de ellas ;)

viernes, 30 de noviembre de 2012

xclip: Enviar texto desde la consola al portapapeles

Esta pequeña herramienta es una joya. En vez de abrir un archivo con vim y luego pasarlo al registro del portapapeles en el servidor X, lo podemos hacer directamente sin abrir el archivo, genial.

Si hacemos:
$ cat texto.algo | xclip

Eso envia el contenido del archivo "texto.algo" al registro primario del clipboard del servidor X. Y con eso facilmente lo podemos pegar en cualquier aplicacion grafica con Shift+Insert. Podemos redireccionar cualquier texto mediante pipes a xclip. Otro sencillo ejemplo:
$ echo "texto" | xclip

Instalamos el paquete de unos insignificantes 20kb:
$ sudo apt-get install xclip

Y listo. Para mas opciones vean su manpage ;)

Saludos.

sábado, 13 de octubre de 2012

Suspension Hibrida en Ubuntu

Pues bueno, esto lo tenia pendiente de implementar y compartir desde hace varios meses. La suspension hibrida (en el paquete pm-utils) consiste en que el equipo suspende normalmente, pero despues de X tiempo puede hibernar automaticamente y asi evitar consumo de energia (durante la suspension el equipo sigue despierto).

Primero que nada se debe confirmar que nuestro equipo soporta este tipo de suspension. Comencemos:
$ sudo pm-is-supported --suspend-hybrid && echo $?

Y si el valor de retorno es 0 (cero), entonces nuestro equipo soporta esta funcionalidad. De no ser asi, esto no esta disponible para tu equipo.

Una vez confirmado, vamos a crear la regla que permita reemplezar la suspension normal por la suspension hibrida:
$ sudo vim /etc/pm/config.d/00-hybrid-suspend

Con el siguiente contenido:
# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi

El script es auto-explicable: si el equipo se suspende, en vez de utilizar la suspension normal se debe utilizar la suspension hibrida.

Y con eso despues de un determinado tiempo despues de estar suspendido el equipo, este hibernará automaticamente. Para tener un mejor control del tiempo de suspension antes de que pase a hibernar, podemos indicarlo explicitamente con la variable PM_HIBERNATE_DELAY en segundos. Yo lo dejé para que hiberne despues de una hora (3600s) de estar "dormido", considero que es tiempo suficiente:
# Always use suspend_hybrid instead of suspend
if [ "$METHOD" = "suspend" ]; then
METHOD=suspend_hybrid
fi
PM_HIBERNATE_DELAY=3600

Para que lo vean en accion pueden poner un tiempo de 5s, y luego de comprobar su funcionalidad lo establacen al valor deseado. No es necesario reiniciar porque estos son eventos que se capturan por acpid.

Saludos.

Fuente

jueves, 11 de octubre de 2012

Pasandome a irssi

Siempre he sido un amante de pidgin. Me encanta este cliente IM que tambien he usado siempre para comunicarme por IRC.

Soy tambien usuario de CLI (command-line interface) pero de igual forma me gustan las buenas aplicaciones graficas, cuando es necesario.

Mis aplicaciones de consola favorita son mutt, vim, pms, mpd y claro; bash ;D

Irssi es un cliente IRC legionario y, aparentemente inmortal. Es increiblemente personalizable, rapido y super agregable en el manejo.

Nunca lo habia utilizado, pero debido a mi actual instalacion he conocido muchas aplicaciones de consola (como zathura y sxiv) que me han sorprendido gratamente. Irssi lo conocia desde hace mucho pero nunca le habia dado la oportunidad, hasta hace unos dias.

Despues de una instalacion ($ sudo apt-get install irssi) el programa esta listo para ser ejecutado. No voy a hablar de su uso y configuracion, ya que para poder utilizarlo se deben tener conocimiento basico de los comandos utilizados para la interaccion con servidores y canales IRC. Asi que despues de una configuracion (y modificacion al tema elegido, porque tenia problemas al mostrar unos caracteres ademas de agregarle un poco mas de colores) medianamente decente, puedo decir que me quedo con este cliente IRC sin pensarlo dos veces.

Dejo unas capturas por si se quedan con la duda. Si quieren el tema (con los cambios que le hice) solo dejen el comentario. (Debo empezar a manejar mis configuraciones en Github para compartirlas mas facilmente):




miércoles, 10 de octubre de 2012

Microfono interno Dell Inspiron N4050: Soporte incorporado en ALSA \o/

Hace mucho expliqué como hacer funcionar el microfono interno de este equipo, pero durante mi actualizacion a Ubuntu 12.04 y durante la instalacion de ALSA, me puse a leer su changelog del sitio oficial y me encontré con la grata noticia que dice asi:
[...]
- ALSA: HDA: Add internal mic for IDT 92HD88B
BugLink: http://bugs.launchpad.net/bugs/696493
According to datasheet (and real-world testing), IDT 92HD88B can
have internal mics at NID 0x11 and 0x20, so enable them accordingly.
[...]

Lo que significa que ese microfono ahora es soportado por ALSA (que tiene su codigo base en el Kernel) en su version >=v1.0.23 | v1.0.24.

Si querés confirmar el model del micro de tu tarjeta podes hacerlo asi:
rcart*ubuntu:~$ cat /proc/asound/card0/codec#* | grep Codec
Codec: IDT 92HD87B1/3
Codec: Intel CougarPoint HDMI
rcart*ubuntu:~$

Y para la conocer la version de ALSA que estas corriendo, hace:
rcart*ubuntu:~$ cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.24.
rcart*ubuntu:~$

Saludos.

Instalar Ubuntu Minimal: Segunda Parte

Despues de la primer entrada y una falsa promesa de continuar la segunda parte al dia siguiente, recordé que tenia pendiente terminar este tema XD

En fin, no mas excusas. Continuemos.

martes, 24 de julio de 2012

Instalar Ubuntu Minimal: Primera parte

Como dice el título, en un seria de post (espero solo sean dos) les mostraré los pasos que segui para poder tener una instalacion minimalista de Ubuntu 12.04 (Precise Pangolin). Advierto que esta instalacion no es recomendable para usuarios principiantes.

sábado, 21 de julio de 2012

He vuelto \o/

Pues bueno, despues de tener en el olvido el blog por diversos motivos, he vuelto. Tengo varias cosas pendientes sobre las cuales escribir, asi que espero hacerlo lo mas pronto posible.

10-8

sábado, 24 de marzo de 2012

Packaging Apport Hooks

If you wanna write an apport hook, take a look at: Packaging apport hooks

Mmm... se me dificulta mucho estar traduciendo a Español las entradas que escribo en viajemotu y postearlas aqui. Creo que lo mejor será simplemente poner el titulo, y enlazarlo al blog que acabo de mencionar. Seguramente el motivo es que soy demasiado "lazy" para hacerlo o me parece muy tedioso.

En fin... quizas las entradas que sean bastante rapidas, las pondre aqui tambien. Si por algun motivo existe alguien alli afuera que quisiera ver las entradas en español, entonces podria considerar traducirlas.

Este redireccionamiento lo pondré en ingles la proxima vez. Cya!