by Miguel de Icaza

Edd Dumbill interviewed Chia-liang Kao, the creator of SVK, a distributed version control system layered on top of Subversion:

SVK allows distributed development using existing infrastructure, which means you don't need to deploy a new system for your whole organization. SVK works best with Subversion, but you can also seamlessly branch from CVS, Perforce, or even git repositories. SVK lets you commit directly back to Subversion repositories and "commit as a patch" to other systems or to Subversion repositories you don't have commit access to. Such patches can then be applied by the maintainer, using either a regular patch tool, or SVK, which also will help filling the commit log.


It makes things easier for contributors to open source projects to maintain their patches as a local branch and accept changes from upstream, rather than being treated like second-class citizens who have to deal with patch hell just because they can't commit. You can do this with many other version control systems using "vendor branches," but mostly they require too much work to maintain a short-lived branch just for a patch or two that haven't yet been reviewed and committed.

Open source projects sometimes fork because it's too hard to integrate branches that have diverged too much. Painless merge makes it much easier to branch instead of fork.

John Osborn interviews Anders Hejlsberg at O'Reilly. Mostly focused on the new features in C# 2.0 with a little touch of how they are used to build 3.0 features.

Posted on 23 Oct 2005

Today's Internet Weather

by Miguel de Icaza

Light patches of slashdot comments and a heavy downpour of porn later in the evening.

Posted on 20 Oct 2005

Community Service Announcement

by Miguel de Icaza

Tonight at 11:30pm, in Comedy Central, after the Daily Show. The premier of "The Colbert Report".

Posted on 17 Oct 2005

Interesting News

by Miguel de Icaza

Sebastien posted an update on the state of Code Access Security (CAS) in Mono:

Today, actually this has been true for quite a while, we are able to run all of corlib's unit tests without any failure, including an additional 301 CAS specifc tests (i.e. that aren't normally executed). We can also execute all System.Drawing.dll unit tests without requiring, or even demanding, UnmanagedCode permissions. We also have a great coverage (including 2450 CAS specific tests) for System.Web.dll with perfect results (except for a small mcs bug on partial classes) and a few more tests (18) for System.Xml.dll.

Make sure you read the rest of Sebastien's post if CAS is of interest to you.

Mikael Hallendal from Imendio unveiled their effort to port Gtk to OSX. They had not done much publicity before as they wanted to get some code working first. Anders Carlson is behind this effort. Hopefully we will see the community pick up and a nice theme to integrate the apps with the native look of the Mac happen.

Also see the GIMP running without on OSX without X11.

These are fantastic news for Gtk# users.

Erik points to an interesting inteview:

Interesting interview of Otee's CEO on TUAW. Otee uses Mono for scripting in their Unity 3D game engine, that's the JavaScript feature they're talking about. Developers can also use Boo and C# for game scripting, thanks to Mono multi-language support.

Posted on 06 Oct 2005

Medsphere on Business Week

by Miguel de Icaza

Medsphere was profiled on BusinessWeek. Congratulations to the team!

Medsphere uses Gtk# and Mono to develop their application which run on Windows and Linux from the same codebase. Todd showed their application at the Mono Users Meeting at the PDC.

On the same issue they have an interesting article: Open Source: Now its an Ecosystem.

Posted on 03 Oct 2005

Nemerle Offers Courses OnLine

by Miguel de Icaza

The Nemerle folks are going to teach some courses online to expose their language to more people.

Posted on 03 Oct 2005

Using FireBird.NET with Mono

by Miguel de Icaza

Today I tried out the Firebird database as we just integrated Carlos' bindings for it into the Mono release. Firebird has two modes of operation, it can be used as a server that clients connect to or it can be used as an embedded database, just like SQLite.

The traditional server/client setup works as expected, but I was more interested in using it as an embedded database, This mode is not very well documented. This blog entry tries to document the steps necessary to embed the database and use it with the managed API.

I installed the "FireBird Classic" configuration as an RPM, which is available here. Other downloads are available here.

These instructions are based on the data I found here and here.

Then you must create a mini-firebird environment for your embedded database, the following commands must be done as root:

	# mkdir /home/miguel/minibird
	# mkdir /home/miguel/minibird/bin
	# cd /home/miguel/minibird
	# cp /opt/firebird/firebird.conf .
	# cp /opt/firebird/firebird.msg .
	# cp /opt/firebird/security.fdb .
	# cp /opt/firebird/bin/fb_lock_mgr bin
	# chmod +rx bin/fb_lock_mgr
	# FIREBIRD=`pwd` /opt/firebird/bin/gsec
	GSEC> add miguel -pw pwd
	GSEC> quit
	# chown -R miguel *

Edit the firebird.conf file and add (or edit the commented line) the following line:

	RootDirectory = /home/miguel/minibird

That will create the mini-root and create an account "miguel" with the password "pwd" and set the permissions for all the necessary files.

You can now create a database:

	$ /opt/firebird/bin/isql
	SQL> create database "hola.gdb";
	SQL> create table developers (name varchar (40), email varchar(40) not null);
	SQL> insert into developers (name, email) values ('miguel', '');
	SQL> insert into developers (name, email) values ('duncan', '');
	SQL> commit;
	SQL> exit;

The C# program to access it is fairly simple:

    using System; 
    using System.Data; 
    using FirebirdSql.Data.Firebird;
    public class Test {
            public static void Main(string[] args) {
                    string connectionString = 
                    IDbConnection dbcon = new FbConnection(connectionString); 
                    IDbCommand dbcmd = dbcon.CreateCommand(); 
                    string sql = "SELECT * FROM developers"; 
                    dbcmd.CommandText = sql; 
                    IDataReader reader = dbcmd.ExecuteReader(); 
                    while(reader.Read()) {
                            object dataValue = reader.GetValue(0); 
                            string sValue = dataValue.ToString(); 
                            Console.WriteLine("Value: " + sValue);
                    // clean up 
                    reader = null; 
                    dbcmd = null; 
                    dbcon = null;

Build your program:

	$ mcs sample.cs -r:FirebirdSql.Data.Firebird -r:System.Data

To run this program you must set the FIREBIRD environment variable to point to the mini-firebird directory:

	$ FIREBIRD=/home/miguel/minibird mono sample.exe
	Value: miguel
	Value: duncan

Posted on 30 Sep 2005

World Wind Software on Linux

by Miguel de Icaza

WW2D now runs on Linux using Mono:

World Wind on Linux.

[WW2D] [..] is cross-platform, free and open-source version of NASA World Wind software, see for details. WW2D allows you to explore Earth using satellite imagery, topographic maps and image from other data sources also providing large placenames and boundaries database and allowing you to install community-made add-ons for even more information about our planet.

In basic configuration WW2D uses images from Blue Marble (1 km/pixel), LandSat7 (15 m/pixel), USGS Topo Maps, USGS Digital Ortho imagery, USGS Urban Area imagery.

WW2D is designed to dynamically download needed data from internet, however you can download data you want for faster access and offline usage.

This is not the original NASA software, but a new implementation sharing some of the data. To render they use Tao.OpenGL and a little bit of native code.

The new version is available here to run make sure you have libgdiplus+ installed and then do this:

	$ cd demo-linux
	$ mono WW2D.Frontend.exe

Posted on 30 Sep 2005

SharpMusique 1.0

by Miguel de Icaza

Jon Lech Johansen has released version 1.0 of his SharpMusique client to iTunes Music Store, in 1.0 he supports:

  • Preview songs
  • Signup for an account
  • Buy songs and albums
  • Redownload songs that you bought with SharpMusique
  • Redeem Pepsi caps
  • Redeem gift certificates

SharpMusique uses Gtk# and runs on Microsoft.NET or Mono.

Posted on 30 Sep 2005

Second Life

by Miguel de Icaza

I just learned that the folks at Second Life are using Mono for their 3D Digital Online World:

Monoorientationisland Orientation Island with all 700+ LSL scripts compiled to CIL, assembled in to CLR assemblies and running in the Mono VM embedded in the Second Life simulator. The Mono scripted birds sing and the Mono scripted hands spin and go "bing" when you touch them. There's still lots of bug fixing, optimisation and integration to be done, but it's looking good.

By doing this their existing LSL code will be JITed and optimized by the Mono engine and run at native speeds while giving their developers the flexibility that they need in using the LSL language. This also opens the doors to the Second Life developers to use other CLI languages like C#, Boo, Python or JavaScript side-by-side.

A couple of weeks later they posted an update with more screenshots:

Monobiplane1Monobiplane2_1Monobiplane3Flying a mono biplane through a mono scripted Abbotts Aerodrome (in monochrome). All 2700+ LSL Abbotts scripts compile to CIL, assemble in to CLR assemblies and run in the Mono VM embedded in the Second Life simulator. Note that no source code was changed to make this work, the LSL source was just recompiled to run on the Mono VM.

This is pretty exciting. Am looking forward to help the SecondLife guys have a successful migration to Mono and assist them in exploiting the features of the Mono VM for their software.

Posted on 27 Sep 2005

« Newer entries | Older entries »