Mono Updates

by Miguel de Icaza

Jb Evain has two screenshots about the new IL disassembler: here and here

Tomboy has been updated to work with Mono 1.1.4 (Mono's 1.0 C# compiler allowed for invalid code to be compiled).

Eugenia put together a large list of Gtk#/Mono-based applications.

If you are using Mono from SVN you can use `xsp2' to try Lluis' latest work on supporting ASP.NET 2 features: dynamic menus, trees, master pages and the beginning of the grid control are in now.

NPlot for Gtk#

I have updated NPlot/Gtk# to the latest version of NPlot, the tarball is here

F-Spot smoother than ever

Larry has been doing a lot of work in making F-Spot smoother, now it is possible to quickly browse through pictures in full-screen mode. Also importing of images into the library is faster than ever, F-Spot takes only a couple of minutes to bring 6,000 pictures into the library now.


Photo Storage in Travel Times.

I got four gigabytes worth of compact flash cards and two digital cameras for my trip to Istanbul and Beirut. The problem is where to backup all this data.

I have seen that there is a plug for the iPod that downloads compactflash images into the ipod. This is almost ideal (I can use my old ipod). But are there other things I should be looking at for backing up photos while traveling?

Send your recommendations to [email protected].

Mono Wiki Migration

Been busy moving the Mono Web Site to MediaWiki, following the footsteps of the Hula project.

On Nuclear War

A Chomsky talk excerpt: "Nuclear Terror at Home":

There's a document called The Essentials of Post Cold War Deterrence that was released during the Clinton years by the Strategic Command, which is in charge of nuclear weapons. It's one of the most horrifying documents I've ever read. People haven't paid attention to it.

The PDF to the above document is available here.

Venezuela and Hugo Chavez.

RMS has some interesting comments on his blog about Hugo Chavez (president of Venezuela).

Greg Palast did an interview with Hugo Chavez after the failed coup. Various tid-bits about the events from last year.

The World Social Forum in Brazil this year had Hugo Chavez as one of the speakers, it was packed:

At the Chavez Presentation.

Laura Went.

Posted on 27 Feb 2005

Istanbul, Beirut

by Miguel de Icaza

Next week I will be heading to the Turkish Open Source Days in Istanbul. I will be talking about the Gnome desktop and the Mono project there. The program for the event is here

Since I was in the neighborhood, I decided to swing by Beirut and Maria Laura is meeting me there a few days after. The local Linux user group is setting up a small presentation at the American University.

Posted on 25 Feb 2005

Mono Sandboxing

by Miguel de Icaza

With Mono 1.1.4 we shipped our first VM with the support required to implement sandboxing. We have yet to deploy all the attributes on the libraries to have a useful sandbox for users.

Sebastien has written two articles on this: here and here.

Update: Sebastien has posted a third article on the sandbox.

Mexico Politics

In Mexico the federal government is doing everything on its power to avoid the most threatening candidate to the incumbent party to run. They are doing this by using a loophole in the election process which will prevent the candidate from running for office. The story has been developing for a few months, and a summary of it is available here.

President Fox and a judge from the supreme court have been caught conspiring against the candidate (Andrés Manuel López).

Love Erik

Erik added me as his buddy on the Amazon insta-ship program so I do not have to pay for shipping and handling for 2-day delivery.

Its been a crazy last couple of days.

Posted on 23 Feb 2005

250 millions of PR budget.

by Miguel de Icaza

New York Times on their staged "Daily Show": "By my count, "Jeff Gannon" is now at least the sixth "journalist" (four of whom have been unmasked so far this year) to have been a propagandist on the payroll of either the Bush administration or a barely arms-length ally like Talon News while simultaneously appearing in print or broadcast forums that purport to be real news."

"The money that paid for both the Ryan-Garcia news packages and the Armstrong Williams contract was siphoned through the same huge public relations firm, Ketchum Communications, which itself filtered the funds through subcontractors. A new report by Congressional Democrats finds that Ketchum has received $97 million of the administration's total $250 million P.R. kitty, of which the Williams and Ryan-Garcia scams would account for only a fraction. We have yet to learn precisely where the rest of it ended up."

More on the uncovering of Jeff Ganon: here.

Bill Maher video

Nat at Work

Nat at Work.

Some Mono SVN Stats

From diffstat for the last month of Mono activity on the SVN repository (excluding deprecated code):

	mcs:  1847 files changed, 122176 insertions(+), 23168 deletions(-)
	mono:  323 files changed, 14845 insertions(+), 6360 deletions(-)
	total:2170 files changed, 137021 insertions(+), 29528 deletions(-)

Running Windows.Forms on OS X

Geoff describes how to run your Windows.Forms applications on OSX here. The short story: you must use the new `macpack' tool to create an OSX bundle.

He also has a screenshot of Alexsander Olk's new color dialog here running on OSX.

Posted on 20 Feb 2005

by Miguel de Icaza


We finally released Mono 1.1.4 and Mono 1.0.6. With this release we are recommending users to switch to the 1.1.x branch, as our automated testing and regression suites are much better than they ever were on 1.0.6.

The runtime is faster, smaller, leaner and we have fixed many bugs and architectural problems that were hard to backport to 1.0.6.

Programmers that have only been using Mono, and have not tested their code on .NET should keep an eye open for a few problems that might be exposed with the stricter 1.1.4 runtime:

  • C# compiler is stricter when it comes to namespace and typename resolution. Tomboy is known to not build with it.
  • Marshalling: A few incorrect uses of marshalling are now reported (Pointers can not reference marshaled structures, you must use byref in your P/Invokes, this affected F-Spot, but only marginally, F-Spot fallsback into a slower operation mode).
  • If you create delegates and pass those to unmanaged code as way to callback into managed land, you must keep a reference to the delegate, or the delegate will be garbage collected. This affected some old Gtk# applications. You will receive a warning message with the details to fix this problem.

The full release notes are available here

The performance difference is very visible on web-based applications. Our documentation system for example is now instantaneous.


We have also started distributing DB4Objects from Mono's web site. For those of you that are missing ObjectSpaces, you might find db4o not only interesting, but faster than what ObjectSpaces could have been.

New Tool

We have included Paco's prj2make on the latest release of Mono. prj2make is a tool that produces Makefiles from Visual Studio or MonoDevelop solutions. Specially convenient if you download some random code from the network.

SHA-1 and SHA-224

This is the first release that ships with the security sandbox infrastructure, Sebastien has the full story.

Last week SHA1 was broken. Because of this Sebastien is trying to get users to vote for incorporating SHA-224 into the Framework, see the details here. Mono users can use the Mono.Security stack that ships with this and more.

Installers for Mono

Installers: The folks at have been kind enough to package Mono with an installer that will work on all Linux systems. Many users love this, specially those without Red Carpet or Yum, as they only have to download a single binary and they get the whole system setup: Mono, all the class libraries, Gtk# and XSP. Like our Windows installer.

There are two downsides to using the installer: for those using distributions with package management, the installer wont register Mono on the system, which means that third-party components that depend on Mono will still want RPM packages installed (or people have resorted to use the --force parameter for RPM). The second downside is that this ships a Mono configured for the smallest common denominator, so speed will suffer as Mono does not use the __thread-based local storage and has to go through a slower (but backwards compatible) system.


Hula's launch has been very successful. The Hula Channel is very active: people contributing patches, ports and various folks interested in the dynamic web interface are hanging out there. There is plenty of energy there.

We are planning on following Hula's plan to use MediaWiki as the main page for the site, because updating the Mono web site has always been a bit annoying.

Also, many people read Jamie's posting on Hula and miss-understood that Jamie was actually praising Nat's final direction on Hula, so there are plenty of comments along the lines of `Jamie slams Hula' and `They are clueless, we are not'.

Being very interested in politics, I see this phenomenon as an interesting window into the human soul: if these very smart technical people have problems understanding a post like that, what does that say for people trying to discuss and debate the finer points of public policy?

Posted on 19 Feb 2005


by Miguel de Icaza

Today Novell open sourced and launched the Hula Project: an open-source groupware server.

For full details, see Nat's blog post with a rationale, screenshots and details, here: here


Robert Fisk has two articles on Hariri's assassination yesterday: here and here.

The Phoenicia hotel seemed to be under construction: image here

I still intend to go to Beirut on vacation with Laura in three weeks.

Posted on 15 Feb 2005

The origins of Ximian: 1999 interview

by Miguel de Icaza

Nat found an interview we did in 1999, when Ximian was launched. The inteview is here.

In 1999 we had to rename our company from "International Gnome Support" (IGS) to HelixCode as we feared IBM's stock would dip due to the naming conflict with their own "IBM Global Services" (IGS).

Update: It has been pointed out that our old domain for IGS is not something you want to click on if surrounded by polite company.

Interview with Edd Dumbill

There is an interesting interview with Edd Dumbill on his Mono book on a Turkish site.

Posted on 12 Feb 2005


by Miguel de Icaza

iFolder has launched its new web site

Posted on 11 Feb 2005

Gnome memory use in various languages

by Miguel de Icaza

Paolo has an interesting post on the memory footprint that Gnome applications incur when using Mono. The following table shows the memory usage, Virtual Memory and Resident Set Size for various runtimes running the same simple Gtk+ based application:

RuntimeVSIZERSSWritable Mapping
Plain C10,568 KB4,728 KB.935 MB
Mono 1.1.4+18,912 KB8,200 KB4.350 MB
Python15,092 KB9,164 KB
Mono 1.031,776 KB9,916 KB
Perl17,032 KB10,028 KB
Kaffe 1.1.4PRECVS7-141,452 KB11,136 KB22.000 MB
Java HotSpot Client 1.4.2-01218,612 KB13,208 KB174.000 MB

The important number to look at is the RSS, the VSIZE is just useful as a reference.

Paolo explores the memory consumption from Mono, as well as a few problems with small libraries.

Update: Paolo provided the numbers for Kaffe and I included his writtable mappings column.

Other observations

Paolo commented a few more things today online.

Gtk+ 2.0 has grown quite a bit (Accessibility, Pango), here is a contrast of Gtk 2.4, 1.2 and Qt. Sorted by RSS:

Runtime/ToolkitVSIZERSSWritable Mapping
C/Gtk+ 1.24,716 KB2,168 KB.483 MB
C/Gtk+ 2.410,568 KB4,728 KB.935 MB
Perl/Gtk 1.210,684 KB5,424 KB2.208 MB
C++/Qt 3.3.314,700 KB6,900 KB1.360 MB
Perl/Gtk 2.417,032 KB10,028 KB

Ahead of Time Compilation

Note that in the numbers above, Mono was running in Just-in-Time compiler mode. One of the things that we have been working on in Mono in the 1.1.x series is improving the produced code for precompiled code. Expect the numbers for our next release to be even closer to C.

The new file format that Zoltan created is designed to maximize the pages that can be shared by using position independent code (PIC). By using PIC code various running Mono applications will share the same pages in memory and only a few pages for each library must be mapped in read-write mode and updated.

This PIC code is typically slower than code that is JIT compiled by Mono. The tradeoff that we are making is that users that run more than one Mono application will benefit by having the Mono applications share more code.

But if performance is more important than memory consumption, users can pass the -O=-aot flag to the Mono runtime. This will disable the use of the Ahead-of-Time compiled code.

The documentation for the new file format lives in mono/docs/aot-compiler.txt

Posted on 09 Feb 2005

Building Mono on Windows

by Miguel de Icaza

Kevin and Francisco have published an article on Building Mono on Windows.

Paco said:

This article was aimed at folks that are consumers of Mono maybe even contributors of patches and documentation. My approach when collaborating with Kevin Shockey was to give departmental developers a way to build the latest and greatest. These are the folks that may have even reported a bug to the list and gotten a reply like:

"Is fixed on SVN".

The twist on this witting is that the build approach does not use MS .NET Framework, rather uses Mono to build Mono. We will later put out a set of modified instructions to uncomment a couple of lines that we suggest creating on the user's .bashrc file to enable the build using csc.exe rather than mcs.

Posted on 08 Feb 2005


by Miguel de Icaza

Eugenia pointed out that "7 out of the 20 top-rated apps on are mono apps" in GnomeFiles.

Intro to Mono

There is a new article over at CodeProject on setting up Mono for .NET users on Linux and Windows.

There is a whole section covering cross-platform development with .NET over there.


Became addicted to Fafblog a few days ago. I started with this post.

Posted on 07 Feb 2005

Mexico Talks

by Miguel de Icaza

Ciudad de México: charla sobre Mono y Gnome el dia Jueves 3 a las 4 de la tarde en el auditorio Amoxcalli de la Facultad de Ciencias en la UNAM.

Otra charla el viernes en el Instituto de Ciencias Nucleares (detalles). Este auditorio es más pequeño y creo que la entrada al público en general va a ser más difícil.


Lluis has developed an addin to develop Mono with MonoDevelop.

His blog post has more details on the work that is going into MonoDevelop.

Posted on 01 Feb 2005