Delirios de un Informático

Delirando sobre informática, fotografía, programación, móviles y mucho más desde 2003

Silenciar Rhythmbox con Python mediante D-Bus

votar
Archivado en Gnome con fecha 24/Ago/2009 - 0 comentarios

Gnome Rhythmbox tiene algún pequeño problema al pausar y reanudar reproducciones de Last.fm, y teniendo en cuenta que a veces es necesario pararlo o silenciarlo para que no interfiera en otras cosas, me he hecho (porque no he encontrado el modo de silenciarlo de ninguna otra manera) este pequeño script en Python (requiere python-dbus) que permite silenciar Rhythmbox sin parar la reproducción:

#!/usr/bin/env python
import os
import dbus

session_bus = dbus.SessionBus()
proxy_obj = session_bus.get_object('org.gnome.Rhythmbox', '/org/gnome/Rhythmbox/Player')
player = dbus.Interface(proxy_obj, 'org.gnome.Rhythmbox.Player')

if player.getMute() < 1:
	player.setMute(True)
else:
	player.setMute(False)

Si se combina con xbindkeys para asignarse a una combinación de teclas como Control + Silencio la comodidad ya es total :D

Subversion por defecto permite enviar commits sin comentarios, pero es posible forzar un error en caso de no detectar comentarios. Basta este script en Python ubicado en el directorio hooks :)

10/Feb/2009 | 2 comentarios | En Bitacoras.com

Solución a “Segmentation fault mod_python”

votar
Archivado en Linux con fecha 29/Ene/2009 - 0 comentarios

Uso Trac desde hace mucho tiempo, pero hace poco dejó de funcionar repentinamente. Podía acceder a ciertas cosas, pero no a lo importante. Tras curiosear un poco me encontré con un montón de estos errores en los logs de Apache:

[Thu Jan 29 09:07:38 2009] [notice] child pid 3383 exit signal Segmentation fault (11)
[Thu Jan 29 09:13:25 2009] [notice] child pid 3385 exit signal Segmentation fault (11)
[Thu Jan 29 09:13:39 2009] [notice] child pid 3388 exit signal Segmentation fault (11)
[Thu Jan 29 09:14:12 2009] [notice] child pid 3389 exit signal Segmentation fault (11)

Es un problema provocado por Python (mod_python en este caso, aunque también fallaba usando mod_wsgi o fastcgi) debido a que apache utiliza una versión de la librería expat y Python otra diferente. Se puede ver cómo detectar el problema en este artículo, que sugiere usar LD_PRELOAD para solucionarlo, pero que a mi no me funcionó. Por el contrario, me bastó con instalar un único paquete y reiniciar el servidor web:

sudo apt-get install python-xml

El código fuente de Google Chrome

votar
Archivado en Software con fecha 3/Sep/2008 - 3 comentarios

Esto ya empieza a ser monótono con tanto Google Chrome, pero tras descargar el código fuente y ver que ocupa 2.6 GB (con la información de Subversion, eso si) no he podido resistirme a hacer un rápido cálculo (ha tardado 10 minutos) de las líneas de código usando SLOCCount:

Totals grouped by language (dominant language first):
cpp:        1165053 (53.89%)
ansic:       537317 (24.86%)
perl:        256113 (11.85%)
python:      173814 (8.04%)
sh:           23412 (1.08%)
yacc:          2553 (0.12%)
objc:          1958 (0.09%)
cs:            1226 (0.06%)
php:            122 (0.01%)
java:           106 (0.00%)
asm:             57 (0.00%)
sed:             26 (0.00%)
Total Physical Source Lines of Code (SLOC) = 2,161,757

A los de Google les gusta hacer las cosas a lo grande :D

XML-RPC en Trac 0.11 “Genshi”

votar
Archivado en Software con fecha 24/Mar/2008 - 0 comentarios

Comenté hace unos dias las mejoras de la última versión ( beta ) de Trac, y que ya estaba utilizándola. Todo funciona perfectamente excepto el componente XML-RPC, que permite la integración con Mylyn.

Como todavía no se ha publicado una versión del componente que sea compatible con la última beta del software ( en este ticket se puede ver la evolución ), debemos descargarnos la versión del componente para Trac 0.10 y el parche, y luego ejecutar:

unzip xmlrpcplugin.zip
cd xmlrpcplugin/0.10
patch -p1 < ../../xmlrpc-11.3-genshi.2.diff
sudo python setup.py install

Luego, habrá que activar como de costumbre el componente en la configuración:

[components]
tracrpc.* = enabled

En mi caso, tuve que reiniciar el servidor Apache debido al siguiente error:

ImportError: No module named posixpath

Hecho esto, podemos integrar de nuevo Mylyn con Trac :)

Trac 0.11 “Genshi”

votar
Archivado en Software con fecha 18/Mar/2008 - 2 comentarios

Hace unos dias comentaba que estaba probando la esperadísima versión 0.11 del estupendo gestor de tickets Trac.

Las mejoras en esta versión son muchas:

  • Nuevo sistema de plantillas
  • Nuevo y personalizable flujo de trabajo
  • Nuevo sistema de permisos
  • Integración del plugin WebAdmin
  • Visor de repositorios con Ajax

Para mí sigue siendo el mejor gestor de tickets disponible, pero echo en falta ciertas cosas:

  • Más facilidad para asignar y reasignar tickets a uno o varios usuarios
  • Un buen sistema de control de tiempo de resolución de tickets, ideal para generar diagramas de Gantt
  • XML-RPC para integración con proyectos como Eclipse Mylyn
  • Internacionalización sencilla, sin tener que parchear código

Algunas de estas funcionalidades pueden añadirse gracias al sistema de plugins ( lista de Edgewall y repositorio en Trac Hacks ), pero nada mejor que tenerlas de serie

Elisa Media Center

votar
Archivado en Linux con fecha 22/Ene/2008 - 2 comentarios

Soy fan de MythTV desde hace tiempo porque es de lo más completo y a vanzado que hay, además de disponer de mucha información para su instalación y configuración. Pero por un motivo o por otro siempre he tenido algún pequeño detalle que hacía que no funcionase al 100%.

Hace poco descubrí de rebote una estupenda alternativa llamada Elisa, con un aspecto que imita a Front Row y con una buena lista de características

Lo interesante es la cantidad de plugins que tiene, que permiten acceder a contenidos multimedia tanto en local como online usando servicios como Stage6, ShoutCast o Flickr, y al estar programado en Python cualquiera puede añadir un plugin rápidamente.

La paradoja de Python

votar
Archivado en Reflexiones con fecha 13/Nov/2007 - 6 comentarios

No puedo resistirme a comentar la llamada Paradoja de Python que he visto estos días en varios sitios.

La reflexión dice:

A falta de un nombre mejor lo llamaré la paradoja Python: si una compañía decide escribir su software en un lenguaje poco utilizado comparativamente, serán capaces de contratar a mejores programadores, porque atraerán sólo a aquellos que se molestaron en aprenderlo…

Hasta ahora sólo unas pocas compañías han sido suficientemente inteligentes para darse cuenta de esto. Pero hay una especie de selección natural trabajando: son exactamente las mismas compañías en las que a los programadores les gustaría trabajar. Google, por ejemplo. Cuando ofertan puestos para programar en Java, también piden experiencia con Python.

Paul Graham

Me hace gracia la cantidad de gente que se ofende por esta reflexión. Aquí nadie dice que los programadores de lenguajes tradicionales sean malos. Sí, habrá cracks que programan Python, Java, PHP o Brainfuck, nadie lo discute, pero si hablamos de estadisticas, de la media, la cosa no se aleja tanto de lo comentado por Graham.

Es sencillo, sólo hay que pensar en buenos programadores que conozcamos. ¿Cuántos de ellos se han interesado en aprender lenguajes minoritarios? ¿Cuántos se han interesado en retos y juegos de programación?. Es mas, ¿cuántos buenos programadores hablan de las bondades de C y cuántos malos programadores lo desprecian aunque se conozcan al dedillo todas las clases de .NET?.

Puestos a contratar en aparente igualdad de condiciones para un puesto, quién no contrataría antes a alguien que ha demostrado saber desenvolverse en C ( sí, ¿cuántos dominan C hoy en día? ), Python o algún lenguaje esotérico o a alguien interesado en las matemáticas ( como algún Frikisiervo ).

Además, ¿Ya no se recuerda lo bien que se habló de las técnicas de selección de Google y de los cientos que comentaron que no les importaría trabajar ahí?.

mBox

votar
Archivado en Software con fecha 11/Sep/2005 - 4 comentarios
Ver en Bitacoras.com - Etiquetado con: , , ,

Para los que somos maniáticos del orden en los ordenadores, es imprescindible tener la colección de MP3 perfectamente organizada, con nombres y etiquetas ID3 correctos y clasificados por carpetas. El gran problema de la música que se descarga de los P2P que te pasan los colegas piratas que se ripea de los discos originales es que no suelen ter un mismo formato, calidad y las etiquetas ID3 suelen ser un desastre.

Para solucionar esto conocía UltraTagger ( que funciona perfectamente con Wine ), una buena aplicación de pago para Windows ( cof cof ) cuya mejor característica es el poder usar FreeDB con los MP3 como si fuesen discos de audio normales. Hoy descubrí la alternativa Open Source: mBox. Está programado en Python usando wxPython y permite conversiones de formato, renombrado de archivos y también permite usar FreeDB como UtraTagger.

Se puede descargar desde la página del proyecto el código fuente o paquetes RPM.

Dive Into Python en español

votar
Archivado en Software con fecha 6/Ene/2005 - 3 comentarios
Ver en Bitacoras.com - Etiquetado con: , ,

Leo en la bitácora de mi mentor Debianita que Ricardo Cárdenes está traduciendo al español el imprescindible Dive Into Python de Mark Pilgrim.
A mi me viene genial porque estoy empezando a curiosear un poco la sintaxis de Python debido a que, como ya comenté, existe un intérprete para teléfonos móviles con sistema operativo Symbian.

Delirios de un Informático :: Gestionado con WordPress :: Alojado en Bitacoras.com :: Licenciado bajo Creative Commons