Diary of a Web Media Player

by Miguel de Icaza

On Scott Guthrie's blog I found out about Jose Fajardo's journey on learning Silverlight.

Jose decided to write an iTunes-like media player using Silverlight. He has documented his development in about 20 blog posts here.

His application looks like this:

His exercise is aimed towards pixel-similarity with iTunes. Joe Shaw took a more Web-by approach at playback on the web.

Posted on 02 Sep 2007


Am Becoming Chubbier

by Miguel de Icaza

I just noticed that I can barely fit in a shirt that used to be my favorite two years ago. It must be the large amount of fat in those carrots:

	miguel: I think am becoming chubbier
	snorp: it's your part-time veggie diet
	snorp: carrots are high in fat
	snorp: stick to cow
	

Posted on 31 Aug 2007


Moonlight Designer

by Miguel de Icaza

Alan McGovern who worked with us last summer as part of the Google Summer of Code to build a BitTorrent API for Mono called MonoTorrent joined us at Novell this summer as an intern.

When Alan arrived in Cambridge we had just decided that we would start our hack-a-thon on Moonlight to demo whatever we could get done in 21 days to show at the Mix Paris event.

Alan worked in the summer on a XAML designer for Silverlight that he called "Lunar Eclipse":

Ok, do not make fun of it. The important stuff is the engine, not the looks. Am sure Christianism has a quote for this, but I would not know how to google it up, but something like "look at the heart, not at the look". And if not, it is probably on one of those self-help books that I got at a discount price on that bookstore in Newbury St before they shut down.

The idea was to write the Silverlight designer in Silverlight itself. Currently our designer uses Gtk+ for its user interface plus a Silverlight surface for the designer. We felt that we could also build a web version of it and hence tap into the MacOS crowd that would not have access to the Blend designer either.

He started when we barely got anything working, it was quite challenging, because every few hours the code would be in a completely different stage. He reported more bugs than anyone else as he was our first "native" user of Moonlight.

The designer is able to serialize the designs into XAML, it is possible to hand-edit the XAML and go back to the rendering surface and is also has a timeline editor for creating animations.

Some videos for your pleasure created by Alan:

Of course, our long term goals would be to polish this up and create a Mono Add-In for MonoDevelop to offer a complete Silverlight development stack on Linux.

On the development stack side, we have most of the bits to have a Silverlight development stack for Linux, Unix and MacOS ready. Sadly this will not be part of Mono 1.2.5, it will be part of our next release: Mono 1.2.6 scheduled for sometime in October or November. The adventurous among you can already use this by using Mono from SVN (for full instructions, see this link).

You might notice that LunarEclipse lacks file loading and file saving. This was because Alan insisted that file loading must use the Bittorrent protocol (his argument was that XAML files one day could span multiple gigabytes), but he did not know how to save files with Bittorrent.

For the time being, you can use cut-and-paste to load and save your XAML files. Either that, or send us a patch ;-)

Working with Alan this summer was a pleasure. It was my first time working with an Irish that considered the idea of a "seven course meal" to be a six-pack of Guinness and potatoes. The good news is that we turned him around, and by the end of the summer he was an avid chicken-quesadilla consumer.

Posted on 31 Aug 2007


Nice Unity Interview

by Miguel de Icaza

An interview with Nicholas Francis from Otee, the makers of the Unity game development system.

The Unity folks have been reusing the Mono JIT engine as a game engine, here is a nice blurb about what Mono got them:

If I have to pull out a specific feature it would be our scripting interface: We use Mono to get C#, JavaScript and Boo languages in there for gamecode. This means you get a scripting language running incredibly fast (*footnote: Initially, we used Python for GooBall. With that we were spending 50% of the CPU time inside scripting code. When we switched to Mono, the same functionality dropped to 1-2% CPU usage - we were completely blown away with how fast it is.) so this is what you make your games in (we also have C++ plugins for people who are passionate about C++ or need to use an existing library). When you make a Mono class, all public variables show up in the inspector for easy modification. So basically, Scripts are 1st class citizens of Unity. We're also using Mono for extending Unity - It really is that good.

Hopefully, when I have some spare cycles (hahahaha) I would like to assist the Unity folks in porting their game engine to Linux.

Once we have a port to Linux, we could run most of the games unmodified (the only exception would be those that require C++ plugins), educational software, architecture and advertising software that is being built today with Unity.

Posted on 31 Aug 2007


Google SoC: Gtk# Ribbon Library

by Miguel de Icaza

This is the first on a series of posts to comment on the results from the students that contributed to Mono as part of the Google Summer of Code.

Laurent Debacker completed his Ribbons widget for Gtk#:

You can also see the widget in action in the following screencast: Ribbons-final.ogg.

Laurent posted his final SoC status report on this blog entry.

Laurent needs a special mention because he also documented this class.

My hope for this widget would be:

  • To move the widget to Mono's SVN repository from the Summer of Code temporary repository.
  • To start packaging it for developers to start using and provide packages for multiple distributions.
  • Get applications to start using the Ribbon. Am I crazy thinking that MonoDevelop could take advantage of the Ribbon to better expose the extensive functionality it has?
    Nobody has used the Ribbon for an IDE before. This has a lot of potential.

Update2: Laurent followed up with a proposal that he had drafted to improve MonoDevelop with the Ribbon UI. What a funny coincidence!

Update: Alan found some nice prior-art applications that used the Ribbon-like interface:

Alan posted on some blog comments a few months ago a much better screenshot. If you own that blog, and remember it, please post the link.

Posted on 30 Aug 2007


Gtk+ on OSX

by Miguel de Icaza

Michael Natterer posts on the work to integrate the Gtk+ menu with the OSX menu:

A video is available here.

Congratulations to the folks involved in getting Gtk+ running on OSX.

Update: Replaced the ugly screenshot with a beautiful one from Mikael Hallendal from Imendio.

Posted on 30 Aug 2007


Automatic Playlist Generation Using Similarity Models

by Miguel de Icaza

Dominik Schnitzer's Mirage is an automatic playlist generation plugin for the Banshee Media Player.

This is what makes it interesting:

Mirage uses the latest AI/music information retrieval techniques to compute a similarity model for each song. So before you can use Mirage to automatically compute playlists, your whole music collection has to be analyzed once.

After it is analyzed just drag and drop a song you like on the Playlist Generator item in Banshee and a playlist with similar sounding music will be computed.

Mirage is by far not perfect! Yet :-) - Imagine it is a radio station playing songs from your collection.

Video: banshee-mirage.ogg.

Posted on 30 Aug 2007


Nice Mono Testimonial

by Miguel de Icaza

Found this today, it is a very nice testimonial from someone that tried out Mono to port their code using our VMware image.

This is for ProMesh.NET a Web platform built on top of the basic System.Web that replaces ASP.NET:

I was a little curious to see how ProMesh.NET (MVC Web Framework for .NET 2.0) would run on Mono (if at all), so I did the following:

  • Download the VMWare image with a pre-installed Mono installation on SUSE Linux 10.2
  • Download VMPlayer (free)
  • Copied the latest ProMesh.NET source tree to the virtual machine
  • Fired up MonoDevelop
  • Compiled the framework... Works (well, it compiled)
  • Copied the ProMesh.NET demo application to the virtual machine
  • Compiled the demo app... Works!
  • Started xsp2.exe (the lightweight .NET web server for Mono)
  • Opened the index.ashx page using FireFox: WORKS
  • Went through the complete demo site. Everything worked!

    I was utterly amazed by the painless process of compiling and running a ProMesh.NET application on Mono, something I've never tried before (I did have some previous experience with MonoDevelop, but not a lot).

    This is pretty exciting stuff, knowing you can just grab your ProMesh.NET web application, dump it on a Linux box and run it from a Linux web server.

  • Posted on 30 Aug 2007


    Vegetarianism

    by Miguel de Icaza


    Vector-based, then rasterized, electronic carrot.

    As a part-time vegetarian, I face some small problems. They do not bother me very much, but I feel discriminated by both my meat-eating friends and my full-time vegetarian friends.

    The former mock my ways, the latter doubt my commitment.

    Posted on 29 Aug 2007


    Replying to My Critics

    by Miguel de Icaza


    Vector-based, then rasterized,
    electronic burger with bacon.

    Some people continue their unabashed criticism of my life-style choices.

    Yes, that was a meat burger with bacon. But as I also explained before we walked into the burger joint that consuming such a burger configuration was perfectly within the limits of my part-time vegetarianism.

    I was not on veggy duty while I chugged it down.

    Also, for those interested, recommended link of the day: The Meatrix.

    Update: My critics have also pointed out my spelling mistakes in the sphere of meat-related naming actitives.

    Posted on 29 Aug 2007


    « Newer entries | Older entries »