GNOME usability hackfest

by Mark Shuttleworth in Mark Shuttleworth, Sat, 25 Oct 2008 12:41:13 GMT

The GNOME user experience hackfest in Boston was a great way to spend the worst week in Wall St history!

Though there wasn’t a lot of hacking, there was a LOT of discussion, and we covered a lot of ground. There were at least 7 Canonical folks there, so it was a bit of a mini-sprint and a nice opportunity to meet the team at the same time. We had great participation from a number of organisations and free spirits, there’s a widespread desire to see GNOME stay on the forefront of usability.

Neil Patel of Canonical did a few mockups to try and capture the spirit of what was discussed, but I think the most interesting piece wasn’t really possible to capture in a screenshot because it’s abstract and conceptual - file and content management. There’s a revolution coming as we throw out the old “files and folders” metaphor and leap to something new, and it would be phenomenal if free software were leading the way.

I was struck by the number of different ways this meme cropped up. We had superb presentations of “real life support problems” from a large-scale user of desktop Linux, and a persistent theme was “where the hell did that file just go?” People save an attachment they receive in email, and an hour later have no idea where to find it. They import a picture into F-spot and then have no idea how to attach it to an email. They download a PDF from the web, then want to read it offline and can’t remember where they put it. Someone else pointed out that most people find it easier to find something on the Internet - through Google - than they do on their hard drives.

The Codethink guys also showed off some prototype experience work with Wizbit, which is a single-file version control system that draws on both Git and Bazaar for ideas about how you do efficient, transparent versioning of a file for online and offline editing.

We need to rearchitect the experience of “working with your content”, and we need to do it in a way that will work with the web and shared content as easily as it does locally.

My biggest concern on this front is that it be done in a way that every desktop environment can embrace. We need a consistent experience across GNOME, KDE, OpenOffice and Firefox so that content can flow from app to app in a seamless fashion and the user’s expectations can be met no matter which app or environment they happen to use. If someone sends a file to me over Empathy, and I want to open it in Amarok, then I shouldn’t have to work with two completely different mental models of content storage. Similarly, if I’ve downloaded something from the web with Firefox, and want to edit it in OpenOffice, I shouldn’t have to be super-aware or super-smart to be able to connect the apps to the content.

So, IMO this is work that should be championed in a forum like FreeDesktop.org, where it can rise above some of the existing rivalries of desktop linux. There’s a good tradition of practical collaboration in that forum, and this is a great candidate for similar treatment.

At the end of the day, bling is less transformational than a fundamental shift in content management. Kudos to the folks who are driving this!

Update: thanks mjg59 for pointing out my thinko. The Collabora guys do great stuff, but Codethink does Wizbit.

In LA for the Microsoft PDC

by Miguel de Icaza in Miguel de Icaza, Sat, 25 Oct 2008 07:44:00 GMT

After a great week in Copenhagen with the Unity community I spent 14 hours on a high-tech tin can flying to LA for the Microsoft PDC conference.

Mono Talk

I am doing a talk on Wednesday at 4:45 in room 515B.

Unlike previous talks that I have done about Mono, this is an advanced talk and will skip over all the generalities and go straight to Mono CLI/C# features and innovations.

I decided against talking about Moonlight or APIs, as information about can be better learned elsewhere.

Speculation

There has been enough leaked information that we know some bits about C# 4. Some guess it includes dynamic support, other that it will be more F#-like and add immutability, others that it will introduce some Alef-like threading capabilities.

Then there is talk about .NET 4, and I just have no clue what they will announce.

So what do you think they are announcing this week?

Speculate away in the comments.

Live Blogging from Unite

by Miguel de Icaza in Miguel de Icaza, Wed, 22 Oct 2008 08:57:00 GMT

10:52am Interesting overview of the challenges of the game industry. Where does the game industry go next? A discussion on integrarting games with the web and delivering games as services.

On one end there is the flashy stuff, on the other end lots of talk about the enterprise components of gaming. I had no idea.

Between the low-barrier to entry and the high-barrier to entry markets, there is a large space for gaming and where 3D games on the browser will make a difference.

Phil sees Unity as an agent that will help transform the game industry.

10:31am Phil Harrison president of Atari is now on stage, "First time I have done a presentation in a Planetarium". Atari has no commercial relationship with Unity or investing-wise. He is here because "I wanted to be here, what David and his team are doing is transformational for the industry. I had an Eureka moment early this year, I had just joined Atari, and someone told me `check out Unity3d.com', I had heard about it, but never used it. Using the Web player demo was eye opening for me. [...] This is something similar to what I saw at Sony in 1993, when we first got the dinosaur demo on the PS1 [...] The island demo I believe is a game changer in this industry".

"I have become an unpaid evangelist of Unity".

Phil is now going to talk about the game industry, wont blog that.

10:29am Introspection, why we want to do this? Goals: we want people to build games for the web, the iPhone, the Wii, and for everything else.

10:29am Announcing Indie version, 199 dollars, but has some watermark/splashscreen at the beginning.

10:26am Windows Vista logo on screen.

"This is true, I have to admit it", they are demostrating the new Unity3D IDE on Unix. The same Unity3D tool but now running on Windows.

"We are going completely cross platform", every script that you write will run on both platforms (Woohoo! Go CIL! Go!).

10:21am Nicholas is going to talk about "Secret Labs". He talks about "Jus t Press Play", "Buliding for multiple targets" and the script property editor.

They wanted to improved upon th eUnity editor.

They rewrote the Unity editor from zero. Created entirely on top of the Unity APIs themselves - EditorWindows, unityGUI, GameObjects and Components. Unity is built on Unity now. "It is way faster than cocoa".

He is showing Unity 2.5, looks like Unity 2.1; They now use tabs and the various windows can be dragged around, very much like MonoDevelop. He is showing the editor by dragging a lightpost into a paradise island and showing the new GUI tools like snapping, rotation and UIs that are closer to Maya's tools.

He shows "Snap to surface" so you can easily position stuff on the 3D terrain. People like it.

The UI is a lot easier to use. "We have been focused on the tiny details, but we are not shipping this yet". Everything in the IDE can now be scripted.

He shows how a few lines of code a developer can attach a camera view when clicking on a property.

130 new API entry points, Unity developers can now do everything that the Unity3D GUI can do.

10:20am David talks about the pricing; Two pricing: cheap and expensive.

10:13am Joachim Ante is introducing Unity for the iPhone. "With Unity we have always focused on iteration time". He goes into some of the technical details, "With all the new input mechanisms for theiphone, how do we provide a quick feedback system, we wanted to keep the experience of develop, hit run under a second".

They provide a "Unity remote" that runs on the iPhone, you use the iPhone to control the game, but the debugging actually happes on the PC. So you hit "run" and there is no wait at all.

Joachim is explaining how they are using AOT to run native code on the iPhone without having any JIT on the iPhone.

Joachim shows "Build and Run" that does the cross compiler and sends the code to the iPhone. It takes about 10 seconds and he now has the game running on the iPhone and shows how both Javascript and C# code running on the system.

10:10am Some stats: sold out event; 180 attendees; community doubled in the last year (2x employees, 2x posts, 2x users);

Last year they released Unity 2.0.

Unity 2.1 was released, should have been 3.0, but they did not charge more.

They announced Unity for Wii.

Big games using Unity: Sony, Disney. Virtual worlds like Hangout.Net is out (very pretty!) A new online community was created (Blurst). SeriousGames released a new title "Global Conflicts" Latin America.

Hard to keep up with the list of users.

10:04am The Unity founders Joachim, David and Nicholas are on stage to start Unite'08.

They moved us from the room downstairs to the iMax auditorium whihc is packed with game guys. During the moments of panic that ensued after they moved us from the downstairs room into the switched rooms, I ended up in the front row, which in retrospect was a big mistake, you cant take pictures with the standard lens of this massive screen.

9:48am Waiting for the keynote at the Unite conference. There are about two hundred people packed in the Tycho Planetarium. The Blurst guys are all wearing matching shirts and have taken over the first line of the auditorium, From here I can see a them debugging a Sonic-like game that he is prototyping. Then he switched to some game that has an angry minotaur breaking dishes in a museum.

The minotaur looks angry and just scored 3,000 points of some kind.

Everyone in this conference seems to be using a Mac, and I could swear this computer is the only Linux machine in the audience.

Last night I had dinner at the Unity headquarters and got a chance to meet some of the Unity hackers and users before the conference started.

Gained a deeper insight into what we can do to improve Mono's VM for games. Lots of good ideas.

Phil Harrison brought up "the debugger" issue ;-).

Hopefully Rasmus from CellDotNet will show up for the Unity Mingle tonight.

Mono 2.0 OSX Installer Ready

by Miguel de Icaza in Miguel de Icaza, Mon, 20 Oct 2008 16:25:00 GMT

We released an updated installer for Mono 2.0 on MacOS X.

This release got delayed because we wanted to upgrade our bundled Gtk# stack to contain the latest release of Imendio's Gtk for MacOS X.

Banshee coming to an OSX near you this week.

Mono OSX Survey!

We are trying to understand how we can improve Mono on the OSX space. Help us figure this out by filling out our Mono on OSX Survey.

Relocatable Applications

If you have followed our Guidelines for Application Deployment your software should be easy to be packaged and distributed for MacOS X as a relocatable application.

Eoin Hennessy worked on integrating Banshee into the OS, and packaging it into a bundle that runs out of the box on MacOS. The following are some screenshots from Aaron's box:

The Banshee open source media player.

Sandy has ported Tomboy and Tasque to MacOS and Windows and provided installers for both.

Tomboy integrates into the dock and menus.

Aaron Bockover from the Novell Desktop Team has promised that Eoin's work will be part of Friday's Banshee release. From this point on, Banshee will be released both for Linux and MacOS X at the same time.

Maybe F-Spot is not too far behind?

The Small Print

  • We downgraded the bundled Gtk from 2.15 to 2.14.3, as 2.15 was a development version and 2.14 is the officially supported Gtk .
    This means that applications that linked directly against Gtk 2.15 from Mono 1.9 will fail to run. Please re-link those binaries.
  • We removed MonoDevelop from this distribution, so our package only contains the Mono SDK and Mono runtime.
    A MonoDevelop installation package will come later, we apologize for this delay.
    On the upside: now that the distribution is split, we will be doing MonoDevelop Beta 2 previews as DMGs after the PDC.

Help us improve Mono on OSX by completing the Mono on OSX Survey and providing comments at the end.

Parallel Programming

by Miguel de Icaza in Miguel de Icaza, Sun, 19 Oct 2008 19:02:00 GMT

As much as I personally dislike the use of threads for user code, multi-cores systems are here to stay. They are becoming increasingly popular (most laptops now ship with dual core systems, home computers ship with 3 cpus and gaming consoles ship with multiple general purpose cpus as well).

Developers will need new frameworks for developing software that is ready to take advantage of multiple CPUs. But most importantly they will need to learn the traps and pitfalls of writing parallel/threaded code.

Here are two fantastic articles on MSDN that cover these topics:

J�r�mie Laval worked on an ParallelFX implementation for Mono over the summer as part of the Google Summer of Code.

The implementation currently lives on the student repository at code.google.com. I can not wait for the API to be stabilized so we can move it into the main Mono distribution.

View: Parallel Programming - More entries from Miguel de Icaza, Open Source

Going to Copenhagen

by Miguel de Icaza in Miguel de Icaza, Fri, 17 Oct 2008 20:27:00 GMT

Next week I will be in Copenhagen for Unity3D's Unite conference.

Unity3D is one of the most fun users of Mono as they create IDEs for Game Developers and they are driving the adoption of Mono, C#, Boo and their own UnityScript in the gaming space.

As a newcomer into this industry, there are various sessions from actual Unity user on how they have built their games from start to finish. Other sessions include details on publishing, production (ArtPlant), Physics (Flashbang), Shader Programming (Unity), developing on the iPhone (Unity), a post-morterm on FusionFall's work for Cartoon Network and the hands-on lab.

Some cool stuff from the agenda includes a keynote participation from Atari's President.

If you want to meet up, drop me an email. I will likely be going to the Unity Mingle events at night and departing early on Friday to fly to the Microsoft PDC in LA.

View: Going to Copenhagen - More entries from Miguel de Icaza, Open Source

It’s the end of the world as we know it (and I feel fine)

by Ian Murdock in Ian Murdock’s Weblog, Fri, 17 Oct 2008 20:10:00 GMT

Warren Buffett: “A simple rule dictates my buying: Be fearful when others are greedy, and be greedy when others are fearful.”

MonoDevelop gets VI bindings

by Miguel de Icaza in Miguel de Icaza, Tue, 14 Oct 2008 20:39:00 GMT

I grew up mostly with Turbo Pascal as my development environment. When I started to write C code in DOS, I used Turbo C briefly but for some reason I switched to the BRIEF text editor for a while.

Around 1989 The my friend Max Mendizabal who used nothing but Epsilon told me "Unix is the future, if you learn Epsilon, you will be ready to switch to Emacs when the time comes".

Prophetic words.

When I eventually switched to Unix in 1992, having learned Epsilon was useful, but Emacs was too slow for quick edits. I still used Emacs for programming, but for quickly making changes to a file, I ended up learning vi.

When computers got faster, I tried to switch to Emacs for all my editing tasks, but my brain had been hardwired. I even added "alias vi=emacs" to by shell, and I would find myself typing subconsciously "/usr/bin/vi".

To this day, I use both editors interchangeably.

In any case, the above story was just an excuse to introduce VI Mode for MonoDevelop.

Alan "BitSharp" McGovern Joins Novell

by Miguel de Icaza in Miguel de Icaza, Tue, 14 Oct 2008 20:32:00 GMT

Alan McGovern, who created BitSharp during a Google Summer of Code for Mono has joined the Moonlight team at Novell.

Imagine the possibilities! Bittorrent clients, servers, trackers all running from Silverlight 2.0 Web Applets!

Discuss.

Mono 2.2 Feature: Mono.Options

by Miguel de Icaza in Miguel de Icaza, Tue, 14 Oct 2008 20:10:00 GMT

In the upcoming Mono 2.2 release we will be distributing Jonathan Pryor's most excellent Mono.Options library.

Mono.Options is a beautiful command line parsing library. It is small, succinct, a joy to use, easy and powerful, all in one.

It is one of those libraries that does more with less. Something that every programmer aspires to write, but that we seldom achieve.

It has also struck a good balance for Unix and Windows developers as options can be used on both systems, and map well to practices on both systems. It took a long time to get the right "blend" of parsing, but I think Jonathan has achieved it.

Consider this example:


using System;
using System.Collections.Generic;
using NDesk.Options;

class Test {
    static int verbosity;

    public static void Main (string[] args)
    {
        bool show_help = false;
        List

And here is an example of its use:

$ mono greet.exe --help
Usage: greet [OPTIONS]  message
Greet a list of individuals with an optional message.
If no message is specified, a generic greeting is used.

Options:
  -n, --name=VALUE           the name of someone to greet.
  -r, --repeat=VALUE         the number of times to repeat the greeting.
  -v                         increase debug message verbosity
  -h, --help                 show this message and exit

$ mono greet.exe -v- -n A -name=B --name=C /name D -nE
Hello A!
Hello B!
Hello C!
Hello D!
Hello E!

$ mono greet.exe -v -n E custom greeting for: {0}
# Using new message: custom greeting for: {0}
custom greeting for: E

$ mono greet.exe -r 3 -n A
Hello A!
Hello A!
Hello A!

$ mono greet.exe -r not-an-int
greet: Could not convert string `not-an-int' to type Int32 for option `-r'.
Try `greet --help' for more information.

	

He has also documented it thoroughly.

Where possible (new tools being written, or tools that have a similar command line structure that is compatible) we will be switching to this command line parsing library.

The library is small, so developers should include a copy of the source code in their application, this is how you should include it in your makefiles:


Options.cs:
	cp `pkg-config --variable=Sources mono-options` .

	

Then your code can just include a reference to it.

It’s a solvency problem, not a liquidity problem

by Mark Shuttleworth in Mark Shuttleworth, Thu, 09 Oct 2008 22:05:27 GMT

The term “credit crunch” is very misleading for the current crisis. It suggests that the problem is merely one of confidence, that calm will return if liquidity is introduced to the system.

My view, though, is that the real issue is one of solvency. This is the systemic bankruptcy of 2008.

Mortgages are just the beginning.
At real rates of interest, with real expectations of a reasonable rate of return, many of the deals which have been done since 2003 just do not make economic sense. Thus far, the spotlight has been on one piece of that problem - bad mortgage loans - but I think we’ll see the problem areas expanding rapidly to include a lot of the private equity deals which were done on the basis of free money between 2003-2007. I remember a fatuous statement by some private equity genius that “everybody’s rushing to do the first $100bn deal”. Well, the chickens are coming home to roost. Expect a steady flood of announcements of setbacks, restructurings and bankruptcies as companies that were bought with borrowed money turn out to be unable to service their debt.

Lower interest rates will ease the symptoms only.
Dramatic easing of interest rates will help to slow down the pace at which we have to deal with the bankruptcies, but they won’t change the cold reality of the situation, and they run the very real risk of making things worse by encouraging another round of speculation based on free money. We are once again in a situation where the US discount rate is effectively a negative real rate of interest, as a gift to the banks, but staying there for any length of time puts us back into a state of addiction.

Interventions must target bank equity and leverage, not liquidity.
The latest move from the UK to buy equity stakes is the best response yet, I think. It dramatically improves the capitalisation of those institutions, it keeps the upside of that move in taxpayers hands (they are taking the pain and funding the bailout, it seems right to preserve the upside for them) and it dilutes the existing shareholders who allowed their institutions to become insolvent. Personally, I’d be inclined to do more than dilute those shareholders.

I don’t see the current $700bn deal making a real difference to US banks. I would expect the US to announce a deal similar to the UK deal soon, but the numbers would have to be larger. Scarily large. Much better for the US to make that move, than to wait for Asian and Middle-eastern sovereign wealth funds to step into the breach.

Depositors in regulated banks should be protected by the governments that run the regulators. Shareholders not so much. Bondholders… maybe.
I think the Irish and other countries who have guaranteed the deposits of individual users have done the right thing. Governments setup regulatory authorities, and banks advertise that they are regulated. The people who appoint those regulators need to stand by the approach they take - they should offer a guarantee that they will stand by their product, and when it fails, they will stand by the people who trusted in them. Depositors at banks in the UK really should not have to worry that the bank might fail - such a failure should at most affect the interest rate they receive, not the safety of their capital. Shareholders in those banks, however, should be very worried indeed. There’s an interesting question about bondholders and institutional depositors. By one argument they are sophisticated investors and should be responsible for their bonds. By another argument, they are the very people who can cause massive shifts in funds from bank paper to T-bills, and hence worth keeping pacified. I would lump them in with individual depositors too.

Executive compensation should be structured not fixed.
There has been a lot of discussion about limiting executive compensation. That’s just an invitation for armies of consultants and lawyers and accountants to work around whatever compensation limits are put in place. And frankly, I’m hard-pressed to understand how politicians, who constantly vote themselves bigger salaries and expense accounts, are qualified to set bank executive salaries. They effectively WERE in charge of Fannie and Freddie executive compensation, and that wasn’t a stellar success.

What I would say, however, is that financial institution earnings should only be recognised over a seven year period, and bonuses based on those earnings should be held in escrow until that seven year period is up. Imagine if we could now tap into the bonuses of investment bank employees over the past seven years in order to shore up the balance sheets of those banks. That would include the bonuses paid to Mr Fuld, Mr Greenberg, and Mr Greenspan. Anybody care to run the numbers? I think it would be material.

I’m nervous.
The big question I’m asking is which sidelines don’t have landmines? My team and I are fortunate to have stepped out of many markets before the current flood of fear. We stepped right into a few problems, but in large part dodged the cannonballs. So far so good. But what does it mean to have cash in the bank, when banks themselves are failing? What does it mean to hold dollars, when the dollar is being debased in a way that would feel familiar to the Reserve Bank of Zimbabwe? These are very dangerous times, and nobody should think otherwise.

Hopemobile

by Jeff Waugh in eighty-eight miles per hour, Wed, 08 Oct 2008 08:36:12 GMT

The only thing that concerns me about an Obama presidency is the heightened possibility of extremist nutjobs making an attempt on his life. The last couple of weeks of the campaign have highlighted that it is indeed possible, even coming from quarters that purport to be “against terrorism” and “for America”.

More than ever, the USA needs an inspiring leader, so I don’t want to see Obama locked away from the people, forever stuck behind bulletproof glass podiums and the windows of heavily-armoured cars.

At least there’s one very tiny sliver of silver lining, if I may smother my concern with humour for a moment: We can call his car the Hopemobile.

PHP5 vs. daylight saving in Ubuntu 8.04.1 LTS

by Jeff Waugh in eighty-eight miles per hour, Wed, 08 Oct 2008 05:35:53 GMT

Much of Australia went into DST mode this week, with the only holdouts being the odd little backwaters of our country (generally referred to as “Queensland”) for whom daylight saving is a threat to curtains or farm animals… and anyone relying on PHP5’s bundled timezone database.

I filed a bug and test case regarding the problem (which will hopefully be be fixed with an official update, given that Hardy is an LTS release), but here’s a quick guide to work around the problem in the mean time. Thanks to Andrew “ajmitch” Mitchell for pointing me in the right direction!

  1. Grab and unpack the timezonedb extension tarball from PECL.
  2. apt-get install php5-dev
  3. phpize
  4. ./configure --with-php-config=/usr/bin/php-config5
  5. sudo cp modules/timezonedb.so /usr/lib/php5/20060613/
    Note: The precise name of the final directory might be different. For instance, on hardy-i386 it will be 20060613 lfs.
  6. sudo vi /etc/php/conf.d/timezonedb.ini
    Yes, this is a new file. Content: extension=timezonedb.so
  7. sudo /etc/init.d/apache2 force-reload

Now your PHP has the very latest timezone data up its sleeve, so you can rest easy knowing that your web visitors won’t think you’re a Queenslander.

Zing! :-)

Update: The php5-timezonedb extension was added to Debian, but removed from intrepid… seems it was because intrepid’s php5 has a patch to use the system tzdata. It would be awesome to get that patch into hardy!

Mono 2.0 is out!

by Miguel de Icaza in Miguel de Icaza, Mon, 06 Oct 2008 20:05:00 GMT

Today we released Mono 2.0 to the world. You can download sources and binaries from our download page. And our official release notes are up as well. This of course would not be possible without the open source contributors that worked tirelessly on Mono sending patches, fixing bugs, helping the community, answering questions, creating test cases and supporting us all these years.

Mono 2.0 is both a runtime for application and a kit for developers for writing applications with C# and other ECMA CLI languages for a wide spectrum of uses.

Big thanks go to the fantastic Mono team at Novell that has kept the excitement and the pace over all these years (we started in 2001), the large contributions from Mainsoft, Unity3D and our users that pushed us to fix bugs, implement new features and tune Mono. Also, we very much appreciate the work of the ECMA 334 and 335 committee members that worked on the CLI and C# specifications and everyone at Microsoft that answered our questions over the years and specially those that licensed code under open source licenses.

We originally started to work on Mono, because we wanted to make developers happier and more productive on Linux. We liked C#, we liked the CIL and we wanted to have those technologies available on our platform.

Since we have been active in the Linux Desktop world, it is not a surprise that the early use of Mono was mostly on Linux desktop applications, and Mono continues to shine there. Server-side use of Mono was a natural evolution and we soon were powering ASP.NET sites on Linux.

There is one area where we under-delivered in the past, and it has been a constant source of pain. Up until now, we did not have a working debugger. This has finally changed, and Mono 2.0 includes for the first time a debugger, the time for WriteLine() debugging is now behind us.

As the project matured, developers started taking advantage of Mono's open source nature: essentially .NET on their own terms. A platform that could be adapted, morphed, ported and modified to suit many different uses. Today Mono is embedded in portable mp3 players and powers Unity3D's game engine on the Apple iPhone, the Nintendo Wii, MacOS X and Windows (And Unity3D is soon coming to Linux!).

It has also been deployed to run code on large clusters of servers for SecondLife, powers our open source Silverlight implementation (Moonlight) and powers the popular DekiWiki: a Social Collaboration Tool.

Mono is a large project and it is hard to pick one feature to talk about as there are so many, so instead I put together a quick table of the major features that are part of this release:

Compiler Support .NET APIs Mono APIs
Mono's Open Source Compilers: Open Source Compilers: Commercial Compilers:
  • ISE's Eiffel.
  • Microsoft's C#.
  • Microsoft's F#.
  • Microsoft's VB.NET.
  • RemObject's Oxygene (Object Pascal).
And many more.
Core API:
  • 2.0 core APIs.
  • System, System.Xml.
  • 3.5 System.Core.
  • System.Drawing.
  • System.DirectoryServices.
  • System.Web.Services.
Windows.Forms 2.0:
  • Win32 driver.
  • Quartz/OSX driver.
  • Cairo/X11 Unix driver.
ASP.NET 2.0:
  • Core ASP.NET.
  • ASP.NET AJAX.
  • Apache and FastCGI integration.
ADO.NET 2.0 plus providers for:
  • Managed drivers: Postgresql, MS SQL Server, Sybase.
  • Semi-managed drivers: Firebird, IBM DB2, Oracle, Sqlite.
  • MySQL provides their own drivers.
GUI APIs:
  • Gtk# (Unix, Windows, MacOS X).
  • Cocoa# (MacOS X).
Mono Core:
  • Mono.Addins - Extensibility Framework.
  • Mono.Cairo - Cairo Graphics Binding.
  • Mono.Cecil - ECMA CIL Manipulation.
  • Xml.Relaxng.
  • Novell.Directory.Ldap
  • C5 - Generics Library.
Linux Specific: Other Ecosystem Libraries:
  • Bit# - Bittorrent client/server library.
  • Mono.Fuse - User-space file systems.
  • Mono.ZeroConf - Bonjour stack.
  • Mono.Nat - Network Address Translation.
  • Mono.Upnp - Universal Plug and Play.
  • Tao Framework - OpenGL, OpenAL, SDL and Cg bindings.

We have ported Mono to a wide variety of platforms and operating systems on this 1.0 to 2.0 cycle. These platforms include:

  • Linux (x86, x86-64, PowerPC32, Itanium, SPARC, ARM, s390, s390x.
  • Solaris (x86-64, SPARC).
  • MacOS X (x86, PowerPC32).
  • Windows (x86, support for x86-64 will come in Mono 2.2).
  • Nintendo's Wii.
  • iPhone/iPod Touch (ARM, limited functionality due to licensing requirements; I will blog later this week about this).
  • *BSD (x86, x86-64).

Developing with Mono

Long time Linux developers will probably continue to use Emacs and VI, but some new Linux developers might want to use an IDE. New developers can use our open source MonoDevelop IDE on Linux, or alternatively the commercial X-Develop IDE or SlickEdit.

If you are a Windows developer, you can continue using Visual Studio or your IDE of choice to write the code and compile it. Your binaries will run just fine on Linux.

To assist Windows developers in porting their applications to Unix, we have provided the Mono Migration Analysis tool.

Runtime Changes

The Mono Virtual Machine gained plenty of features since Mono 1.2 was released. We have added:

  • Generic Code Sharing and VTable Compression have been implemented: this significantly reduces the use consumed by generic type instantiations, while still getting the speed benefits of using generics.
  • AOT support: in addition to x86, we now also support ARM and x86-64.
  • COM interop is now complete (works on Windows with "real COM" and can be used on Unix with Mainsoft's COM or Mozilla's XPCOM).
  • AOT code can now AOT parts of 2.0 assemblies (assemblies that contain generics).
  • Full AOT support (allows code to run JIT-less, this is limited to 1.0 code).
  • CIL Verifier: Now Mono has a CIL verifier.
  • CoreCLR Security: the security system used by Moonlight.
  • Many optimizations that improve execution performance: New intrinsics operations (Math.Min/Max for example); various operations are now inlined by the JIT; managed allocations (no transition to unmanaged code for allocating memory); multi-array access is now tuned by the JIT; constant and block initializations are now handled by the JIT; Faster initialization and access to multi-dimensional arrays (4x faster).
  • The runtime went on a diet, many runtime data structures are smaller making Mono lighter.

Tools

In addition the the Mono Debugger making its debut appearance on this release, we are very proud of our code analyzer Gendarme.

Gendarme is a extensible rule-based tool to find problems in .NET applications and libraries. Gendarme inspects programs and libraries that contain code in ECMA CIL format (Mono and .NET) and looks for common problems with the code, problems that compiler do not typically check or have not historically checked.

Feedback

Mono is not perfect, but we want to improve it. Like many other open source projects, we need your bug reports to improve Mono. If you have problems with Mono, help us by filing a bug report.

Special Thanks

Special thanks to Hacker Extraordinaire Aaron Bockover who not only brings us the best media player in the world, but created the new web site design and implemented and tuned it over very long extra hours up until 7am in the morning on his weekend.

And to our packaging and QA team that spend extra hours to get all the bits and pieces in place for the release.

View: Mono 2.0 is out! - More entries from Miguel de Icaza, Open Source

Five Second Linux Boot

by Miguel de Icaza in Miguel de Icaza, Sat, 04 Oct 2008 16:54:00 GMT

I loved this LWN article on the changes necessary to make Linux boot in 5 seconds on the Asus EEE PC (a relatively slow computer).

Hopefully all Linux distributions will adopt these changes for custom deployments.

 

Open Source

Open source is a set of principles and practices that promote access to the production and design process for various goods, products, resources and technical conclusions or advice. The term is most commonly applied to the source code of software that is made available to the general public with relaxed or non-existent intellectual property restrictions. This allows users to create user-generated software content through incremental individual effort or through collaboration.

Feeds