Good News! Gtk# and Tomboy as part of Gnome

by Miguel de Icaza

Gtk# and Tomboy have been accepted into the new module list for GNOME 2.16.

In preparation for this, Mike Kestner has been splitting up the gtk-sharp tarball to fit the release team requirements.

In addition, Alex's Tomboy is now also part of Gnome 2.16.

Posted on 05 Aug 2006


SUSE Preloaded on Lenovo T60p

by Miguel de Icaza

The latest SUSE Linux Desktop (SLED) is now being preloaded with the ThinkPad T60p from Lenovo.

Am a happy SLED user myself on the exact same machine, this is the first time the whole experience has been completely smooth from Linux: XGL works out of the box, suspend works just fine, Google Earth is smooth, configuring a printer took only a couple of clicks.

I sadly bought got my machine before this preload deal was out, so I ended up with another XP license.

SLED is available for download from here

Posted on 05 Aug 2006


Lebanon

by Miguel de Icaza

War by Tantrum.

War by Tantrum II.

The War Party.

Robert Fisk articles reporting from Beirut are now open to the public, no payment required.

Robert asks Is this why all the foreign warships came and took their citizens away, to make Beirut safe to destroy?:

What in the meanwhile is happening to Lebanon? Bridges and buildings can be reconstructed - with European Union loans, no doubt - but many Lebanese are now questioning the institutions of the democracy for which the US was itself so full of praise last year. What is the point of a democratically elected Lebanese government which cannot protect its people? What is the point of a 75,000-member Lebanese army which cannot protect its nation, which cannot be sent to the border, which does not fire on Lebanon's enemies and which cannot disarm Hizbollah? Indeed, for many Lebanese Shias, Hizbollah is now the Lebanese army.

...

And do the Israelis realise that they are legitimising Hizbollah, that a rag-tag army of guerrillas is winning its spurs against an Israeli army and air force whose targets - if intended - prove them to be war criminals and if unintended suggest that they are a rif-raff little better than the Arab armies they have been fighting, on and off, for more than half a century? Extraordinary precedents are being set in this Lebanon war.

Posted on 05 Aug 2006


Zen, Avalon and J2EE

by Miguel de Icaza

For those curious, Wesner has some background on the discussion we had at Lang.NET that prompted my previous blog entry.

Joe Beda, a former developer of Avalon, follows up and complements it.

Some folks emailed me to tell me that they love Avalon and that it works fine for them. Am glad you are happy with it, and did not want to spoil your fun. Some people also liked J2EE.

Censorhip

I had a beautiful reply to follow up, but Gonzalo wisely scissored-it up. He did not think paraphrasing Doctor Gonzo was appropriate.

Posted on 04 Aug 2006


Lang.NET Symposium

by Miguel de Icaza

Am back from the Lang.NET Symposium, that Erik Meijer put together.

The conference was a blast, and the .NET Languages blog has a review of the talks: first day, second day and third day.

I hung out most of the time with Jim Pubrick and John Lam.

I got a chance to meet Michal Moskal, Nemerle creator is doing an internship at Microsoft this summer.

Second Life

Cory and Jim talked about Second Life, the current scripting system used in Second Life and their efforts to embed the Mono VM inside Second Life. The first part of the presentation was done by Cory and he presented an overview of Second Life and the audience was hooked on the virtual world that they have created. They had to stop answering social questions about Second Life so we could move into the actual technical details.

Jim, who is a blast, introduced the technical challenges that Second Life has on scripts. They need to be able to load and unload thousands of scripts in a continuously running process, and they also need to stop scripts at any point to either suspend them or to move to another computer.

Second Life maps computers to areas of land, so a computer is in charge of running all the simulations, physics and scripts for a given portion of virtual land. When a person crosses the boundaries the scripts have to migrate from one machine to the next machine.

Today the scripts running on Second Life are a bit slow, so they are looking at Mono and the CLI as a way of providing more speed to their users and hopefully allow developers to write in other languages other than their Linden Labs Scripting Language.

They have a compiler that translates their scripting language into CIL bytecodes, and the preliminary results give a performance increase between 50x and 150x faster execution with Mono.

The challenge is to stop and save a running script. This is something that is relatively easy done with their scripting language, but it becomes trickier with the CLI.

Their implementation instruments the generated CIL assembly to allow any script to suspend itself and resume execution on demand. This is a bit like continuations, the main difference is that the script does not control when it is suspended, the runtime does. The instrumentation basically checks on every back-branch and on every call site whether the script should stop (in Jim's words, "eventually, you run out of method, or you run out of stack") and if it must stop, it jumps to the end of the method where a little stub has been injected that saves the state in a helper class and returns.

A very clever idea. Hopefully the slides for the presentation will be posted soon.

Following my attorney's advise I have obtained a Second Life account.

Ruby in .NET

There were two presentations on Ruby running on .NET, the native compiler that John Gough's research team is working on and John Lam's RubyCLR bridge.

Compiling Ruby is challenging for a number of reasons, the lack of a language specification means that sometimes the only specification for the behavior is the source code and because Ruby has a lot of features that do not map easily into the single-hierarchy, multiple-interface object model that is part of .NET. So Ruby.NET has to generate a number of helper classes and runtime support to provide the expected behavior.

John's approach is different. Instead of creating a compiler for Ruby, he wants to reuse the existing Ruby and provide a good bridge to expose Ruby objects to the CLR and CLR objects to Ruby. He had some good demos of it, and he showed an interesting interactive shell that he built with Ruby and Avalon.

Language Mapping

During Gilad Bracha's presentation he pointed out that some languages fit naturally into the .NET and Java VM models, and those languages tend to feel like syntactic sugar for the existing VM.

A few compilers for dynamic languages like IronPython and Ruby.NET as well as C++ require features that can not map directly into the .NET and Java models so it is necessary to create an independent universe and merely using the Common Type System (CTS) and the Common Language Specification (CLS) as "interoperability points".

The conference really was split in two groups: those attending the talks (back-to-back with a couple of breaks) and those in the "kitchen track".

In the kitchen track there were plenty of interesting discussions, among them, should there be a "CLR-2" or a "CLS-2" that provides the shared runtime support for dynamic languages and standardizes the second layer to allow higher interoperability of these new layers created for scripting languages.

Don Syme

Don Syme designed the generics support for the CLI and C# and did a fantastic presentation.

He has since moved on from Generics and has been working on F#. His presentation and demostrations were fantastic. I would probably have benefited more from this talk had I known more about functional programming.

Posted on 03 Aug 2006


A J2EE Moment of Zen

by Miguel de Icaza

I just had a realization today.

Microsoft's Avalon is the J2EE of GUI APIs.

Its God's way of punishing us for replacing the ten commandments with the Design Pattern fad.

We will have to wait a couple of years for the "Rails" of GUI toolkits to come into existance. In the meantime programmers will pay for their sins.

Avalon marks the end of the American Dream.

Posted on 02 Aug 2006


Bittorrent Bootstrapping

by Miguel de Icaza

Alan is part of the Google Summer of Code team that is building a Bittorrent framework. Today, he achieved bittorrent self-hostingness-nirvana:


<_Alan_> my freshly compiled windows mono runs monotorrent perfectly now :)
<_Alan_> downloading the suse image with it now

	

Posted on 01 Aug 2006


That was fast

by Miguel de Icaza

Gonzalo launched the Mono.Google API last night, and this morning at 7:25AM I received an email from Stephane Delcroix pointing me to his contribution that added Picasa export to F-Spot, his bugzilla comment:

This patch will allow export to picasaweb.

It's feature complete (as in PicasaWeb features), that means that it support multiple google accounts, creation of albums (private or public ones) and upload pictures to them.

Posted on 28 Jul 2006


Google Hosting

by Miguel de Icaza

So Google today launched its source code hosting effort.

I suspected they were working on something along these lines, because the Subversion folks went to work for Google some time ago. You did not read about this, because I only speculated about this to Greg Stein, which would not leak one single bit about what he was doing.

Anyways, Gonzalo has been on a roll recently. He changed our FileSystemWatcher code to use inotify instead of depending on FAM and Gamin. See his post on the subject.

Google Sharp

And he also just uploaded Google Sharp to subversion (module google-sharp). With GoogleSharp you can authenticate your application with Google and access some of their services. The one that both Gonzalo and myself care about is PicasaWeb. The code has everything for F-Spot to start exporting my pics there.

Gonzalo has a web entry with details here and sample code to login, list albums in PicasaWeb, and upload pictures to it.

Let the Mono uploading begin.

Posted on 27 Jul 2006


Mind Touch and the Dream Framework

by Miguel de Icaza

A few Mono contributors went to work and consult for a mysterious company a while ago, and this week we finally found out where they had gone.

They went to MindTouch, an open source startup company that sells an appliance for document management, using a Wiki framework. The press release is here.

They created a framework for building web applications, the dream framework. It is mostly focused on the back-end side of things. The framework allows developers to easily create REST services, with a number of interesting features:

MindTouch Dream is a REST-based distributed application framework developed in Mono/.NET. With Dream, a Web service is similar to an object, and features interact through standard HTTP verbs. This design allows the developer to assume an "idealized" world where everything a service comes into contact with is accessed through Web requests. The Dream service library addresses common problems, and the Dream runtime orchestrates all interactions without requiring a Web server to be pre-installed on a target machine.

MindTouch Dream manages all the complex aspects of interactive web services, such as providing storage locations, database connections, event notifications, automatic data conversion from XML to JSON and short-circuit communication for co-hosted services.

And they ported MediaWiki to run on top of this framework, this port is DekiWiki. It differs from MediaWiki in that they have a GUI designer for the page, it is quite nice. You can see it in action here.

I am told that they are porting the entire MediaWiki to C# as well.

Aside from the high-level descriptions, there are a couple of interesting bits about Dream, the framework and applications are designed assuming that network connectivity could go down at any point, that the network will likely fail. A focus on making fault tolerant applications.

Currently Dream and DekiWiki run out of the box with Mono, for installation instructions see this.

I told Urs that I would migrate www.mono-project.com to it, but it first has to be ported to C# ;-)

Posted on 27 Jul 2006


« Newer entries | Older entries »