GUADEC 2005 GNOME Track

Here is an overview of the talks that will be presented at the GNOME track of this years GUADEC.

GNOME Track Program

Sunday 29th May:

Eclipse - Andrew Overholt & Ben Konrath gives you a overview to familiarize you with the Eclipse IDE and how to make it a productive tool for you.

The Future of Freedesktop.org - Keith Packard talks about current and evolving technologies at freedesktop.org including recent X Window developments and plans.

Extending Evolution with E-Plugins - Harish Krishnaswamy presents the new e-plugin architecture of Evolution. EPlugins can be developed and distributed independently of the main program and can extend the application in several useful and fine-grained ways, including contextual and application menus, internal events, and configuration windows.

Cairo - GTK+-2.8 introduces Cairo, much advancing the rendering capabilities available to GTK+ applications. This talk covers using Cairo and other new capabilities in GTK+-2.8 to enhance the rendering of widgets and applications using techniques such as vector graphics, alpha transparency and animation. Audience members are discussed to put screenshots and source code of their application or widget on the web and send a link to Owen Taylor for live discussion of enhancing the rendering.

Remotely Useful - VNC - Remote visual access to your desktop (or someone else's desktop) is one of those things for which you can think of endless interesting use cases. Since GNOME is so heavily based on the network aware tecnologies, it shouldn't be so hard, right? Each of those interesting use cases should be a part of our daily lives.

This talk will start by taking a high level view of the various scenarios for needing remote access to one's desktop. It will then delve into details on some of the work being done to enable those use cases in GNOME and will conclude with a look broad look at areas of future interest.

Pygtk and libglade - Application development with GNOME have never been as easy as now with technologies such as Pygtk and libglade. This talk will introduce you to these wonderful technologies and how to use them.

SELinux and GNOME - SELinux provides for very fine-grained controls on processes, orthogonal to the uid. With SELinux, it becomes possible to break up even desktop applications into separate programs, and to confine these programs using SELinux policy. However, modern desktop environments are becoming more and more tightly integrated; there are a number of means by which one desktop application can influence another, such as CORBA/DCOP, as well as the X server. This makes confining a desktop program to least privilege more difficult. This talk tries to address this issues and help make developers aware of the problemspace.

Localized Free Desktop - Getting a fully localised free software desktop is not only about translation: translation is one of the most visible parts of it, but there's far more to it.

Danilo Segan discuss issues of creating libc locales, compose files, XKB configurations, adding input and rendering support to Gtk+ and Pango, and translation issues including presentation of xml2po for documentation translation and tools used to edit PO files. He will describe issues relevant to both developers and translators.

GNOME in Bangalore - Parag Goel talks about the development and usage of GNOME in Bangalore, Indias major information technology capital.

gtk-sharp tutorial - In this tutorial you will learn the fundamentals of GTK+ and Gtk-sharp, and how to program them with the C# language within Mono. You will learn how to create windows and controls, and how to accept user input and act on that input. You will also learn how to use the Glade user interface designer, and how to ship its data files with your program. During the tutorial we will build a few small programs ranging in complexity from a trivial "Hello, World" to a simple addressbook. Along the way you will learn some techniques for structuring graphical programs to make them easy to maintain.

The intended audience for this tutorial is beginner or intermediate programmers, or people who have never programmed GTK+ applications before. Basic knowledge of C# or Java is recommended.

Writing about GNOME - As a complex software system product such as GNOME evolves, the need for all kinds of written documents about it increases. This includes integrated documentation as well as third-party articles and books. This paper/talk will try to cover the most important areas of writing about GNOME, though with a focus on developer documentation. I shall present a few general points on good style both in general and in technical writing, then become more specific about the challenges in writing about software. Issues discussed will include the pros and cons of reference style vs. tutorial style, choosing an example strategy, how to deal with forward references, when and how to use listings and screenshots etc. I shall also talk about the specific problems I encountered writing a developers' manual about GNOME, from typesetting issues to the problem of how to write about an API that is still a moving target, and how to finish a book on free software before it becomes outdated. The target audience is anybody who intends to do any technical writing about GNOME, especially prospective authors of third-party literature such as books or online tutorials. My remarks on style will be sufficiently general to not be focused on English, German or any particular language.

How To Get More Users of GNOME? - Fernando San Martin Woerner talks about how we can attract more users to the world class GNOME desktop.

Optimal GNOME Programming - This talk will address writing fast and slick GNOME code: The techniques, system interfaces, and best practices available to avoid performance pitfalls and capitalize on performance opportunities. Some interfaces and techniques discussed will be Linux-specific; other discussions will apply to any system. Everything will be applicable to the types of applications written in GNOME.

Amongst others, topics discussed include minimizing disk seeks, optimizing data access patterns, providing the VM with usage hints, modifying scheduler parameters, asynchronous I/O, Linux I/O schedulers, and mmap Insider, optimal approaches will be provided through knowledge of the Linux kernel and system-level libraries.

How do I write optimal code? How do I mitigate the performance hits inherent in disk access? How do I take advantage of new Linux system calls? What knowledge of the Linux kernel would help me better understand the issues and write better user-space code? Why is this kid so obsessed with disk seeks?

LTSP - LTSP is an add-on package for Linux that allows you to connect lots of low-powered thin client terminals to a Linux server. Applications typically run on the server, and accept input and display their output on the thin client display.

Cultivating Third World Developers - In the world of the Free Software development is commonly said that Free Software will be successful in Third World Countries, due to all the benefits that it has, between that stand out the cost of the solutions and the possibility that it brings to create local industries of software that facilitate the development of these nations. Nevertheless, the incorporation of developers from Third World Countries must surpass several barriers to get to become active hackers in the community.

This essay enumerate and try to determine an explanation of the difficulties that find programmers coming from the Third World Countries to get involved in projects of Free Software like GNOME. The topics that are approached includes aspects such as the cultural differences, resources, languages skills, self-esteem, among others. It is given as example the case of a distant country like Chile and the experiences shared with other people advocating GNOME in their own countries.

Also the exceptions to the rule are shown and the situations in which it occurs are explained. From both points of view is arised a proposal of alternatives to discuss a roadmap that allow us to bring new developers from different corners of the planet to GNOME.

Monday 30th May:

Interface stability - Internal to Sun Microsystems we have a process we follow to track and document the stability of interfaces used by the system as a way of maintaining compatibility. This talk will describe that process and some of the things we've learned out interfaces and controlling them in a large complex system (Solaris) being worked on by multiple developers in many different locations.

Eclipse, Java-GNOME, and GCJ - Using GCJ and Eclipse as tools, we will show developers how they can create GNOME applications in Java. We will discuss the present landscape of the Java world, present an introductions to the Java-GNOME bindings and show how the Eclipse IDE can help lower the barrier to writing applications for the GNOME platform.

GNOME Applets - GNOME's future (perhaps GNOME3) should include a new generation of applet that can handle all three use cases via the same basic protocol (we're currently using two distinct different methods and codebases for the two types of applets we have). A series of control daemons will be tasked with adding and removing applets for hardware and session applets, the panel will be tasked with keeping applets in order and recalling their positions when they are added or removed. A new library libgnome-applet (replacing libpanel-applet) will use D-BUS extensively for communication (instead of Bonobo).

Some discussion has already taken place on this topic but more needs to happen in order for a new, suitable design to emerge. Anyone involved in developing applets or the panel should definitely attend, as well as user interaction designers, and of course anyone who is interested.

Power Management and GNOME - Mobile computing is a part of everyday life. Unfortunately, so is running out of battery. When every single operation reduces the amount of time the system can run for, it's clear that applications need to be aware of whether they're running on AC or battery, and cope accordingly. This BOF aims to work out what needs to be done in order to make this information available to applications, and how the applications should respond. Covered material will include what information modern hardware provides to userspace, the right layering model for ensuring that this is effectively passed on and ways that applications can make life easier for themselves and the user when complete system failure may only be minutes away.

Windows Migration Study - A study report from a successful migration to GNOME and Linux from the legacy Windows platform.

Better unit testing - In this tutorial we will show how to increase software quality in c-based projects (which applies to many gnome related projects) by using unit-tests. We start with a short introduction of unit testing for c-language. Here we refer to extreme programming and making a short comparison to JUnit for the Java language.

Next we provide some strategies, of how to structure your project to integrate and write test cases in a simple and structured fashion. Then we proceed with details about testing and checking tools that can be used to find out bugs uncovered by the unit tests. This is followed by an overview about coverage tools. By using these one can generate a nice HTML-based overview over the project testing coverage. At the end we would provide a conclusion including fields we personally would like to see improved.

How to Contribute to GNOME tutorials - In years past, there has been a strong demand at GUADEC for tutorials and guides on how to begin development with GNOME. Yet most of the presentations have been geared towards more advanced developers. We propose a workshop that will assist in filling in this gap, based in part of the ongoing efforts of the Gnome-Love project.

This workshop will demonstrate to developers who are unfamiliar with GNOME how they can begin to contribute. Naturally, it will cover technical issues about the GNOME platform and internals. It will also address important details about the social and bureaucratic parts of the GNOME development process, and assist people in crossing the critical "bridge" from having knowledge about GNOME towards applying that knowledge in a way to improve GNOME.

First session

This session will provide a high-level overview of Gnome libraries, tools, resources, and processes. Subjects will include (1) background knowledge required, (2) an overview of GNOME libraries, (3) important tools (glade/libglade, valgrind, etc.), (4) how to find your way around a GNOME program or library, (5) an overview of the GNOME development process and how one becomes part of it (including bugzilla, cvs, mailing lists, IRC, etc.), and (6) some examples of volunteers who have gotten involved and how they did so.

[Second session]

This will be a live hacking session that demonstrates how the various tools and processes are used in fixing real world problems. This will include selecting a task to work on from a bug report in bugzilla, fixing the problem, making a patch, submitting the patch to the maintainers, and committing the patch directly if we can get the fix approved quickly enough.

We will make this session as interactive as possible with the attendees. It will conclude with us proposing some easy tasks to be tackled by attendees.

Marketing GNOME - This mini-talk and followup BOF will be aimed at informing and discussing the current efforts of GNOME marketing. It will serve as a follow-up and recap of the GUADEC 2004 marketing BOF. Topics of particular interest for the BOF will include, but are not limited to:

Topaz - GNOME 3 - Project Topaz is a long term roadmap for GNOME. You could call it "GNOME 3.0". This presentation will summarise what it looks like now, how we can manage the process of understanding and defining it, and how to actually *do* it. The presentation will then explode into a massive brainstorming session, and hopefully fuse the synapses of everyone present.

About GNOME · Download · Users · Developers · Foundation · Contact