Google IM

by Miguel de Icaza

Am on Google IM now, [email protected]

Please only request to be added if we have IMed, talked in person or emailed each other in the past.

Instructions for Gnome/Gaim users: here. Google's IM is based on the open Jabber protocol which not only allows for many implementations and creative uses of IM, but in addition Jabber is an interesting protocol that can be used to route arbitrary XML messages across the internet (not necessarily IM only).

The protocol has now a big service provider with a big user base that will help realize its potential.

Posted on 24 Aug 2005


Meanwhile, on the other side of the planet

by Miguel de Icaza

Robert Fisk has gone back to Baghdad and reports in a series of articles on life outside the green zone. Fisk refuses to be an "hotel journalist" a problem that starts as he reported on his first day back in Baghdad as:

Once you let Iraqis buy your food on the streets, tell you what people are saying, come back to you with their observations, you have entered the pointless hothouse of hotel journalism, the reporter with the mobile phone trapped in his room who might as well be broadcasting or writing from Co Mayo.

His Pity the Nation book has many colorful stories of hotel journalism as practiced by many in the days of the Lebanon civil war: from the bar at the Commodore Hotel when things got risky to reporting on the crisis from the nearby Island of Cyprus.

There is a new twist to "hotel journalism" as things go from bad to worse in Iraq. The Lebanon years of Hotel-journalism are gone, replaced now with Prison-journalism:

I head off to the Palestine Hotel where one of the largest Western news agencies has its headquarters. I take the lift to an upper floor only to be met by a guard and a vast steel wall which blocks off the hotel corridor. He searches me, sends in my card and after a few minutes an Iraqi guard stares at me through a grille and opens an iron door.

I enter to find another vast steel wall in front of me. Once he has clanged the outer door shut, the inner door is opened and I am in the grotty old hotel corridor.

The reporters are sitting in a fuggy room with a small window from which they can see the Tigris river. One of the American staff admits he has not been outside "for months". An Arab reporter does their street reporting; an American travels around Iraq - but only as an "embed" with US troops. No American journalists from this bureau travel the streets of Baghdad. This is not hotel journalism, as I once described it. This is prison journalism.

He has been reporting back from the streets of Baghdad since August 12. Where accidents and death are treated in a way similar to Terry Gillian's Brazil's futuristic state: fill form completely.

Billmon predicts that the new Iraqi constitution has enough sectarian and non-secular elements that will lead to a Lebanon-like civil war. The signs are there already:

In all - and this was only an initial count - 43 civilians were killed and more than 80 wounded in the deadliest bombing in Baghdad this month.
[..]
For once, it seemed, there were no suicide bombers involved, just old-fashioned car bombs, packed with explosives to kill the largest number of innocents in the least possible time.

Most troublesome is the new culture of revenge and the new culture of kidnapping which are emerging in one of the bloodiest months of the occupation:

"I consider this a quiet day," one of the mortuary officials said to me as we stood close to the dead. So in just 36 hours - from dawn on Sunday to midday on Monday, 62 Baghdad civilians had been killed. No Western official, no Iraqi government minister, no civil servant, no press release from the authorities, no newspaper, mentioned this terrible statistic. The dead of Iraq - as they have from the beginning of our illegal invasion - were simply written out of the script. Officially they do not exist.

Thus there has been no disclosure of the fact that in July 2003 - three months after the invasion - 700 corpses were brought to the mortuary in Baghdad. In July of 2004, this rose to around 800. The mortuary records the violent death toll for June of this year as 879 - 764 of them male, 115 female. Of the men, 480 had been killed by firearms, along with 25 of the women. By comparison, equivalent figures for July 1997, 1998 and 1999 were all below 200.

Fisk quotes an Iraqi on what seems obvious to anyone but the Chenney administration:
As for the constitution, I asked an old Iraqi friend what he thought yesterday. "Sure, it'ss important," he said. "But my family lives in fear of kidnapping, I'm too afraid to tell my father I work for journalists, and we only have one hour in six of electricity and we can't even keep our food from going bad in the fridge. Federalism? You can't eat federalism and you can't use it to fuel your car and it doesn't make my fridge work."

And then someone told me the other day, and am not kidding you "at least they have democracy now". Fisk listens to a military commander weight on the bus station bombing:

And that night, I flip on the television again and find the local US military commander in the Sadr City district of Baghdad - close to the bus station - remarking blithely that while local people had been very angry, they supported the local "security" forces (ie the Americans) and were giving them more help than ever and that we were - wait for it - "on the path to democracy".

You cant make stuff up like this.

I started blogging today about Utah's events. But they now seem minor issues.

Posted on 22 Aug 2005


Broken elbow

by Miguel de Icaza

Last week I broke my elbow when I fell off my bike. The humerous "tip" got broken and required surgery and three large screws to hold it in place. I wish at least I had broken it as part of a facinating story, involving a remote country, spies and a distress call. But all I got is "I was coming back from work and fell".

I have tried to reconstruct the tragic events of 8/12 to find the failure on the system. But I have come up empty handed so far.

What I do know is that in the morning I used Nat's air pump on my bike and got a kick out of it. I remember thinking "I think I over inflated these bad boys".

That afternoon after a frantic hacking expedition removing "throw NotImplementedExceptions" from our new code and filing some compiler bugs, I realized I only had 20 minutes left to meet my wife on bthe opposite side of the river.

The lock holder had loosened up, I took the lock out and put it on my back pack.

Within 10 meters of getting on the bike I landed emarasingly in front of a bunch of guests of the Residence Inn, the hotel next door to the office. Being the proud man that I am, I picked the bike and got moving right away, took me a while to realize that I could not move my left arm.

My doctors have been awesome. My only complain is that I had to wait six days to get my surgery done and on the ER it took them the best part of four hours to give me a pain killer.

I started right away my rehabilitation. Took me almost two days to get my hand to lift again, and my fingers are moving now, but they cant really exert any pressure. My nose has more strength. I also painfully learned that you are supposed to keep your affected limbs above your hearth, so even if the fingers can move (and I managed to type a paragraph the other day) I cant dfind a position that wont make my hand swell.

This comes at a very bad time: this is the third year on a row that I have missed FooCamp; The Google sponsored Mono students are progressing by leaps and bounds on their projects, Mono is getting ported to two new platforms, Minosse was completed. and my hacking has stopped for the time being. In particular, am very proud of a new htp pipeline design that we are about to land in Mono which uses iterators extensively to maximize the use of the threadpool. Luckly it got done before the accident.

Reading books has also slown down, its very uncomfortable so am doing most of my reading from the computer. I almost finish reading all the web.

Posted on 21 Aug 2005


Gtk+ and Gnome go vectorial

by Miguel de Icaza

The new version of Gtk+, a library used to build GUI applications on Unix and the heart of the Gnome desktop ├▒was announced this weekend.

This is a major upgrade for developers creating GUI applications for Linux and Gnome as it makes it simpler to create visually reach applications. This new version of Gtk+ is built on top of the 2D graphics engine Cairo: every widget is now written using Cairo operations and most importantly developers can now draw their own widgets using the PDF-like rendering model offered by Cairo.

Historically, the most painful part of building Gnome applications was the drawing layer: any interesting visualization or custom widget that needed to draw had to deal with some fairly low level APIs designed in the 80's: visuals, colormaps, GCs, collor allocation, resource acquisition and release (brushes, color resources, pens, patterns). With Cairo all of these problems will become history.

In addition to the productivity boost and the innovative potential to create visually rich applications, Cairo also brings to the end user nice touches like anti-aliased rendering for a more pleasant experience. Gtk builds on this new functionality to bring vector-based themes to the desktop as well.

Posted on 15 Aug 2005


iFolder

by Miguel de Icaza

I just noticed the new notification UI for iFolder. I love the balloon:

iFolder now ships with a sample server for those of you not lucky enough to have your sysadmins run one. The HOWTO is here.

Posted on 12 Aug 2005


by Miguel de Icaza

Posted on 09 Aug 2005


XML do's and don'ts

by Miguel de Icaza

Atsushi Enomoto has a great list of hints on developers using XML and Mono's XML if they care about performance, his list is available here.

String Collation

Mono originally was using IBM's Classes for Unicode (ICU) library. A C library that provides many tools to handle internationalized strings (like comparing strings, finding substrings, handling case sensitivity in a culture-aware fashion) and so on.

Basically all the managed code in Mono would call into the C runtime and the C runtime would use ICU's functionality to carry out the job. Unluckly Microsoft's behavior of the unicode operations differed from ICU implementation and the fixes that we applied in our wrapper code that use ICU were insufficient to provide the same semantics. Developers were running into various unexpected problems and erratic behavior that came out of our mapping which prompted us first discourage the use of ICU, and later to completely disable the ICU support code in Mono.

A few months ago, Atsushi was wrapping up his work on System.XML 2.x and asked me what should he look into as his next task. I asked Atsushi to look into implementing a replacement for ICU that we could use for Mono. He took this challenge very seriously and this past week he finally landed the new string collation code in the repository.

His latest blog post has some performance information and he links to the various posts that detail his quest into implementing string collation for Mono.

Posted on 09 Aug 2005


OSCON

by Miguel de Icaza

On Friday I will be presenting some of the recent work being done at Novell on improving Linux including Beagle, Xgl and other Mono-based applications.

There are a few Mono sessions and a Mono BOF that am planning on attending to discuss recent developments.

Posted on 02 Aug 2005


Tour de Nat, part 2

by Miguel de Icaza

I just called Nat to go out and have brunch at Henrietta's Table in Harvard Square and a panting Nat informed me that he was biking to Provincetown and back. Unlike his last trip two weeks ago he left Boston fairly late. I just got the following SMS with Nat's current location:

14:50: N:41.690170, W:-70.317350. 74.9 miles from home or about 100 minutes by car.

18:21: Nat has arrived to Provincetown. The trip is one hour shorter than his last trip. Now the painful return home begins.

Posted on 30 Jul 2005


Embeddable C# compiler and ASP.NET hacks

by Miguel de Icaza

Mono's C# compiler has a fairly complete regression test suite: we routinely use mcs to compile about the two million lines of code that make Mono up but it also contains about two thousand individual positive and negative test cases.

Since we run continuous builds of Mono to detect regressions on the code base the two thousand test cases on the compiler were starting to slow down quite a bit the regular Mono builds and the release regression test cases by quite some time.

Faced with this problem Marek Safar, one of the main C# compiler contributors, refactored the compiler so that it could be reused as a library. Then he built a couple of drivers that would process the compiler's negative and positive tests. This reduced the time to run all the tests from about 6-8 minutes to 24 seconds.

The time savings come from not having to restart the compiler over and over for each one of the invocations and instead just have the compiler reset at the end of each compilation and move on to the next target:

	test-anon-28.cs...	OK
	test-anon-29.cs...	OK
	test-anon-30.cs...	OK
	
I used to relax watching the screen scroll

The bottle-neck moved from C# to my terminal program.

This embedding turned out to be useful for a small hack. ASP.NET invokes the compiler on a page the first time that a page is hit. When you reference an ASP.NET page like "demo.aspx" the file is compiled down into C# code, which is then passed to the C# compiler and the output is dynamically loaded into the server which in turn dispatches the request from it.

While developing applications developers might notice a 1-2 second delay on the first hit to the page as the compiler processes the file, some months ago I cooked a patch that uses Marek's interface to embed the C# compiler directly into the ASP.NET engine (original posting, patch).

On my machine the time went from about 1.5 second to .9 seconds to compile and load a page on the first hit.

This patch is not very interesting anymore as ASP.NET 2.x allows for websites to be deployed by preocompiling the whole site and copying the resulting DLL.

Posted on 28 Jul 2005


« Newer entries | Older entries »