Mexican Elections.

by Miguel de Icaza

The news have reported that the election results do not point to any candidate as the clear winer yet. Sadly, the election is too close.

The situation will soon move from the counting of the votes into the political realm, as there are a few things happening in parallel.

There are three classes of computations in the election, two of them are ran by the Institute for Federal Elections (IFE) and another by third parties.

  • Exit polls and society sponsored sampling.
  • The IFE quick-vote counting, called the "PREP".
  • The official count, done by the IFE.

The exit polls are pretty random, it depends who is doing them, and where they are doing them (the country seems to be mostly divided: the north is very much PAN, the south is very much PRI).

The IFE quick vote counting (PREP) is not an official result, and is intended to give a quick overview of the election results. It would have been very useful to point out the winer if the disparity between parties was larger, say "40, 30, 20, others" (and in fact, its been useful to determine governors, senators and other broad strokes).

But the problem is it is not very precise, it is missing a lot of data that is not being accounted for. There is an agreement that if anything goes even slightly wrong with any of voting results coming from a location, the values will not be computed (missing data, typos). They are still displayed (bottom of the page), but they are not making it into the end result.

This means that the difference between the PAN and the PRD for the presidential is either:

  • 1%: quick vote count, and is still missing a few thousand voting booth results).
  • 0.7%: if the values for the pending values are taken into consideration (using a perl script on the data posted).
  • 0.4%: on the real count, but this so far only has 90% of the votes accounted for. The final number wont be announced for a few days.

And this is where it turns political. The PAN is demanding the IFE to call the election on their favor based on the quick count. The real voting results are not as encouraging and might still flip over to the other side considering all the votes that have not been counted yet.

In the meantime, a number of inconsistencies have been found in the PREP program between the reported numbers and the posted numbers on the streets (here).

There are still a number of possible events, and the city is abuzz with theories on what will happen next.

Unlike the Fox election, which was a relief to Mexicans, this one will not feel like a relief. With the Fox election, even if he was a right-wing candidate, getting rid of the PRI was good enough. Besides, Mexico City got the PRD as a major.

Track Records

The PAN orchestrated a fear campaign against the PRD/AMLO. The TV ads were fairly blunt "if they win, you will loose your job and your house", "Four families will be forced to live in an apartment", your standard cold-war era propaganda. I figured nobody would believe this sort of thing, but I was surprised to listen to my own friends echo these things back to me "we would have lost our houses and jobs".

They managed to smear a guy that was the runner up for "Best City Major" in the world, which had a great track records and fixed a miriad of problems in Mexico City, created a University for Mexico City, opened new schools and funded old people that needed money.

On the other hand, we have the fear-monger candidate. He was the man in charge of the largest debt in this administration (Fobaproa), the largest burden on the country; He is part of the small group of people which kept coming up with creative ways of privatizing the nationalized oil industry, and was recently discovered to be involved in a multi-million dollar nepotism scheme while he was Secretary of Energy. Basically, he has the profile of your standard CIA-approved candidate.

Anyways, Mexicans, like the Americans two years ago, managed to vote against their own interest as the discussion shifted away from the Economic Policy to whether the man had finished his degree and whether he ate babies with his bare hands.

Posted on 03 Jul 2006

Ruby.NET Compiler Released

by Miguel de Icaza

Wayne Kelly and John Gough announced the release of their Ruby.NET Compiler, the details are available here.

To build with Mono today, a few patches are necessary, see the comments here.

Posted on 02 Jul 2006

Mexico Election: Forgeries

by Miguel de Icaza

A new trick in the dirty politics going on in México.

Someone cracked into the web site for AMLO/PRD and posted a forged letter that called for "civil resistance" the day after the elections.

The media was notified in the morning of the letter and had a blast all day discussing the letter as real, and it took all of 24 hours to get the media to acknowledge that the letter was fake (they were notified half an hour after it was discovered).

Posted on 01 Jul 2006

GUADEC for Latin Americans and Asians

by Miguel de Icaza

Rodrigo points out that GUADEC in Europe is an expensive conference for those coming from Latin America and Asia. Not only is the travel had to afford for those folks, but even if they manage to pay for it, their expenses in Europe are sometimes hard to afford:

People from Latin American countries (and I guess Asia and Africa) find Europe quite expensive, so for them going out for lunch/dinner with US, Australia and Europe people is unaffordable, which makes them having to go on their own to look for cheaper places. So, I think it would be a great idea if we had, like in Copenhagen, free lunch for everyone at the venue. Thus, everyone, regardless of the country they are from, would have lunch together, making it easier for everyone to meet and talk.

Anne had a couple of good ideas (or someone suggested this on the GUADEC list). They were:

  • Make the "E" in GUADEC stand for "Everywhere". Host the next GUADEC conference in Latin America or Asia. Travel to Latin America and Asia is affordable for Europeans and Americans.
  • If we continue in Europe, use some of the money to provide stipends to pay for some of the travel expenses for those who need it.

Posted on 30 Jun 2006


by Miguel de Icaza

Just got back to Boston from GUADEC. It was extremely fun and energizing, just like last years. It is a shame I had to leave early the conference.

And the Band Played On

This year, there was a cover band made up of GNOME hackers and they did a fantastic job keeping us entertained at the Maemo/Nokia party, congratulations to the Macaques!


As part of my upgrade to SLED 10, SUSE's new enterprise Linux desktop am finally a full-time Beagle user.

Finding your documents and discovering information you did not even remember you had, playing $HOME archaeology, has been a very pleasant experience.

Although Beagle is fantastic, it needs a little bit of tuning for my day to day use.

Am a heavy email user, I have seven gigabytes of email in my laptop, and Beagle has a bad habit of optimizing the Evolution index files every 10 minutes if something has changed. And the optimization process hammers my machine very, very hard, to the point of not letting me get work done for a few minutes.

I spoke to Joe, and he said "it happens about every 15 minutes or so", armed with this information I found the problem, the Beagle.Daemon.ScheduleOptimize routine has a 10 minute delay to run the query again.

I tried rebuilding my modified Beagle from CVS, but CVS has new dependencies that I lack, so I decompiled the BeagleDaemonLib.dll, like this:

$ export MONO_PATH=/usr/lib/beagle:/usr/lib/mono/gmime-sharp/
$ monodis /usr/lib/beagle/BeagleDaemonLib.dll >
$ vi
   # Replace the ldc.r8 10. in ScheduleOptimize
   # with ldc.r8 100. for a 100 minutes.
$ ilasm /dll
$ mv a.dll /usr/lib/beagle/BeagleDaemonLib.dll

This has brought up my machine back to usable for me.

There are a few other glitches here and there, but the Beagle team is aware of these. Beagle and Beagle-based applications have a lot of promise, I just hope that the core gets a few passes of love, improvements and small touch-ups before they jump on to new, innovative ideas.

Avalon, WPF and Michael Zucchi

Michael has started a blog about his experiences using Avalon/WPF on Windows. Michael was one of the main developers in Evolution while at Ximian and is now working in Australia hacking on WPF.

His comments on WPF are interesting. His regular blog has had some negative comments about it in the past and his new blog has some more.

I do not have as much experience as Michael has with Avalon/WPF, but I wrote about the complexity of the framework a few years ago (here and here).

Although Michael is not involved in Mono, I have added his blog to the Monologue blog aggregator as his comments are very interesting.


Lluis Sánchez demoed the new developments of MonoDevelop at the conference.

What was interesting about Lluis' presentation is that I did not know about half the features that MonoDevelop has. I was blown away. Specially, since am Lluis' manager and I read every status report, and try to read most of the MonoDevelop patches, but I did not know that MonoDevelop had all this magic behind it.

I knew we had Stetic integration in MonoDevelop, but the integration goes beyond generating the UI for applications. The Stetic/MonoDevelop integration uses the refactoring engine to add method handlers for signals (double-click on signal) and if you change the names of your widgets in the designer, the source code that references it is updated. It also has a number of nice touch-ups that went into SVN recently, like a context-sensitive toolbar which has the most common operations in a per-widget basis.

JPR raised some concerns, because this "smelled" similar to Glade's "Generate code" feature, but it is very different. The model that MonoDevelop uses for Stetic/C# integration is more similar to Glade and XML, it just happens to not use XML at runtime.

The MonoDevelop model is more or less like this, for each "UI" element (custom widget, dialogs or windows):

  • A MyGUI.cs contains all the event hooks, top-level class handler for the given UI component. This code contains a call to Stetic.Gui.Build (this, typeof(MyGUI)).
    This is the equivalent of loading your Glade file in the Glade world.
  • A gtk-gui/MyGUI.stetic contains the representation used by Stetic to manipulate the UI. This is not used at runtime, its only used by Stetic to load and save the UI.
  • During compilation the gtk-gui/MyGUI.stetic produces a gtk-gui/generated.cs file that contains the code to create all the GUI widgets and hook up all the events.

So you are free to add and remove as much code as you want to your MyGUI.cs file, that file is never touched by MonoDevelop.

He also demonstrated creating custom widgets, and how these could be kept on a separate library that MonoDevelop can load into the GUI designer, the steps are:

  • Add a "New Project" to your solution, select "Library".
  • In the library, select "Add New Widget", develop your new widget, debug it, test it. When you are ready.
  • On the main project (or every project that consumes your library), right click on "References". Select "Projects" and click on the Library you want to incorporate.
  • The new widget appears on the widget palette, you can now drag it and use it in your main application.

Finally, he demonstrated the "Deployment" feature, which produces an automake/autoconf setup and produces a tarball that is ready for redistribution. There is talk about doing a "deploy to RPM" and "deploy to DEB" functionality right into the IDE.

Posted on 30 Jun 2006

New Toolkit for Rich Web Applications

by Miguel de Icaza

The other day I ran into Jitsu, a new toolkit for creating Ajax-y applications.

Jitsu takes an interesting approach in the Ajaxy space.

Posted on 28 Jun 2006

Mexico, Elections

by Miguel de Icaza

Am going back to Mexico to vote on this Sunday's election.

Am voting for Andrés Manuel López Obrador (AMLO/PRD).

The smear campaign against AMLO has been quite intense, a few mexicans in Barcelona told me the most amazing stories. The rumors being spread include "If AMLO wins, four families will be forced to live in an appartment", "AMLO is being financed by Fidel Castro", "If AMLO wins, you will only be able to buy food with food coupons from the state".

It sounds like a list of recycled cold-war era propaganda.

That's the kind of thing you have to make up, when your candidate gets caught up in a corruption scandal using a creative setup and mis-using federal information.

More videos: here.

Posted on 28 Jun 2006

GUADEC Conference: Mono and Gtk# Q&A Rescheduled

by Miguel de Icaza

I had a conflict of schedule (my plane leaving Barcelona two hours before my talk at GUADEC) and the organizers were kind enough to reschedule the Mono and Gtk# Q&A session at GUADEC to be on Monday instead of Thursday.

The session will be held in the "Sala de Actas" (Room #2) at 7pm on Monday 26th.

Posted on 25 Jun 2006

Microthreading with Mono

by Miguel de Icaza

Jim Pubrick has written an interesting blog entry detailing how they are using Mono on Second Life. Second Life is going to use Mono to run the user-provided scripts with native code (which am told can be up to 150 times faster than the current engine).

SecondLife is using Mono in a non-conventional way, which I like to think is one of the benefits of having an open source engine, they have added a micro-threading implementation.

Microthreading was necessary because some of their simulations are made up of thousand of threads/routines, and using the default threads in Mono (which are mapped to operating system threads) would have been too heavy.

Their micro-threading implementation is different than Tomi's recent continuation work in that Second Life has added support to "migrate" running code across machines.

A presentation from the Second Life folks at Google Tech Talks.

Posted on 07 Jun 2006

Zombo, invite needed

by Miguel de Icaza

If anyone has an invite to Zombo.Com please email it to me.

Posted on 07 Jun 2006

« Newer entries | Older entries »