Wow. Adobe Buzzword

by Miguel de Icaza

I am blown away by Adobe's Buzzword web-based word processor.

It feels like a great native application, with great widgetry and lots of attention paid to the details.

Posted on 02 Jun 2008

More Gtk# Widgets

by Miguel de Icaza

I had forgotten about Medsphere's LGPLed Gtk# widgets, the Medsphere Widgets.

Today Brad blogged about them.

This is my favorite:

Posted on 02 Jun 2008

Holly Gtk Widgets

by Miguel de Icaza

Daniel has announced his "Holly Widgets" for Gtk#. A collection of useful Gkt# widgets. The widgets also support MonoDevelop/Stetic integration.

The code is available from

Picker screenshots:

Font picker.

Date and time picker.

Color picker.

Nice extensions:

Baloon Tooltips.

Regular expression validating entries.

IP address entry.

Combo box with file system navigation.

Simplified API wrappers:

A simple combobox.

A simple list (avoids TreeView binding, and supports Measure/Draw on a per-item basis).

Simplified tree view API.

Combo box with tree view.

Daniel also has nice samples and documentation for all of his new widgets.

Posted on 01 Jun 2008

Custom Controls in Gtk# Article

by Miguel de Icaza

CodeProject has a nice article by Olivier Lecointre on how to write custom Gtk# controls.

Sample widget from the article.

Oliver writes:

I recently made the switch to Ubuntu and I am quite delighted with it. I develop mainly on .Net and my dependence on some Windows tools was the sticky point that made me wait this long. This is now not really an issue, thanks to the great work of the Mono and MonoDevelop teams, and the related libraries like Gtk#, Cairo and Pango.

Mono brings the .Net platform to Linux and MonoDevelop offers a good alternative to Visual Studio, making the development of GUI applications on Gtk desktop almost painless.

I wrote a cooperation tool that I use on a daily basis and my first goal after the switch was to port it over with Mono and Gtk#. After a few adjustments caused by the fundamental differences between Windows.Forms and Gtk#, I have to admit that the port of the application was a lot easier that I initially thought; I replaced the UI controls by widgets, set the various forms to use the Gtk# layout, and that is pretty much it. The rest of the non UI code worked as expected with an overall good performance.

An area that gave me the most difficulty was the usage of custom controls with a behavior that is different from the base Gtk components. This is the focus of this article.

Posted on 01 Jun 2008

Mono Embeds Nabble

by Miguel de Icaza

Mono has always been developed on mailing lists like pretty much every other classic open source project. But many of our younger or migrating users are more used to Web-based forums and have always wanted to have a forum-like interface for the Mono mailing lists.

Thomas Wiest and Joseph Hill have just finished the integration Nabble into the Mono web site. Now people can access all of the Mono mailing lists with a Forums UI.

Messages posted in the forum will go to the appropriate mailing list (either hosted at or, and messages posted on the mailing lists get reflected on the forums.

You can access the forums here.


Message View


Posted on 19 May 2008

Silverlight 2.0 Hello World

by Miguel de Icaza

Silverlight's 2.0 deployment model changed significantly from the 1.1 alpha model. In the past you would load a XAML file, and then on demand load any managed libraries referenced from the XAML file before parsing could continue.

With Silverlight 2.0 the model has changed. One of the downsides is that now you deploy things as a ZIP file with a manifest file which feels obnoxious. On the upside, the loop "try-to-parse-or-keep-requesting-files-from-the-browser-until-all-dependencies-are-downloaded" is now gone. Now you get a zip file asynchronously, unpack it, load all the assemblies in the zip file, create an instance of the class specified as the entry point, and off you go. No more latency.

This hopefully also solves an obnoxious pattern that was common in 1.1: calling createFromXaml from Javascript could hang execution while Moonlight waited for the browser to fetch a missing assembly.

This week Silverlight 2.0 said hello in Linux:

This corresponds to the standard template with the content of the user control set to a TextBlock.

There are some peculiar patterns in Silverlight 2.0 instantiation model. Instead of creating objects from a XAML description, an object of a known-type is first created, and then the object is initialized from a XAML file. Your object is supposed to call LoadComponent ("my-xaml-definition") to initialize itself.

Posted on 18 May 2008

Games Worth Playing

by Miguel de Icaza

As you might know, I do not consider myself a gamer although I now understand the Penny Arcade cartoon.

I have done my best in the past year to increasing BestBuy and Game Stop share holder value by dumping thousands of dollars in my quest to be entertained by video games.

The games that I actuall enjoyed playing are very few:

  • Wii Sports, but the fun fades away after a couple of months.
  • Metroid Prime 3, on the Wii, fantastic controls.
  • Ratchet and Clank on the PS3, incredibly fun.
  • Bioshock on the xbox360, by far, my favorite game.
  • Ratchet and Clank on the PSP, just because I love the PS3 version so much.
  • Sudoku on the DS.
  • Update: I forgot the incredibly fun Simpsons game.

I continue to refuse to play propaganda games and do not enjoy sport games, racing games or fantasy games. I could not get into the games in the Orange Box, even if everyone loves it (Portal was ok). And I have not tried Rock Band or Guitar Hero because I do not want to have a drumset ont he living room.

I guess I like games that have a developing story and are not very repetitive.

Is there anything like Bioshock on the game pipeline?

Posted on 18 May 2008

Moonlight - Full Packages Available from Packman

by Miguel de Icaza

Larry Ewing pointed this out.

PackMan now has full packages of Moonlight for OpenSUSE users (it includes ffmpeg codecs).

You can use these packages to check some videos at channel9 or see the dual-stream updated videos from Mix 08. Keep us posted about bugs and limitations.

Posted on 17 May 2008

Google IG and Sudoku

by Miguel de Icaza

A few months ago, am not sure how, but Nat talked me into getting a widescreen laptop. I no longer remember what were the touted benefits of it, but this warpig of a machine is both buggy and heavy.

Since the warpig is just too heavy to carry home every day (and also requires a base station hooked up to high-def output to stay at 2.4 GHz of speed) I just leave it at work and use my five year old computer at home to surf the internets. When I bought the machine I remember distinctively describing it to friends as "a silent computer". Five years later every time I load a new web page the fans make as much noise as the construction site across the street. Was I deaf back then, or did the fans become dirty and loud?

I am a fan of Google IG, and recently I discovered that they have a tiny IDE that you can add to your Google IG page. So I decided to try to write a Silverlight Sudoku application entirely using that tiny editor in my old computer at home:

I actually cheated a little and used Emacs here and there every once in a while.

But I ended up with this cute Sudoku/Silverlight application that has exactly one puzzle:

I am very proud of my one-puzzle Sudoku because it has some of the features that I like from Big Bang's Sudoku (click to flag, double click to set the value, hints) and some cute and simple animations that I wrote in xaml and shows my allegiance to the clean and simple configuration religion:

I published it on IG as "Moonlight Sudoku". To add it to your IG home page, go here and click "Add to Google".

Now the only problem with it is that it seems to work just fine with Firefox but seems to have problems with IE and Safari. I must be doing something wrong with Javascript, but I have no idea what it could be. If you can find the bug, let me know so I can make it work on other browser.

My toy sudoku only has one puzzle, this is clearly a design decision to prevent people from becoming addicted to Moonlight Sudoku. But if you know of a source of http-fetchable Sudoku puzzles, let me know, as I might want to revisit this design decision to include more puzzles.

You can download the self-contained module (ig + html + xaml + js) from here. You might also need the Silverlight.js file.

In clear violation of David Mamet's advise to the aspiring actor, I am now going to act surprised:

In other news, Firefox 3 RC1 came out, and the release notes have nothing to say about the bugs that prevent Silverlight from working with it.

Posted on 17 May 2008

First Moonlight Release

by Miguel de Icaza

Today we are making the first public release of Moonlight, supporting the Silverlight 1.0 profile for Linux. The release comes in two forms:

  • No-media codecs supported, but easy to install: head to and click on the cute installer for Moonlight. This currently hosts builds for Linux x86 and x86-64 for Firefox.
  • Source-code compilation, but you can optionally compile FFMpeg codecs yourself. To do this, download our moon-0.6.tar.bz2. And follow the build instructions.

Update: I apologize for the confussion; This is not Moonlight 1.0, this is the first source code release that we are making of Moonlight for interested contributors and developers. This release is not even a Beta release, as we are not yet feature complete (missing components in media codecs, the media pipeline, as well as fixing about 70 known bugs). Apologies for any confussion.

Although Moonlight works on Firefox 2 and Firefox 3, recent changes in Firefox 3 prevent Silverlight and Moonlight from working (For details see #432371, #430965). There is a user contributed Greasemonkey script that will work around this bug for some sites (requires Greasemonkey).

Windowless: Moonlight supports "windowless" mode, a mechanism that allows Silverlight content to blend with other HTML ements on a page. This is only supported by Firefox 3, users of older versions of Firefox might run into Silverlight applications and web sites that do not work correctly as many Silverlight applications depend on this functionality (Flash sites have the same problem with Firefox 2).

1.1 and 2.0 support: This release only supports the Silverlight 1.0 profile. The 1.1 support is no longer maintained and the release happened at the time when we are transitioning the APIs to 2.0.

If you find bugs, please file them for us to fix.

Posted on 13 May 2008

« Newer entries | Older entries »