Mig Tamale in da Sim!

by Miguel de Icaza

My SecondLife dude walks around the Mono Simulator in SecondLife, am running this with the Linux client:

Mig Tamale Explores the Space.

The work that we are doing on Mono's runtime to support Silverlight (the sandbox system and the hardening of the runtime) is going to enable the use of other programming languages to script components on Second Life.

Go SecondLife! Go!

Posted on 31 Jan 2008

Second Life Opens Public Beta for Mono Scripting

by Miguel de Icaza

Today Jim announced the beta launch of their Mono integration into SecondLife.

We’re very pleased to announce the beta testing of Mono in Second Life. Mono is a technology which will increase the speed of scripts running in Second Life. The goal is that everyone will experience reduced lag and improved stability and that it will be possible to script complex behaviours that were not previously feasible in Second Life.

With a mono viewer on a Mono region, normal LSL scripts can optionally be compiled and run on Mono. If you are a scripter we would love you to download the Mono viewer, connect to the beta grid, teleport to a Mono-enabled region and test your scripts on both the Mono and LSL virtual machines side by side

Currently the focus of this beta is to focus on identifying any problems with the Mono integration, so the language use is currently still limited to LSL. Linden has plans to allow any .NET language that will run on Mono to be used to write scripts for SecondLife.

For more information of Mono on SecondLife see the Mono page and if you want to participate in the beta, see SecondLife Mono Beta FAQ

Congratulations to the Jim and the Lindens for their beta launch and for seeing this project through.

I strongly recommend Cory's and Jim's video from the Lang.NET 2006 conference which explains some of the formidable things they did to bring Mono into their simulators.

I can not stress enough how interesting this talk was. It is a great introduction to SecondLife and it is a great talk on software engineering and the wonderful hacks that they came up with.

Brady, this is your chance to start hacking on it!

Posted on 29 Jan 2008

Usability Disaster Story

by Miguel de Icaza

In December, someone asked me about how many Mono downloads we had per month to estimate the size of Mono users. With software like Mono the download numbers do not mean much, because most of our users get their software through their distribution, package channels or as a bundled executable.

Since we are short on space on the machine hosting the files, we do not keep logs for too long, they are rotated and discarded pretty quickly, but we could at least do some guesswork based on a week worth of downloads. The data would not have been very useful, as this story takes place on December 27th, but I was still curious.

What I discovered with horror as I looked through the logs was that people using Windows and MacOS were downloading software that was two years old. Mono 1.1.7 (released sometime in May of 2005) was the most popular download.

Only 5% of the Mac downloads were actually getting the latest version, 95% was downloading this two year old version. I don't have my notes handy for Windows, but they were similarly abysmal [Update: found the notes, they were 95% as well].

The Linux downloads for RPMs were mostly fine (probably because they had to select the architecture from a separate list). But a whole 1/3rd of the people downloading the Mono "Universal Installer" were getting the wrong Mono as well (Update: clarified).

Using the referrer logs, we tracked down a few problems to people that had linked for their software directly to a particular version of Mono, but this could not explain the popularity of this aging Mono 1.1.7 release, and the logs were very odd, people apparently were selecting this from our list of options.

This made no sense.

Can you spot the problem?

I clicked on our links, they were fine. They downloaded the proper software, the logs matched the download. I was puzzled.

Only after a while I realized what was going on:

Since we are using MediaWiki for our web site and we were adding cute little icons for each platform, clicking on the image actually took users to the page for the image. In the Windows case, this was the page:


Which happens to contain the image, and some automatically generated content for the image. Some of the generated content lists all of pages that *link* to the image:

Now, that looks like a messy page, but most users were picking the largest number they found listed there, which happened to be an old legacy page of ours for the release "1.1.7". Going to this page, would be a very similar download page to the main one, and people at this point figured out "do not click on the image, click on the text". Except now they were clicking on the downloader for this ancient release.

I have no idea for how long this has been going on, but this is a colossal disaster.

We came up with a quick fix, luckily, you can replace the markup [[Image:Blah.png]] in MediaWiki with [url] and if the url points to an image, it will insert an unclickable image into the page.

But the quick fix could not address another problem: we probably had the worst download page in the history of human kind. It was incredibly bad, and you can still see it on the archives.

In the past few weeks, we wrote the beginnings of a new download page. Users will now be directed to this page, you can see it here. Thanks to the whole team in Provo that put together this new system and the folks in x-m-l that provided feedback on it.

There is still some work left to do on it, but the entry page is no longer the disaster that it was. Luckily since the correctly on December 27th or so, people have finally been downloading our latest Mono.

We of course feel terrible to all of the 95% of the users that wanted to try Mono on Windows and the Mac and ended up using a two year old version of Mono.

Posted on 24 Jan 2008

Lang.NET 2008

by Miguel de Icaza

Next week, am attending Lang.NET 2008 in the Microsoft Campus, two years ago this conference was a blast.

Am looking forward to what looks like a fantastic program. Marek Safar, one of Mono's C# compiler developers, will be there as well.

Since am not really a language designer myself, my talk will focus on discussing a few interesting solutions to a number of problems that we have faced while developing Moonlight and Mono and show a few creative applications that have been built with Mono.

Posted on 24 Jan 2008

New Mono Packages in RPM form

by Miguel de Icaza

Last year we ported various ASP.NET Starter Kits and we also started an effort to package popular Mono and .NET-based software in easy to install RPM packages using the OpenSUSE build service.

The OpenSUSE build service allowed us to submit source packages with a specification on how to build it, and get RPM packages for various Linux distributions and various versions of those distributions. Currently we support Fedora, OpenSUSE and SUSE Enterprise.

ASP.NET Starter Kits

The starter kits were a useful test of Mono's ASP.NET implementation, and we routinely use these for QA before we make a release.

When we did the port of these applications, this is what we did:

  • Switch the database to Postgress (so it is easier to test on Linux).
  • Cooked up a policy that our ASP.NET applications should follow to integrate with the system (Apache or FastCGI and our xsp engine). The docs are currently here and we are going to migrate them into our main server.
  • Integrate the application with the system, you can install and remove ASP.NET apps using the mono-asp-apps command line tool.

RPMs of the Starter Kits are available from the Mono:Community directory from the build service, we have packages for various distributions there (OpenSUSE, Fedora and SUSE Enterprise).

The OpenSUSE 10.3/noarch (platform independent, that means, they do not contain any x86 code) packages can be downloaded from here:

There are of course many new starter kits published at www.asp.net, and someone (hint, hint) should look at porting them as well ;-)

More Software

Also, over the past few months we have been packaging some other popular Mono-based applications. Packages can be found from the community page as well, some favorites include:

Web Apps:

  • MindTouch's DekiWiki: the GUI Wiki from Mindtouch. The cutest Wiki engine in the world.
  • MojoPortal: one-stop portal software based on .NET.

Hopefully, when it comes to ASP.NET, our recent work on supporting FastCGI with Mono should expand the ways you can deploy ASP.NET apps on your Linux systems (in addition to our Apache support).

Libraries and Tools:

  • gnome-keyring-sharp (access to the Gnome keyring from your desktop application).
  • Google GData's APIs for C#.
  • MySQL 5 connector.
  • The latest NUnit.
  • OpenTF, client and libraries to communicate with Team Foundation servers.
  • The TAO Framework for building cross-platform OpenGL, OpenAL, SDL, Cg, PhysicsFS and FreeGlut applications with C# and Mono.
  • Mono.ZeroConf, for all your Bonjour needs, with tutorials here.
  • Mono.Fuse: support for writing user-level file systems on Linux using C#. A sample is here.

Desktop Apps and Libraries:

  • Banshee with ipod-sharp and podsleuth (the latest versions).
  • Gnome-do, the crazy delicious application starter for Gnome.
  • GBrainy, Jordi Mas' puzzles and training game.
  • WF-Apps: a collection of open source Windows.Forms applications that we use to test Mono's Windows.Forms.
  • Last Exit, the Last.FM player.

Installing the Software

You can either download the individual RPMs from your distribution and have your browser install the software, or you can subscribe your package management software to the repositories.

OpenSUSE users for example, have to type this command:

$ zypper ar -r http://download.opensuse.org/repositories/Mono:/Community/openSUSE_10.3/Mono:Community.repo

Or add it from the GUI Yast tool.

After you have done that, the software collection will be ready to use, and you will be able to search for the new packages and install or upgrade software that we put in the Mono:Community group.

YUM users just need to grab the above .repo file and save it in /etc/yum.repos.d.

Debian and Ubuntu Users

Although the OpenSUSE build system supports both of these platforms, it requires us to create new "descriptions" on how to build the software for those platforms.

So far, we lack the experience and the time to maintain the Debian based packages ourselves.

We would love if someone with Debian/Ubuntu experience wants to co-maintain the packages here (maybe a script to transform the .spec + sources into a debian package can be written?).

Future Directions

We have a long list of things that we want to package for Mono. The only thing that is limiting us at this point is the lack of time (some software needs to be massaged a bit to make it conform to our ASP.NET deployment guidelines, or our Application Deployment Guidelines.

The Build Service is an open service (and its also open source, if you want to host your own build service in the comfort of your own living room).

Hopefully some folks in the community can help us package some of the other pieces of software that we have listed there.


Thanks to our QA team, Marek and everyone else that has contributed to package this software for Mono.

Posted on 23 Jan 2008

Free Software Users Taxonomy

by Miguel de Icaza

For people in the Windows world, Bruce Byfields' A Field Guide to Free Software Supporters will help them understand the various groups that make up the free software/open source software movement:

When you look, there are at least seven different types of FOSS supporters.

To outsiders, these schools of thought are more similar than different. In the same way that many Europeans see few real differences between a New Englander and a Californian, outsiders may see little to distinguish a Softcore Advocate from an Activist.

It is a great piece.

This is a great starting point for anyone that is getting involved in FOSS. Understanding that these groups exist and their positions will make it much easier to understand the dynamics of development and advocacy that you will run into while working with the FOSS community.

I feel that this article could be expanded on in a few areas, but eventually this could become a great taxonomy of the FOSS movement.

For instance, I think that there is room to dissect the editorialist advocate. This is the do-as-I-say-not-as-I-do advocate which will praise and preach open source, freedom, open systems, open standards but yet always ends up using the latest-and-greatest proprietary, DRM-enabled, crypto-locked gadgets and software.

Bruce has written a couple of other pieces that I liked on a similar subject: Conspiracy Theorists and Free Software and his follow-up Writing About Conspiracies essay.

Posted on 23 Jan 2008

As seen on JWZ

by Miguel de Icaza

As seen on JWZ's blog:

outrage fatigue

Posted on 18 Jan 2008

Zing is acquired by Dell

by Miguel de Icaza

Zing, the company that created the Mono-based Sansa Connect has been acquired by Dell and is now offering at a discount price.

They have released a new product for listening to Satellite Radio with Sirius in the US. The Stiletto 2.

Posted on 17 Jan 2008

Obama Fund Raising

by Miguel de Icaza

My friend Nat Friedman is raising funds for the Obama Campaign. If you are an American Citizen or a permanent US resident, please consider donating to Obama's campaign through Nat's fundraiser page (all the money goes to Obama, and you help Nat with his personal fund raising goal).

Although am myself a Kucinichista myself, I also supported Obama's campaign by donating to Nat's fundraising effort.

As readers of this blog know, am not a fan of the policies of the last seven years, and as an extension, not really a fan of the republicans.

On the democratic side, I just can not agree with Hillary on anything.

I have been personally bothered by Hillary Clinton since this March 2003 incident in which she walked out on the Code Pink girls and was parroting the administration party line.

These days those that voted for that disastrous war claim that they were "tricked" into voting for it. But like some comedian said recently, "All these democratic candidates claim that they were tricked into War by President Bush. [...] but if you are a person that can be tricked by President Bush you are not presidential material".

This Flash animation from November 2002 turned out to be prophetic and right on the spot.

Chomsky turned out to be right: September 2002 interview.

Fisk turned out to be right: September 2002 interview.

The French and the Germans turned out to be right as well.

The facts were there for anyone to see.

Nat recently pointed out that Obama did not rush to "support the President" like every other drone did. He made a conscious decision at a time when it was not popular to oppose the crooks and liars at the White House.

Posted on 17 Jan 2008

Writer Strike: Daily Show and the Colbert Report

by Miguel de Icaza

Despite the writer's strike, both the Daily Show and the Colbert Report have been fantastic these last two weeks.

The first couple of days, Stephen seemed to have fall out of shape after this long break, but by the end of last week he was in full Colbert swing.

They have both been fantastic, and am even more impressed now with John and Stephen. They truly are masters of their domain.

Still, a few things are missing here and there. I miss "The Word" segment very much.

Posted on 17 Jan 2008

Good News on File Formats

by Miguel de Icaza

Brian Jones posted two great news today on his blog.

Microsoft has agreed to:

  • Publish their file format specification for the .doc, .xls and .ppt and do this under their Open Specification Promise.
  • To simplify the understanding of the mapping between the old binary formats and the new ones, they will start an open source project to generate OOXML files from the old binary file formats.

These specs and projects are scheduled for February 15th.

The full details are on Brian's Blog. These are great news for all third party implementations that need to interop with those documents.

Some cheering is in order.

Posted on 17 Jan 2008

Joseph Hill Joins Novell

by Miguel de Icaza

Long time Mono contributor Joseph Hill (also an early advocate of Boo, and its integration and use in MonoDevelop) joined Novell today as Mono's Product Manager.

Joseph will be my peer in the PM organization at Novell.

Joseph blogs at Beyond Focus and is currently based in Dallas, but will soon be moving to Boston.

Posted on 08 Jan 2008

GNOME Do Gets Home Page

by Miguel de Icaza

David has setup a web site for Gnome DO, my new favorite app. The one that is helping me move away from the shell.

See some screenshots or his latest screencast.

For Banshee and Evolution integration, you need to download the extra plugins from here.

Posted on 06 Jan 2008

Mono goes Accessible!

by Miguel de Icaza

Brad Taylor has announced the first release of the Mono Accessibility stack:

UI Automation provides programmatic access to most user interface (UI) elements on the desktop, enabling assistive technology products such as screen readers to provide information about the UI to end users and to manipulate the UI by means other than standard input. UI Automation also allows automated test scripts to interact with the UI.

Mono's Accessibility Framework is an implementation of UI Automation. The same API that is available for WPF and the framework is used by Silverlight and Windows.Forms.

Client Code: The initial launch of Mono Accessibility adds accessibility support to applications built with Windows.Forms to be accessible.

Backend Code: The code has a bridge that talks to the existing ATK framework on Linux.

In the future the Mono Accessibility framework will be used in our own Moonlight 2.0.

Check the release notes, install from source or use OpenSUSE's 1-click install.

Posted on 05 Jan 2008


by Miguel de Icaza

My good friend Robert O'Callahan discusses Silverlight on his latest blog entry, in particular, he asks the question:

No matter how good Silvelright is or how bad the alternatives are, Silverlight domination will be a really bad thing for free software so I question why Miguel wants to push in that direction.

Robert, it is very easy.

I have been using Linux as my main desktop operating system since 1992 and endured every missing feature, every broken driver, every broken X setup and every missing application since I started.

I did so because it was free software, and I had decided that I wanted to run my entire system with free software. I felt that dogfooding Linux and improving Linux on a day-to-day basis would help improve this OS as opposed to improving a proprietary OS.

Sure, using a proprietary OS had its benefits: more consistency, more QA, more applications, lots of support, latest video drivers, but they were not free. So I stuck with free software. Today the only proprietary software that I use on my desktop is Flash (I have acrobat installed, but I use Evince instead, keep it for those cases where Evince has a bug).

From my perspective, it is crucial for Linux to have good support for Silverlight because I do not want Linux on the desktop to become a second class citizen ever again.

Robert, you are asking those of us that use FOSS operating systems to "take one for the team" by not endorsing Silverlight, but yet, you are not willing to live among us. If you are going to preach, preach by example.

The core of the debate is whether Microsoft will succeed in establishing Silverlight as a RIA platform or not. You believe that without Moonlight they would not have a chance of success, and I believe that they would have regardless of us.

In fact, I believe strongly that it is part of Microsoft becoming more open and adapting itself to the multitude of shifts in this industry (open sourcing IronPython, IronRuby, the DLR, the JS library for ASP.NET, the MS-PL, the MS-RL, opening up their code, and so on).

Ever since I met Benjamin Zander am a hopeless romantic, and believe in a world of possibility. I find myself to be happier this way than joining these ranks. And what better way of bringing Silverlight to Linux than to work together with Microsoft: they are giving us specs, they are giving us their test suites, and they are providing technical assistance. Its been a pleasure to work with them, and everything we write is open source software, I for one, could not ask for more.

Now, regardless of the strategic discussion about endorsing Silverlight, there are technicalities about Silverlight that make it a fascinating platform. I personally want to write cross platform web applications using C#, Boo, Python and Ruby. And that matters to me, and matters to others.

And I have loved Silverlight since it embedded the CLR runtime. Nothing new there, you can read the gory details of my fascination from back then.

You advocate using standards that are implemented by multiple vendors. But what if none of those vendors is providing what I want? What if the vendors do not care about my opinion?

What we got here is a case of an underserved market.

This is why competition is good. Now Microsoft is providing something that none of the existing web vendors had provided and some of us want. I liked it so much, that I did not hesitate for a second when a journalist asked me whether we would do an OSS implementation of it. "Can I quote you on that?" he said during the coffee break at Mix "Yes, you can".

You talk about Microsoft's control over Silverlight.

What prevents anyone from taking the Moonlight source code, embracing it, extending it, innovate with it, prototype with it, and enter the same cycle that Linux, or web browsers have entered? Or someone turning it into a standard?


The only thing preventing it is lack of imagination.

Posted on 04 Jan 2008

Obama Wins Iowa

by Miguel de Icaza


Barack Obama just won in Iowa.

It was nice to see that Dennis Kucinich endorsed Obama on the second Iowa ballot.

I love it! Go Obama!

Obama speech at Youtube.

Posted on 04 Jan 2008

Plastic 2.0 Preview

by Miguel de Icaza

The guys at Codice Software have just announced the release of their Plastic 2.0 Preview.

Plastic is a cross-platform, distributed source code control management system that has a few interesting features like visualization and it integrates into a number of IDEs.

This is a Windows.Forms application that was originally built for Windows and they have created their own look and feel across multiple platforms. Here is Plastic running on a Mac with our new native drivers for OSX:

And this one is showing their diff tool on Linux:

We are very excited to see a happy Mono user making their software available on new platforms.

For a full tour of the new features see their blog entry.

You can test drive Plastic with their VMware image.

The Plastic guys are great in that they provide great bug reports and are working with our Windows.Forms team to iron out some of the wrinkles in our Windows.Forms implementation.

Posted on 03 Jan 2008

Mono on the OLPC

by Miguel de Icaza

My good friend Torello Quercy has been working on creating OLPC activities using Mono.

He wrote a tutorial on creating Mono-based activities for the OLPC.

See his blog for screenshots of his own game and a port of Jordi Mas' GBrainy and how he Sugar-ified the apps:

GBrainy Sugarified on the OLPC.

You can get the activity bundles from here and here.

Posted on 03 Jan 2008