Monthly Archives: February 2013

DMCA: terror weapon

I just received “urgent” mail.  Not the usual spam (the word “urgent” in the subject line might easily upset my spam filter), but mail on a team list.  A colleague-of-a-colleague had been sent an aggressive notice clearly intended to intimidate:

Dear Sir/Madam,

I certify under penalty of perjury, that I am an agent authorized to act on behalf of the owner of the intellectual property rights and that the information contained in this notice is accurate.

I have a good faith belief that the page or material listed below is not authorized by law for use by the individual(s) associated with the identified page listed below or their agents and therefore infringes the copyright owner’s rights.


This notice is sent pursuant to the Digital Millennium Copyright Act (DMCA), the European Union’s Directive on the Harmonisation of Certain Aspects of Copyright and Related Rights in the Information Society (2001/29/EC), and/or other laws and regulations relevant in European Union member states or other jurisdictions.

OK, you’re a sysop in an eastern European country, one of the EU’s post-communist members.  You’re not a native English speaker, but you’ve heard of the DMCA, and you know that defying a takedown notice could mean serious trouble.  You’ve probably heard of claims for millions.  The ‘infringing’ page is in Italian, which you probably don’t speak at all.  What do you do?

The recipient of the above contacted my colleague, who in turn posted it to the team list.  Yours truly having absorbed a bit of Italian culture recognised the title “I promessi sposi” as a classic, so checked wikipedia and found an original publication date of 1827.  The ‘infringing’ page is offering a download of the 1840 edition, which wikipedia tells us was rewritten in the Florentine dialect that was emerging with the Risorgimento as a canonical language, now modern Italian.

Well, if that infringes, we’d better take Gutenberg down double-quick!


How well can open source transcend cultural and language barriers?

A few days ago I posted to the ironbee-devel list about the experimental nginx module for Ironbee.  It cannot be incorporated into Ironbee’s normal build/test processes in the manner of the Apache HTTPD and Traffic Server modules, because nginx doesn’t support loadable modules, so the libraries have to be installed so they can be linked when the nginx module is built.  This, along with a much more limited API, is presumably one of the design decisions the nginx team made when they focussed firmly on performance over extensibility.

In response to my post, someone drew my attention to an nginx fork called tengine.  The key point of tengine is that it addresses precisely the issue of loadable modules.  And not just that: it supports input filters, opening up the possibility of overcoming another shortcoming of the nginx module – the need to read and buffer an entire request body before scanning it.  Interesting.

I’ve now downloaded tengine, and tried building the nginx-ironbee module for it.  It appears to be fully API-compatible, and the only source change needed arose from their only having forked nginx 1.2.6 (the stable version), whereas I had developed the ironbee module using nginx 1.3.x.  All I need to add is a preprocessor directive to detect nginx version and work around the missing API, and the two are (or appear to be) fully interchangeable (well, until I take advantage of input filtering to improve it further).  This is seriously useful!

Tengine has been a collaborative open source effort for two years now (that’s almost as long as TrafficServer), yet this is the first I’d heard of it!  Perhaps one reason for that is that Tengine is made-in-China.  Just as TrafficServer originated from a single major site (Yahoo) before being open-sourced, so Tengine originates with Taobao and a Chinese developer community.  They have English-language resources including a decent-enough website.  But as a developer I want the mailinglist: there is an English-language list, but just looking at archive sizes tells me all the traffic takes place on the corresponding chinese-language list.

How much of a barrier is language?  I’ve written about that before, and now it’s my turn to find myself the wrong side of a language barrier.  Actually that applies to nginx too: the Russian-born web server has a core community whose language I don’t speak.  Developing the  nginx-ironbee module gave me an opportunity to test a barrier from the outside, and I’m happy to report I got some helpful responses and productive technical discussion on nginx’s English-language developer list.  A welcoming community and no language barrier to what I was doing.

Like other major open source projects, nginx has achieved a critical mass of interest that makes it not merely possible but inevitable that it crosses language barriers.  Not all nginx’s Russian core team participate in English-language lists (nor should they!), but all it takes is one or two insiders with fluent English as points of contact to bridge the divide.  I’ve no idea if I’ll get a good experience on tengine’s english-language list, but I expect I’ll find out now that I’ve heard of tengine and find it meets a need.

Corollary: there is still a language barrier.  Of course!  With Apache I started out developing applications (some of them modules) before making the transition to the core developer team.  With nginx or tengine I know I can’t make that transition – at least not fully.  And because I know that, I’m unlikely to let my work take me in that direction.  The same kind of consideration may or may not have led the tengine team to fork rather try and work directly with nginx.


It’s the end of an era!

For the first time in many months[1] I’ve had the confidence to go out (further than the local shops) on the bike without carrying any form of rain protection “just in case”.  It’s mild, sunny, and blowing a vigorous breeze.  I feel much better for a ride!

In another sign of spring, fresh rhubarb arrived in the shops several weeks ago (though I suspect it was grown by some not entirely natural process to be with us quite so early).  Happy to see the season of good dessert ingredients brought forward.

[1] Possibly since last May, if you allow “rather get wet than wear waterproofs when its warm” as a form of rain protection in the summer months.

My Kingdom for your dinner!

You wait years for one, then they all come at once.  That is, stories with a dubious or tenuous equine link.  Or in other words, we now know what happened to Richard III’s horse, and your humble scribe once again wishes he had the artistic ability to express it in a cartoon!

I’ll leave it to people with something interesting to say[1] to comment on the haplessly horseless monarch.  But the horsemeat story is crying out for an angle that seems to have eluded the Chattering Classes, and I’m faintly wondering if it might even have a very local aspect.

OK, to recap for posterity where we’re at.  Horsemeat has been discovered in processed food products supposed to be beef.  Nor is it a one-off: it’s widespread!  Big scandal: how has this been allowed to happen?  And a food scare: if this can be allowed to happen, what else could be in our food?  Horses (which are, after all, abused in a very athletic context) get pumped full of hormones we don’t want in human food.  The story is shining a spotlight on long and complex food chains, and everyone implicated is pointing fingers of blame at someone else.

And why haven’t the retailers who sell food to the public protected us?  Well, in that most relevant question the evidence is clear: they do protect us.  When was the last breakout of salmonella or e-coli attributable to supermarket ready meals?   Whatever processes they have are working perfectly well to protect consumers from contamination.

But hang on!  It’s not food poisoning or BSE we’re worrying about, it’s horse hormones!  How do we know those aren’t in the food chain?  Well, speaking from complete ignorance of food processing and testing but a little insight into basic science, I’ll stick my neck out and say I don’t believe that happened.  Why not?  Because with today’s rigorous levels of testing, such chemical contamination would surely not have passed undetected!

You[2] should be glad that those who run your food chain focus their testing where it matters, and aren’t devoting disproportionate time and effort to testing things irrelevant to your wellbeing.  At least hitherto: I suppose they’ll now have to add another cost to your food.

Meanwhile, when vox pop consumers are asked their reactions, most of them give the perfectly rational reaction: if they’re prepared to eat cow then why not horse?  If they’re happy with the taste then what’s the difference?

Oh, and yes, I did say a very local angle in the second paragraph above.  How so?  Well, Dartmoor is famous for our ponies, some of which are usually to be found about 15 minutes walk from my front door.  Do they feature in some yet-to-be-discovered branch of this food chain?  And if the fallout from this deprives someone of profit from them, how many will be allowed to remain a few years hence?

[1] I discovered that blog while googling for an image I could snarf for this post.  I gave up on the picture, but enjoyed the blog so much I just had to share.
[2] Excluding myself and others who are unaffected by virtue of not eating meat.

Hot air

Parliament today has held a long debate on legalising “gay marriage”.  Strong opinions on both sides, commonsense on neither – at least so far as I’ve heard reported.

What an utterly bizarre waste of time.  How the **** is marriage any of the government’s business?  It should be neither legal nor illegal: it should just be there for people who want it and churches/etc who are happy to marry them.

Marriage is a historical and religious tradition.  For participants it’s a personal and/or religious statement.   For the law to poke its nose into that and confuse it with legal rights and obligations is Big Government gone mad – the kind of thing this government is supposed to be against.

Where the law might legitimately have business with peoples relationships is where there are joint commitments and obligations.  Children, obviously, but as soon as you widen the relationship net you could be looking at business partners, or people sharing a house and mortgage.  And that begs the question: why does the law discriminate against units of more than two people, or against close relatives who can’t marry but might very well lead interdependent lives?  The victims of serious discrimination are these ladies, whose rights got lost in the stupid confusion of law and marriage[1].

Exercises in futility seems to be a bit of a theme of the current government.  They’re also (less controversially) changing the rules of succession for the monarchy in the name of equality.  I find it hard to imagine a more glaring oxymoron than “equality” in that of all contexts!

[1] If you accept, as I don’t, that the act of marrying should confer the kind of special privilege they wanted to share.