by Miguel de Icaza

Joshua is a long time contributor to Mono and on his copious spare time he works maintaining the GovTrack.US web site. He has just completed his port from Perl to Mono.

Let me quote Joshua:

So now if you go to, you get my new and improved Mono-powered site. I probably said this last email, but using Mono has been unbelievably easy and helpful.

Congratulations to Joshua! And we will keep an eye on Monologue for his comments.

Mono book at XML conference

Edd reports that his Mono book was the top seller at the XML Open conference:

O'Reilly had a book stall at XML Open, and I was very glad to hear that Mono: A Developer's Notebook was the best-selling book during the conference. Very amusing, for an XML conference!


The way that people can help best is to ask for the book in their local stores and get them to order it. If lots of requests show up from stores, then it really helps make a case to the central buyers for ordering it.

Posted on 29 Sep 2004

Chomsky on Video

by Miguel de Icaza

In the last couple of years I attended a couple of talks from Noam at MIT and Harvard. Excellent talks, if you were not able to attend these, you might want to get the DVD.

It comes with the presentation at Harvard and a Q&A section from both events.

Duncan sent me a link to The Life of Joe Republican, very funny, excerpt:

All but $10 of his medications are paid for by his employer's medical plan because some liberal union workers fought their employers for paid medical insurance - now Joe gets it too.

On the other end of the spectrum

On the other end of the spectrum, multi-billionaire George Soros gives his opinion on Why We Must Not Re-elect President Bush.

Follow up: Bruce Springstein interview detailing why he had to take a position on this election.

Interview with Mikael Hallendal

Mikael is the founder of Imendio, there is an interview with him at OSnews on the subject of Gtk+/Gnome commercial support.

Solaris and the Linux kernel

I read with alarm the discussion between the Solaris kernel engineer and some Linux dude. I have to say that it is a bit sad that the Linux dude did not understand the points of the Solaris kernel developer.

It was a bit embarassing to read the arguments from the Linux dude. And I found myself agreeing more with the Solaris engineer which clearly articulated the rationale for his decision. On the other hand or Linux friend just launched a long tirade of fanboyism and flames.

This is the wrong way of advocating Linux. I have always maintained that to effectively compete you should never compare the downsides of your competitor with your advantages, that just leads to the placebo effect you can see from the Linux guy: "everyting we do is fine, there is no need to improve". He got defensive. But this is exactly the wrong attitude to take because in this mode of operation you do not react and do not take steps to improve. What the Linux community should do is compare the strengths of Solaris and the weaknesses of Linux. Maybe there are things that can improve, maybe there are cultural changes that can take place but dissing someone else on these grounds is not going to improve our loved kernel.

When Sun decided to adopt Gnome as their desktop environment there was a big discussion about API stability, an issue that many of us although peripherally aware of, did not take as seriously as Sun did. We have to thank Sun for bringing that culture into Gnome, and I wish that the same culture spead further to other projects.

Reverse Migration Linux to Windows

The slashdot thread at +5 has some very interesting insight on the latest Get the Wrong Facts campaign from Microsoft. The best responses: one, two but in general everything at +5 is worth reading.

We are all stoned slackers

Awesome Interview Transcript: Jon Stewart being extremely classy in his replies to the ad-hominem comments from O'Reilly.

According to O'Reilly viewers of the Daily Show are stoned slackers, research apparently proved the opposite: the audience of the Daily Show is more likely to have completed four years of college as opposed to the O'Reilly audience. Me not having completed college probably puts me on the `stoned slacker' category.

In other news:

Posted on 28 Sep 2004

Managed Windows.Forms update

by Miguel de Icaza

Jackson just posted an update on Mono's new managed implementation of Windows.Forms.

JavaScript update from Cesar

Cesar has posted an update on his work on the JavaScript compiler for Mono, it is here

Jon Stewart's new book

I own it now.

Johannes Software Page

Mandatory link to Jon's blog. His software page has various C# programs.

Two more things to go

Todo list getting shorter: parameters missing, fix iterators (which I broke), switch statement, write rationale and author ChangeLogs:

  Test passes: a-call.cs
  Test passes: a-capture1.cs
  Test passes: a-capture2.cs
  Test passes: a-capture3.cs
  Test passes: a-capture4.cs
  Test passes: a-capture5.cs
  Test passes: a-capture6.cs
  Test passes: a-capture7.cs
  Test passes: a-capture8.cs
  Test passes: a-event.cs
  Test passes: a-instance.cs
  Test passes: a-nested-anon2.cs
  Test passes: a-nested-anon3.cs
  Test passes: a-nested-anon4.cs
  Test passes: a-nested-anon.cs
  Test passes: a-nested.cs
  Test passes: a-parameter2.cs
  Test passes: a-parameter3.cs
   Test fails: a-parameter4.cs
  Test passes: a-parameter.cs
  Test passes: a-simple.cs

Code drop

Posted on 21 Sep 2004

Trip to M�xico City

by Miguel de Icaza

I will be talking to some Novell customers in Mexico City about Novell Linux initiatives and some of the Novell offerings on Thursday September 20th, if you want to come, register here.

A Nation Divided

I found this link from Jon Udell's blog: Valdis Krebs has graphed the books purchased in online retailers and has come up with a pretty interesting view of the nation based on the book purchasing patterns.

It begins in 2003 continues in early 2004 and there is a recent update

Atsushi Enomoto on the Move

Super-hacker Atsushi Enomoto is on the move. He will be at the XMLOpen conference in the UK representing the Mono team, and later will land in Boston for couple of weeks to do some local hacking and consume lobster sushi.

Evolution 2.0 is out

Evolution 2.0 has been released.

Shame about the shortcut bar being gone, I never use the folder list, I have my life organized using shortcut bars.

Posted on 20 Sep 2004

MD5 security: great blog entry

by Miguel de Icaza

Sebastien has posted his thoughts on the MD5 vulnerability. Check it out!

Robert Cringely

I always find Robert Cringely engaging on his articles, and his last installment follows this tradition. Some would say its nothing short of insanely great.

Anyways, a couple of thoughts:

  • 50,000 or so geeks over at Microsoft spend some portion of their time thinking `How can we defeat/block Linux' and they come up with some pretty crazy ideas. In this installment Robert makes the point about the new USB system, but this is just one angle.

    It is clear from Chris Anderson's last post that it is an ongoing strategy to come up with schemes that will lock Linux out (even if they are highly inadequate for the world where scams are the rule of the day).

    Avalon's feature set is one of these creative things they come up with. I am convinced that they see Avalon as the tool that will replace the Web (the marketing folks will step in and claim that they `augment the user experience').

  • The software industry like no other one has a tremendous flexibility to create completely new models and abstractions, roll out prototypes and such.

    Maybe we are reaching a point where we need government regulations on the software industry or in some of its components. An explicit acknowledgment of Linux and open source players as an important player in consumer choice.

    Ah, not only had I suggested that when Slashdot posts a link to the MS lobbying efforts.

Speaking of augmenting the user experience. It is clear that plenty of work can be done today to augment the user experience of the web: GMail and Google Local services is leading the pack in smooth user interfaces. Everyone is raving about the keyboard navigation, the clean look and the good interaction of GMail, while am delighted to see the clever hacks to explore maps without doing page reloads.

And finally there is A9 who also sports a great user interface on the Web.

Firefox reaches one million downloads

Firefox reached one million downloads ahead of schedule. Congratulations to the Mozilla hackers!

Java APIs too academic

Someone else also thinks that Java APIs got too academic: here

Posted on 19 Sep 2004

Tomboy: the latest hack from Alex

by Miguel de Icaza

Alex has released into the world his tomboy software. Check it out. Am addicted to it.

Kerry Followup

Another reason to vote for Kerry: to avoid more de-regulation.

Been enjoying reading Stiglitz's new book: The Roaring Nineties.

Posted on 18 Sep 2004

Follow up to John and Todd

by Miguel de Icaza

John list of reasons to vote for Kerry was zero, so I figured I could cook up a few interesting links:

  • Chomsky said: "Kerry is sometimes described as 'Bush-lite', which is not inaccurate. But despite the limited differences both domestically and internationally, there are differences. In a system of immense power, small differences can translate into large outcomes."
  • For an outsider like me, it seems interesting that Democrats can fix the deficit, while republicans like to get in debt, nice graph.
  • Military spending will not likely make the US more secure, see Zinn. Am not an American, but am living in the USA, so I care about my security.
  • Kerry's position on greenhouse-gas emisions.
  • Kerry's non-nuclear proliferation.
  • Kerry's position to embrace science instead of ideology. Contrast with the current administration distorted research.
  • Kerry's economic policies were endorsed by ten nobel prize winners. I guess its simple to have better policies than Bush, as Nobel economic winer described the current policies: `The worst in 200 years'.
  • MoveOn has a few ads. My favorite: the fisherman (Richard Dove).
  • Woody Allen thinks that voting for Bush for him would be tragic, extremely tragic.

I guess am biased being the son of a scientist and all that.

New Chomksy

A new piece from Chomsky.

I also found his blog. Wonder if Chomsky uses Emacs being from MIT. I have always wondered how approachable Chomsky would be to have dinner with my friends. Anyone have his email address?

Gnome Updates

A new publication: Gnome Journal to keep up-to-date on interesting bits from the Gnome world.

Gnome 2.8 was released: fancier, simpler, cleaner and more hip than ever.

I had dinner with the Fluendo guys in Barcelona last week at Thomas' place days after they had released their Theora Java applet. The quality is very good, and the best thing is: you do not need to install any software on any machine to watch live video streams from Theora servers. They will be happy to sell you a streaming server.

The Gnome Summit announced its dates; this year in Boston will be held in the Stata Center in MIT, the new gorgeous buliding across the street from the Cambridge Novell offices where we work from: Mark your claendars.

Jeff's company launched their new distribution: Ubuntu. Not only they picked a great name for their company, but they are adding timed releases to Debian, I would say the major problem for Debian's adoption (please do not send me email saying `just use sid/whatever' or `Debian testing is great for me').

Evolution 2.0 is finally out according to the state page. But I can not find the official announcement. An overview of some of the new features is here

Errors and Warnings

When I started using C# on the early preview days of .NET, one of the first things I noticed is that the compiler did quite a lot of work to produce helpful error messages.

While implementing MCS, we noticed that it went beyond the obvious internal checks of the compiler: the MS C# team actively had to add extra work to produce a more meaningful error. This is in addition to C#'s definite assignment requirements which by itself catch plenty of errors that are commonly introduced in C.

Recently Marek Safar has been on a quest to refine our error and warnings to produce as many as the MS compiler does and to fine tune our reports. We are not there yet: today we catch 617 errors/warnings, we fail to report 18, and we report differently in 136 cases.

The parsing errors are the most difficult to cope with our compiler as we used Yacc to build the parser and the parser recovery is a lot harder than if you do your own top-down parser (something that we might do in the future).

Being Fabulous

I did a presentation on Mono last week at the Universidad Oberta de Catalunya, here is the: video.

I was exhausted when I did the presentation, having slept only four hours for the past fourty-eight due to the jetlag, the dinner following up was excellent, I had a chance to talk to a few folks afterwards.

Posted on 17 Sep 2004

Back from Barcelona

by Miguel de Icaza

Noticed that Matthew MacLaurin from MS research weight in on Nat's work on the dashboard, WinFS and metadata.

Paco has posted a nice update for those who want to use Gtk# on Windows: simple installers and integration into Visual Studio as well as videos to see for yourself how to use it.

Nat's keynote presentation this morning was excellent: plenty of content packed in the fifteen minutes they had allocated, and they showed some Groupwise integration, F-Spot and collaboration features using iFolder.

The best feature of iFolder in my opinion? Being able to share the folder with myself in different computers: my laptop, my Windows box at work, my Mac at work and my two computers at home. The idea is simple: now all the data gets replicated and I no longer have to worry about which machine has the latest version of a draft.

Massimiliano explains his SSAPRE implementation for Mono. Massi has been working on implementing the large optimizations for the Mono JIT engine.

Gonzalo and Ben have been working on making Mono's ASP.NET implementation scale and perform better. The upcoming 1.1.1 release will contain all the goodies. Get ready to be impressed.


I will be in Mexico City on Tuesday. To reach me, call my US cell phone number, I doubt my local phone works anymore.

Posted on 16 Sep 2004

Arrived in Paris

by Miguel de Icaza

Hanging out at the Paris airport, it was about time they had wireless access. Waiting for my plane to Barcelona.

Posted on 11 Sep 2004

Avalon part 2

by Miguel de Icaza

Chris Anderson from the Avalon team replied to some of my points that I made last week

First, let me stress again that I think that the guys over at the Avalon team are doing some fantastic work and probably have had to make some hard decisions and have a lot on their plate.

Cris, As I said in my previous post, if Avalon really takes off, we might look into bringing that API to Mono as well.

My concerns stem from the fact that we do not want to waste our time with dead-end APIs as we are vastly under-resourced, so we must choose carefully. With that in mind, and keeping in mind my bias.

I agree that solving the low-tech attacks effectively with software is probably a research subject. And I appreciate that you guys are putting a lot effort on the security infrastructure for WinFX, Avalon and .NET but it still falls short: it will not resist the low-tech attack today.

Bruce Schneier has a good introduction to attack trees. The core is that in any system that is to be secured an attacker only needs to choose the weakest link. In this case, Avalon's ClickOnce just seems like a disaster waiting to happen. Imagine Outlook viruses gone wild.

Solving this is extremely simple, the answer is well known: do not allow ClickOnce-like technologies.

My guess is that the problem is that this goes against the fundamental reason for the existence of Avalon.

Joel's latest piece has some good points on the role of software in societies. It seem that engineering organizations are too much in contact with the technical details of how to make things happen, without looking at where and how the software is going to be consumed.

Certain things in the Gnome world have been hard explicitly to avoid problems of this nature (the never-shipped and luckily-defunct executable-mime-type handler is one example).


Anyways, my problem is that it seems that Avalon is trying to do too much too soon. It seems to be following the over-designed footsteps of Java's Swing: it avoids the over model-view-controller-itis, but it introduces its own pains and has the elements of a second system

The surface area is just of gargantuan proportions, sure, if you are dealing with a `Button' you will be fine. But hey, it was relatively simple to build buttons with Motif and Swing too.

You are right that it is unfair to comment on a product that is not even beta, but if you guys are shipping in 2006, I do not see a lot of room to maneuver there. I can only hope I am wrong.

Tk and XView are nice examples toolkits that hide the complexity from the user each on their own ways. These toolkits encapsulated the complexity and exposed only the basics to the user: they provided fairly high-level building blocks and the rest was tucked-in behind the scenes. On the other side, we have things like Avalon where the implementation details transpire at every level: not only is the developer going to use the high-level building blocks, but he will be exposed and will face the internals.

Am not arguing that it is necessarily bad, but it is easier to expose as little as possible and add features on an as-needed-basis than it is to come up with a large framework and maintain every implementation decision made today.

By exposing as little as possible you have a choice when it comes to architecting the internals, and most importantly to re-architect the internals in the future if you must. A clean separate between the exposed API and its implementation. But Avalon does not have this luxury: the API is the implementation and the API transpires very much of the implementation (mind you, this is very convenient for people interested in re-implementing it, while tying their hands to an existing design).

I read with interest the various justifications for not following the standards just when Avalon was coming out, I wont argue about the merits of the CSS one, but the case for not using SVG is particularly poor: `not using pascal casing', `not using full english words'?

It can only make sense in a world of only-Microsoft technologies, but even there, you are shooting yourself in the foot: collaboration with others might be initially difficult, but it has always paid off in nature.

Collaboration of Microsoft with competitors tends to be difficult. Maybe there are ways we can improve this.

As for missing features, there are ways of driving the standards forward. For example the whatwg group is finally moving the web forward again.

In any case, thanks for listening Chris, and lets hope that you guys can improve Avalon, but in the meantime some folks are considering the options, Joel has two good articles: API war and his call to arms to improve the Web with some followups. Update: Fixed a few typos.

Mono Updates

Sebastien has posted an update on CAS.

Our XQuery implementation was born on August 20. Atsushi has posted an update on System.XML 2. You can also see his prototype to call CIL from XQuery.

Debating trip to Redmond

Due to some other commitments it seems unwise to attend the TG2/TG3 ECMA meetings in Redmon on the week of the 20th.

Am wondering if I should fly in on Sunday to attend the Tuesday meeting. If there are people from Microsoft interested in meeting on Sunday for dinner and Monday (nothing formal, just chilling out and debating software things). That might make for two useful days: one ECMA and one of chilling out.

Thoughts? miguel at novell dot com is the address.

Have to make a decision on the next 48 hours.

Another Molly Ivins Gem

Molly Ivins can write very well.

Greg Palast on Choice Point

Greg Palast on Choice Point and the DNA database of every citizen:

These guys are in the Fear Industry. Secret danger lurks everywhere. Al Qaeda's just the tip of the iceberg. What about the pizza delivery boy? ChoicePoint hunted through a sampling of them and announced that 25 percent had only recently come out of prison. "What pizza do you like?" asks CEO Smith. "At what price? Are you willing to take the risk?..."

Oh my god! Good thing I get my Pizza from the frozen section at the minimart. I feel safer now.

From Planet Gnome

Some great animations.

Posted on 09 Sep 2004

On Resolution

by Miguel de Icaza

I have been using a laptop with 1400x1050 for more than a year, probably two years. Recently I have been considering getting something more hip, to go with my hip nature. Something like the IBM X40.

The only problem I have is that anything below 1400x1050 now feels to me like this:

Posted on 08 Sep 2004


by Miguel de Icaza

Associated Press: Beating the last year record of 375 billion dollars, this year the projected deficit is going to be 422 billion.

Taylor just sent this note:

	Budget Deficit  $442,000,000,000
	                      divided by
	Workers              141,700,000 (Census Bureau)
	Equals                     $3119 per worker
	I hope you all are ready to work extra hard next year.
	 Flak Jackets don't grow on trees.

Economic girlie men with a twist.

Update 2: Am sorry for updating this so many times, but I could not help but make a reflection. The `do not be a girlie man' defense of economic and tax policies sounds as idiotic to me as the defense of the internet boom business models. I can not help but think back at how a few people warned of the coming catastrophe and people laughed at those who were wondering where the profits were and how those things would be sustained.

It seems that the current economic and tax policies are rooted not on careful economic research but in punch lines. That bubble is going to burst.


I will be going to Barcelona on Saturday for the Novell Brainshare conference.

Jordi has also organized a public Mono/Gnome presentation at the University Oberta de Catalunya on Tuesday (September 14th).

Update: The location is: UOC, Avgda. Drassanes, 3-5, Barcelona at 7pm. I will try to drag Nat Friedman along.

Nat in Barcelona last year.

Peace Activist Detained

Guardian: On Sunday, the military placed Ms Fahima in detention without trial using a law applied to thousands of Palestinians over the past four years of intifada but rarely to Israelis.

Posted on 07 Sep 2004

Longhorn changes

by Miguel de Icaza

Last week's announcement of the changes in Longhorn were interesting: the backporting of Avalon and the removal of WinFS from the mix.

It was clear that the only way to get Avalon adopted was by backporting it in some capacity to older operating systems. By June 2004 XP had 51% of the market while 40% of the market was still held by Windows 95, 98, ME, 2000 and NT. This is after three years of XP having being available to the public.

If Longhorn was going to ship in 2006, developers could not target Avalon as their UI for at least another three years, Microsoft's recommendation was just as disheartening. Of course this is assuming that Longhorn would have the same adoption rate as Windows XP.

Incidentally, this was the reason why we decided to redo our Windows.Forms implementation: if Avalon was not going to be common platform for development until 2009 people would continue to target the Windows.Forms API. The announcement from last week closes the gap.

As I have discussed earlier, Avalon is the latest edition of developer lock-in to the Microsoft platforms and the decision making process is driven by this more than technically. If the need arises, it can be implemented in open source as an interop measure, but it is an effort that will take time.

Avalon has a few problems, the following is from my impressions from the latest code that has been made available to the public:

Security: Although Avalon and .NET address the high-tech problem of secure sandbox execution, it fails to provide a low-tech solution for impersonation, and other forms of tricking a user into providing personal information (credit card numbers, Social Security).

These scams are a serious problem today in the Web but we at least have the url bar. But rich clients make this harder for and end-user to distinguish. Of course some simple solutions exist, but nothing comprehensive enough to guarantee that novice users will not be tricked.

The issue at stake here is that the feature (in this case a large API, feature-full and hard to reproduce) is driving the project, with security being cooked as an after-thought. As I said: the high-tech solution has been dealt with (the sandboxed execution environment) but not the low-tech problems. And the low-tech problems are resposible for most of the viruses affecting the Windows world today.

As we have seen, education of the user base is not really a solution and leaving security as an after-thought has proved very dangerous so far.

Complexity: The Avalon API has a very large surface area. To get an idea, the Button class is number 11 on the inheritance chain with ButtonBase, ContentControl, Control, FrameworkElement, UIElement, RetainedVisual, Visual, DependencyObject, UIContextObject and Object as its base classes.

The implementation details transpire everywhere, and approach that I believe is a bad idea: there is little or no encapsulation of things.

Avalon is clearly not fully cooked, at least it was not a few months ago when simple things like keyboard manipulation were not fleshed out. My feeling is that large changes are still required.

Ignoring Standards: I understand why someone would invent their own version of SVG or their own version of CSS: those standards can be difficult to implement, and growing your own version is a lot simpler than having to adapt an existing model to a new model.

I would have probably done the same if I had been in their position: its easy. But I would think that Microsoft has a higher responsibility towards the developer base that must create tools that interop with third party components: creating a new standard for graphics just because its `easy' is not really a good answer.

Implementing SVG might have problems and limitations, but the advantages outweight these problems: there are plenty of tools today to produce and consume it and it fits better with the rest of the industry. A benefit that Avalon users will not have and will just partition the industry again for a fairly poor reason.

Canvas model: Avalon's canvas model suffers from the same problem every other retained system suffers: they are hard to scale in the general case. We know this because Gnome has such system and its the basis for a couple of widgets and controls in applications like Evolution, Gnumeric.

The model is fantastic until you have to scale it; And when you have to scale it, you have to fall back to the traditional programming model where you have to roll your own repaint and handle all the low-level details yourself.

In general, I think its a great idea, but it is a limitation on which the rest of the system is built on.

Lack of a GUI designer: Avalon today lacks a GUI designer, an effort that so far people have not noticed, because developers have been told that XAML is the new way of doing things and declarative programming is hip.

Declarative programming is a cute idea (not new: its just the XML version of the old Windows resource files; or Gnome's glade files or MacOS X NIB files). The reality is that XAML is a serialization format that could be manipulated by tools, but the tools so far have been missing.


My prediction is that Avalon v1 will be a throw-away: it is not really the foundation on which you will build applications: V2 will likely not be backwards compatible, they will have to re-architect bits of it: which means that people will end up with two frameworks running side-by-side: Avalon V1 and Avalon V2.

The above problem is compounded with the fact that the CLR has not really sorted out a good model for sharing components across versions of the framework: the GAC solution today is a bit of a hack to keep things separate and allow for multiple installations, but falls short.

This is like cooking, you can not rush a good steak, or a cake or an omelette by cranking the heat. Some things just take time.

In a way the .NET Framework was like this: it was slowly cooked and it reached a great point (it could still be improved) but some of the new code is just not ready.

In Gnome for example we ship immature APIs but we do not make them part of the developer platform: they have to simmer and marinate for a while before they make it into the official SDK.

Death March?

When I read Dave Winer's comment on Avalon and the Death March, I realized that the Avalon folks now must do two products instead of one: they need to build an Avalon for Longhorn, and another Avalon that will run on XP. It seems that they just added a pile of work to a team that was not ready to release their software.

I watched Allchin's interview over at Channel9, and he looks nervous: he is addressing two audiences at once the winners and the losers: the external developers who get Avalon on XP, and the internal developers that have just been dumped a new set of tasks and challenges. He is walking a fine line.

I do not think I could have solved a problem of this magnitude, am sure the complexity is huge and the Microsoft folks are doing their best, but maybe a change in the way that features are interlocked and how those are delivered to users must be rethought.

When it comes to operating system releases, I believe that Apple has found the sweet spot: a combination of best practices from the industry and best practices from the open source world. In addition to this, the versioning setup that Apple ships for the Frameworks seems to be pretty good on the surface. Update: I fixed some embarassing typos.

Posted on 01 Sep 2004