viernes, julio 08, 2011

Un gran amigo que también es un grande

Me acaba de llegar este mail:

   Fecha: Tue, 28 Jun 2011 18:06:41 -0300
      De: Gustavo Rossi 
Asunto: Lifiano premiado
    Para: gustavo

La semana pasada, Sergio Firmenich obtuvo el best paper award en la 
International Conference on Web Engineering que se realizo en Chipre 
por el trabajo:
A framework for concern sensitive client side adaptation
(S. Firmenich, M . Winckler, G. Rossi y S. Gordillo)

Grande Sergio!!!!!

----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.



----- Terminar mensaje reenviado -----



Sergio, o para los amigos Keco, fue un compañero de la UNPSJB, de trabajo y es un gran amigo, y hoy está haciendo su doctorado en La Plata.
Me pone muy contento su logro en el campo de la investigación.
Estoy leyendo el paper, que encontré publicado en: http://www.springerlink.com/content/n3167p807121r318/

¡¡¡Felicitaciones Keco!!!

miércoles, julio 06, 2011

Custom Delegates en Prymatex

MVC es un patrón de diseño muy conocido, que ha sufrido algunas bastardizaciones, como es el caso de MTV en Django y MVD en Qt.
Hoy quería comentarles como estamos usando esta última en Prymatex.
Como muchos de ustedes sabrán, Prymatex está escrito sobre PyQt4 y recientemente comenzamos a utilizar modelos para almacenar tanto la información de los Bundles, como los temas y variables de entorno (un elemento muy utilizado a la hora de ejecutar los diferentes Bundle Items). Estos modelos responden al concepto Modelo/Vista/Delegado de Qt.
Tods saben a que se refiere modelo y a que vista, pero que es un delegado? Un delegado sirve para permitir a la vista modificar el modelo y además permite hacer widgets especiales (un ejemplo popular para quienes utilcen KDE es el estrellómetro de Amarok).

Utilizamos delegates para hacer clonar la interfase de configuración de temas de TextMate:

Salvando las distancias, mediante delegates pudimos emular en cierta forma el listado:


El código utilizado está en github.

miércoles, marzo 09, 2011

Errores en la compilación

Este finde largo estuvimos haciendo algunos avances y reingenierías sobre Prymatex y definiendo un posible calendario tentativos de releases.
Yo aporté gran parte de los archivos UI (XML con definición de interfases de Qt). Como todos habían migrado a KDE 4.6.1, para no quedarme atrás usé los repositorios experimentales propuestos por kubunut. Durante un code sprint con Org, me di cuenta que mi pyuic4 había dejando de funcionar!!

El error se reporta como el siguiente:


Traceback (most recent call last):
  File "/usr/lib/pymodules/python2.6/PyQt4/uic/port_v2/invoke.py", line 15, in invoke
    exit_status = driver.invoke()
  File "/usr/lib/pymodules/python2.6/PyQt4/uic/driver.py", line 40, in invoke
    self._generate()
  File "/usr/lib/pymodules/python2.6/PyQt4/uic/driver.py", line 68, in _generate
    self._opts.pyqt3_wrapper, self._opts.from_imports)
  File "/usr/lib/pymodules/python2.6/PyQt4/uic/__init__.py", line 134, in compileUi
    winfo = compiler.UICompiler().compileUi(uifile, pyfile, from_imports)
  File "/usr/lib/pymodules/python2.6/PyQt4/uic/Compiler/compiler.py", line 19, in __init__
    CompilerCreatorPolicy())
  File "/usr/lib/pymodules/python2.6/PyQt4/uic/uiparser.py", line 91, in __init__
    self.factory = QObjectCreator(creatorPolicy)
  File "/usr/lib/pymodules/python2.6/PyQt4/uic/objcreator.py", line 61, in __init__
    self._cwFilters.append(plugin_locals["getFilter"]())
  File "", line 22, in getFilter
ImportError: /usr/lib/pymodules/python2.6/PyKDE4/kdeui.so: undefined symbol: _ZTI13KRatingWidget


Esto no era bueno, simplemente agregamos un return en la carga de plugins, quedando de esta manera.
Un hack feo, pero solucionó el problema :)