GNOME 3

Expositor: Siegfried Gevatter (RainCT)

Moderador: Sergio Infante (neosergio)

Sabado 17 de Abril del 2010 18hrs UTC

irc.gnome.org #gnome-hispano


Bueno

siendo 18:02 UTC

iniciamos la charla

IRC de este mes

Hola a todos :)

Este mes tenemos el gusto de tener como expositor a Siegfried Gevatter

RainCT, 

:)

y nos resolvera todas las inquietudes y preguntas sobre GNOME 3

Algunos datos sobre Siegfried pueden encontrarlo en https://wiki.ubuntu.com/RainCT

Con ustedes RainCT :)

oks, pues empezemos :)

Primero de todo una pequeña introducción. Soy catalán/alemán, tengo 19 años, y llevo unos años metido en esto del software libre, además de estudiar ingeniería informática en lo que me queda de tiempo ;)

Actualmente soy uno de los desarrolladores del proyecto Zeitgeist y contribuyo ocasionalmente a GNOME Shell. (También soy desarrollador de Ubuntu y mantengo unos cuantos paquetes en Debian).

Bueno, y hoy voy a hablaros un poco sobre GNOME 3 (aprovecho para dar las gracias a Sergio por la invitación).

No sé cuanto sabéis sobre el tema, así que lo que tengo pensado es una introducción así a alto nivel, pero si en algún momento tenéis alguna duda o queréis saber más sobre algo en concreto podéis preguntar sin ningún problema e intentaré contestaros lo mejor que pueda.

Para empezar, primero de todo, ¿que es esto de GNOME 3?

Bueno, pues hará unos dos años se empezó a hablar sobre como podría ser la siguiente gran versión de GNOME con la intención de ponerse de acuerdo en una visión conjunta para el proyecto, y así es como surgió la idea de GNOME 3.

Se espera que la primera versión de GNOME 3, 3.0.0, llegue en Setiembre, tomando el sitio de GNOME 2.32.

Pero que novedades traerá? Por una parte, el cambio más visible será un cambio en la manera de interactuar con el escritorio, con la introducción de GNOME Shell (y también Zeitgeist).

Por otro lado, también se espera que la versión 3.0 sirva para modernizar la plataforma y liberarla de librerías obsoletas (Bonobo, etc). También estamos viendo aparecer todo una serie de tecnologías nuevas.

Recursos previos: http://es.gnome.org/Eventos/CharlasIRC/CharlaAbril2010

Hablaré primero un poco de esto último y luego ya pasaré al tema GNOME Shell / Zeitgeist que es lo que me conozco mejor.

Como librerías nuevas tenemos Clutter, que en GNOME 2.30 ya está siendo utilizada por algunos de los juegos incluidos en GNOME

además de por varios proyectos independientes (Banshee, Moblin, Elementary, etc.)

Clutter es básicamente una librería basada en OpenGL para crear interfazes gráficas con animaciones, efectos 3D, etc.

También tenemos GeoClue/libchamplain que nos proporcionan geolocalización y que supongo que poco a poco empezarán a ser más utilitzados.

(Actualmente por ejemplo, Empathy tiene soporte para geolocalización cuando se utilitza Jabber con un servidor que no sea el de Google Talk)

Me gustaria nombrar también Telepathy, del que seguramente ya habréis oído a hablar pero que creo que aún nos dará algunas sorpresas en los siguientes meses.

Telepathy es la librería de mensajería instantánea usada por Empathy, pero también tiene algo llamado "Telepathy tubes" que realmente es muy interesante.

Permiten a todo tipo de programas establecer fácilmente una conexión entre nuestro ordenador y el de algún contacto nuestro para cosas como juegos en línea, compartición del escritorio, streaming de música, etc.

Seguramente con el tiempo veremos mucho más uso de todas estas librerías, y también de tecnologias más antiguas como D-Bus o Avahi a las que también se quiere potenciar.

Otro proyecto que hace unos meses fue aprobado como dependencia externa es Tracker, el qual hace poco ha sacado su versión 0.8.

Con esta nueva versión, además de hacerla mucho más eficiente (ya no intenta freír el disco duro como versiones anteriores)

han redefinido el proyecto, situando el énfasis no en el indexado de ficheros sino en proveer una base de datos (RDF) con una estructura fija (basada en la ontología NEPOMUK).

Detalles sobre Tracker en una charla anterior: http://es.gnome.org/Eventos/CharlasIRC/CharlaSeptiembre2009

La idea es que las aplicaciones guarden ahí todo tipo de datos que sean interesantes a nivel global y así los compartan con otras aplicaciones.

Por ejemplo si Rhythmbox i Banshee ambos utilizaran Tracker para guardar sus datos, sería posible cambiar de un programa al otro y tener exactamente lo mismo en los dos (además, no seria necesario añadir nada a su librería ya que -si tenemos el indexado de nuestra carpeta personal activado- Tracker ya conocerá toda la música que tenemos).

Otro ejemplo sería la funcionalidad de etiquetas, que se podría compartir entre todo tipo de programas (Nautilus, Eye of GNOME, Rhythmbox, GNOME Shell, etc. todos tendrían las mismas etiquetas si las guardan en Tracker).

Supongo que la charla de Iván Frade (a quien tuve el gusto de conocer hace unos meses :)) explicará todo esto mejor.

Actualmente se está discutiendo hasta que punto se quiere depender de Tracker (sobre todo en el marco de GNOME Shell), pero en todo caso será interesante observar que nos traerá.

¿Me vais siguiendo hasta aquí?

si :)

si :)

Bien :)

Finalmente, tenemos gobject-introspection, un nuevo sistema que permite generar automáticamente "bindings" para usar librerías C desde otros lenguajes (especialmente JavaScript y Python), en el mejor caso con tan solo añadir unos comentarios al código clarificando los tipos de datos que toma y devuelve cada función.

;)

excelente

Un momento, ¿he dicho JavaScript?. Pues sí, otra novedad es el uso del lenguaje JavaScript para aplicaciones de escritorio (ya sea mediante el intérprete Gjs o Seed, el primero basado en el motor Tracemonkey de Mozilla i el segundo en WebKit).

Como en el caso de Clutter, un par de los juegos de GNOME ya han estado reescritos en JavaScript y parece que funciona :).

(De hecho, diria que son los mismos juegos los que han estado reescritos en JavaScript y usando Clutter)

Yo pensaba que solo se daba soporte a Gjs

Detalles sobre Webkit en una charla anterior : http://es.gnome.org/Eventos/CharlasIRC/CharlaDiciembre2009

jjmarin: ok, trataremos este tema más adelante

Aquí van algunos puntos buenos de JavaScript (todo y que personalmente prefiero usar Python):

jjmarin: Ah, has dicho Gjs. Segun tengo entendido gnome-games, Epiphany (para los addons), etc. usan Seed

Y es Gjs el raro (pero usado por GNOME Shell, por lo que había dicho lo de dejarlo para luego).

Veo que LWN tiene un artículo al respecto, de hace un año: http://lwn.net/Articles/333930/

bueno, volviendo a las razones para usar JavaScript

 - La sintaxis es similar a la de C, y es un lenguaje conocido por bastantes personas (en el sector web).

 - Como ventaja frente a C, es un lenguaje de alto nivel de modo que es más rápido escribir código en JavaScript y se evita todo un tipo de errores relacionados a la gestión de memoria (ja que JavaScript tiene recolector de basura).

 - Gracias a gobject-introspection, se puede usar toda librería de GNOME (que esté habilitada para ello). De hecho, se tiene que usar las librerías de GNOME por fuerza, ya que JavaScript no tiene librería estándar.

Y al contrario de lo que más de uno podría estar pensando, el uso de JavaScript no debería cambiar mucho en cuanto a uso de recursos y velocidad, ya que lo que se está haciendo en JavaScript es simplemente definir la interfaz.

Todas las operaciones pesadas las hacen las librerías que hay detrás (y que están escritas en C). Además los intérpretes JavaScript cada vez son más rápidos gracias a nuevas técnicas de optimización.

RainCT, una pregunta

neosergio: adelante

pregunta de JZA: cual es la diferencia de glitter y clutter realmente no logro distinguirlos

No conocía Glitter, pare que Glitter usa Clutter internamente.

Por el nombre, "Glitter Widget Toolkit", supongo que será una API de más alto nivel alrededor de Clutter.

ok

Porque Clutter en sí no es de lo más práctico para usar para GUIs. Simplemente tiene un concepto de "actores" (imagenes, texto, etc.) y "grupos de actores" y te permite moverlos por la pantalla

y aplicar efectos sobre ellos. Pero si quieres pro ejemplo un camp de entrada de texto, tienes que construirlo tu mismo, connectar a los eventos que te interesen (pulsación de tecla, clic con el botón derecho, obtiene foco, etc.) y cambiar lo que se ve

De manera que existen varios toolkits (no sé si es el caso de Glitter) que ja llevan cosas concretas preparadas.

Por ejemplo, GNOME Shell tiene el "Shell Toolkit", una versión modificada del toolkit de Moblin

Bueno si no hay ninguna duda más, dejamos el tema y vamos a pasar a hablar de GNOME Shell.

o más bien dicho continuamos hablando de GNOME Shell, ya que lo acabo de mencionar.. :P

GNOME Shell es un substituto para Metacity y GNOME Panel. Es la parte más visible de GNOME 3 (y seguramente también la más controvertida).

A nivel técnico está construido como un plugin para Mutter, una versión de Metacity con soporte para Clutter (también usada por Moblin), con gran parte del código escrito en JavaScript (usando Gjs; no funciona con Seed ja que usa extensiones que Mozilla ha hecho al lenguaje JavaScript).

Además de hacer las tareas de gestor de ventanas (por ejemplo, aquí vemos la funcionalidad Alt+Tab: http://eurion.net/tmp/gnomeshell/gnome-shell-alttab.png), algunos de los elementos de más importantes en que consiste GNOME Shell són:

 - El panel superior (con un menú para la aplicación activa, la hora, notificaciones del sistema, menú del usuario, etc).

 - Un panel inferior, oculto, para las notificaciones

Ahí irán a parar las notificaciones y los iconos del area de notificaciones que no sean de aplicaciones del sistema (el panel superior solo tendrá iconos para la conexión a internet, el gestor de energía, etc).

Las notificaciones serán visible centradas en la parte inferior de la pantalla unos breves instantes, y entonces pasaran a iconizarse en el panel oculto, que podremos hacer visible moviendo el cursor a la punta derecha inferior de la pantalla.

Este sistema también nos permitirá reaccionar directamente a las notificaciones.

Cambiar de canción en caso de una notificación de Rhythmbox, contestar directamente si es un mensaje de Empathy, etc. Sin tener que cambiar a la ventana del programa.

demo: http://people.gnome.org/~mccann/shell/mockups/20090630-demo/

 - La pantalla de visión general ("overview"), que es el principal punto para ejecutar programas, ver una vista de todo lo que hay abierto en los múltiples escritorios, etc. http://eurion.net/tmp/gnomeshell/gnome-shell-overview.png

Bueno, estos serian los elementos visibles más importantes.

En cuanto a personalización, es un tema del que más de una vez he visto gente quejarse y realmente no entiendo porque.

En realidad GNOME Shell es genial en este aspecto, permitiendo crear extensiones en JavaScript (con las mismas posibilidades que la Shell misma), y modificar el aspecto de la interfaz con CSS.

También está pensado incluir algún sistema de "widgets", pero aún no está claro nada al respeto.

Si queréis probar GNOME Shell, lo mejor es seguir las instrucciones de http://live.gnome.org/GnomeShell

Algunas distribuciones incluyen paquetes para GNOME Shell, pero es un proyecto que avanza muy rápido por lo que os recomiendo compilarlo vosotros mismos (es muy fácil usando el sistema jhbuild).

Supongo que también debería avisar que para funcionar requiere soporte OpenGL, por lo que dependiendo de la tarjeta gráfica podríais tener problemas.

Esto es así porque sería difícil desarrollar todo dos veces (para funcionar por hardware y por software) y esperan que una vez GNOME Shell empiece a ser más usado los drivers mejorarán más rápido, como pasó con Compiz.

(Más información en cuanto a este último punto: http://live.gnome.org/GnomeShell/FAQ#What_led_to_the_decision_to_make_3D_acceleration_a_requirement_for_GNOME_Shell.3F)

¿Preguntas?

creo que todo claro

Si teneis alguna duda sobre GNOME Shell, podeis preguntar. Sino pasaré a hablar de Zeitgeist.

aca una pregunta

pregunta de lgs : sabes algo sobre los problemas de consumo de CPU de GNOME shell que se comentan en este blog: http://carlosgc.linups.org/gnome/gnome-shell.html ?

lgs: Seguramente debe ser un problema con el driver de la tarjeta gráfica.

otra pregunta

pregunta de pestefo: cuales son los planes para el manejo de las ventanas en gnome Shell,  porque ya no existe la lista de ventanas 

Por cierto, la optimización de momento no ha sido una prioridad en el desarollo de GNOME Shell, sino que se empezará con ello ahora que está empezando a tomar forma todo.

De manera que aquellas partes que ahora pueden ir algo lentas, o realizar operaciones no asíncronas y quedarse bloqueadas, no son problemas permanentes sino que con el tiempo se solucionaran.

pestefo: La idea es que se cambie de ventana desde la vista general, o usando Alt+Tab.

La vista general se puede abrir haciendo clic en "Actividades" (panel superior), tirando el cursor del ratón al lado izquierdo superior de la pantalla o con la tecla Super o la combinació Alt+F1

*combinación de teclas

RainCT, trato de estar al tanto de la lista de gnome-shell y han presentado ciertas ideas con respcto a ese tema, ya que a algunos les es molesto el uso del Alt+Tab, antes con 1 solo clic podías cambiar de ventana, ahora serían 2

sé que no es algo tan grave, pero como es algo q se realiza constantemente a la larga es algo molesto

pestefo: si usas el "hot corner" seguiría siendo un sólo clic, pero si, entiendo el problema

ok ;)

que yo sepa la opinión de los desarolladores principales no ha cambiado, y en todo caso quieren arreglarlo sin volver a añadir una lista de ventanas o un dock

disculpa la interrupcion, pero ¿que es el hot corner?

TuxSarge1: tirar el ratón a una punta de la pantalla (en este caso la izquierda superior) :)

tal como es posible en Compiz también

a ok, gracias

Volviendo al problema de cambiar ventana, si realmente no podéis vivir con GNOME Shell tal como está también podéis probar la extensión "Breadcrumbs"

en http://ubuntuforums.org/showthread.php?t=1238920 explica como instalarla

¿Alguna otra pregunta?

creo que ya no

OK, pues pasamos a la última parte de la charla, Zeitgeist.

Zeitgeist es un proyecto que nació hará un año en el Boston UI summit, de mano de seiflotfy i Nathan Yellin, como una solución al problema de volver a encontrar aquello con lo que has trabajado hace poco

Y a partir de ahí ha evolucionado hasta lo que es hoy (siendo reescrito varias veces y con un equipo de desarolladores nuevo, http://zeitgeist-project.com/team)

Actualmente lo que antes se conocía como "GNOME Zeitgeist" está divido en varios componentes, principalmente: Zeitgeist y GNOME Activity Journal

el primero es un demonio (proceso que corre en el fondo, no es que sea malo y quiera tu alma :))

que proporciona una interfaz D-Bus a través de la cual los programas pueden insertar información acerca de lo que pasa en el ordenador.

Por ejemplo, "el usuario ha abierto el fichero ~/foo.odt con OpenOffice.org" o "el usuario ha ido de google.com a otra página X con Firefox"

o también "el usuario ha recibido un mail" o "Rhythmbox ha pasado automáticamente a otra canción"

Y todo esto lo guarda en una base de datos global de eventos.

Que a su vez puede ser consultada via D-Bus.

Aquí es donde entra en juego GNOME Activity Journal

(http://seilo.geekyogre.com/2010/04/gnome-activity-journal-0-3-4-preview/)

una interfaz gráfica que muestra toda esta información para permitir volver a encontrar cosas rápidamente.

Pero Zeitgeist no se limita a esto, sino que también permite analizar los datos que tiene. Por ejemplo, puede encontrar todo aquello que usas más a menudo al mismo tiempo que un fichero (o contacto de mensajeria instantánea o lo que sea) determinado

Y está claro que no es solo el GNOME Activity Journal quien puede pedir toda esta información, sinó que cualquier programa puede hacer uso de ella.

Así pues se espera que GNOME Shell también integre alguna funcionalidad que use Zeitgeist.

(Todo y que tampoco está claro que aspecto tendrá exactamente, es un punto que aún se está discutiendo).

Para probar Zeitgeist podéis instalarlo de los repositorios si usais Debian o Ubuntu Lucid (para versiones más antiguas de Ubuntu usad https://edge.launchpad.net/~zeitgeist/+archive/ppa)

o bien bajarlo directamente:  bzr get lp:zeitgeist; bzr get lp:gnome-activity-journal   y entonces encender Zeitgeist (cd zeitgeist; ./zeitgeist-daemon.py) y mientras este se está ejecutando GNOME Activity Journal (cd gnome-activity-journal; ./gnome-activity-journal)

Por defecto Zeitgeist recibirá la misma información que el sistema GtkRecentManager (es decir, la información que se muestra en el panel bajo Lugares -> Documentos recientes)

Para más información es necesario instalar plugins para cada programa. Hay algunos (Firefox, Rhythmbox, etc.) en https://launchpad.net/zeitgeist-dataproviders

OK y creo que lo dejaré aquí.

¿Alguna pregunta?

por interno, ninguna

una pregunta

Si?

pregunta de jjmarin : puedo configurarlo para que por ejemplo no me actualice cambios en un carpeta determinada ?

jjmarin: Si. Ahora mismo no hay ninguna interfaz gráfica para hacerlo, pero hay un plugin ("blacklist") que permite rechazar silenciosamente eventos que tengan alguna característica concreta

pregunta nuevamente de jjmarin : Puedo desactivar una aplicacion temporalmente para luego activarla de nuevo ?

jjmarin: Si, idealmente cualquier proceso que inserte información en Zeitgeist debe registrarse

del estilo "hola soy el logger de Totem y registro todas las canciones que el usuario escuche"

Y entonces le puedes decir a Zeitgeist que inhabilite ese logger determinado y luego volver a habilitarlo

pregunta de pestefo_ : Cuales son los planes sobre integrar zeitgeist con nautilus y esos a su vez con gnome shell?

(Para esto hay una interfaz gráfica rudimentaria, pero de momento no está incluída en los paquetes)

jjmarin: para más información: http://bloc.eurion.net/archives/2010/zeitgeist-data-source-registry/

pestefo_: No son muy detallados de momento

Por lo que si alguien tiene alguna idea al respeto, que no dude en hacernosla saber o enviarla a la lista de GNOME Shelll :)

una pregunta mas de jjmarin : puedo controlar que aplicaciones preguntan sobre mi historial, se pregunta la primera vez que hace una consulta ?

Un projecto que esta empezando a utilitzar Zeitgeist ya es el Elementary OS

estan creando un navegador de ficheros nuevo con Clutter que también usará Zeitgeist (https://launchpad.net/dashfilebrowser)

pero esto no tiene nada que ver con el projecto GNOME

jjmarin: No, actualmente no proporcionamos esta funcionalidad. Pero si alguien tiene mucho interés en ello seria posible escribir una extensión que lo haga.

pregunta de jjmarin : GNOME 3.0 se está anunciando que básicamente introduce GNOME shell, supongo que porque se prevee que no estará listo para la versión 3.0 ¿que nos puedes decir al respecto?

Zeitgeist y GNOME Activity Journal está escritos en Python por lo que no es muy difícil :). El problema principal seria cómo identificar la aplicación.

jjmarin: Ahora mismo el problema principal es decidir que aspecto debe tomar la funcionalidad que proporciona Zeitgeist.

Es decir si se quiere integrar en Shell (mejor dicho, ¿como?), o usar directamente el GNOME Activity Journal, etc.

RainCT: te refieres al Journal ?

sorry 

Consulta: Esta pensado que en la seccion de aplicaciones de Gnome Shell, se vayan incorporando las mas utilizadas? en forma automatica...

Herver: Esto sería posible tanto usando Zeitgeist como un registro que la propia GNOME Shell lleva sobre el uso de programas

De hecho, hace un tiempo estaba presente esta funcionalidad, no se si tienen planes para volver a introducirla pero es probable.

Pues con Zeitgeist y Shell no tiene ninguna dificultad, y aún que no vienese por defecto segur que aparecería un plugin que lo proporcione :).

*seguro

ultima pregunta de jjmarin : Donde reside la informacion almacenada ? Se puede compartir entre varias máquinas o usuarios ?

jjmarin: Zeitgeist utiliza una base de datos SQLite, por defecto situada en ~/.local/share/zeitgeist/activity.sqlite

Una mas: Yo en algunos casos, uso 2 pantallas (una es una television) y la uso con TwinView de NVidia El caso es que lo hago para que mi hijo vea una pelicula mientras yo sigo trabajando. Ahora con Gnome-Shell, no puedo hacerlo, ya que al usar la esquina, para ver todas las aplicaciones, dejo de ver la pelicula tambien. Esto tambien ocurre si se configura como pantallas separadas? como funciona en este caso Gnome Shell? esta contemplado?

Y en principio no está pensada para ser compartida. Ahora bien, Collabora empezó un proyecto para compartir eventos via Telepathy

Y todo y que aún no hemos tenido tiempo de revisarlo en un futuro no muy lejano seguro que habrá algo en esta dirección

pregunta de azuljp :  Cada aplicación que se ejecute deberá tener como un plugin para interactuar con Zeitgeist?

Herver: Ahora mismo el soporte para múltiples pantallas en GNOME Shell es más bien inexistente (principalmente es algun parche que algien mśa y yo hemos ido haciendo de vez en cuando)

Pero según tengo entendido la idea es que cada pantalla muestre un trabajo de espacio diferente

Supongo que entonces se seguirá viendo la película.

ok, muchas gracias :)

Herver: en todo caso, envia un mail a la lista de gnome-shell comentando el caso

azuljp: Si, a no ser que ja registre la información en GtkRecentManager, pero en este último caso seguramente también es mejor que tenga un plugin.

si, igual por el momento, no lo considero un problema grave, se que esta en pleno desarrollo, era solo una inquietud de si habia alguna idea al respecto...

Esto es así porque Zeitgeist registra:   a) información que sinó no se guardaria (por ejemplo, los cambios de canción de Rhythmbox)      b) o información más detallada que la que se guarda

por ejemplo con Totem lo sabemos via GtkRecentManager cada vez que abre una canción, pero tenemos un plugin que también envia un evento cuando la canción acaba y además dice si se ha iniciado porque el usuario la ha abierto o porque está en una lista de reproducción

Bueno si ya no hay mas preguntas

damos por finalizada la charla de este mes

agradeciendo a RainCT 

Por cierto, si teneis alguna duda más tarde, podeis encontrarme en #zeitgeist (Freenode) or #gnome-zeitgeist (GIMPnet). GNOME Shell también tiene un canal, #gnome-shell (GIMPnet)

por la excelente charla que nos ha brindado

No hay de que. Gracias por invitarme, neosergio :)

Muchas gracias RainCT por la charla y por dar un poco de tu tiempo para esta :D

El log de la charla estare en unos momentos disponible en : http://es.gnome.org/Eventos/CharlasIRC/CharlaAbril2010

Tambien pueden revisar las anteriores charlas http://es.gnome.org/Eventos/CharlasIRC

muchas gracias a todos por su asistencia

:)

Gracias a vosotros también por asistir :)

Eventos/CharlasIRC/CharlaAbril2010/Log_CharlaIRCAbril2010 (última edición 2010-04-17 19:54:23 efectuada por SergioInfante)