GInterfaces in Gtk#

by Miguel de Icaza

Mike Kestner has been working for the past few months in supporting GLib's GInterfaces in Gtk#. He has commited his code, and written a tutorial.

There were two main use cases that people discussed with us:

  • The need to implement new Gtk TreeView models.
  • The need to support interfaces for the sake of Atk.

Am not sure if there are any other uses for this.

If you have experience with GInterfaces, we would love if you could send us some comments (Mike Kestner) about the implementation and suggestions on improving the tutorial.

Posted on 05 Oct 2007

Extending Evolution with Mono

by Miguel de Icaza

Sankar has updated the Mono-based plugin for Evolution the Gnome email/calendar/pim client.

It is possible again to write plugins using any of the Mono supported languages to extend Evolution.

The code builds on the previous effort from Michael Zucchi.

You can download the sample plugin here. The sample plugins adds a new menu option to translate an email message to Spanish, and then uses Google to do the translation.

Posted on 04 Oct 2007

Mono on OpenMoko

by Miguel de Icaza

Cliff Brake has announced that there are now packages of Mono available for OpenEmbedded which you can use on your OpenMoko NEO1973 phone, to install, he says:

add the following to a /etc/ipkg/*-feed.conf file:
src/gz mono-armv4t

ipkg update
ipkg install mono

OpenMoko is a completely open phone platform: starting at the hardware level (they have hardware kits for hardware developers) up to the software level (all the software is open source/free software).

Unlike other phones, this is completely open, and development and innovation on the phone are encouraged.

All those people that were disappointed that the iPhone is being locked down to developers, this is a good time to help improve a completely open platform. And you should be able to run Gtk/WebKit (the same engine from the iPhone) on the device.

A comparison chart for the hardware is here. OpenMoko today is a developer platform, so expect some updates in the near future.

Posted on 04 Oct 2007

Microsoft Opens up the .NET Class Libraries Source Code

by Miguel de Icaza

I read on Scott Guthrie's blog the news that Microsoft will release the source code to the class libraries that make up .NET:

Today I'm excited to announce that we'll be providing this with the .NET 3.5 and VS 2008 release later this year.

We'll begin by offering the source code (with source file comments included) for the .NET Base Class Libraries (System, System.IO, System.Collections, System.Configuration, System.Threading, System.Net, System.Security, System.Runtime, System.Text, etc), ASP.NET (System.Web), Windows Forms (System.Windows.Forms), ADO.NET (System.Data), XML (System.Xml), and WPF (System.Windows). We'll then be adding more libraries in the months ahead (including WCF, Workflow, and LINQ).

The source code is released under a new license they are calling the Microsoft Reference License, this is not an open source license.

First of all, congratulations to everyone at Microsoft that made this happen. Am sure many .NET developers will be happy with this new development and there will be many genuine uses for this.

I heard a podcast with Shawn Burke where he discussed some of the history of behind this move. The discussion seemed mostly tactical, and am sure that to do this they must have presented a strong business case to their management that opening up the access to the source code (even under the MS Reference License terms) was important.

Even if the license for the code is not open source, it is an important step. Sun had done something similar with Java in the past and over time they moved towards opening more and more of it. Am still hope that one day Microsoft will open pieces of this under more liberal licenses that would allow those pieces to be used for any purposes, including Mono.

Mono, free software and the source code release

The source code that will be released goes beyond the scope of the C# source code that was released as part of Microsoft Rotor.

But like Rotor, the license under which this code is released is not open-source. People that are interested in continuing to contribute to Mono, or that are considering contributing to Mono's open source implementation of those class libraries should not look at this upcoming source code release.

At the same time, Microsoft already releases some class libraries under an open source license, the Microsoft Permissive License (MS-PL, which will soon be renamed the Microsoft Open License).

Mono manages to benefit from code that Microsoft releases under the MS-PL license and we even redistribute some of it: The Dynamic Language Runtime, IronPython, IronRuby and the ASP.NET AJAX Javascript client-side library.


Am not sure why Microsoft did this, there have been a few theories around this, but my own guesses are:

  • Scott and many people reporting to him understand developers (Scott did ASP.NET). Scott being in charge of .NET probably has made this organization be more Web-y, in that they understand that developers are more effective if they can "View Source". So it might be a natural cultural shift.
    Scott and his team are behind the Microsoft/Novell collaboration on Silverlight for instance.
  • Large .NET users probably already had access to the source code, and probably had access to under a myriad of customer-specific NDAs or licenses and this was hard to work with, and hard for the organization to manage. This could be license consolidation and streamlining of the process to get people access to the source code.
  • Getting access to the source code alone was probably very cumbersome. This is probably why the focus of the release is on the simplicity of getting the source code for debugging (the most important scenario presented so far).
  • Sun and Java: it is possible that some customers were getting cozy with the ease of access to Java source code to the class libraries and this had some mounting pressure on Microsoft.

Some of the statements are very similar to what Sun used to make about Java before they agreed to open source it:

Allowing developers to rebuild a framework, any framework, from source, and then redistribute the modified result, can introduce problems with providing support, serviceability, integrity and security of the framework itself. This is true with .NET, Java, Ruby, and other frameworks. Multiple independent redistributed modified versions of a framework can decrease the reliability and dependability of the common platform, which is not desirable. In the path we've taken here, we are seeking to balance the requirements we hear from the developer community for transparency and of reliability and dependability of the platform. In striking that balance, we believe the Microsoft Reference License is the right license for this release.

There are a number of scenarios that go beyond looking at the source code which are think are valuable in the existing Microsoft ecosystem and which is ultimately why it would be useful for some chunks to become open source.

For example:

  • Bugs in Class Libraries: If there are bugs in the class libraries that can not be worked around, the user does not have to ship a replacement System.dll, but he could copy-paste the code, make the adjustments in the code and ship the resulting executable.
  • Different Needs: If the code is close, but not quite what he needs, a developer could cut-and-paste, and then tune the code to do what he needs. This is a very common case that we see with Mono's own source code.
  • Complement Existing Frameworks: Microsoft ships a number of reduced versions of .NET: Compact Framework and Silverlight 1.1. People often need features that are only available on the full framework.
    Many folks today cut-and-paste code from Mono to be used on the Compact Framework edition because the subset that Microsoft chose for the CF is a good starting point, but it does not fit all the needs, specially in a market that is heavily slanted towards embedded systems (our XML Serializer is one of the most cut and pasted pieces of code for example).
  • Supporting old Frameworks: With 3.5 coming out it is very likely that some features would be useful for applications that must run with 1.1 or 2.0 on systems that can not be upgraded to 3.5. Cut and pasting code would be useful.
  • Innovation: Although people can always innovate on "top" of an API, some kinds of new features can only be done if you can alter the inner workings of it. Certainly Microsoft has the right to not let people do that.

For the above cases, people today can continue to use the Mono source code and cut and paste at will (with our super-liberal license the MIT X11 that comes with no strings attached).

But I still believe that there is a good business case for opening more stuff under the more liberal MS-PL license.

And of course, beyond the Microsoft ecosystem, there is the Mono ecosystem, where we could leverage that code if it were open source :-).

Posted on 03 Oct 2007

Talks at MIT: The Israel Lobby and U.S. Foreign Policy

by Miguel de Icaza

As Jeff and myself walked back from a dose of fried quesadillas from Anna's taqueria on MIT I was telling him "There is always an interesting event announced on these walls".

And in the middle of one of the corridors I found that both John Mearsheimer and Stephen Walt, the authors of the "The Israel Lobby and U.S. Foreign Policy" will be talking at the Stata Center at MIT on Wednesday.

The book has been excellent so far. It expands on a paper that was widely discussed last year but goes into a lot more depth.

Another excellent book that I just finished reading recently is Israel-Palestine on Record: How the New York Times Misreports Conflict in the Middle East.

Update: Robert pointed out that I forgot the link to the event.

Posted on 01 Oct 2007

Google Summer of Code: Database Support in MonoDevelop

by Miguel de Icaza

Over the summer Ben Motmans rewrote the database support in MonoDevelop. Working with Ben was a pleasure.

Part of the challenge was that I personally had no idea what it is that people do with these database UIs. My contact with databases is so bad that about once a year I google up the instructions to setup Postgres again, and figure out my login, password and connection string followed up by extensive cut-and-pasting of "CREATE" statements until I have something that roughly can store a few values.

His work has now been integrated in the First MonoDevelop Beta release.

Query Result and Database Explorer

Alter Table

Creating a SQLite connection.

This Database Add-in replaces the old Mono.Query add-in, and will hopefully continue to improve to have a central location for all of your database needs.

Posted on 01 Oct 2007

Media you can't trust

by Miguel de Icaza

Dave Winer on Media you can't trust. Reflections on Ahmadinejad and its coverage.

Dave also recommends "All the Shah's Men" a book that I recommended earlier this year.

Posted on 26 Sep 2007

Evo Morales on the Daily Show

by Miguel de Icaza

Tonight, Jon Stewart had Evo Morales, the president of Bolivia on his show and interviewed him.

I learned in the interview that Evo Morales made two promises during his campaign: to nationalize the energy sector and to do "Reforma Agraria" (sorry, forgot the translation).

He achieved both within eight months in office.

In the energy sector, he said that the Bolivian government used to receive 300 million dollars for its energy and today it receives 2,000 million dollars.

Posted on 26 Sep 2007

Remix Boston

by Miguel de Icaza

In addition to my participation on the keynote at Remix07 with Brad Abrams, I will be hosting a session on Silverlight on Linux which will be heavily oriented towards questions and answers.

Now, I have been living in Boston for seven years, and I have no idea that there was a Hyatt Regency in town.

Hope to see you there!

Posted on 25 Sep 2007

Mono-less Moonlight

by Miguel de Icaza

For the sake of minimizing our valgrind time, dividing and conquering the task of spotting leaks, and to reduce the surface that must be audited for security for Silverlight, Rolf has commited support that removes the Mono dependency from Moonlight.

Moonlight 1.0 will not require Mono anymore (Moonlight 1.1, that tracks Silverlight 1.1 will).

In the meantime the team has been busy performance tuning video playback for Moonlight. As it turns out there is no one-size-fits all optimization for video on Linux as different video cards are accelerated differently.

When we were describing one of our hacks to improve performance to Kevin Gallo he quoted a friend of his on graphics performance, and it went more or less like this "Graphics performance work is basically a collection of hacks".

It inspired confidence in some of the tricks that we have been doing to reduce the work that Moonlight does.

My friend Chris Toshok is looking for a college to attend to learn a few new tricks. He has a few constraints, but if you can help him find a place in Boston, we might be able to bring him back to the Norteast.

Posted on 24 Sep 2007

« Newer entries | Older entries »