Vala, Gtk, Pino y Twitter

Últimamente en mis ratos de ocio he estado aprendiendo un lenguaje nuevo llamado Vala.

Mi desafío para aprender a hacer algo en vala + gtk fue agregar una funcionalidad al cliente de twitter Pino, que dicho sea de paso esta bastante bueno. La funcionalidad es bastante simple, agregar un nuevo proveedor para acortar URLs bit.ly

Complejidades, bondades y rarezas que me encontré:

  1. Facilidad para enganchar las señales.
  2. Lo parecido a Java del lenguaje, lo que me ayudo mucho, aquí una ayuda para los Java Developers
  3. Aún le falta mucho a los IDEs (valide esta muy verde).
  4. El compilador tiene poca ayuda, sólo dice que fallo pero no en donde ni por qué, rara vez te dice te falta un “;”
  5. Aun son enredado los script de compilación, al más puro estilo de macros m4, automake y vainas por el estilo, aquí hay mucho por mejorar.
  6. La API si bien es cierto esta bien documentada en valadoc aún prefiero la facilidad para encontrar las cosas del javadoc

Les dejo aquí mis mejoras de pino-twitter-2.0.5.tar y a ver si lo van mejorando un poco más, por lo pronto voy a subir los cambios al tracker para que los incluyan en la release.

Para compilar es simple, obviamente deben tener todas las herramientas para compilar:

1
2
3
4
$ ./waf configure --prefix=/home/tu_user/directorio_destino
$ ./waf clean buid install
$ cd /home/tu_user/directorio_destino/bin
$ ./pino &

Espero sus comentarios

Crash de Glipper al iniciar Gnome

Desde hace tiempo (2 o 3 releases de Ubuntu hacia atrás) que Glipper viene haciendo clank al iniciar la sesión de Gnome, no he encontrado alguna razón del por qué. Buscando en los reportes alguien dijo que había que darle tiempo para que partes del escritorio estuvieran cargadas y luego pudiera correr Glipper.

Para corregir el crash de Glipper al inicio de sesión haz lo siguiente, edita el siguiente archivo /usr/lib/glipper/glipper con tu editor de texto favorito.

1
$ sudo vim /usr/lib/glipper/glipper

Y justo antes de que empiece la ejecución agrega un par de líneas, es un timer que hace un pequeño delay al inicio (justo bajo los comentarios línea 21 y 22):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env python

# Glipper - Clipboardmanager for GNOME
# Copyright (C) 2007 Glipper Team
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
#
import time
time.sleep(10)

import gobject
gobject.threads_init()

Con eso debería bastar, si aun sigues con el problema juega con el numerito (10) hasta que encuentres el tiempo apropiado para tu inicio de sesión.

Nótese que esto es un parche y que no arregla el problema de fondo, seguiré investigando a ver que puede hacer, pero con esto ya queda funcionando.