Mexico: Six More Years of Poverty.

by Miguel de Icaza

Calderón, the most recently purchased president and a corrupt politician has been now appointed Mexico's president by the court.

From The Guardian:

Felipe Calderón has been named president of Mexico, by a court, much as George Bush was named President of the United States, by a court.

But did he win the election? We do not know. The court's decision does not establish this, any more than the Bush v Gore case established that Bush won his first election - which, as we now know, he did not.

In both cases, the truth could have been known in time. But it was not. And that is because one side - in the legal struggle, the winning side - refused and resisted a full recount of the votes.

Posted on 07 Sep 2006

Mono Summit

by Miguel de Icaza

We finally have a location for the upcoming Mono Summit in Boston: The event will be held at Marriot Hotel at Kendall Square in Cambridge, MA on October 23 and 24th.

Just in front of the Kendall T-Stop in Cambridge, 20 minute walking distance from Berklee College in Boston and across the street from MIT.

If you are coming, please register in advance and if you wish to connect with other Mono summit attendees, you can list yourself in our our public Wiki.

My boss today suggested that we should have some kind of reception, am thinking we could have a "Welcome Meeting" on Sunday evening for those arriving to the city, and maybe some small soire on Monday and maybe some parting drinks for Tuesday. Anyways, if you got some awesome idea about what to do with 80-100 C# developers, drop me a line.

Posted on 07 Sep 2006

New MonoDevelop is out!

by Miguel de Icaza

Lluis has finally put the finishing touches on the latest incarnation of MonoDevelop.

This release is feature packed: Stetic now has toolbar, menu and action editors for Gtk# applications:

The Menu Designer, showing stock-icons. Clicking on "Click to create an action" will enter a new row.

The toolbar designer, here it show how to select a stock-icon for the toolbar.

This GUI designer is based around the Gtk Action model, so all menu entries and toolbar commands are linked to the same action. So you actually hook up events to the actions, not to the individual items, which is useful to keep consistency in your application.

The stock icons are not limited to the ones that ship with Gtk+, you can define your own that you can later reference, this is how:

When designing your dialog boxes, a context-sensitive toolbar is activated depending on the widget selected, so the most common operations are available right in the design surface without having to hunt them down on a property list:

Here you can see the options available for a label: alignment of the text,
and the vertical and horizontal filling and expanding properties.

Michael's Summer of Code ASP.NET GUI designer is now part of MonoDevelop, here it is in all of its glory:

The palette on the right shows the properties for the selected control, the "OK" button.

The ASP.NET designer is built on top of Mozilla, so a lot of the work is in the interaction between the embedded Mozilla engine and the MonoDevelop host.

Code completion has been vastly improved, it now supports Generics and will also display a tooltip with the help associated with a method when you select it.

Finally, when you hover over the source code, you can get documentation for a particular method:

MonoDevelop will now also generate the auto-tools infrastructure for your project (thanks to Scott!), to ease the deployment of your applications. And is able to produce tarballs directly from the IDE:

It will generate the standard auto-* stuff, but it will also install a .pc pkg-config file for your libraries, so third party projects can "reference" your library easily.

Solutions and Widget Libraries

My favorite feature is that your solution can include not only your main project, but also other libraries, like a widget library.

In this screenshot I have created a library that contains a custom control "MyControl" which is part of the "MyWidgets" project. The "MyWidgets" project then gets added (Go to References, Edit) to the main project, and this new widget becomes available for consumption in the main program.

You can also incorporate any other libraries and widgets, and they will show up in the palette just like MyControl show up on the right here:

My Wish-list

Internationalization: I personally would like to see something like Rafael's internationalization plugin to be integrated in MonoDevelop so you could also manage internationalization in the IDE.

And there is plenty that can be done in this area, for translations we could poke web services that expose all known translation strings for a project and incorporate translations into a program. We could also have a service that translates with Google Translate and help people translate their project and keep track of progress.

Web Services: There is a web service consumer add-in that was developed by Gideon (his current code lives in that provides a similar experience to Visual Studio for creating and consuming web services.

Deployment: it would be great if someone wrote a deployment target that submits the tarball to the OpenSUSE build service.

The OpenSUSE build service will take a piece of source code and produce packages for Fedora Core, Ubuntu, SUSE and others, so we could have MonoDevelop directly generate packages for all distributions from within the IDE.

An XML Editor: it would be nice if someone wrote an XML editor that could use some RelaxNG or XmlSchema rules to provide intellisense for various file formats and provide a good XML editing experience.

IronPython Integration: IronPython has a number of features to support IDEs, and it would be lovely if we could get these things supported into MonoDevelop, in the same spirit that the Boo support does today.


There is much more in the Release Notes where I liberally took screenshots from.

The IDE today has support for various languages: Boo, Nemerle, Visual Basic, C#, Java and ILasm.

Lluis and his team have done a fantastic job on MonoDevelop. The demo that Lluis did in Guadec this year was truly mind blowing, I hope we have some form of screencast soon for people to witness the great integration on this IDE.

Posted on 06 Sep 2006

IronPython 1.0 is out!

by Miguel de Icaza

Jim Hugunin has announced IronPython 1.0. Congratulations to the IronPython team at Microsoft for this release!

From the release announcement:

IronPython is about bringing together two worlds. The key value in IronPython is that it is both a true implementation of Python and is seamlessly integrated with the .NET platform. Most features were easy and natural choices where the language and the platform fit together with almost no work. However, there were challenges from the obvious cases like exception type hierarchies to the somewhat esoteric challenges concerning different methods on strings. We spent long days and sometimes weeks looking for the best answers to these challenging problems and in the end I think that we have stayed true to both Python and .NET.

To drive our Python compatibility, we run a large portion of the standard Python regression test suite in addition to a large custom test suite we added that runs IronPython and CPython side-by-side to test for identical behavior whenever possible. Despite all of this work, there will still be differences between IronPython 1.0 and CPython. The most obvious difference is that IronPython is missing a number of standard C-based extension modules so things like "import bsddb" will fail. We maintain a detailed list of differences between the two implementations and aim to reduce the size of this list in every release.

IronPython has also striven for deep integration with the CLR. For the implementation this is a great thing as it lets us take advantage of highly-tuned components developed for other languages such as the just-in-time compiler, garbage collector, debugging support, reflection, dynamic loading and more. This integration is also valuable to IronPython developers as it lets them easily use any and all libraries built for .NET from their Python code.

Posted on 06 Sep 2006

VBNC Compiles Hello World on Linux

by Miguel de Icaza

Rolf's excellent Visual Basic compiler was able to bootstrap itself a few weeks ago on Windows, but it did not work with Mono yet.

The compiler needed the VB runtime to be upgraded, it required a few fixes in the way we handle interface implementation for generics in the Mono VM, the final bug today was reference file names with their proper casing.

Also Rolf's compiler contained a few MS-specific hacks in the compiler, but those are no longer necessary so this afternoon the VB compiler was able to build Hello World on Linux:

$ mono vbnc.exe a.vb
                                                  DEBUG RUN

Visual Basic.Net Compiler version (last write time: 05/09/2006 21:06:28)
Copyright (C) 2004-2006 Rolf Bjarne Kvinge. All rights reserved.

Starting Scan
Scanning file /home/cvs/vbnc/vbnc/bin/a.vb
File '/home/cvs/vbnc/vbnc/bin/a.vb' scanned in 0.118 seconds
7 lines and 115 characters in total.
After SCAN: True
Starting Conditional Compilation
After ConditionaL True
Starting Parse
Parsing file /home/cvs/vbnc/vbnc/bin/a.vb (1 of 1 files)
3 assemblies were loaded.
73 namespaces were loaded.
2129 types were loaded.
Starting Resolve
Starting Resolve
CreateImplicitTypes compiler (1 of 1 types)
ResolveType compiler (1 of 1 types)
ResolveTypeReferences compiler (1 of 1 types)
CreateImplicitMembers compiler (1 of 1 types)
ResolveMembers compiler (1 of 1 types)
ResolveCode compiler (1 of 1 types)
Finished Resolve
DefineTypes compiler (1 of 1 types)
DefineTypeParameters compiler (1 of 1 types)
DefineTypeHierarchy compiler (1 of 1 types)
DefineMembers compiler (1 of 1 types)
Starting Emit
Emit compiler (1 of 1 types)
CreateType compiler (1 of 1 types)
Creating: compiler
Created:  compiler
Assembly 'a, Version=, Culture=neutral' saved successfully to '/home/cvs/vbnc/vbnc/bin/a.exe'.
Compilation successful


The "DEBUG" run is a tiny bit verbose as you can see, the results are mind blowing:

mono$ cat a.vb
public class compiler
shared function Main as integer
Console.WriteLine ("Dingus")
return 0
End function
end class
mono$ mono a.exe


Am actually scared of trying to bootstrap on Mono, I do not know if there are enough pixels in my machine to build the 68,000 lines of VB that the compiler has.

Posted on 05 Sep 2006

Italy Trip

by Miguel de Icaza

I think we have decided on what we will be doing in Italy.

We arrive to Pisa on September 16th, and we will head to the Elba island in the afternoon with the other speakers to the Elba island for the LASER Lectures.

After Elba, we will go to Rome on the 22nd or 23rd for the most part of that week.

Our plan is to go from Rome to Firenze and then to Pisa to take our airplane back home.

With this in mind: could we arrange some talks in Rome and Firenze (if there are Mono/Linuxers/.NETers there?)

Posted on 05 Sep 2006

Mono Success Story: Plastic

by Miguel de Icaza

I have been exchanging some emails with Pablo from CodiceSoftware a Spanish startup that is building software configuration management tools using .NET and Windows.Forms called Plastic.

Pablo's email on the subject:

We started Códice Software ( in August 2005, and since then we have developed a new SCM system, full written in C#. It runs on Mono from the beginning, in fact, our automated NUnit based system always tests on Linux/Mono (

Our intention building this new SCM was having something as powerful as Clearcase (ok, without some features like build enhacements and so on) but easy to use and fast (in some operations we are even faster than Perforce...), and also affordable to any-sized team. [Emphasis added]

This is what the software looks like on Windows:

In addition, they have developed a three way merge tool using OpenGL to render the view:

This is what it looks like in Linux running with Mono's Windows.Forms:

There are a couple of rendering glitches here and there, but other than that, its looking pretty sweet.

Posted on 05 Sep 2006

Workflow in Mono

by Miguel de Icaza

A few days ago, Mono contributor Jordi Mas posted on his blog about the work that he has done to create an open source implementation of the Workflow APIs to Mono.

He announced his work here and provided the details about it here.

Scott Guthrie posts a couple of pointers to interesting tutorials on Workflow:

There are no screenshots at this time to spice up this blog entry, but here is the output of running the NUnit tests:

MONO_PATH=`pkg-config mono --variable prefix`/lib/mono/2.0:"../../class/
lib/net_3_0::$MONO_PATH" mono --debug ../../class/lib/net_3_0/nunit-console.exe
/output:TestResult-net_3_0.log /exclude:NotWorking,ValueAdd,CAS,InetAccess
 /xml:TestResult-net_3_0.xml  System.Workflow.Activities_test_net_3_0.dll 
|| ok=false; \
sed '1,/^Tests run: /d' TestResult-net_3_0.log; \
NUnit version 2.2.0
Copyright (C) 2002-2003 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov,
 Charlie Poole.
Copyright (C) 2000-2003 Philip Craig.
All Rights Reserved.

OS Version: Unix    Mono Version: 2.0.50727.42

Excluded categories: NotWorking,ValueAdd,CAS,InetAccess

Tests run: 10, Failures: 0, Not run: 0, Time: 0.245039 seconds



Posted on 05 Sep 2006


by Miguel de Icaza

Today I finally upgraded my home server which was running ancient software so I could run Tangerine for sharing my mp3s on the home network over DAAP.

Worked like a charm.

Posted on 03 Sep 2006

F-Spot with PicasaWeb Export

by Miguel de Icaza

Gonzalo Paniagua developed a couple of new libraries: google-sharp to access a few Google services, and in particular Picasa and gnome-keyring-sharp, to access the Gnome Keyring from .NET applications.

gnome-keyring-sharp is a completely managed implementation, it basically speaks the keyring protocol instead of using a P/Invoke binding to call into native libraries, which is convenient as it is one dependency less on running applications.

Stephane Delcroix then developed a GUI for F-Spot to register your accounts, manage your albums and upload your pictures from F-Spot, the SVN version now has this fancy dialog box:

My first uploaded gallery from F-Spot is here.

Which reminds me, while traveling in Europe in July, I ran into the 12 Euro computer in a museum. I kid you not.

12 Euros, that is quite a good price. It is going to be hard for the OLPC guys to compete with that 100 dollar price tag, it has a surprisingly similar design, they also fold and they are also have quite an innovative design.

Judge for yourself here.

Posted on 02 Sep 2006

« Newer entries | Older entries »