sorry, nobody believes you any more

Governments have got into the habit of offering massive amounts of foreign aid, then quietly abandoning their promises once public attention has moved on. It’s nice to see them being called on it:

The Group of Eight (G8) countries will pledge $20bn in aid to post-autocratic Arab countries that have toppled heads of state and moved towards democracy, according to European officials.

While the $20bn would add a strong boost to the countries’ economies, Al Jazeera’s Jackie Rowland pointed out that the G8 had failed in the past to fulfill aid commitments.

She said that by the end of the conference, leaders were expected to publicly admit that neglect.

“We’re expecting them to admit that there’s been a shortfall in the aid that was promised… and the aid that was actually delivered,” our correspondent said.

The Libyan ambassador in Berlin has defected

The Libyan ambassador in Berlin has finally defected. Sort of.

This is months after many of his counterparts in other countries, and at the UN quit. It was the defecting Libyan ambassador who persuaded the UN to meet on Libya, and to pass UN Resolution 1970 to impose an arms embargo. The Security Council at the time wanted to postpone meeting on Libya, but the diplomatic defections forced their hand.

Meanwhile, in Berlin, the Libyan diplomats remained loyal. I remember one occasion where our protest at the embassy was even greeted by a counter-protest inside its gates, the staff feverishly waving pictures of their Brother Leader — and, presumably trying to ignore the loathing of their countrymen opposite.

Anyway, better late than never. The ambassador, Jamal al-Barag, defends the delay:


how could you have remained in your position?


Because Schalgham [the Libyan UN ambassador, some kind of mentor/boss to the German ambassador] advised it. Since the UN passed Resolution 1973 [the no-fly zone resolution, on 17 March], I have done no more political work. I only come sporadically into the office. But we have more than 700 Libyan students in Germany. I ensure that they receive their €1800 each month, that their health insurance and tuition fees are paid.

Barag, who comes from Misrata, reports that he receives news of friends and acquaintances being killed on a daily basis. That he’s spent 2 months watching this without criticising it is, to put it in the best line, testimony to the power of blind loyalty.

Untitled argues that shortage of metadata is specifically an internet problem:

It’s kind of humbling to see that even a quarter of a century ago, news formatted in International Press Telecommunications Council standards like IPTC 7901 , NITF or NewsML had more metadata associated with it than a lot of websites of today.

The “big blob of text” phenomenon we’re stuck with now wasn’t caused by newspapers sticking to their old, wary ways, but by the transition to a new medium, the internet.

via the mojo list

How do you describe a face?

How do you describe a face? Given my ability to forget almost everybody I meet, it’s a question that bothers me on an almost daily basis. I’m always trying to figure out some procedure by which I can break a face down into its component parts, remember them methodically, and so be able to recognize somebody the next time I see them.

Oddly, I’ve not yet been able to find any systematic method for doing so. There are tantalizing hints that such systems exist, but they’re never spelt out simply on the internet.

In Snow Crash, Stephenson imagines the value of a reliable synthetic face for living in a virtual world:

He was working on bodies, she was working on faces. She was the face department, because nobody thought that faces were all that important – they were just flesh-toned busts on top of the avatars. She was just in the process of proving them all desperately wrong.

The Black Sun really took off. And once they got done counting their money, marketing the spinoffs, soaking up the adulation of others in the hacker community, they all came to the realization that what made this place a success was not the collision-avoidance algorithms or the bouncer daemons or any of that other stuff. It was Juanita’s faces. Just ask the businessmen in the Nipponese Quadrant. They come here to talk turkey with suits from around the world, and they consider it just as good as a face-to-face. They more or less ignore what is being saida lot gets lost in translation, after all. They pay attention to the facial expressions and body language of the people they are talking to. And that’s how they know what’s going on inside a person’s head – by condensing fact from the vapor of nuance.

That’s the dream, then. As for the reality: there’s probably something of that ilk in Second Life, but I’ve not yet hunted it down. The real action on the digital side is in computerised face recognition, which is alas of little use for people wanting themselves to describe faces. Early work was based, like old-fashioned anthropometry, on measuring the distance between ‘anchor points’ found in all faces. But as it’s moved towards more statistical methods, which get results but can’t be imitated by humans.

Meanwhile the police have procedures to help witnesses identify the characteristics of a face:

most composites are put together by asking a witness to describe the parts of a face — the eyes, nose, mouth or chin — and then assembling those pieces to create a likeness.

The popular FACES computer composite system, for instance, offers witnesses 63 head shapes, 361 types of hair, 514 eyes, 593 noses and 561 lips to choose from.

What are these part of the face? This paper contains a list, extracted from the

Farkas System

of facial recognition. The full list is apparently present in full only in Leslie Farkas’ textboook

Anthropometry of the head and face

The Visage Project seems to be an attempted online classification of faces through identifying features. The demonstration is hampered by too-small images, but the descriptions of characteristics are useful.

Another branch of work looks at the face in terms of emotions. This area was spearheaded by Paul Ekman, an anthropologist trying (with some success) to demonstrate the similarity of emotions across human cultures. His Facial Action Coding System is a means of describing facial emotion, muscle by muscle. He’s spent the past decade training police, writing popular books, and even inspiring a TV series — but nonettheless seems to be a serious and broadly respected academic. The effort required to use FACS, though, is considerable — and it’s concerned with changes in exprerssion, not with the permanent structure of the face.

Finally, there’s a certain degree of scepticism about the idea of learning faces section by section. It isn’t normal, you see:

Several brain studies have shown that we tend to see a face as a whole, and we pay more attention to the relationship among the parts of a face than we do to the parts themselves.

“Every cognitive scientist who has studied faces has concluded that faces are processed holistically. In fact, we now know that at least as early as six months of age, babies are engaged in the holistic processing of faces, not individual features,” Dr. Wells said.

“You can take people who’ve been married 15 or 20 years and the husband or wife can be quite incapable of describing a single feature of the spouse’s face accurately,” added Christopher Solomon, technical director for a British composite company called VisionMetric Ltd.

Still, for now I’ll take the facial-component approach over the alternative of recognizing friends by their hair and shoes, and becoming confused whenever anybody has a haircut.

Removing whitespace with sed

Use sed to remove leading whitespace:

sed 's/^[ t]*//'

The particular reason I want to do this is to turn my todo-list (a tree of tasks, marked off by when i completed them), into a sorted record of what I’ve done on a particular day. In other words, I want to go from this:

OED javascript
other tasks
2011-04-17 16:57:33 Sort out markdown for vim 45m
Thing I haven't done

To this:

2011-04-17 15:58:32 update blog with more cmds 3m
2011-04-17 15:58:59 modify timestamp to include date 20m [,,T,,D wil do for now]
2011-04-17 16:57:33 Sort out markdown for vim 45m
2011-04-17 17:39:04 [email to ejc about resources for journalists

Which can be done by removing whitespace, limiting to lines containing dates, and sorting

$ cat todo/todo.otl| sed 's/^[t ]*//' | grep 2011 | sort

I’ve seen things you people wouldn’t believe

There’s a quote from

Blade Runner

which has long irritated me. It’s sampled in some Juno Reactor track, and so slides into my subconsciousness every time I try to zone in/out with the trance:

I’ve seen things you people wouldn’t believe. Attack ships on fire off the shoulder of Orion. I watched C-beams glitter in the darkness at Tannhäuser Gate.

Out of context, it just seems so


. You’re describing the wonder and immensity of the universe, I thought, and

this is the best you’ve got

? All the cosmos can offer you is the pretty pictures? It’s the equivalent of dropping acid, then just admiring the hallucinations as pieces of theatre.

I was planning a blogpost to that effect.

Then I looked up the video, and suddenly I’m a convert:

I probably shouldn’t try to put the effect of the clip into words. Suffice it to say, all is forgiven. This isn’t somebody bragging, it’s the hopeless attempt to telegraph into dying breath the most intense moments of a ‘lifetime’. The machine will not communicate — it can’t, any more than a human can verbalise hir innermost thoughts. But there’s glory in the attempt.

python mode function

Oddly, there seems to be no mode function in the python standard library. It feels like something that should have an optimized C version squirreled away somewhere. ‘Mode’ is too ambiguous to be easily searchable, alas. Anyway, here’s a will-have-to-do-for-now version:

from collections import defaultdict
def mode(iterable):
counts = defaultdict(int)
for item in iterable:
counts[item] += 1
return max(counts, key = counts.get)

Should be reasonably fast (for pure-python), though could eat up a lot of memory on an iterable contaning large items.

back to the future with ellis

Warren Ellis is on an urbanism/retrofuturism jag:

the real world was always moving faster than science fiction: it’s just that back then the real future was broadcasting at 4.20 in the bloody morning and no-one was around to see it.


mode function in python

Oddly, there seems to be no mode function in the python standard library. It feels like something that should have an optimized C version squirreled away somewhere. ‘Mode’ is too ambiguous to be easily searchable, alas. Anyway, here’s a version that should be reasonably fast

from collections import defaultdict
def mode(iterable):
    counts = defaultdict(int)
    for item in iterable:
        counts[item] += 1
    return max(counts, key = counts.get)

Should be reasonably fast (for pure-python), though could eat up a lot of memory on an iterable contaning large items.