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

Microsoft slammed over misleading Windows Linux Claims

by Miguel de Icaza

Microsoft comparing, apples to oranges when measuring itself against Linux.

Best quote, from a footnote in the advertisement: "Results may vary outside the United States"

Back from vacations

Plenty of Mono activity in the past two weeks in the development branch (1.1.xx: we are using the same numbering scheme as the Linux kernel).

The new managed implementation of Windows.Forms is moving along (internally it uses Win32 messages and codes to help applications that hook up to Wndproc or use CreateParams), the hack-a-thon in Provo, Utah seems to have been a success.

Documentation of Gtk# is continuing at a rapid pace, and we will soon update the online version of the documentation.

Progress is underway on a few major components: Code Access Security (CAS) and the security related infrastructure for .NET 1.x and 2.x by Sebastien. Atsushi has been busy working on our XQuery implementation: a fairly large task but progress is advancing rapidly.

On the JIT side of things, the most important development are the s390 port morphing into s390x (to support the 64 bit machines of this kind) as well as the record-time port of Mono to the AMD64 platform. The AMD64 port was done by Zoltan and is the second 64-bit port of Mono (his SPARC v9 port being the first).

During my vacation plenty of micro optimizations were done to the JIT and Paolo has fixed the exception bug that made throwing exceptions several orders of magnitude slower than it should have (exposed by IronPython). Also Paolo is working on a new trampoline setup that will help the dynamic nature of IronPython as well as enabling some clever recompilation strategies. Also Massi continues work on our SSAPRE implementation, an effort that is on hold while he goes on a two week vacation.

Paolo has also checked in a few plans on changes that we want to make to our register allocator, you can find this on the Mono CVS repository in the mono module.

Martin continues to improve our generics compiler: just when he thought he was done, we received the C5 generics class libraries (which seems to be the largest body of generics code out there) and he is now fixing the bugs exposed by this.

The team in Bangalore continues work on the Basic compiler for Mono, and it is now possible to run simple ASP.NET applications with it. A Basic compiler is more important for ASP.NET 1.x as it does not support "pre-compiled" sites, so a compiler is required on the deployment machine. With ASP.NET 2.x we could eliminate this problem by having people pre-compile their sites and just deploy binaries on the target site.

Chris Toshok from the Evolution team (thanks JP!) will be assisting us with the debugger core in the next few months.

Induce Act, Venezuela, Greg Palast, Dimona

Induce Act: Just learned about the INDUCE Act another retarded law (plenty of coverage here.

Venezuela: Various readers raised an issue with my post about the Venezuelan election and said that if I do not document myself better I should not post to my blog about Chavez. That seems relatively fair, but it misses two points: Greg Palast is a man I respect for his investigative journalism.

But my readers missed a larger point: In fact I do not know enough to advocate a `yes' or `no' vote on the Chavez election (which I did not advocate), but that was not the point of my post. The point of my post was the fishyness of foreign intervention through ChoicePoint in the Venezuelan election. ChoicePoint was the same company involved in removing black-voters from the Florida elections in 2000 (documented also in the great book `The Best Democracy Money Can Buy').

One of my readers in the US claims that the oil production facilities in Venezuela are in the government power, Greg Palast disagrees.

I found out about the results of Chavez election while on vacation. And Greg Palast has a great follow up article.

Right now, the oil majors - like PhillipsConoco - keep 84% of the proceeds of the sale of Venezuela oil; the nation gets only 16%.

Chavez wanted to double his Treasury's take to 30%. [...]

But to feed and house the darker folk in those bread and brick lines, Chavez would need funds, and the 16% slice of the oil pie wouldn't do it. So the President of Venezuela demanded 30%, leaving Big Oil only 70%. Suddenly, Bill Clinton's ally in Caracas became Mr. Cheney's -- and therefore, Mr. Bush's -- enemy.

So began the Bush-Cheney campaign to "Floridate" the will of the Venezuela electorate. It didn't matter that Chavez had twice won election. Winning most of the votes, said a White House spokesman, did not make Chavez' government "legitimate." Hmmm. Secret contracts were awarded by our Homeland Security spooks to steal official Venezuela voter lists. Cash passed discreetly from the US taxpayer, via the so-called 'Endowment for Democracy,' to the Chavez-haters running today's "recall" election.

In Mexico at least, it is illegal to receiving funds from an external country to influence the political process. The SI people might be right or wrong, but the whole thing leaves a bad taste in the mouth.

That being said, in Mexico there is an ongoing debate over the monies that funded Vicente's Fox election: a clever setup to bring funds from abroad into his political campaign is under scrutiny.

Dimona: A nice animation of the Dimona Nuclear Complex in Israel. Based on the pictures taken by Mordechai Vanunu and revealed in 1986.

Posted on 25 Aug 2004

Fixing Venezuela's Elections

by Miguel de Icaza

Greg Palast has another detective piece. This time is about "fixing" the Venezuela Election results.

Palast describes a document which landed on his desk:

[Dept of] Justice offered up to $67 million, of our taxpayer money, to ChoicePoint in a no-bid deal, for computer profiles with private information on every citizen of half a dozen nations. The choice of which nation's citizens to spy on caught my eye. While the September 11th highjackers came from Saudi Arabia, Egypt, Lebanon and the Arab Emirates, ChoicePoint's menu offered records on Venezuelans, Brazilians, Nicaraguans, Mexicans and Argentines. How odd. Had the CIA uncovered a Latin plot to sneak suicide tango dancers across the border with exploding enchiladas?

What do these nations have in common besides a lack of involvement in the September 11th attacks? Coincidentally, each is in the throes of major electoral contests in which the leading candidates -- presidents Lula Ignacio da Silva of Brazil, Nestor Kirschner of Argentina, Mexico City mayor Andres Lopez Obrador and Venezuela's Chavez -- have the nerve to challenge the globalization demands of George W. Bush.

The last time ChoicePoint sold voter files to our government it was to help Governor Jeb Bush locate and purge felons on Florida voter rolls. Turns out ChoicePoint's felons were merely Democrats guilty only of V.W.B., Voting While Black. That little 'error' cost Al Gore the White House.

An interesting document, worth a read.

In Mexico every effort and dirty trick is being thrown at Andres Manuel L�pez Obrador with overwhelming support from the Media. Currently Mexico City's governor and the man with the popular backup.

This past week to protest the dirty war waged by the federal government against L�pez Obrador a 42-kilometer (26 miles) human wall was constructed running from the South to the North of the Mexico City.

Mexico's federal policies on economy have been a disaster as well. The government is a blind follower of all the recommendations (mandates) from the International Money Fund and World Bank (polices well known to be a recipe for social disaster). Also the government managed to extend our foreign debt, just when you thought that the platform of Vicente Fox on an "Enterprise Government" would be able to keep the budget on track. Seems like running the economy is not the forte of the right-wing economic policies anywhere in the world.

Government's reply to the human chain run from funny to hillarious: `we need production chains, not human chains' stated Sonora's governor (in lieu of the president, which is known for his lack of verbal articulation power and being a master of sticking his foot on his mouth). Humor wise, you can not beat Vicente Fox's own justification for keeping the disastrous economic policies (notice that he criticized his predecesor for keeping these policies, policies that today he defends, follow the link for all the humor ;-)

Posted on 14 Aug 2004

« Newer entries | Older entries »