A little hidden feature from our release of MonoDevelop 2.2 and Mono 2.6 earlier this week was MonoDevelop's support for debugging Moonlight applications:
Moonlight debugging is a feature that came together very recently, but we delayed Mono and MonoDevelop's release to make sure that we shipped with it.
To debug, merely open your Moonlight/Silverlight project, set some breakpoints, and run your program (F5). Your app will be debugged.
I did a quick screencast and annotated it:
Posted on 17 Dec 2009
Today we are making a few of announcements:
Update: Sean Michael Kerner covers the announcement and talks to Brian Goldfarb from Microsoft.
Update 2: New covenant from Microsoft has been posted.
Moonlight 2 is a superset of Silverlight 2. It contains everything that is part of Silverlight 2 but already ships with various features from Silverlight 3:
We are moving quickly to complete our 3 support. Microsoft is not only providing us with test suites for Moonlight but also assisting us in making sure that flagship Silvelright applications work with Moonlight.
When it comes to prioritization of Silverlight 3 features, we are going to focus on getting the major applications that users want to use first. Sunday Night Football, the Winter Olympics and Bing's Photosynth support.
Smooth streaming works really well. Visit the site and test the immediate seek, and play with the bandwidth limiter to see how Silverlight/Moonlight can adapt the video quality based ont he bandwidth available:
Moonlight 2 is the result of love and passion to bring the Silverlight runtime to Linux.
Moonlight 2 engine consists of 142,000 lines of C/C++ code and 320,000 lines of C# code (125,000 lines of code came from Microsoft's open source Silverlight Controls).
We worked with Microsoft to make sure that Moonlight was available to everyone on Linux and BSD.
Culturally, we started on two opposite ends of the software licensing spectrum. The covenant that was issued for Moonlight 1 and 2 covered every user that used Moonlight, but only as long as the user obtained Moonlight from Novell. This is a model similar to how Flash is distributed: there is a well-known location where you get your plugin.
The open source world does not work that way though. In the open source world, the idea is to release source code and have distributions play the role of editors and curators and distribute their own versions of the software.
Microsoft's intention was to expand the reach of Silverlight, but the original covenant was not a good cultural fit. We worked with the team at Microsoft (Brian Goldfarb and Bob Muglia's teams) to make sure that the covenant would cover the other Linux distributions.
The new patent covenant ensures that other third party distributions can distribute Moonlight without their users fearing of getting sued over patent infringement by Microsoft.
There is one important difference between the version of Moonlight that will be available from Novell and the version that you will get from your distribution: the version obtained from Novell will have access to licensed media codecs.
Third party distributions of Moonlight will be able to play unencumbered media using Vorbis, Theora and Ogg inside Moonlight (and Silverlight), but for playing back other formats, they will have a few options:
As readers of my blog know, the Silverlight 4 feature set is something that is very interesting to me.
If our experience with the positive feedback that we have gotten from MonoDevelop is of any indication Silverlight 4 will enable a whole new class of cross-platform .NET application development to take place. Like nothing we have seen before.
We are thrilled to be working with Microsoft to make sure that we can improve, fix and fine tune Moonlight to meet those requirements and to do so in a purely open source fashion.
Update: Team Silverlight blogs.
Posted on 17 Dec 2009
For those in a hurry, binaries and source are available from:
And if you want a quick mnemonic to remember this release, just think debugger! and cross platform.
The Mono team and contributors worked on this release like we have never worked before. Thanks to everyone that reported bugs, filed feature requests, contributed code and helped newcomers with Mono.
Mono 2.6 highlights:
The team is on #mono, #monodev and #monodevelop on irc.gnome.org fielding any questions you might have.
Update: the diffstat results for Mono 2.4 to 2.6 on a 2 million line patch:
7208 files changed, 1392400 insertions(+), 440016 deletions(-)
About a million lines of new code in Mono.
For MonoDevelop the patch is 750,000 lines and:
2427 files changed, 464284 insertions(+), 120124 deletions(-)
Roughly 300k lines of new code.
Posted on 15 Dec 2009
I felt like an archaeologist trying to formulate a theory of what had happened there. I loved the feeling of trying to put together the story from a partial puzzle.
The patent infringement lawsuit against Apple was a list of accusations and patent lists that Nokia claims that Apple infringes with their iPhone. But behind the background information provided in the legal document and the list of ways in which Nokia felt Apple had wronged them, it was difficult to put together a narrative. Scanning the discussion forums for clues did not lead to anything significant beyond the superficial analysis.
As a software developer, and in particular a Linux software developer, I have mixed feelings about this lawsuit. Apple has not been exactly a model citizen when it comes to interoperability between Apple and Linux products while Nokia has embraced Linux, embraced open source development and contributed to the universal pool of software. But I also found myself enjoying using my iPhone and building software for the iPhone.
I wanted to give both companies the benefit of the doubt. What had happened between these two companies that had forced Nokia to sue Apple?
There were various possibilities.
The lack of immediate response from Apple suggested that they were caught unprepared, but that was just a small chance. Probably the companies had been on negotiations and these negotiations broke off when they could not reach an agreement. The iPhone had taken the world by surprise, nobody had seen it coming and nobody had envisioned that Apple would not merely do an incrementally better phone, but it would be many times better than anything available at the time.
When Apple launched the iPhone, Steve Jobs wanted everyone to know that iPhone's innovations were patented and that Apple planned to prevent others from copying those ideas.
Apple's response to Nokia is a very educational document. It reads as a crash course on patent litigation when it lays out Apple's strategy for their defense. It is also a crash course on the patent system and how corporation work with international bodies to develop technology. But most importantly for me, it fills some the gaps of what happened behind the scenes.
We do not know yet which company approached the other first about patent infringement. It could have been someone on Nokia's board that decided to extract some revenue from their patents to compensate for their business losses or it could have been initiated by Apple's team notifying Nokia that their new phones used some idea from their phones.
What does emerge from Apple's reply is that Nokia tried to use the patents that they had pledged to license under reasonable terms to get themselves rights to Apple's juicier iPhone innovations. Nokia's pledged patents might be formidable patents and key to the implementation of certain cellular and WiFi communications, but by being pledged under F/RAND terms to various industry consortia they lost a significant amount of value. But what they lost in value, they made up in volume. This is in stark contrast with Apple's un-pledged, pristine, fully proprietary patents that Nokia and everyone but China are trying to get rights to.
Posted on 12 Dec 2009
Marek has just announced that Mono's C# compiler 4.0 is complete.
To try it out, get the modules mono and mcs from our Anonymous Subversion Repository and build Mono like this:
$ mkdir $HOME/mono4 $ ./autogen.sh --prefix=$HOME/mono4 --with-profile4=yes $ make && make install
Posted on 09 Dec 2009
Voy a Mexiquito lindo estas vacaciones de Diciembre.
Si quieren que nos reunamos para hablar de software libre, Mono, Linux, Moonlight, Silverlight, C# o para discutir por que La Mancha ya no escribe o el ultimo blog del Jetas mándenme un correo para ponernos de acuerdo.
Posted on 03 Dec 2009
This is a short e-book, 42-pages in size, but it is also very cheap, it is only 6.99 USD and will help you get started in no time with MonoTouch.
Here is the table of contents:
Table of Contents
iPhone Requirements 2
Development Strategies 3
Web Development with ASP.NET 3
MonoDevelop and MonoTouch 4
Visual Studio .NET ➪MonoDevelop 4
Classes in MonoTouch 4
What Is MonoTouch? 4
Namespaces and Classes 5
Introduction to Development on the Mac with MonoDevelop 6
Interface Builder 8
Deploying to an iPhone 15
The Application 18
Annotating the Map 20
Interacting with Other Applications 22
Binding Data to a UITableView 29
Customizing UITableView 30
Things to Watch Out For 37
Resources Used 38
Posted on 03 Dec 2009
As of now, you can submit your talk proposals! We want to make this a fun room and we want to accomodate all kinds of talks. For that reason, one thing we're experimenting with is having dynamic timeslots. Only want 15 minutes? That's okay! Need an hour? We'll see if we can squeeze it in! The most important factor is that it's interesting and fun.
So send in your proposals, be it large earth-shaking projects, or little hackery experiments that make you giggle with hacker joy, we want to hear it. We have the complete Sunday to schedule. Still have questions? Email me: ruben @ savanne be.
The submission form is here, go fill it in now! (Send in your proposals before December 20)
See you there!
Posted on 02 Dec 2009
The most important piece of news from last week's PDC was Microsoft's decision to turn Silverlight into the universal platform for building cross platform applications.
The upcoming version of Silverlight will no longer be a Web-only technology. It will now be possible to build full desktop applications with Silverlight.
Desktop Silverlight applications differ from the standard Silverlight in a few ways:
Although Moonlight has supported this mode of operation since day one, turning this into a standard way to develop applications was going to take a long time. We would have needed to port Moonlight to Windows and OSX and then we would have to bootstrap the ecosystem of "Silverlight+" applications.
But having Microsoft stand behind this new model will open the gates to a whole new class of desktop applications for the desktop. The ones that I was dreaming about just two weeks ago.
This was a big surprise for everyone. For years folks have been asking Microsoft to give Silverlight this capability to build desktop apps and to compete with Air and it is now finally here. This is a case of doing the right thing for users and developers.
Now that this technology is available, perhaps it is a good time to start a movement to create a suite of Silverlight-based desktop applications.
The benefits to me are many:
For the Moonlight team, this means that there is a lot of work ahead of us to bring every Silverlight 3 and 4 feature. I think I speak for the whole Mono team when I say that this is exciting, fascinating, challenging and feels like we just drank a huge energy boost drink.
If you want to help, come join us in the #moonlight or #mono channels on the IRC server at irc.gnome.org.
There are many other great features in Silverlight 4, but none as important as Silverlight becoming a universal runtime for the CLR. This is a revolution.
If you are curious about all the new tactical features of the revolution, check Tim's Complete Guide to the new Silverlight Features.
If you have the time, watch Scott's keynote's presentation where he introduced the new features (he starts at 1:02). I loved the use of HTML as a Silverlight brush (paint with HTML and even Flash). If you have time, these are some great sessions on Silverlight:
Miguel de Icaza.
Posted on 23 Nov 2009
Arne's presentation on concurrent programming at Monospace ago has been published.
Posted on 12 Nov 2009