Links from the Monospace

by Miguel de Icaza

Aaron has a number of updates to Banshee:

Idan does a screencast of MonoDevelop and Stetic. The new integration of Stetic into Gtk# projects introduces a slightly different model than Glade. See his blog post and videos for details.

Massi has some graphs about the tuning work he has been doing on Mono's JIT.

Brainshare closing thoughts:

Posted on 28 Mar 2006

Diva Progress

by Miguel de Icaza

Michael Dominik updates about the status of DIVA, a movie editing software for Linux with an impressive user interface here

Diva Editor

Diva is built using GStreamer, Gtk# and various Cairo-based widgets.

Make sure you watch the videos of Diva in action.

I love the Gtk# family of media applications: Banshee, Diva and F-Spot.

Posted on 27 Mar 2006

A New Acronym

by Miguel de Icaza

Last year we got "AJAX" for "Asynchronous JavaScript and XML".

This year, we get "CRAP", which stands for: "Content, Restriction, Annulment and Protection" a much better description for the euphemistical "DRM".

The expression was coined by David Berlind, executive Editor for ZDNet, see the details here:

CRAP stands for Content, Restriction, Annulment and Protection. It's my catchy buzz-phrase for a technology that's really called DRM. Now DRM technically stands for Digital Rights Management, and it's a rather cancerous technology that technology vendors are actually building into most of the products that we're buying today.

So for example, if you own an iPod, it's got CRAP in it. That's right, it's got this technology that will restrict what you can do with your content, allows the owners of the content to annul that content-in other words, take it away from you-or protect it from being copied out onto the internet.

And there is a video too: here.

A must-read.

Posted on 27 Mar 2006

Paco on Novell Open Audio

by Miguel de Icaza

Ted at Novell Open Audio interviews Paco who has been volunteering at the Mono booth at Brainshare.

The mp3 is here.

Paco, who today does a lot of work on Mono on Win32, talks about how he got involved in the effort and the extra bits in Mono.

Posted on 24 Mar 2006

Mono's Windows.Forms Progress

by Miguel de Icaza

Windows.Forms is approaching feature completeness in Mono. In the next few weeks we will be doing the first beta release of Mono for our target Mono 1.2.

Although most of the API coverage was done a few months ago, the semantics of it were not exactly perfect. We were lucky to be able to tap into a large body of open source software for Windows.Forms to test and bug fix Mono's implementation.

More recently, as Winforms has become more complete we have started work in running proprietary or commercial applications to run in Mono.

Simon for instance built a VoIP messenger based on Jabber (Nexxia) and has been working for the past few months with us to ensure that it works in Mono.

He has blogged a set of screenshots tracking the progress from the December to this date, here are the first and last screenshot from his blog:

Nexxia in December.

Nexxia running on Mono today.

Check out his blog for more information.

Posted on 23 Mar 2006

Brainshare, Winforms, MonoDevelop.

by Miguel de Icaza

Paco has been hanging out at the Mono booth at Brainshare And he reports from the event:

It has been terrific to see folks from all walks of life approach the booth and come carrying the applications that they are currently working on contained in an USB keydrive and having us run it on the different platforms. To most of them, they tend to be very dazzled when they see their WinForms projects run on Linux (SLED 10) often without modification. Some of the apps they have come talk about range from GroupWare clients, Decision Support Systems (DSS), Enterprise Information Systems (EIS) front ends (some web based others SmartClients), etc.

Paco, an attendee and Wade in the Mono Booth.

A journalist asked Nat whether Mono would run OpenDental.Net, an open source Winforms-based application for dentists. Nat SMSesed me the question, I downloaded the software, took a quick glance at what is needed (it will require replacing some Windows libraries with some Unix-specific libraries and renaming a few files to make bash happy for building on Linux):

I emailed Jordan Sparks, Doctor of Dental Medicine and developer of OpenDental and asked him whether he could make the filesystem layout changes to ease the porting effort, and got a reply back from him that same night. In his words:

I'm really a HUGE fan of what you guys are doing. It's going to change dental offices forever, and it will impact a lot of people.

My plan is to assist Mr Jordan porting his OpenDental software to Linux. As I mentioned, it will require swapping out a few Windows components he is using for the equivalent Linux libraries. It will be educational. This along with the PaintDot.Net porting effort should be provide some good material for a .NET to Mono migration white paper.

In general, porting from .NET on Windows to Mono on Linux has the same feel of porting across different versions of Unix in the past. From BSD to SystemV: replace a few libraries and routines with different versions. It is a relatively simple exercise.

I find this very interesting. On of my dentists is also a hacker on his spare time, and runs his office completely on software he has developed using Visual Basic. On one of the visits I made to his office, as I was being treated, he explained to me with excitement why he liked working on VB: the software that runs his whole office is something he has built over the years. He does a lot of the coding himself, but he loves to spice up his application by purchasing a third party control for displaying graphs, managing his x-ray images and track patients.

This is the kind of ease of use that we are trying to achieve with Mono and MonoDevelop. Lower the barrier for creating amazing applications on Linux.


MonoDevelop was originally a project that was developed by Mono users. Folks that wanted to have an IDE on Linux, so they ported various pieces of SharpDevelop to Linux and replaced Windows.Forms with our own toolkit Gtk#. The goal here was to create a truly native Linux application and to take advantage of Linux and GNOME specific features.

DogFooding MonoDevelop: using MonoDevelop to develop MonoDevelop.

As time passed on, our own engineers started using MonoDevelop. Lluis, better known for his work on remoting and web services, started using MonoDevelop to work on Mono itself. He developed a plugin that would allow him to build and develop the Mono runtime right in MonoDevelop.

Around that time we decided that we should invest in MonoDevelop as part of the efforts of the Mono team, for a few reasons:

  • It was a great test of Mono and Gtk#
  • Many thought that without an IDE, the full potential of Mono would not be realized.
  • We needed a place to integrate developer tools that we had created and that we have planned (most based on Gtk#):
    • Stetic, our Gtk# GUI designer, originally developed by Dan Winship.
    • MonoDoc: although it is available as a standalone tool, it makes sense to have it integrated directly into the IDE.
    • The ASP.NET web page editor developed by Michael Hutchinson the part summer.
    • The Gendarme, bug-finding and sanity-checking tool, developed by Aaron Tomb and Sebastien Pouliot (currently lacking a GUI).
    • Integrate the Mono Debugger, which sports a C# interface.
    • NUnit integration: full with progress charts.

Until December, we were using Glade-3 for our GUI design needs. At that point we went with Glade-3 as a short-term solution and because we felt it was complete enough to be a drop-in technology into MonoDevelop and had enough bits to allow it to be embedded.

But we soon realized that for a full integration we would have to spend some significant developer time in getting it in shape for integration into MonoDevelop. So we changed our plans and Lluis started working on integrating Stetic and finishing the missing bits in Stetic.

The upcoming MonoDevelop will contain a new Stetic-based GUI designer. You can learn more on Lluis' blog entry.

The Stetic integration is fantastic, these are some of the features I like:

    Custom Gtk# widgets that you develop appear on the toolbox palette, and you can use these widgets right into your main application if you want to. No placeholders anymore.

    A wizard for creating custom Gtk# widgets.

    Double-clicking on events for a widget will create a stub for the handler. For example, if you double click on a button, it will create the

    OnButton1Clicked method with its
    		proper arguments.

MonoDevelop also went through a major refactoring effort, where the IDE features are all plugins. This is an idea inspired by Eclipse's implementation.

A new release of Mono and MonoDevelop will be coming out in a few weeks with these features.

In the meantime, Chris Toshok has started integrating Michael's ASP.NET editor into MonoDevelop. So we will have an IDE that can be used for doing smart client development as well as web applications all in one:

Posted on 22 Mar 2006

Novell's Linux Desktop Demo

by Miguel de Icaza

At the Press Conference at the Novell Brainshare event this week in Salt Lake City Nat presented the new developments on the Linux desktop that the team has been working on.

A life walk-through of the new search-based desktop works with the usual: Xgl, F-Spot, Banshee, Beagle, Tomboy, hardware plug-and-play and the desktop integration in the upcoming OpenSUSE release.

Check it out at here (Updated with the official presentation).

Some of these were visible on the video from the LinuxSolutions in Paris, but this time the video is part of Novell's production so you can actually see the details.

Posted on 21 Mar 2006

Chomsky, on Asia and Latin America.

by Miguel de Icaza

Noam Chomsky:

China, unlike Europe, refuses to be intimidated by Washington, a primary reason for the fear of China by US planners, which presents a dilemma: steps toward confrontation are inhibited by US corporate reliance on China as an export platform and growing market, as well as by China's financial reserves - reported to be approaching Japan's in scale.


An additional step, already being contemplated, is an Asian oil market trading in euros. The impact on the international financial system and the balance of global power could be significant. It should be no surprise that President Bush paid a recent visit to try to keep India in the fold, offering nuclear cooperation and other inducements as a lure.

On Venezuela:

Venezuela, the leading oil exporter in the hemisphere, has forged probably the closest relations with China of any Latin American country, and is planning to sell increasing amounts of oil to China as part of its effort to reduce dependence on the openly hostile US government.

Venezuela has joined Mercosur, the South American customs union - a move described by Nestor Kirchner, the Argentinian president, as "a milestone" in the development of this trading bloc, and welcomed as a "new chapter in our integration" by Luiz Inacio Lula da Silva, the Brazilian president.

Venezuela, apart from supplying Argentina with fuel oil, bought almost a third of Argentinian debt issued in 2005, one element of a region-wide effort to free the countries from the controls of the IMF after two decades of disastrous conformity to the rules imposed by the US-dominated international financial institutions.

(Emphasis added).

Interesting bits about Cuba and Venezuela as well:

Cuba-Venezuela relations are becoming ever closer, each relying on its comparative advantage. Venezuela is providing low-cost oil, while in return Cuba organises literacy and health programmes, sending thousands of highly skilled professionals, teachers and doctors, who work in the poorest and most neglected areas, as they do elsewhere in the third world.

"Cuba has provided the largest contingent of doctors and paramedics to Pakistan," paying all the costs (perhaps with Venezuelan funding), writes John Cherian in India's Frontline magazine, citing Dawn, a leading Pakistan daily.

President Pervez Musharraf of Pakistan expressed his "deep gratitude" to Fidel Castro for the "spirit and compassion" of the Cuban medical teams - reported to comprise more than 1,000 trained personnel, 44% of them women, who remained to work in remote mountain villages, "living in tents in freezing weather and in an alien culture", after western aid teams had been withdrawn.

On a separate note, the trend is for Mexico to elect the progressive candidate in the upcoming elections.

Posted on 16 Mar 2006

George Clooney

by Miguel de Icaza

George Clooney's I Am a Liberal. There, I Said It!:

That's one of the things that drew me to making a film about Murrow. When you hear Murrow say, "We mustn't confuse dissent with disloyalty" and "We can't defend freedom at home by deserting it at home," it's like he's commenting on today's headlines.

The fear of being criticized can be paralyzing. Just look at the way so many Democrats caved in the run up to the war. In 2003, a lot of us were saying, where is the link between Saddam and bin Laden? What does Iraq have to do with 9/11? We knew it was bullshit. Which is why it drives me crazy to hear all these Democrats saying, "We were misled." It makes me want to shout, "Fuck you, you weren't misled. You were afraid of being called unpatriotic."

Posted on 13 Mar 2006

Pictures from the Sorbonne Strike

by Miguel de Icaza

Pictures from the student strike in Paris that took over the Sorbonne University.

Posted on 12 Mar 2006

Novell's Linux Desktop Preview

by Miguel de Icaza

Alex today pointed me to some screenshots of the upcoming Novell Linux Desktop, they are here.

Posted on 09 Mar 2006

RSS Patents from Apple

by Miguel de Icaza

Dave Winer points to a couple of Apple patents:

Apple is patenting our inventions, again. Oy. 

Jens Alfke, one of Apple's "inventors" stopped by to explain how there's no real generosity in the tech business. I can see where he might get that idea, working where he does.

There is an interesting discussion on Dave's site.

If this is the kind of thing that passes as a patentable invention nowadays, we must get ready for a few very dull years in the technology scene.

Posted on 08 Mar 2006


by Miguel de Icaza

Joe posted an enthusiastic description of AppArmor: a Novell technology that uses the Linux security infrastructure to improve the security of your system. Novell originally acquired this proprietary product last year and included it with OpenSUSE and open sourced the effort.

Joe links to a recent presentation at FOSDEM which is worth watching as it explains how AppArmor works and demostrates how you can augment the rules in AppArmor for your own applications and how you can secure a web site.

I once got the demo live, and it was fairly impressive as I was given a root shell, but was basically unable to escape the "sandbox" that AppArmor had created.

Both AppArmor and SELinux use the same kernel infrastructure to create the sandbox. From the AppArmor FAQ I liked this explanation:

SELinux is an implementation of mandatory access controls that uses labeled security, ie, the application of a tag to each data file that identifies that file's appropriate security level. Labeled security has advantages in organizations where secrecy is paramount, that is, ensuring that only those authorized at appropriate clearance levels can view a given piece of data. The labels allow the operating system to handle data with appropriate controls, eliminating the need to store the information on multiple computers of varying security levels. Although this feature has value to organizations such as intelligence agencies whose main goal is to keep secret information secret, it introduces a significant level of complexity and has limited value to most commercial enterprises whose primary objective is data integrity, ie, preventing the corruption of data.

The FAQ goes into a larger comparison with SELinux if you are interested in that.

Posted on 07 Mar 2006