Log in Page Discussion History Go to the site toolbox

070109/gnome

From BluWiki

Últimamente la mayoría de las noticias que encontramos sobre escritorios están centradas en KDE; Josselin Mouette nos recuerda desde su blog que están trabajando en el empaquetamiento de Gnome 2.24 y comenta algunas de las curiosidades con las que se ha encontrado.

"El no-administrador de sesiones

Por varias razones (que al final se reducen a la falta de mano de obra), vamos un poco retrasados en el proceso de empaquetamiento de Gnome 2.24 (ya casi está terminado, os mantendré informados). Por lo cual, puede parecer que os cuento esto con retraso, pero estaba realmente sin palabras.

El problema: El administrador de sesiones tiene defectos

En estos momentos, el administrador de sesiones usa XSMP (X Session Management Protocol) para hablar con las aplicaciones. Lo que significa, para aplicaciones que soportan este protocolo, que le permite más que, simplemente, abrirlas o cerrarlas: hasta recordará su estado, y les ofrecerá cerrarlas de forma satisfactoria. Sin embargo, XSMP es realmente un protocolo de mierda; no explicaré aquí el por qué, encontrarás un montón de explicaciones en la intarweb.

Los desarrolladores de gnome-session, muy conscientes de este problema, hicieron lo que cualquier persona suficientemente interesada hubiera hecho: diseñaron un nuevo protocolo, basado en D-Bus e implementado en él. El nuevo protocolo aún no se considera estable, pero es simple, eficiente y sobre todo, fiable; es un gran salto adelante. Por esta razón, estaba muy ansioso de ver a qué se parecía gnome-session 2.24, pues aporta grandes limpiezas en el código.

La solución: deshacerse del administrador se sesiones!

Cuando lo encendí por primera vez, no me restauró mi sesión guardada. Simplemente supuse que el formato de la sesión guardada había cambiado y que la herramienta escrita de conversión funcionaría. Estaba equivocado. Les muestro las preferencias de la sesión:

http://malsain.org/~joss/gnome-session-properties.png

La interfaz de este diálogo no ha cambiado desde la versión 2.22. De todos modos, no me resistí al incontrolable deseo de mostraros el código detrás del botón «Remember Currently Running Applications»:

static void

on_save_session_clicked (GtkWidget *widget,

GSmPropertiesDialog *dialog)

{

g_debug ("Session saving is not implemented yet!");

}

El check box de encima, pone un valor GConf que nunca lee nadie.

Si conoces los planes de Gnome a largo plazo, esto tiene sentido: cuando gnome-shell reemplace el panel y el administrador de ventanas, él también será responsable de iniciar las aplicaciones visibles, mientras gnome-session se ocupará de lo que está pasando detrás de lo que se ve. Pero gnome-shell sigue estando muy verde y mientras tanto, necesitáis algo para los requerimientos básicos del administrador de sesiones!

¿Qué más?

Las sorpresas no acaban aquí. También me fijé en que salir de la sesión era mucho más rápido; instantáneo en vez de los 2 o 3 segundos. La razón de que en estos momentos le lleve más tiempo no es por cerrar (matar) aplicaciones; es debido a que el administrador de sesiones solicita a las aplicaciones que soportan XSMP que se apaguen antes de matarlas. Si un documento no está guardado, la aplicación tiene la capacidad de no permitir el proceso de salida de sesión. ¿Lo adivináis? Ahora gnome-session ignora completamente las aplicaciones XSMP. Por eso no necesita registrarlas para salvar la sesión, en lo que también se ahorra el tiempo de preguntarles para cerrar limpiamente.

El resultado es que veréis un montón de estos diálogos:

http://malsain.org/~joss/evo-recover.png

Está muy bien reemplazar un protocolo defectuoso; y realmente, el nuevo protocolo evoluciona en la dirección correcta. Pero seamos realistas, es imposible portar cientos de aplicaciones a un nuevo protocolo inmediatamente, sin tener un periodo de transición, durante el cual ambos protocolos estén soportados. También necesitan considerar su protocolo como estable, antes de pedirle a otros desarrolladores que porten sus aplicaciones. Y para conseguir que sea aceptado, necesitan estandarizarlo; freedesktop.org podría tener las herramientas correctas. (En estos momentos, el protocolo reposa en el espacio web org.gnome, no en org.freedesktop.)

Publicar el gestor en su mejor momento

Espera... ¿no hay algunas distribuciones que publicaron versiones estables con Gnome 2.24? La respuesta es afirmativa. Por lo menos Ubuntu Intrepid y Fedora Core 10 vienen con el administrador de sesiones que:

  • es incapaz de restaurar aplicaciones
  • mata aplicaciones sin permitirte salvar tu trabajo

Es bueno ver las mejoras del próximo administrador de sesiones, y estoy realmente agradecido a los desarrolladores de gnome-session que trabajan en él. Lo que me sorprende es:

  • ¿Cómo pueden incluirlo en una versión estable de Gnome?
  • ¿Cómo dos de las mayores distribuciones permiten incluirlo en una versión estable?

Definitivamente, parece que no somos los únicos que podríamos mejorar nuestro proceso de administración de versiones.

¿Y qué?

Este es un buen ejemplo de la falta de pensamiento a gran escala. Por un lado, hay un brillante diseño y está bien implementado. En el otro lado, están dos de las mayores regresiones desde el punto de vista del usuario; el tipo de regresiones que hacen que la gente se vaya.

Si hay una cosa que he aprendido trabajando en el instituto de tecnología, es que siempre tienes que ver tus buenos diseños como objetivos a largo plazo. A corto plazo, ejecutarás una versión bastarda de tu brillante diseño que te hará llorar; pero funcionará. Cuando necesitas hablar a aplicaciones de mierda o con protocolos de mierda, necesitas escribir un código de mierda."

Site Toolbox:

Personal tools
GNU Free Documentation License 1.2
This page was last modified on 10 January 2009, at 02:59.
Disclaimers - About BluWiki