Rodrigo, Mark and Marek Join Novell's Mono Team

by Miguel de Icaza

A few more developers have joined the Mono team at Novell.

Rodrigo Kumpera and Mark Probst have joined the Mono team to work on the Mono Virtual Machine and will be working with Dick, Massi, Paolo and Zoltan to work on various tasks: improving our performance, reducing the memory usage, port maintenance.

As warm up exercises Rodrigo is completing the Mono VM verifier and Mark Probst is implementing the Silverlight security system for our Mono-based implementation.

Marek Safar, who has been a long-time contributor to the C# compiler (he implemented CLS compliance, did a big push to improve our error and warning system, implemented extension methods and C# 3 delegate type inference) will be joining us to work on the C# 3 compiler (building on a lot of the work that Scott did).

Silverlight Security

The Silverlight security system (described here, here and here in Shawn Farkas' blog) promises to be very useful.

Unlike CAS that was hard to understand, the Silverlight security model is very simple and can be explained in a couple of minutes. This should be useful very useful to folks running untrusted code like SecondLife.

Posted on 04 Jun 2007

Interview with Michael Meeks

by Miguel de Icaza

Daniel James interviews Michael Meeks. Michael has been involved in the desktop starting with Gnome from around 1998 when he single handedly wrote the Gnumeric Excel import functionality.

He currently leads the effort at Novell, this is truly a great interview. Michael radiates excitement in this interview, it is a pleasure to read.

Posted on 02 Jun 2007

C# and Silverlight

by Miguel de Icaza

InfoQ is reporting that:

"First of all, C# won't be fully supported in Silverlight. Unlike VB, Python, Ruby, and JavaScript, C# does not support the Dynamic Language Runtime and cannot be hosted for runtime compilation in Silverlight."

This is a bit of a stretch. What happens is that Silverlight will ship with compiler/interpreters that can compile source code written in Javascript, Python, Ruby and Visual Basic to native code.

But Silverlight will not include a C# compiler on the client side. You will still be able to author libraries and assemblies with C# and write your application with it, you just wont be able to dump a C# source file over the network and expect that to be compiled and ran on the client machine.

That being said, Mono does have a C# compiler written in C# and we could ship that compiler, and people could use this as a dependency if they wanted to.

Now, what would be an adorable hack would be to relicense Mono's C# compiler commercially to Microsoft and have them distribute it for Silverlight ;-)

Thanks to some fine contributions, Mono's C# 3.0 compiler is in great shape (missing some things, but they will be done in no time).

Posted on 01 Jun 2007

Blowback, Seymour Hersh inteview

by Miguel de Icaza

From the Seymour Hersh interview on the US and Lebanon.

GORANI: The Senora government, in order to counter the influence of Hezbollah in Lebanon would be covertly according to your reporting funding groups like Fatah al-Islam that they're having issues with right now?

HERSH: Unintended consequences once again, yes.


HERSH: Well, the United States was deeply involved. This was a covert operation that Bandar ran with us. Don't forget, if you remember, you know, we got into the war in Afghanistan with supporting Osama bin Laden, the mujahadin back in the late 1980s with Bandar and with people like Elliott Abrams around, the idea being that the Saudis promised us they could control -- they could control the jihadists so we spent a lot of money and time, the United States in the late 1980s using and supporting the jihadists to help us beat the Russians in Afghanistan and they turned on us. And we have the same pattern, not as if there's any lessons learned. It's the same pattern, using the Saudis again to support jihadists, Saudis assuring us they can control these various group, the groups like the one that is in contact right now in Tripoli with the government.


HERSH: [...] Condoleezza Rice, the secretary of state, has been very articulate about it. We're in the business now of supporting the Sunnis anywhere we can against the Shia, against the Shia in Iran, against the Shia in Lebanon, that is Nasrullah. Civil war. We're in a business of creating in some places, Lebanon in particular, a sectarian violence.

The blowback discussion seems to be the political equivalent mistake of introducing new species and then wondering what went wrong.

Except biologists do not get to claim that the rabbit population in New Zealand exploded and became a problem because "Rabbits hate our freedoms". There had to be a downside to being a scientist.

Lebanon War of 06

Last year, while the US claimed they were doing everything in their power to negotiate stopping the '06 Lebanon War (and as usual in these cases, taking as much time to show up and enforce anything and block any attempts at real progress) those that got their news from outlets outside the Foxosphere-of-influence [*] knew that these claims were far from honest.

Its nice to find out -again- that we were right and they were as usual lying.

Once again, am shocked! shocked!

[*] Foxosphere: About 90% of the news outlets in the US, with notable exceptions like the comedy central fake news line up.

Summer Wars

Last year I read an interesting article about managing wars from a PR standpoint.

Just like Bush administration waited over the summer to introduce the Iraq War, as "From a marketing point of view, you don't introduce new products in August." There is a similar rule for launching unpopular wars and attacks, although I can not longer find the article anymore, the thesis is simple: launch those attacks during the summer.

You introduce these during the summer because Universities in the US are on vacation, and Universities are a central hub of information and organization.

Lets test the theory and see see what this summer has in store for us.

Posted on 01 Jun 2007

The other side of Giuliani

by Miguel de Icaza

Rolling Stone magazine is running Giuliani: Worse than Bush article (from reddit).

Printer friendly version here.

Posted on 01 Jun 2007

Google Gears

by Miguel de Icaza

Pretty cool!

Google published Google Gears a plugin that exposes an APIs to Javascript applications for off-line storage.

It also comes with an embedded Sqlite3 database, very nice.

Posted on 31 May 2007

Occupation 101 Released

by Miguel de Icaza

Occupation 101 has finally been released, after years in production the movie can now be purchased on DVD.

This is an incredibly important movie to understand the living conditions of the palestinian population in the West Bank.

The Production

The movie was directed, shot and produced by two guys which explains why it took so long for the movie to be released.


B'Tselem: The Israeli Information Center for Human Rights in the Occupied Territories (West Bank and Gaza) has extensive information.

John Pilger's Palestine is Still the Issue documentary is now available on

Posted on 31 May 2007

Novell and the EFF Announce Patent Reform Partnership

by Miguel de Icaza

Nat was today in San Francisco to announce Novell's partnership with the EFF to work on Patent Reform.

The details can be found here.

"EFF is partnering with Novell to try to get rid of software patents that are hurting innovation all over the world," stated Shari Steele, Executive Director of the EFF in an interview prior to the panel session.

In essence, Novell is committed to working with the EFF to improve patent quality, while at the same time work to lobby with government agencies to reform existing patent policies and litigation, according to Nat Friedman. Novell's Chief Technology and Strategy Officer for Open Source. Specifically, Novell will assist the EFF in two ways.

First, they will work with and support the EFF's existing Patent Busting Project, which targets existing patents that cover technology concepts that are perhaps to fundamental or already have prior art.

"They're awarded for fundamental concepts in computer science on a too regular basis," Friedman stated. "Things like XOR, the ISNOT operator."

"If you go on our Web site," Steele added, "we asked Internet users to identify the ten most egregious patents out there. We have our 'Ten Most Wanted.' And we've been one by one hacking away away at them."

The second part of the partnership will have Novell working with the EFF and legislators to lobby for patent reform, initially in the US, but also branching out to Europe, where patent problems continue to arise. The EFF and Novell will also work with standards groups to assist in patent reform.

The news is notable because it's the first time, Steele confirmed, that a corporate entity has publicly thrown in this level of support for the EFF on the patent issue. Normally, Steele said, companies have been much more circumspect and allowed the EFF to solely take the lead on this issue.

The goal is to continue defending Linux from IP threats (as we have done in the SCO lawsuit that has costed Novell millions of dollars) and as we did when we were one of the founding members that contributed significantly to the creation of the Open Invention Network.

Posted on 23 May 2007

Dynamic Language Runtime: The Slides

by Miguel de Icaza

For those of you that could not attend the Compiler Lab but would like to see the slides, John Lam has published two slide decks:

Posted on 23 May 2007

Compiler Lab: Second Day

by Miguel de Icaza

Today was a bonding day for those of us that attended the Compiler Lab, after the morning session and the lightning talks were over most of us stayed around and talk until the end of the day.

In the afternoon, while some of us were busy schmoozing and debating important topics like what was better: Jon Stewart or the Colbert report and lamenting the results of the French elections some other people were actually busy hacking in the afternoon.

Apparently some folks that are working on a ColdFussion compiler got their Cold Fusion compiler using the DLR. Rodrigo and JB were also quite busy hacking in the afternoon.

Good news for Boo users: after I posted my message yesterday about readline-like functionality C├ędric Vivier pointed out that he had just implemented the readline capabilities in Booish. You can see the details here.

Hosting and the Case for Multiple Hosts

The morning sessions focused on how to host DLR-bound languages into an application and the various services offered by the DLR infrastructure.

A question that came up is whether it is necessary to support more than one hosting "context" in a single application. Where global variables and types would be shared across multiple scripting instances.

Although today the DLR does not support more than one context, I believe that it should support independent contexts. A case was made for Processes and AppDomains already existing and that adding a scripting contexts was not necessary but if there were interesting scenarios for this setup they could look into it.

In my opinion, AppDomains are too heavy of a separation barrier in an application. They are hard to setup properly and depending on them requires an entire application to be restructured around this new boundary. In the particular case of Boo, multiple hosting environments can exist in a single application and I think this is a good thing.

The best use can I can think of for the need to have multiple hosting contexts would be if the DLR is hosted in two independent libraries A and B developed by two independent groups and then having both of those libraries consumed by a third party. The developers of A and B should not have to talk to each other.

Another example: I could imagine a setup where I want a scripting context for extending the internals of my application and on the same process, I would like to have a second scripting context that does not have access to the internals of my application, but instead is used by the user to write/prototype whatever it is that my application hosts.

An accounting application that is heavily scripted internally would use one hosting context for its internal scripting facilities: forms, rendering, accounting and another scripting context would be used for doing report scripting: a much more limited environment that would not get access to all the application internals and types and globals, but only those that make sense for the reporting infrastructure.

Anyways my vote: yes, we need multiple hosts per AppDomain.

There was a demo of some scripting editor during the talk that hosted the DLR itself but Google does not turn up anything useful about it (Nessie), it looked cute.

DLR Code Generation Scenarios

In the second part of the sessions they showed some examples of what kind of code IronPython, IronRuby and the Javascript compilers generate.

The DLR in particular provides support for capturing the environment (to create proper lambda functions). A key point during the presentations was that providing as much information the DLR as possible allowed it to optimize the code.

Rodrigo -the author of Boo- pointed out during one of the breaks that he did like the optimizations that scripting developers were getting for free.

Milo: Compiler Infrastructure

In a similar spirit to what the DLR team did by refactoring IronPython into the DLR and then growing languages out of it, Rodrigo and JB talked about a similar project.

Based on the Boo codebase and their joint work on Cecil while they both worked at db4objects they created Milo (which is available here:

Milo's goal is to simplify the development of a compiler that targets the .NET framework

Cute Anecdotes

Their new DLR-based Javascript compiler (that implements the current ECMA spec) was written by two developers in four months. Nandan Prabhu was at the conference and he explained that if they were to rewrite it today it would probably take three months for a programmer to implement as such a person would not have to keep up with the daily changes in the DLR.

The current sizes for the runtime and the compiler are:

-rw-r--r-- 1 root root 114688 2007-05-02 04:07 Microsoft.JScript.Compiler.dll
-rw-r--r-- 1 root root 299008 2007-05-02 04:07 Microsoft.JScript.Runtime.dll

Extrapolating that from our compiler source code it seems that the code is roughly 35,000 lines of code for both the compiler and the runtime. And the compiler is only one fourth of that, so something in the 9,000 line range.

Another interesting detail: the new Javascript compiler is written in Visual Basic.NET.


The day ended up with a fascinating discussion in the kitchen with the Jims (Miller and Hugunin) about languages, big integer support, scheme, python, academia and practice and tons of anecdotes of the early days of the CLR and Jim's days at MIT.

Posted on 23 May 2007

« Newer entries | Older entries »