Go forward in time to August 2006.
I am back from Boston, where we had our semi-yearly meeting of the desktop team at Novell. It is great to be back home; I can't stand being away from Oralia and our house for two weeks.
American Airlines no longer serves food in coach class. They sell ridiculously expensive boxes with wholesome and nutritious snacks such as peanuts, potato chips, and meat sticks. On the other hand, people who fly in business class do get a meal. It is worth noting, however, that these days it seems to be that only really fat people fly in business class — precisely the ones who do not need more food. You step into the plane, and since business class has already boarded by then, you end up bumping into a large number of cetaceans who completely fill their oversized seats with their huge asses.
Ryan has an AWESOME post on power consumption in GNOME due to careless use of timers.
Check out the article on Cecilia González, the student I'm mentoring for the Women's Summer Outreach Program. Cecilia has been writing about making Evolution faster when switching components (for example, when switching from the mailer to the calendar).
Cecilia found that after having switched a certain number of times between components, the mailer starts getting much slower. This is especially bad when you mix switching between all kinds of components: mail/contacts are slower than the others and they also become slower at an increased rate.
It will be interesting to see what the profiler says about this.
Cecilia's approach is nice: she automated the process of switching many times between different kinds of components, so that it is easy to run all that churn through the profiler. This also lets us plot charts like the ones above, which let us see regressions: we all felt that switching was slow, but we didn't really know that it got slower over time at a linear rate.
And my other student, Manu Cornet, has been kicking ass, too! Manu has a torture test for GTK+ theme engines. This tool lets us ensure several things:
Also, Manu plugged my GtkWidgetProfiler into his torture test so that we can actually get timings for various operations on widgets.
Manu's project is really about producing a theme engine for use with One Laptop Per Child. We need such a theme to be very efficient, since it's a relatively slow little laptop; robust, since we can't have programs crashing on children; and it needs to take the laptop's particular display into account.
Read Manu's explanation on how the OLPC display works; it's not your everyday LCD display.
Commondreams has a very interesting summary of election fraud in Mexico. Their digested version of Luis Mochán's own analysis of the election data (Spanish) (English version) is particularly nice. Luis Mochán is a physicist at UNAM (my University), and he has been applying statistical methods to analyze the election data, and has detected several anomalies. Quote from the article:
Let me go further than Mochán. The evidence he assembles is consistent with the following possibilities:
That Felipe Calderón started the night with an advantage in total votes, a gift from the authorities.
That as the count progressed this advantage was maintained by misreporting of the actual results. This enabled Calderón to claim that he had led through the entire process - an argument greatly repeated but spurious in any case because it is only the final count that matters.
That toward the end of the count, further adjustments were made to support the appearance of a victory by Calderón.
I'd like to speculate what would have happened a few years ago if someone were to propose mixing a second higher level platform with GNOME's C + GObject infrastructure. I bet he would have been thrown to the lions!
Let me tell you a story. Back in 1999, GNOME 0.13 was the first version of GNOME that was good enough to show to the world. We were there, in Linux Expo in North Carolina, showing it off to people and amazing them with how cool our software was.
And guess what?
The screensaver configuration program was written in C++!
ConfigScreenSaver::ConfigScreenSaver (GnomePropertyConfigurator *c)
{
config = c;
curMode = NULL;
ssavers = g_hash_table_new (g_hash_function_gcharp,
g_hash_compare_gcharp);
register_screensavers ();
gnome_property_configurator_register (config, screensaver_action);
}
The print manager was written in Objective-C!
- clicked:(id) obj
{
id curprinter = nil, tmp;
int opstatus = 0;
if (printer_list->gtkclist->selection)
curprinter = ((GtkCListRow *) (printer_list->gtkclist->selection->data))->data;
if (curprinter == nil)
{
[[[Gtk_MessageBox alloc]
initWithLabel:_("You must select a printer")] run];
return self;
}
...
Phaser-chess (one of the games) was written in Objective-C! And of course AisleRiot, our beloved solitaire program, is written in Scheme and so it has been since its inception before GNOME 0.13.
@implementation Board_View : Object
- paint_draw : (GdkRectangle *) a
{
gdk_draw_pixmap (draw->gtkwidget->window, gc, draw_back,
a->x, a->y, a->x, a->y, a->width, a->height);
return self;
}
Our text editor, find-file, and crontab managers were written in Scheme!
(define (make-search-type-option-menu select-action-proc)
(let ((search-type-option-menu (gtk-option-menu-new))
(search-type-menu (gtk-menu-new)))
(for-each (lambda (pair)
(let* ((symbol (car pair))
(label (cdr pair))
(menu-item (gtk-menu-item-new-with-label label)))
(gtk-menu-append search-type-menu menu-item)
(gtk-widget-show menu-item)
(gtk-signal-connect menu-item "activate"
(lambda ()
(select-action-proc symbol)))))
search-type-map)
(gtk-option-menu-set-menu search-type-option-menu search-type-menu)
search-type-option-menu))
And even more amazing: nobody got thrown to the lions. We understood that you can't write the world in C.
GNOME has supported multiple languages since the very beginning. Let's keep that beautiful and pragmatic tradition going.
World Domination as an Optimization Hack (report from the GNOME Deployments, July 2006)
This is a paper on what I presented during the "Dear sysadmins, what do you need?" session at GUADEC. It is full of goodies. Read it if you want to see how to achieve world domination by doing an optimization hack!
Have you seen that EVERYONE loves Suse Linux Enterprise Desktop 10? This is our desktop product at Novell, and it rules! We've been working like mad for the past few months to release this, and the results are fantastic.
Did everyone see Philip Van Hoof's awesome patches for Camel? On my machine, they reduce Evolution's startup memory consuption by about 40 MB. This is truly excellent work. Instead of reading the mailer's summary files "by hand", he simply mmap()s them and changes the data structures to support that.
In other news, Brian Nitz runs his DTrace magic on Evolution, to see where memory is allocated.
Every time we have a discussion about having a GtkAppWindow widget, the toplevel application window which would hold a menu bar, tool bar, content area, and status bar, someone always complains against making it as simple as possible: "but if you don't allow toolbar and menu items to be customized by users, at the GTK+ level, no one will want to use it because it is not powerful enough".
Microsoft has some hard
numbers on just what percentage of people customize the
Office user interface: it's only
Venezuela update: I got pointed to a pretty interesting article on how Venezuela looks from the inside, instead of how it looks to us uninformed outsiders.
Interesting things that happened during GUADEC, some of the resulting ideas, and people's brain-dumps on various issues:
Platform
Alex Larsson on cleaning up Gnome-VFS: using DBUS instad of ORBit, removing the dependency on Bonobo.
Robert Love on FUSE as a replacement for the low-level part of Gnome-VFS.
Alex's talk on printing support in GTK+.
User-centric GUIs, GNOME 3.0, blue-sky ideas
Jono Bacon on contextual user interfaces.
Alex Graveley released Gimmie, a replacement for gnome-panel which makes it easy to reach your working set of files at all times. And on a similar note, Scott Reeves and Jimmy Krehl have been working on tiles, one step in the right direction towards having first-class objects for the desktop that are meaningful to users.
Quim Gil on a user-centric desktop.
Performance
Michael Meeks on linker optimizations. I'd really love to know the details about this.
As discussed during the Performance BOF, Matthias Clasen has been making patches to restore various parts of GTK+ to use plain GDK drawing calls instead of Cairo, where the results are exactly the same and thus where Cairo is not needed (clearing window backgrounds, painting rectangles). This will help while performance improves in Cairo. I would link to these patches, but the archives for performance-list seem to be broken right now...
GNOME-wide issues
Quim Gil on making www.gnome.org useful, with hard deadlines. This man is just unstoppable. It must be because he lived in Mexico for a while.
Dave Neary on marketing GNOME. The ideas are now more concrete than the ones we have had in the past. In particular, using CRM software to keep track of things like contact points for our big deployments is a wonderful idea.
I had a long conversation with my dad over the phone last night. I wish he would write a book to connect the of myriad anecdotes about recent Mexican history that constantly fly around his head. Business in his toy shop sometimes has very slow days; he could use that time to write a draft for the book. Dad, are you listening? :)
The party from the catholic right "won" the elections in Mexico. Things smell pretty bad, and it looks like (again!) we have an election fraud. No wonder no other countries or foreign companies trust Mexico anymore: if the law doesn't work here, how can they plan for anything?
There was a huge but unofficial fear-mongering campaign to help the catholic party. Rumors were spread that if the quasi-leftist party won the election, people's private property would be taken away, several families would have had to live in the same apartment, and other similar propaganda. The campaign really worked. While Oralia and I were waiting in the airport in Paris, there was a Mexican family close to where we were standing, and they were talking very loudly. Loudly and obnoxiously, like the typical rich yuppies who want to be noticed. "What a drag with the elections, don't you think? Can you imagine what would happen if we lost everything we have?" Then they went on to talk about whether it was better to invest in dollars or in euros — really, just talking out of their asses, wanting to sound rich and wise. But it is amazing that supposedly well-educated people would simply swallow the fear-mongering campaign.
On the other hand, the most interesting thing that happened to us in Paris was when started chatting with two Venezuelan couples who were in the same train as us. They said that Hugo Chávez is turning Venezuela into a 1984: police cracking down on the homes of political dissidents; people getting fired if they have opposing views to the government's and their employer wants a contract with the government; lists of voters correlated to their votes that were made public after the elections and thus people were prosecuted based on their choice; people being limited on the amount of money they can take out of their bank accounts before visiting another country... scary things like that. When we told them that those news never reached Mexico, and possibly other countries, they said that yes, the Venezuelan government does that carefully so that the news don't leak out.
I don't know what to believe now. Trust the locals? Trust the news that one is able to get? Just don't trust political stuff at all?
I hope Miguel follows up on his detailed descriptions of how election fraud is done in Mexico.
W00t! The GNOME System Administrator's Guide has been updated for GNOME 2.14! Why isn't the stock market up?
GUADEC
GUADEC was fantastic. Quim deserves all the cheers he can get. It's unfortunate that tasks and meetings from the Foundation's Board kept me out of the conference for most of the time, but it was great to see everyone again. I was especially happy to meet Manu Cornet and Cecilia González in person; they are the students that I'm mentoring for Google's Summer of Code and GNOME Women's Summer Outreach Program, respectively. Manu is doing the GTK+ theme engine work for One Laptop Per Child, and Cecilia will be profiling Evolution when it switches components.
Oralia and I spent three days in Paris after GUADEC, in order to relax and ingest large quantities of tartlettes de fraise. Oralia goes into two-handed, uninterruptible mode while eating them.
However, she was terrified of riding the Ferris wheel.
The exhibitions in the Centre Pompidou were a total waste of money except for a couple Picassos and Braques (the rest of the cubists were not on display!), but at least there were interesting views from inside the building.
It was fun to be there.
Architecture porn from Notre Dame:
Oh, yes, France went totally crazy right after beating Brazil, with thousands of people taking over the Champs Elysées and the Place de la Bastille.
Architecture porn from Barcelona, by Antoni Gaudí the genius:
One day in Barcelona we went to walk around with my brother Axel and his girlfriend Janice. Axel was visiting Janice, who is studying in Barcelona.
Oralia had missed two GUADECs since the one in Dublin, and we are delighted to have gone together again.
These pictures are brought to you by Oralia and Federico. Oralia's are the ones which are smooth and intuitive; Federico's are the ones which are tight and neurotically-composed.
Oh, yes, yesterday was our fifth wedding anniversary!
Remember the still shot from Bolas Chinas, the blockbuster starring my friends that will take over film festivals worldwide? Now there is a trailer available!
Go backward in time to June 2006.
Federico Mena-Quintero <federico@gnome.org> Thu 2006/Jul/06 12:13:56 CDT