Pong on Mono.XNA

by Miguel de Icaza

Stuart from the Mono.XNA team today posted a screenshot of the game of Pong (which am guessing is some kind of XNA demo program) running on their open source implementation (called Mono.XNA).

Posted on 22 Apr 2007

Call for Testers: Mono 1.2.4

by Miguel de Icaza

We are about to release Mono 1.2.4. It has been a personal difficult decision, as only a few times in the life of a project you reach such a nicely rounded release name.

Wade has uploaded the test packages for Mono 1.2.4 for various architectures here: http://mono.ximian.com/monobuild/preview/download-preview

The diffs between 1.2.3 and 1.2.4 for the mono package (mono and mcs) are almost 20 megabytes in size (I did not count mono-basic, libgdiplus, monodoc, libgdiplus, xsp or mod_mono).

This release has a pretty much finished version of ASP.NET 2.0, with the exception of WebParts, which we have not done much about yet.

See my current embryonic release notes for more details.

Posted on 21 Apr 2007

Clay Movie

by Miguel de Icaza

A few years ago I passed my Canon D60 camera to one of my younger brothers (Franciso Isaac):

He made this animation with clay:

Posted on 20 Apr 2007

Gonzo, part 2

by Miguel de Icaza

Yesterday I watched Alberto Gonzales on C-SPAN, but I did not see these shots from the audience. From Reddit:

Gonzo did not recall or remember 71 things yesterday, and the audience was keeping track:

Posted on 20 Apr 2007

Microsoft Happenings

by Miguel de Icaza

A couple of things.

Panel at Microsoft's Mix 07

My friend Joshua Allen invited me to participate in an open source panel at Microsoft's Mix 07 conference in Las Vegas.

I will be paneling with Rob Conery (he is behind Subsonic, a rising star in the ASP.NET world), Mike Schroepfer from Mozilla, Sam Ranji from Microsoft (from Port25).

Rob is collecting questions for the panel. If you have some feedback, post on his blog.

Silverlight, Flash and open source alternatives

Microsoft renamed their WPF/E rendering engine "Silverlight".

Silverlight is basically:

  • An object oriented canvas, this canvas can be controlled trough the DOM by the containing web page.
  • The contents of the Canvas can be preloaded with a XAML-based description. The XAML supported is a subset of the full WPF/Avalon supported by .NET 3.0.
  • So far it offers no built-in scripting, instead it relies on the browser's Javascript engine.
  • It supports video playback using the highly proprietary VC-1 formats.
  • Silverlight is cross platform in the "Windows and Apple are supported" way, no support for Linux has been announced. So it is even more limiting than Flash.

Silverlight has one thing going on for it, the file format to populate it can be trivially generated by web developers, so it will be easy for people to create cute controls and generate those on the flight.

The major difference in my opinion between what-ng's <canvas> tag and Silverlight is that Silverlight includes video playback support, and I can imagine that Microsoft will try to convince content providers to switch from Flash or their existing embedded windows media experiences to Silverlight.

As a Linux/BSD user, this might pose another setback for our desktop. For years video playback on Linux has been a pain due to the lack of codecs for the various proprietary formats (Considering that even on Windows WMA/WMV playback is a random experience). This all changed with Google Video and YouTube.

Google Video and YouTube popularized the use of Flash for delivering video and it quickly became the norm for video delivery. This opened the doors to the Linux desktop users to watch video content just like everyone else and the pain had been mostly eliminated.

swfdec open source Flash player.

Although Flash is not open source and it is not available on every Linux platform at least those of us using x86/x86-64 systems could watch those videos (and in addition, there is a project that is making great progress).

Reimplementing most of Silverlight is trivial but the difficult bit is getting the audio/video decoding in place (I will not give the Ximian crowd the pleasure of saying "its a weekend hack").

Lacking a viable open source-based competitor today for rich media delivery on the web and given the current state of both Flash and Silverlight, it is in open source's best interest to ensure that Flash gets ahead of the competition.

In my opinion, Flash needs a couple of things to stay ahead:

  • A text-based format to populating the flash contents, either from a JSON representation or an XML file.
  • An open specification that allows for third-party implementations. My understanding is that today's Flash specification is semi-open.

And of course, I think that Flash should be open sourced, but that is a long shot.

A completely open alternative would be ideal, a combination of:

  • OGG Video and Audio objects as part of the what-wg specification, to complement the existing <canvas> tag.
  • Tools to convert popular design formats like XAML and whatever Flash uses into Canvas tags.
  • Tools and Javascript hacks to implement dynamic loading of extra content for the canvas tags.

It does not seem like a far shot, but it would require cross-browser support and would prevent us from being locked into either proprietary stacks.

Opening up Microsoft


Although there are some groups inside Microsoft that seem to be opening up, pushing open standards, and using licenses like the MsPl (for the Ajax client library for example).

Scott Guthrie, the star from ASP.NET is now in charge of .NET at Mircosoft. If there is anyone at Microsoft that understands the value of open standards and becoming more standards compliant it is him. So there are good possibilities on the horizon.

But it seems that larger company considerations like the use of VC-1 will prevent Silverlight from ever using unencumbered technologies.

This reminds me of that movie In Good Company (with Topher Grace and Scarlett Johansson) where decisions in the company are made to leverage synergy.

I look forward to discuss this at Mix 07.

Posted on 20 Apr 2007

Alberto Gonzales' Amnesia

by Miguel de Icaza

Regardless of whether Attorney General Alberto Gonzales is innocent or guilty on the case of the fired Federal Prosecutors, it seems that the guy has a severe case of amnesia.

In my opinion, he should yield the position just on the grounds of exhibiting very strong signs of senility.

Senator Grilling

One Republican senator told Gonzales (paraphrasis), regarding all the incompetence in the whole deal:

"The exact same standards [that you applied to the firing of the prosecturos] should be applied to you"

"Why shouldn't those standards apply to you?"

"you ought to suffer the consequences that others have suffered, the best way of put this behind is for you to offer your resignation".

Gonzales' reply is "Good work is being done, I will rectify".

Posted on 19 Apr 2007

Ports from the Race to Linux

by Miguel de Icaza

The ports of the various contests from the Race to Linux are available here. There are two ports done with Mono/XSP and two ports done with Mainsoft's Grasshopper.

We got the winners for the second Race to Linux.

Here is what Jenna just emailed me:

Congratulations to Mark Cafazzo from Canada! He was the first Race to Linux 2.0 entrant to successfully port the Blog Starter kit to Java EE and run it on Linux using the Grasshopper 2.0 Technology Preview, Visual Studio 2005 and MySQL as the backend database. Says Mark: "The combination of Grasshopper and VMware made porting the Blog Starter Kit a breeze!"

The Race #2 winner in the Mono category is Rodrigo Queipo of Argentina. He used Mono's XSP ASP.Net server and SQL Server 2000 SP4 for the database.

Both entries duplicated the look and feel of the original application to the smallest detail and can be accessed from the Race to Linux Website.

Congratulations to the winers!

Update: I registered to download the ports and they run out of the box. You type run.sh and its up and running on Linux:

The Race to Linux site has the description on how the port was done by each participant.

Posted on 18 Apr 2007

Introducing: gui.cs

by Miguel de Icaza

Every once in a while, people ask us "Will the Mono project implement WPF/XAML?" or "What is your position on Apollo?".

Some suggest that we must have a one-to-one implementation available in Mono. Some others believe that we should implement a new GUI toolkit and plot our own destiny.

Some argue that to win the hearts and minds of the Linux community we should appeal, not only to the desktop users, but also to other members of the community: system administrators, designers, musicians, perl programmers and users of Midnight Commander.

There has been a lot of debate over Flash, Adobe's Atlas and WPF/E and how these technologies might be the future of application development.

For the past few months we have heard you loud and clear. And we have been working on a technology that we believe will revolutionize user interfaces.

Today we are announcing the response to Microsoft's WPF/XAML, a response to Flash and WPF/E. A cross-platform GUI toolkit (supports Windows, MacOS and Linux and is easily ported to new platforms) written entirely in managed code and 100% open source. It is completely licensed under the MIT X11 license terms as well, for your freedom-zero needs.

We have been developing this under secrecy until we had something worth showing to the world. It builds on years of building user interfaces, toolkits and frameworks.

This is a preview release, currently the major sample application is a BitTorrent client built using Alan McGovern and Gregor Burger's MonoTorrent library (Alan and Gregor wrote this library as part of Google's Summer of Code 2007).

You can download a tarball from here, browse the source code here. To build the software, you will need to also download monotorrent and edit the Makefiles accordingly.

The BitSharp GUI is something that I quickly put together this weekend, so it might need some extra polish, feel free to send your MIT X11 contributions my way.

Everyone loves screenshots, you can see a few screenshots here. Or go directly to main window, torrent control and options configuration.

You can also see an early prototype, from the days when no color was yet supported on it here.

Some documentation is here.

Windows.Forms UI for BitSharp

In other news, there is now also a Windows.Forms GUI for the BitTorrent BitSharp libraries, available in http://code.google.com/p/monotorrent/.

Posted on 16 Apr 2007

Google Summer of Code 2007: Mono Project

by Miguel de Icaza

The Google Summer of Code has begun!

A grand total of 24 students were accepted this year to work on various projects related to Mono. The list of students and projects accepted is available here.

For those interested in tracking the progress of the 24 projects over the summer, we have created a group for the students and mentors here.

Guidelines for students have been posted in the reference page.

And we have also created a Google Code Hosting site for all students to upload their code. If you want to track the actual source code development, the group is at http://code.google.com/p/mono-soc-2007/.

Update: fixed the links.

The list of accepted projects are:

by Ivan Zlatev, mentored by Miguel de Icaza
by David Srbecký, mentored by Martin Baulig
by Brian Nickel, mentored by Marek Habersack
by Hector Enrique Gomez Morales, mentored by Mike Kestner
by Jeff Tickle, mentored by Mike Kestner
by Lukasz Knop, mentored by Sebastien Pouliot
by Christopher J Parnin, mentored by Sebastien Pouliot
by Jesse Tov, mentored by Raja R Harinath
by Ben Motmans, mentored by Miguel de Icaza
by Marcos Cobeña Morián, mentored by Atsushi Enomoto
by Laurent Debacker, mentored by Mike Kestner
by George Giolfan, mentored by Miguel de Icaza
by Gernot Margreitner, mentored by Alan McGovern
by Jared Hendry, mentored by Alan McGovern
by Leonardo Pires, mentored by Marek Habersack
by Néstor Salceda, mentored by Sebastien Pouliot
by Artur Dwornik, mentored by Raja R Harinath
by Marcos David Marin Amador, mentored by Michael James Hutchinson
by Kenneth Parnell, mentored by Atsushi Enomoto
by Scott Peterson, mentored by Aaron Bockover
by Matej Spiller-Muys, mentored by Atsushi Enomoto
by Andrew Pendleton, mentored by Miguel de Icaza
by Nidhi Rawal, mentored by Sebastien Pouliot
by Khaled Mohammed, mentored by Massimiliano Mantione

Posted on 12 Apr 2007

First few hours with the Sansa Connect

by Miguel de Icaza

As of 2pm am the happy owner of the Sansa Connect.

The Sansa Connect runs Linux and uses Mono for its user interface, so am 100% biased about the level of awesomness that the device has.

Opening up the Sansa Connect

Zing should open up the development for the Sansa Connect.

The device has tons of potential: the great color screen, the Wifi, their custom-built GUI toolkit and the fact that they use C# and Mono to build all of this stuff.

In the last couple of hours, knowing that the device was running Linux and Mono, I could not stop thinking of the things I would like to implement:

  • Expose an http interface, so I can post songs to it over the WiFi instead of the USB.
  • Expose my device through HTTP, so I can download song from it using a Web client.
  • Post my songs to last.fm in addition to the Yahoo service.
  • Stream music from last.fm (we already have all the code to play it back) in addition to yahoo streaming.
  • Share my music list over Jabber (this is what Google Talk uses). I sadly have no friends in Yahoo Messenger, as I never have used it.
  • Add a picasa client for the pictures using Google-Sharp, again, because I gravitate in the Google universe instead of the Yahoo universe.
  • Allow the machine to stream from Shoutcast, HTTP or DAAP servers on my local networks (what I have at home and at work), this would automatically make it a client for the various iTunes machines around and use my server at home as my streaming source.
  • Update: I forgot to mention (thanks bhale!) last.fm playback (we already got the C# code, last-exit).
  • Games ;-)

I understand that going from being an embedded system vendor into a platform provider might not be easy but opening up the platform just a bit would achieve plenty. All that would be needed is:

  • Publishing the assemblies that the device exposes. The community can use `monop' to actually generate the public class definitions and prototypes. We could get by with little or no documentation.
  • Documenting a process for re-flashing, uploading or tricking their operating system into loading the new assemblies.

A hackable platform for portable media players would be one way of differentiating from the iPod. Growing an ecosystem of third party developers that produced applications and components for Zing's tools would make these devices more appealing than the iPod is.

The WiFi on the device and the complete stack really open tons of new options on this device.

Early Impressions

The device came in one of those plastic seals that are known to have caused more deaths that drunk driving in Guatemala. After a few seconds of Googling I gave up and teared the thing apart by cutting and bending until the thing was reduced to pieces of confetti. In the process I ruined Katey's scissors. Sorry about that Katey.

There was a sticker that said something along the lines of "IMPORTANT: Do not plug this device before installing the software". Or something about not turning it on before doing something. I would report the actual wording if the sticker was not burried underneath the remains of my tuna sandwich and the potato leak soup that I threw in the garbage can.

I ignored the sticker, because programmers know best. And besides, I was not going to plug it into Windows, I was going to plug it into Linux.

The device does not expose a USB mass storage interface, instead it exposes a Media Transfer Protocol (MTP) interface. Luckily we can use libgphoto2 and libmtp to access the device.

With the libmtp clients you can actually copy files into the device (the clients command line arguments are awful) which worked to upload "Don't fear the Reaper" and get enough cowbell out of it.

My Banshee was not compiled with MTP support and Amarok hung while trying to access the device. I shall look into recompiling my Banshee later with the proper support.

Internet Radio and the WiFi

This was fantastic. You select a wireless network and the little guy goes and gets an IP address and lets you play internet radio and browse Flickr pictures.

The Flickr browser seems fine, but am not really a Flickr user. It appears to come with a Yahoo messenger, but since I have exactly zero friends on my Yahoo Messenger (pretty much everyone I know has moved to Google Talk) I have not even tried it.


I am still pondering whether it is worth buying a Yahoo subscription for the device. The radio streaming from the radio stations on the device is pretty passable so am left wondering if I really want to give Yahoo 14 bucks a month. Am already paying Rhapsody and at least Rhapsody has a Linux web player (it sucks, but at least I can play it on Linux).

Two questions: Yahoo advertises that they have 2 million songs on Yahoo Unlimited. I am pretty used and happy with the music selection at Rhapsody, but I could not find how the music collections at both sites compare.

Rhapsody does not let me play music when am traveling outside of the US. I once read the excuse, but it must have been incredibly lame because I did not bother to remember it.

Would Yahoo let me play music when I travel? Decisions, decisions.

If I buy the Yahoo service, would they allow me to http get DRM-ed songs to upload to my device, so I can play all my music on Linux?

Posted on 10 Apr 2007

« Newer entries | Older entries »