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!

viernes, 9 de marzo de 2012

pbuilder: Construir paquetes i386 en equipos x64

Lo maravilloso al momento de construir paquetes utilizando pbuilder, seria tener la facilidad de construir para arquitecturas i386 desde equipos x64. Pues es facil utilizando las ultimas versiones de pbuilder (no se desde cuando esto es posible).

Primero lo que debemos hacer es tener un sistema base para ambas arquitecturas, para contruirlas hacemos esto:
pbuider-dist precise i386 create

Y despues de que haya finalizado el proceso de instalacion, creamos un sistema base para x64 (como tengo un equipo x64, no es necesario especificar la arquitectura debido a que pbuilder descarga el sistema base con X aquitectura dependiendo de nuestro sistema):
pbuilder-dist precise create

Entonces, al momento de crear un paquete para i386, basta con hacer esto:
pbuider-dist precise i386 *.dsc

Para construir paquetes x64 no es necesario indicarla la arquitectura, ya que toma la que estamos utilizando:
pbuilder-dist precise *.dsc

Un tip bastante bueno.

Fuente

Recuperar (recover) passphrase gpg

Esta entrada solo es valida si tenemos una clara idea de lo que podria ser nuestra frase secreta de nuestra llave privada gpg. En mi caso, la olvide porque la ultima vez que la utilice fue para montar (de nuevo) el entorno de desarrollo para empaquetamiento en Ubuntu.

Desde ese dia no volvi a utilizar mi llave, pero hoy que queria firmar unos sources de paquetes para construirlos con pbuilder, resulta que la frase secreta no era correcta O_O!

Tengo una memoria bastante mala para la mayoria de las cosas que me parecen irrelevantes. Obviamente mi firma digital es super relevante, pero no la suelo utilizar (creo que este habito cambiara, empezare a firmir mis mails). Normalmente manejo por mucho, unas 4 contraseñas para mis diferentes actividades. Asi que tenia una idea de cual podria ser, pero estaba confundido.

Existe los brute forcers, que son aplicaciones de fuerza bruta que permiten crackear una contraseña, pero esto depende del tipo de contraseña y protocolo. Como es un tipo de crackeo offline, tenemos toda la vida para dejar al brute forcer a que pruebe hasta la ultima combinacion posible en nuestra llave, con el fin de llegar a la correcta. No quiero esperar una vida para recuperar mi llave xD

Algunos diran que el camino mas facil seria revocar la llave, y crear una nueva. Mi problema es que tengo cerca de 4 llaves publicas perdidas, no quiero una mas. Asi que sin tanta vuelta veamos de que manera podriamos recuperar nuestra frase secreta de nuestra llave gpg.

Como lo dije en un principio, para esta tecnica necesitamos tener nociones de nuestra clave, ya que esta herramienta no es un brute forcer como tal.

Les presento a rephrase. Una aplicacion que nos permite hacer fuerza bruta a nuestra llave gpg en base a un patron proporcionado por el usuario.. Este patron no es visible por motivos de seguridad, lo que recomendaria es escribirlo en un archivo, copiarlo y despues pegarlo en el prompt para que ingresemos el patron correctamente.

Su sintaxis es simple:
rephrase

Para obtener nuestra llave privada basta con hacer:
gpg --list-secrets-keys

Una vez hayamos ejecutado el comando anterior, entraremos al prompt que nos pedira ingresar un patron para comenzar el proceso. Ese patron esta muy bien explicado en el manual de la herramienta (man rephrase). Pero por ejemplo, si mi contraseña es "doctormalito" y no recuerdo si cambie algunas (pero no se cuales) bocales por mayusculas, y las consonantes por minusculas, entonces mi patron quedaria asi:
d(o|O)ct(o|O)rm(a|A)l(i|I)t(o|O)

Como veran las combinaciones estan encerradas en parentesis "()" y separadas por barras verticales "|". Si estamos en lo correcto, obtendremos "Passphrase found!" y una secuencia de numeros que indican cual de las posibles combinaciones forman nuestra frase secreta (esto lo hace con motivos de seguridad). Entonces, si nuestra contraseña era "doctOrmalIto", entonces el resultado sera este:
1 1 1 1 2 1 1 1 1 2 1 1
d o c t O r m a l I t o

Y de esta manera pude recuperar (en realidad recordar) mi frase secreta, y ya pude firmar los paquetes en los que estaba trabajando \\^_^//

English note: If you need this post to be writed in english, just leave a comment and I'll post it in english as well. Otherwise, you can use Google Translate.

sábado, 3 de marzo de 2012

Consultando paquetes y bugs en Debian con rmadison y reportbug

Esta es la primer entrada sobre Ubuntu Development orientada a aquellos que tengan un entorno de desarrollo funcionando y/o los interesados en la tematica.

Algunas notas rapidas sobre algunas herramientas que nos sirven al momento de consultar paquetes en debian. Uno de los casos mas comunes es el momento de querer arreglar un paquete en Ubuntu, ya que quizas este haya sido solucionado en debian. Por suerte tengo un ejemplo en el que trabaje hace un tiempo . El escenario es el siguiente.

El reporte del bug lo encontré en Ubuntu (Launchpad) y comence a solucionarlo, pero siguiendo las reglas busque algun tipo de reporte similar en Debian, y encontre un reporte del mismo problema.

Todos los paquetes en Ubuntu (o casi todos) son importados directamente de la version en desarrollo de Debian, lo que significa que los paquetes arreglados en Debian llegan felizmente a Ubuntu. Dependiendo del estado del ciclo de la version actual en desarrollo de Ubuntu, los paquetes seran importados (sincronizados) o no. Se hace una unica sincronizacion de manera automatizada (solo imaginen lo descumunal que ha de ser) y si se desea realizar sincronizaciones de paquetes posteriormente, se debe hacer de manera manual.

Algunos desarrolladores en Ubuntu, envian los parches a Debian, y una vez aceptados y aplicados en Debian, se hace manualmente una sincronizacion del paquete en Ubuntu. De esta manera, no solo Ubuntu se verá benefiada por el paquete corregido sino todas las distribuciones que importan sus paquetes desde Debian.

Por suerte, en mi caso el encargado de revistar mi trabajo (reviewer/sponsor) me dio la oportunidad de aplicar el cambio en Ubuntu utilizando el parche aplicado en Debian.

Espero se hagan una pequeña idea de como funciona la relacion Ubuntu-Debian. Dejemos la teoria.

Primero comencemos con rmadison. Esta utilidad, parte del paquete devscripts, nos permite consultar la existencia de paquetes en Debian y Ubuntu. Es una herramienta muy util y facil de utilizar. Veamos.

Si queremos consultar el paquete foo en Debian, hacemos:
rcart*ubuntu:~$ rmadison -u debian foo
rcart*ubuntu:~$

Como vemos, el paquete no existe. Ahora veamos uno que realmente existe: (acorte la salida para no distorcionar)
rcart*ubuntu:~$ rmadison -u debian pidgin
pidgin | 2.4.3-4lenny8 | lenny-security | source, amd64, arm, i386, powerpc, sparc
pidgin | 2.4.3-4lenny8 | lenny | source, alpha, amd64, arm, i386, ia64, powerpc
pidgin | 2.6.6-1~bpo50+1 | backports/lenny | source, hppa
pidgin | 2.7.3-1~bpo50+2 | backports/lenny | source, alpha, amd64, i386, powerpc
pidgin | 2.7.3-1+squeeze2 | squeeze | source, amd64, i386, kfreebsd-amd64
pidgin | 2.10.1-1 | wheezy | source, amd64, i386, kfreebsd-i386, powerpc
pidgin | 2.10.1-1 | sid | source, amd64, i386, kfreebsd-i386, powerpc
rcart*ubuntu:~$

El resultado es bastante claro. Nos muestra el paquete, la version en su rama respectiva y las arquitecturas (lo cual reduje) para las que esta disponible dicho paquete.

Ahora veamos como consultar bugs existentes en Debian.

Primero que nada, debo aclarar que el sistema que Debian utiliza para gestionar los reportes de bugs (Debian Bug Tracking System, BTS) esta diseñado para interactuar mediante correo electronico. Lo que significa que para reportar un bug debemos enviar un correo electronico al BTS, pero no hay por que asustarse, hay herramientas que nos permiten preparar el reporte facilmente ;D

reportbug es la utilidad que nos permite interactuar con el BTS de Debian. En Ubuntu, debemos utilizar la opcion -B debian para indicar que vamos a consultar en Debian, no en Ubuntu.

Normalmente utilizamos esta herramienta para enviar un nuevo reporte sobre un paquete en especifico. reportbug captura el estado del paquete y extrae cierta informacion del mismo para incluirla en el reporte. Pero que pasa si solo queremos consultar los reportes que contiene actualmente un paquete que no tenemos instalado? Utilizamos el argumento -I, el cual indica que no verifique si el paquete esta instalado.

Al momento de consultar los bugs de un paquete, nos pedira que escribamos un Asunto para ser incluido en el reporte, pero como solo estamos consultado, lo dejamos en blanco y presionamos Enter.

Veamos un ejemplo. Vamos a consultar los reportes contra el paquete... mmm... piding:
*** Welcome to reportbug. Use ? for help at prompts. ***
Note: bug reports are publicly archived (including the email address of the submitter).
Detected character set: UTF-8
Please change your locale if this is incorrect.

Using 'X' as your from address.
Please enter the version of the package this report applies to (blank OK)
>
Will send report to Debian (per request).
Querying Debian BTS for reports on pidgin (source)...
130 bug reports found:

Outstanding bugs -- Important bugs; Unclassified (5 bugs)
1) #535790 pidgin: CVE-2009-1889 denial-of-service
2) #563828 finch: GNT shortcuts do not work in Xterm
3) #578476 Crashes when a broken GStreamer plugin is installed
4) #584576 Pidgin randomly crashes
5) #594378 after suspend/resume cycle pidgin fill logs with gstreamer assertion

Outstanding bugs -- Normal bugs; Patch Available (1 bug)
6) #589631 pidgin-data: /etc/purple/prefs.xml is invalid xml
(1-6/130) Is the bug you found listed above [y|N|b|m|r|q|s|f|e|?]?

Si queremos ver en detalle un reporte, escribimos el numero del bug en cuestion, por ejemplo, para ver el primer reporte podemos escribir el numero 1, o 535790, el resultado es el mismo:
What do you want to do now? [N|x|o|r|b|e|q|?]? 1

Original report - #535790: pidgin: CVE-2009-1889 denial-of-service

From: "Michael S. Gilbert"
Date: Sat, 4 Jul 2009 23:42:26 -0400

Package: pidgin
Version: 2.4.3-4lenny2
Severity: important
Tags: security

Hi,
the following CVE (Common Vulnerabilities & Exposures) id was
published for pidgin.

CVE-2009-1889[0]:
| The OSCAR protocol implementation in Pidgin before 2.5.8 misinterprets
| the ICQWebMessage message type as the ICQSMS message type, which
| allows remote attackers to cause a denial of service (application
| crash) via a crafted ICQ web message that triggers allocation of a
| large amount of memory.

More info can be found in redhat bug [1]. Please coordinate with the
security team to prepare updates for the stable releases.

If you fix the vulnerability please also make sure to include the
CVE id in your changelog entry.

For further information see:

[0] http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1889
http://security-tracker.debian.net/tracker/CVE-2009-1889
[1]
(END)

Para salir presionamos q, y para terminar la consulta escribimos q y presionamos Enter.

En fin, dos herramientas indispensables al momento de trabajar con paquetes y reportes en Ubuntu. Espero les haya servido ;D

viernes, 2 de marzo de 2012

Drenaje de bateria en equipos Intel i3

Esto es algo fastidioso. La bateria en mi portatil tiene la capacidad de aguantar 4:30~ hrs de independecia. Con Ubuntu 11.10 dura casi 2:30 con un uso bastante pasivo. Es un asco.

El problema esta especificamente en el controlador de video en mi tarjeta integrada. Veamos la descripcion:
Processor: Intel® Core™ i3-2330M CPU @ 2.20GHz × 4 (<- Nicee!!! ;D) Graphics: Intel® Sandybridge Mobile





En las recientes versiones del kernel > 2.6.38, el controlador de video consume una gran cantidad del porcentaje de la bateria. La solucion es pasarle un parametro al kernel (que luego lo captura el driver de video) que hace que el contrador reduzca el consumo de energia, habilitando la caracteristica power-save de estas tarjetas de video. Es muy simple.

Editamos el archivo /etc/default/grub y agregamos el parametro i915.i915_enable_rc6=1 para habilitar esta caracteristica, quedando el archivo asi:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=force i915.i915_enable_rc6=1"

Actualizamos el grub
sudo update-grub

Y con esto ganaremos casi 2 hrs mas de bateria. Nada mal }:P

Mas info: http://www.phoronix.com/scan.php?page=news_item&px=MTAwNjU

jueves, 9 de febrero de 2012

Teclado TouchPal: La mejor forma de escribir en Android

Este teclado es del tipo QWERTY, lo que significa que debemos trazar las combinaciones de letras para formar palabras.

El teclado es completamente gratuito, y tiene una capacidad de predicción muy buena, entre otra gran cantidad de características que lo hacen ser un teclado sorprendente.

En el Android Market podrán obtener más información y también apreciar un video mostrando las bondades de este teclado. El mejor en su especie.

No puedo Agregar agregar links sobre esto debido a que estoy  desde el teléfono y el servicio de iNet de Tigo es una mierda.

martes, 31 de enero de 2012

Etiqueta ubuntu-dev

Esta entrada es de tipo spam.

Actualmente estoy tratando de involucrarme en el desarrollo de Ubuntu, mas especificamente en los equipos Ubuntu BugSquad y Ubuntu MOTU.

Anteriormente he estado utilizando el blog viajemotu junto con chilicuil para poder llevar una documentacion referente a estos teams. En dicho blog las entradas estarán unicamente en Ingles, pero trataré de crearlas en en Español aqui.

Este tipo de documentacion es bastante escasa en Español, asi que espero le sirva a alguien aparte de mi mismo.

sábado, 28 de enero de 2012

Controlar MPD con Android

Como es de saber, MPD (Music Player Daemon) posee una arquitectura cliente-servidor. Lo que significa que se ejecuta como un servicio y que los clientes (GUI, CLI) se conectan a este.

Despues de tener una sana instalacion de MPD y una agradable biblioteca de archivos mp3 (¡muerte a S.O.P.A!) quizas quieran poder utilizar su Android para poder controlar el servidor MPD y controlar completamente la reproduccion, gestionar la biblioteca, etc.

Me gusta escuchar musica cuando me baño, y prefiero tener el telefono en el baño que la laptop x'D





Comencemos

SERVIDOR:

* Personalmente me gusta tener la configuracion en mi home. Si asi lo quieren recuerden crear el archivo en cuestion ($ touch ~/.mpdconf)



1.- Abrimos el archivo de configuracion y agregamos las siguientes lineas:
bind_to_address "any"


port "6600"


password "clave@read,add,control,admin"


Imagino que no es necesario explicarlo. Pero por si acaso:


La primer linea dice que escuche en cualquier direccion IP, no solamente como localhost, lo cual significa que clientes fuera del equipo se podran conectar al servidor


La segunda linea especifica el puerto en el que se escucharan las peticiones. Este es el puerto por defecto.


La ultima linea establece la password y los permisos que tendran los clientes que se conecten al servidor. (Una manera mas avazanda de utilizar esto es mediante perfiles). Como se muestra, los permisos que tendran los clientes serán permisos de administrador, osea, podran hacer lo que quieran cuando se conecten al servidor. RECUERDEN CAMBIAR "clave" POR LA CONTRASEÑA QUE UTILIZARAN!




2.- Reinician el servidor, y listo. ($ sudo service mpd restart)




ANDROID:

1.- En el Android Market busquen una aplicacion que se llama MPDroid, la instalan y la ejecutan.

2.- Se van a Settings > WLAN based connection > conexion wi-fi.

3.-
Host: IP del servidor

Port: Default

Password: password del servidor MPD



Despues presionan Back hasta llegar a la ventana principal y si todo lo hicieron correctamente, la conexion se deberia establecer y podran controlar completamente su servidor MPD. Una joya de combinacion.




Capturas:




viernes, 27 de enero de 2012

Obtener nombre de aplicacion graficamente

Esto es muy utilizado al momento de crear reportes de bugs. Normalmente cuando hacemos uso de cierta aplicacion, ejecutamos su lanzador de manera grafica, pero detras de ese lanzador existe un comando en especifico que permite invocar la aplicacion. Por ejemplo, si quisieramos saber el comando que se ejecuta al invocar el gestor de archivos PCMan File Manager (mi preferido), podriamos abrir el gestor de archivos, y ejectutar en una consola:
rcart*ubuntu:~$ xprop WM_CLASS
Despues de eso el cursor de cambiará a una 'X' donde solo bastará con dar click en la ventana del gestor de archivos. El resultado:
rcart*ubuntu:~$ xprop WM_CLASS
WM_CLASS(STRING) = "pcmanfm", "Pcmanfm"
Muy útil ;D

Mas info: Aqui

Solucionar Touchpad AlpsPS/2 en Ubuntu 11.10

Bueno, en este caso, el touchpad no es reconocido como tal sino que como un mouse PS/2.

Este tipo de touchpad no es de los populares Synptics TouchPad. Veamos algunas descripciones:
rcart*ubuntu:~$ xinput list | grep Alps
? ? AlpsPS/2 ALPS DualPoint TouchPad id=13 [slave pointer (2)]

(Ojo, quizas la salida no sea identica pero si muy parecida) La solucion consta de instalar el paquete en este reporte
rcart*ubuntu:~$ sudo dpkg -i psmouse-alps-dkms_0.10_all.deb
Reiniciar y despues deben irse a la configuracion de Mouse y Touchpad, alli encontraran una nueva pestaña que dice "Touchpad". Y listo, con eso pueden habilitar el scrolling horizontal, tap, doble tap, etc.

Saludos.

jueves, 26 de enero de 2012

Microfono interno Dell Inspiron N4050 en Ubuntu 11.10 (ACTUALIZADO)

Actualización: Soporte incorporado

Este es un problema que ni siquiera se nota. Al parecer la hubicacion del microfono en este equipo (certificado como compatible en Ubuntu) es un poco inusual.

Como la mayoria de las laptops deberia tener el microfono cerca de la camara integrada. Aunque quizas esta no-tan-comun caracteristica tenga sus beneficios, quienes hagan un buen uso del micro y cam podrian determinar si es estrategico o no esta ubicacion.

Al parecer este dispositivo no es reconocido en ubuntu en lo mas minimo. Ni con las versiones 3.x del kernel es posible hacerlo funcionar "out of the box". Veamos la tarjeta de sonido y la version del kernel que utilizo:
rcart*ubuntu:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: STAC92xx Analog [STAC92xx Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
rcart*ubuntu:~$ uname -r 3.0.0-15-generic
Para poder hacer reconocer el dispositivo, debemos utilizar unos modulos empaquetados por el equipo ubuntu-audio-dev. La instalacion es algo sencillo y quizas sin necesidad de explicarlo:
rcart*ubuntu:~$ sudo add-apt-repository ppa:ubuntu-audio-dev/ppa
rcart*ubuntu:~$ sudo apt-get update
rcart*ubuntu:~$ sudo apt-get install linux-alsa-driver-modules-3.0.0-14-generic
Despues simplemente basta con reiniciar el equipo para para que el microfono funcione como deberia.
Saludos.

Hello World!

Decidi crear este blog para documentar algunas cosas que necesite recordar y que quiera compartir.

Las temáticas en el blog serán mas que todo relacionadas con GNU/Linux, algo de programacion y quizas otras hierbas.

Espero no dejarlo en el olvido y utilizarlo seguido.

Adeú!