peteg's blog

The Prose Works of Henry Lawson

/noise/books | Link

Trung Nguyên: 2-4 Cửu Long, District Tân Bình.

/AYAD/HCMC/Cafes | Link

Had a brief stop at this sort-of garden café on the way to dropping Loan off at the (old, now domestic-only) airport. It's on a side-street off the main drag going to the airport, and hence is quite pleasant.

North by Northwest

/noise/movies | Link

Hitchcock, Cary Grant.

The Lord of the Rings: The Return of the King

/noise/movies | Link

Well, that about wraps it up for this trilogy, at least until they crank out The Hobbit. As a not-particularly-huge fan of the books, I will resist criticising it too much...

The Lord of the Rings: The Two Towers

/noise/movies | Link

The second part of the long-winded Extended Edition. This one didn't drag as much as I remembered it; perhaps they substituted some character development of Frodo for those endless scenes of the rest of them running around New Zealand. Still, it suffers in the same way as every other middle movie, by being not much more than glue. The CGI looks horrendous; not so much the dynamic stuff (the Ents look fine) but the super-fake sets.

Trung Nguyên: 50 Hồ Tùng Mậu, District 1.

/AYAD/HCMC/Cafes | Link

Another "official" Trung Nguyên café. Very comfortable, very down-town inner city. Custom-made for the shoppers on the nearby Nguyễn Huệ and Đồng Khởi streets.

Trung Nguyên: 603 Trần Hưng Đạo, District 1.

/AYAD/HCMC/Cafes | Link

A fairly pleasant vertical place on the corner of Trần Hưng Đạo and Nguyễn Văn Cừ on the border of Districts 1 and 5. It feels a bit unfinished; the indoor water feature needs to be repaired. There's no food but you can buy some of the Trung Nguyên trinkets, this being another of the "official" ones.

The Lord of the Rings: The Fellowship of the Ring

/noise/movies | Link

The super-long three-and-a-bit hour Extended Edition. The pacing and editing of these movies really annoyed me when I first saw them, and that feeling remains undiminished. The CGI looks pretty fake to my eye, but fortunately New Zealand is beautiful enough to overcome all of this.

Trung Nguyên: 7 Nguyễn Văn Chiêm, District 1.

/AYAD/HCMC/Cafes | Link

My first visit to the feted "garden café" with Tigôn. It's expensive (the whole area is expensive, being next to the Diamond Department Store and all), but quite pleasant. Motorbike parking is a bit limited. This one is a bit "official", but I'm not really sure what that means; I thought Trung Nguyên was a franchise.

Salman Rushdie: October 2001: The Attacks on America

/noise/OldOldOld | Link

This is an old article that is probably redundantly reproduced here now that the New York Times has opened their archive. I find it strangely concordant with Bruce Schneier's expert opinion.

In January 2000's column I wrote that 'the defining struggle of the new age would be between Terrorism and Security', and fretted that to live by the security experts' worst-case scenarios might be to surrender too many of out liberties to the invisible shadow warriors of the secret world. Democracy requires visibility, I argued, and in the struggle between security and freedom we must always err on the side of freedom. On Tuesday September 11, however, the worst-case scenario came true.

They broke our city. I'm among the newest of New Yorkers, but even people who have never set foot in Manhattan have felt her wounds deeply, because New York in our time is the beating heart of the visible world, tough-talking, spirit-dazzling, Walt Whitman's 'city of orgies, walks and joys', his 'proud and passionate city - mettlesome, mad extravagent city!' To this bright capital of the visible, the forces of invisibility have dealt a dreadful blow. No need to say how dreadful; we all saw it, are all changed by it, and must now ensure that the wound is not mortal, that the world of what is seen triumphs over what is cloaked, what is perceptible only through the effects of its awful deeds.

In making free societies safe - safer - from terrorism, our civil liberties will inevitably be compromised.1 But in return for freedom's partial erosion, we have a right to expect that our cities, water, planes and children really will be better protected than they have been. The West's response to the September 11 attacks will be judged in large measure by whether people begin to feel safe once again in their homes, their workplaces, their daily lives. This is the confidence we have lost, and must regain.

Next: the question of the counter-attack. Yes, we must send our shadow warriors against theirs, and hope that ours prevail. But this secret war alone cannot bring victory. We will also need a public, political and diplomatic offensive whose aim must be the early resolution of some of the world's thorniest problems: above all the battle between Israel and the Palestinian people for space, dignity recognition and survival. Better judgement will be required on all sides in the future. No more Sudanese aspirin factories to be bombed, please. And now that wise American heads appear to have understood that it would be wrong to bomb the impoverished, opressed Afghan people in retaliation for their tyrannous masters' misdeeds, they might apply that wisdom, retrospectively, to what was done to the impoverished, oppressed people of Iraq. It's time to stop making enemies and start making friends.

To say this is in no way to join in the savaging of America by sections of the left that has been among the most unpleasant consequences of the terrorists' attacks on the United States. 'The problem with Americans is...' - 'What America needs to understand...' There has been a lot of sanctimonious moral relativism around lately, usually prefaced by such phrases as these. A country which has just suffered the most devastating terrorist attack in history, a country in a state of deep mourning and horrible grief, is being told, heartlessly, that it is to blame for its own citizens' deaths. ('Did we deserve this, sir?' a bewildered worker at Ground Zero asked a visiting British journalist recently. I find the grave courtesy of that 'sir' quite astonishing.)

Let's be clear about why this bien-pensant anti-American onslaught is such appalling rubbish. Terrorism is the murder of the innocent; this time, it was mass murder. To excuse such an atrocity by blaming US-government policies is to deny the basic idea of all morality: that individuals are responsible for their actions. Furthermore, terrorism is not the pursuit of legitimate complaints by illegitimate means. The terrorist wraps himself in the world's grievances to cloak his true motives. Whatever the killers were trying to achieve, it seems improbable that building a better world was part of it.

The fundamentalist seeks to bring down a great deal more than buildings. Such people are against, to offer just a brief list, freedom of speech, a multi-party political system, universal adult suffrage, accountable government, Jews, homosexuals, women's rights, pluralism, secularism, short skirts, dancing, beardlessness, evolution theory, sex. These are tyrants, not Muslims. (Islam is tough on suicides, who are doomed to repeat their deaths through all eternity. However, there needs to be a thorough examination, by Muslims everywhere, of why it is that the faith they love breeds so many violent mutant strains. If the West needs to understand its Unabombers and McVeighs, Islam needs to face up to its bin Ladens.)

United Nations Secretary-General Kofi Annan has said that we should now define ourselves not only by what we are for, but by what we are against. I would reverse that proposition, because in the present instance what we are against is a no-brainer. Suicidist assassins ram wide-bodied aircraft into the World Trade Centre and Pentagon and kill thousands of people: um, I'm against that. But what are we for? What will we risk our lives to defend? Can we unanimously concur that all the items in the above list - yes, even the short skirts and dancing - are worth dying for?

The fundamentalist believes that we believe in nothing. In his world-view, he has his absolute certainties, while we are sunk in sybaritic indulgences. To prove him wrong, we must first know that he is wrong. We must agree on what matters: kissing in public places, bacon sandwiches, disagreement, cutting-edge fashion, literature, generosity, water, a more equitable distribution of the world's resources, movies, music, freedom of thought, beauty, love. These will be our weapons. Not by making war, but by the unafraid way we choose to live shall we defeat him.

How to defeat terrorism? Don't be terrorized. Don't let fear rule your life. Even if you are scared.


1. When I wrote these words, I'd meant to say that we'd probably be subjected to more annoying, intrusive checks at airports. I failed to forsee the eagerness with which Messrs Ashcroft, Ridge, etc. would set about creating the apparatus of a more authoritarian state.

Reproduced here (partly to counteract the web's amnesia) without permission from the essay collection Step Across This Line, Copyright Salman Rushdie, 2002.

Haskell server-side integration for FCKeditor.

/AYAD/Project | Link

I am not a JavaScript hacker, so I have no clear idea how best to use FCKeditor. My embryonic Haskell library just spits out either a textarea or some JavaScript that creates an FCKeditor instance depending on how HTTP_USER_AGENT is set, though I can imagine someone wanting to do something fancier [*]. The POSTed data is validated against XHTML 1.0 Strict using HaXml, which seems to work well for the most part; for some reason FCKeditor uses the non-standard <embed> tag for Flash content, and I can't find a convincing reason why [**].

In the not-to-distant future I will implement the connector stuff, and Cabalise it.

[*] Apparently I still need to crank out an <iframe> to satisfy Internet Explorer, so we can either revert to XHTML 1.0 Transitional or generate some non-standard XHTML just for Internet Explorer. It's a tough call.

[**] It seems that recent versions of Internet Explorer (6 and 7), Mozilla-based browsers (Camino, FireFox) and Safari 3 are all happy with the <object> tag. Adobe has a "knowledge base" article full of non-reasons to use the <embed> tag. The great thing about web standards is we're all empiricists now...

Lest I forget, Haskell and Unicode.

/AYAD/Project | Link

One reason I ran away from all of the CMS systems implemented in PHP is its (historically) crappy support for Unicode [*]. Standard Haskell, on the other hand, has required the Char type to be able to represent a Unicode codepoint for quite a while now. Unfortunately there are a few libraries that are not Unicode friendly, such as just about every library interfacing with C.

Concretely:

  • HSQL needed some work to get it to talk UTF-8 to PostgreSQL.
  • Most but not all of the CGI library is Unicode friendly. I don't know enough about the various RFCs to know what's encoded as what, so I don't know how to do this right. For example, how are Unicode filenames handled?
  • The regexp libs are a bit of a minefield (the user-interface is quite complex, and those C libraries are unknown quantities), so I have avoided using them.
  • HOPE itself is almost entirely encoding-agnostic, apart from the top-level (where it builds a CGI header for the webserver's consumption), and HaskellDB just punts around the strings fairly blindly, doing a minimal amount of escaping. Good job, Björn.

I really, really wish Haskell had a decent story about character encoding at the I/O level. Back in 2002 people seemed to get really excited about doing something about it, but that mailing list is dead now. I guess the hope is that once ByteStrings and all that are bedded down, the I/O layer can be rebuilt on efficient foundations, fusion will take care of performance issues with codec layers and so forth.

Update: ConradP has surveyed some Haskell character munging libraries.

[*] perl has good Unicode support, if one is happy to play the guessing game as to what format each string is in. I feel that strong typing — clearly separating characters from strings of bytes — is just what is needed here.

Naked

/noise/movies | Link

Yeah, this is as good as I remember it, better even.