La gracia de trabajar en versión de desarrollo

febrero 26, 2007

Todo funciona razonablemente bien, y de repente te bajas los últimos cambios del Subversion y empieza a dar errores de compilación por todos lados, y no sabes qué hacer. Así de demoleddor resulta desarrollar para la versión en desarrollo de KDE 4 ;-). No me quejo tampoco demasiado, porque al final este tipo de experiencias te enseñan mucho más que trabajar sobre seguro. Es mucho más instructivo.

Ya me ha respondido David Faure al último parche que envié, pero aun le falta algunos retoques. De hecho algunos cambios que él sugirió en realidad se ha dado cuenta de que no eran necesarios pero ya era demasiado tarde porque ya los he implementado. De hecho ya se lo expliqué en un email que le envié, pero por falta de tiempo tardó en responder y.. de todas formas, he aprendido más sobre konqueror por el camino.

Este fin de semana he estado trabajando en mejorar el salvado de sesiones. Esto me servirá para la siguiente idea que preveo implementar, el administrador de sesiones como he vaticinado varias veces. Resulta que las sesiones actualmente guardan las ventanas y todas sus pestañas. Pero recientemente me dí cuenta que tanto Opera como Firefox guardan algo más: el historial de cada pestaña. Así que ni corto ni perezoso me puse a implementar esta característica para Konqi, y falta pulir la implementación un poco pero el grueso de ella ya está hecha.

Y en esto estaba cuando metí la pata con el SVN y todo dejó de compilar, y a cambio salían errores por doquier. Ahora he terminado bajándome una revisión anterior de kdelibs y kdebase que sé que funcionaba y lo he vuelto a compilar todo, y parece que funciona. Así que la tarea más inmediata será seguir puliendo el parche que implementa la recuperación de pestañas cerradas recientemente, e intentar terminar de arreglar el salvado del historial en las sesiones.

Próximamente, más y mejor! El miércoles a más tardar.


La libertina cueva del lobo

febrero 19, 2007

Como muchos, dejamos el tema del concurso por navidad y desde entonces estuvimos liados con los exámenes y trabajos varios, esclavos del sistema de evaluación alternativa. Ahora pasamos página porque empieza un nuevo cuatrimestre, y con él una vida nueva en la que si hay cabida para este emocionante proyecto.

El proyecto sigue más vivo y efervescente que nunca: la semana pasada estuvimos por fin de nuevo en SUGUS una tarde entera dedicada a arrancar una vez más el trabajo desde donde lo habíamos dejado. He vuelto a compilar KDE 4 desde cero, porque en un mes ocurren muchas cosas en la rama de desarrollo, de hecho lo primero que hubo que hacer es arreglar nuestro “viejo” código porque algunas cosas habían cambiado, había funciones que tomaban argumentos diferentes y cosas de ese estilo, pero nada grave. La recompilación me ha venido muy bien porque ahora he conseguido que las aplicaciones de KDE 4 se lancen directamente en mi entorno KDE3 sin Xnest de por medio, y además con antialiasing en las fuentes.

Y este largo – cuento desde el Jueves – fin de semana carnavalesco y estatutario para muchos, ha estado para mí, por circunstancias de la vida, principalmente enfocado a la programación de Konqueror. La primera característica de las que queremos implementar, el historial de pestañas cerradas, antes llamado Trash Tab y ahora renombrado a “Closed Tabs” que creemos más descriptivo, está casi casi terminada. La característica está tan terminada que ¡es posible que pronto sea incluida en el código oficial de Konqueror!

Recapitulemos: a principios de diciembre del año pasado, consideramos que nuestra mejora de konqueror había conseguido una primera implementación usable, y mandamos el parche a la lista de desarrollo para que nos aconsejasen y nos dijeran qué les parecía. Nos hicieron una serie de sugerencias; pues bien, las he implementado.

Muchas cosas han cambiado:

  • Ahora manejamos verdaderamente pestañas y no vistas. Para los que no son usuarios de konqueror o no conozcan esta peculiaridad, resulta que una pestaña la puedes dividir en varias vistas, tanto vertical como horizontalmente. Y luego, cada vista en otras tantas.. es recursivo, pero no suele hacerse demasiadas veces (yo como mucho he llegado a usar 4 vistas a la vez) por motivos espaciales jeje. Esto tiene gran utilidad, por ejemplo cuando quieres usar konqueror como cliente FTP: en una vista pones el listado de ficheros locales, y en la otra la lista de ficheros remotos a la que accedes con ftp://tuserver.com/path/. Pues bien, antes si cerrabas esa pestaña, se guarda en la lista de “trash tab” como dos objetos diferentes, y las recuperabas como 2 pestañas separadas de una sola vista. Ahora ya esto está totalmente solucionado!
  • En Konqueror de KDE 4, existe un nuevo menú Ir/Go, donde puedes acceder a lugares como Home, Desktop, o el Historial más reciente. Pues justo despues del submenú historial, hemos agregado el submenú “Pestañas cerradas recientemente”, de forma análoga a cómo en Firefox 2.x tenemos Historial > Pestañas Recientemente cerradas.
  • Y un de las cosas que más ha costado implementar es añadir al Historial de Deshacer las pestañas cerradas. Es decir, que por ejemplo si cierras una pestaña, puedes pulsar Ctrl+Z y automáticamente se recupera como estaba (o pulsar “Editar > Deshacer: Pestaña cerrada”). Esto quiere decir que la característica de las pestañas cerradas está disponible en 3 lugares diferentes! En la barra de herramientas, en el Menú Ir, y en Deshacer.

(Podría aburriros con alguno de los detalles de implementación, pero podéis suspirar aliviados porque como esta entrada ya es uficientemente larga, lo dejaré para otra vez)

¿Porqué no postee un mensaje de actualización antes? Pues decía antes que he implementado las sugerencias que nos hicieron. El caso es que ayer envié un correo a la lista de desarrollo de konqueror con los cambios realizados, y quise esperar a que me contestasen antes de escribir esta entrada. Y me respondieron: nos han sugerido algunas modificaciones técnicas, como usar KUrl::List en vez de QList y cosas similares, pero en general les ha gustado los cambios (sobre todo que haya implementado el deshacer :D) y parece que no habrá mucho problema en que el parche termine acabando en trunk.

Los cambios sugeridos tardaremos más o menos en implementarlos, pero no me cabe la menor duda de que lo conseguiremos. La idea de tocar un código ajeno y tan imponente como el de KDE, maxime siendo versión en desarrllo, al principio parecía que echaba para atrás, imponía y no fue un camino de rosas, pero le estoy cogiendo el gustillo a la dinámica de trabajo que resulta de trabajar para KDE.

Y pronto, una nueva entrega de los aventuras de dos informáticos que se meten en una libertina cueva del lobo.