[KUbuntu] Enable Thunderbird Notifications

Suddenly, Thunderbird stopped showing notifications in my Kubuntu installation. After trying several addons, tunning options and trying to debug the issue I ended finding the following sollution:

  1. Install libnotify in your system:
    sudo apt-get install libnotify-bin
  2. Install “Enhanced Desktop Notifications” Thunderbird add-on
  3. Done.

Now thunderbird will be using KDE Notifications.

QtQR Icon

QtQR 1.4 Released

About QtQR 1.4

I’m glad to announce that since this morning, python-qrtools and QtQR are both available in their 1.4 version for download in the daily PPA (https://launchpad.net/~qr-tools-developers/+archive/daily)

The 1.4 version includes several bug fixes, support for saving the generated codes in several image formats besides PNG (with the collaboration of Joanthan Greig), no crashes when trying to decode from webcam and there is no webcam attached, support for “WiFi Networks” QR codes and a lot more!

What is coming next?

There won’t be anymore updates to the 1.4 version, don’t expect a QtQR 1.5. The next step is a complete rewrite of both the qrtools backend and, in consequence, of QtQR also. This will be the 2.0 version.-

Enjoy!

Qt Apps look like crap in elementaryOS

I’m running the beta1 of elementaryOS (http://elementaryos.org), so far I’m loving it! 馃榾 but, as you might know, I use Qt4 for my developments and I happen to like a lot of apps written with this framework, the problem is that eOS doesn’t have the qt4lib installed by default and when you install it and run any Qt app it looks like total crap. Like going back to Gnome 1.0. And you can get an error saying that “QGtkStyle was unable to detect the current GTK+ theme”.

You can solve this with this following command:

gconftool-2 --set --type string /desktop/gnome/interface/gtk_theme elementary

Yay! Now you can enjoy your Qt Apps in eOS 馃檪

Generando Certificados / Diplomas con Python + rst2pdf

Resulta que este 28 de Abril es la FLISoL 2012 y junto a otros integrantes de SanLuiX (el grupo de usuarios de software libre de San Luis) vamos a estar en la sede de Villa Mercedes de la Universidad Cat贸lica de Cuyo colaborando con la comunidad y llevando adelante el festival :-). A que viene todo esto se preguntar谩n; viene a que para emitir certificados de asistencia a la FLISoL nos surgi贸 la necesidad de contar con alg煤n m茅todo para generar los certificados masivamente usando software libre, y aqu铆 es donde entra en juego Python聽y rst2pdf.

Despu茅s de pensar un rato, termin茅 con la siguiente estructura de archivos:

  • filsol (directorio)
    • asistentes.csv
    • certificado.rst
    • escudo.png
    • generar_certificados.py
    • pdf (directorio)

Veamos uno por uno:

asistentes.csv

Es un archivo .csv con la informaci贸n personal de los asistentes; para las pruebas que hice us茅 el siguiente contenido de ejemplo:

dni1,apellido1,nombre1
dni2,apellido2,nombre2
etc...

certificado.rst

Es la estrucutra del certificado a imprimir, con los campos a reemplazar enumerados entre {}. Usemos por ejemplo el siguiente:

===========
FLISOL 2012
===========

.. image:: escudo.png
 :scale: 70

----------------------------
Universidad Cat贸lica de Cuyo
----------------------------

Por la presente se deja constancia que **{1} {2}**, *D.N.I. {0}* ha participado del evento FLISol 2012 en calidad de asistente. Realizado en la sede Villa Mercedes de la Universidad Cat贸lica de Cuyo el d铆a 28 de abril de 2012.

escudo.pg

Como su nombre lo indica, es el escudo de la universidad, podr铆a ser el logo de la FLISol o cualquier imagen que quisieran. Vale aclarar que este archivo no es obligatorio y depende de lo que hayan hecho en su archivo rst como maqueta del certificado.

generar_certificados.py

Este es el script de Python que genera todos los certificados a partir del listado en csv de asistentes. El c贸digo creo que se explica por s铆 mismo, se los dejo a continuaci贸n:

#!/usr/bin/env python
#-*- encoding: utf-8 -*-

from csv import reader
import subprocess

print 'Abriendo listado...',
# Esto se puede poner feo...
listado = reader(open('asistentes.csv','r'))
total = len(list(listado))
listado = reader(open('asistentes.csv','r'))
print 'listo.'

print 'Abriendo certificado...',
certificado = open('certificado.rst').read()
print 'listo.'

print listado
print 'Encontrados', total, 'asistentes:'
for nro, asistente in enumerate(listado):
    dni = asistente[0]
    apellido = asistente[1]
    nombre = asistente[2]
    certificado_final = certificado.format(dni,apellido,nombre)

    print 'Generando certificado para', apellido.upper(), nombre + '...',

    p = subprocess.Popen(['rst2pdf',
                        '-s',
                        'freetype-serif,a4-landscape,twelvepoint',
                        '-o',
                        './pdf/' + dni + '-' + apellido + '-' + nombre + '.pdf'
                        ],
                        stdin=subprocess.PIPE
                        )
    p.stdin.write(certificado_final)
    p.communicate()
    print 'listo', str(nro+1), 'de', str(total) +'.'

Seguramente se puede mejorar (mucho) el c贸digo, pero como prueba de concepto result贸 ser m谩s que suficiente :-D. El script genera un pdf en la carpeta (adivinen…) pdf a partir del archivo rst por cada asistente, reemplazando el nombre y DNI que corresponde. Para ello utiliza el ejecutable de rst2pdf, seguramente se podr铆a hacer llamando a la librer铆a, pero la verdad no me puse a investigar c贸mo hacerlo.

Uso una PIPE de subprocess para alimentar a rst2pdf con el rst modificado con los datos del asistente directamente y no tener as铆 que guardar un archivo rst distinto a disco por cada persona.

Creo que qued贸 bastante bien, en un pu帽ado de l铆neas y nos vino al pelo! Cuando lo probemos bien les cuento c贸mo se port贸.

Permisos insuficientes al clonar una PC con VMware Converter

VMWare Converter es una excelente herramienta que me present贸 un amigo del trabajo, permite clonar m谩quinas f铆sicas a im谩genes de m谩quinas virtuales entre otras cosas, incluso haci茅ndolo remotamente a trav茅s de la red. Realmente impresionante y las ventajas de poder hacer algo as铆 son 隆interminables!. Cualquiera que labure con servidores o administrando muchas PCs sabr谩 de lo que hablo.

Pero este post no es solo para recomendarles que prueben este maravilloso software, sino para contarles (y de paso de ayuda memoria m铆o) c贸mo solucionar el inconveniente que se nos present贸 a nosotros.

A la hora de comenzar el clonado de la PC, no salt贸 un cartel de error diciendo:


Insufficient permissions to connect to '\ADMIN$'

A lo que nos quedamos helados… hab铆amos puesto las credenciales de administrador del sistema a clonar correctamente (despu茅s de varios intentos frustrados xD) pero no hab铆a caso. Luego de googlear un ratito encontramos ac谩 que podr铆a deberse a tener activado el “uso compartido simple de archivos”. Sin m谩s vueltas lo desactivamos yendo a聽Herramientas -> Opciones de Carpeta -> Ver y Destildando la 煤ltima opci贸n de la lista que es la correspondiente a dicha caracter铆stica:

Camputa Compartido Simple Archivos XP

Habiendo desactivado esta opci贸n, todo sigui贸 su curso normal y pudimos clonar una PC entera a una im谩gen de PC virtual en cuesti贸n de minutos. La levantamos y, luego de instalar las VMware Tools, todo funcionaba exactamente igual que en la PC f铆sica. 隆Un golazo!

PD: Si les interesa un tutorial de como hacer para clonar una PC pidanl贸 en los comentarios y lo armamos. Tenemos planeado hacer uno de c贸mo levantar un servidor con ESX para correr las m谩quinas virtuales sobre 茅l.

[Fedora] Habilitar la selecci贸n del tema para gnome shell

Despu茅s de haber actualizado a Fedora 16, me encuentro con que al querer cambiar de tema para el shell, la opci贸n se encuentra deshabilitada y tiene un signo de admiraci贸n amarillo con la leyenda: 芦Extensi贸n del tema de usuario de GNOME-Shell no activada禄 Sigue leyendo

[Fedora] ERROR en el chequeo de la transacci贸n vs resoluci贸n de dependencias: WTF?

Intentando actualizar Fedora hoy me encuentro con que por el administrador de paquetes fallaba la actualizaci贸n con un cartel medio extra帽o. Inmediatamente me voy a una consola, tiro un yum update y me encuentro con este error:

ERROR en el chequeo de la transacci贸n vs resoluci贸n de dependencias:
kernel-uname-r = 2.6.40.4-5.fc15.x86_64 is needed by kmod-wl-2.6.40.4-5.fc15.x86_64-5.60.48.36-2.fc15.8.x86_64
kernel-uname-r = 2.6.40.6-0.fc15.x86_64 is needed by kmod-wl-2.6.40.6-0.fc15.x86_64-5.60.48.36-2.fc15.9.x86_64
kernel-uname-r = 2.6.41.1-1.fc15.x86_64 is needed by kmod-wl-2.6.41.1-1.fc15.x86_64-5.100.82.38-1.fc15.2.x86_64
Por favor, informe este error en http://yum.baseurl.org/report

Recuerden que hice un preupgrade (es decir actualic茅 de Fedora 15 a 16 sin reinstalar), con lo que aparentemente tengo un quilombo importante de paquetes.. Luego de investigar un rato largo y probar un par de comandos pude actualizar haciendo lo siguiente:

  1. Ejecutar yum check
  2. Desinstalar todos los paquetes que lista el comando anterior con yum erase <nombre de paquete o listado de los nombres de los paquetes>
  3. Actualizar felizmente con yum update o con la interfaz gr谩fica (no prob茅 esta 煤ltima).
  4. Profit!

Espero que les sirva de ayuda!

Saludos!