« October 2004 | Main | December 2004 »

November 2004 Archives

November 1, 2004

Art imitates life (for e-voting anyway)

E-voting is a very sensitive issue in Ireland. It was due to be introduced for local and MEP (Member of the European parliament) elections in may of this year but real concerns about the reliability and security of the proposed system caused it to be abandoned to the embarassment of the current government. Many computer science academics, myself included, were distinctly worried about the proposed system based on disclosed implementation details, it's closed nature and many glaring flaws in both hardware and software that would have mandated the use of a Voter-Verified Audit Trail (VVAT). So we created petitions and discussed the pertinent issues with politicians across the media. As happens, this was often portrayed as academics having a left-ish political agenda. It seemed like we weren't allowed to disapprove of the system on purely technical grounds. Perhaps a degree of intellectual hubris is desirable when a politician explains to a computer scientist that "the system can't be hacked as it's not on the internet".... No kidding!


In the US, Diebold elections produces a similiar system. It's equally flawed and controversial. Basically the Diebold offerings General Election Management System (GEMS) produces two tables for vote counts and precinct summaries which may not match. They should but the hack to falsify results is quite trivial. Not very comforting.


Well the creators of the popular computer game The SIMS have seized on the debate by introducing e-voting into their hugely popular life simulation game. Their 'Dumbold' system:


is programmed with cheats, bugs and easter eggs, which you can discover and read about by playing around with it. It demonstrates and simulates some alarming problems with real world electronic voting machines, with many surprising effects and subtle interactions

I particularly like the feature where Baxter the Chimp (catchy name, I'd vote for him) erases election votes. So if you're planning to run for office in a major western democracy you could do far worse than practive your electioneering skills with Baxter.

Want to give yourself an epileptic fit?

Well look no further (literally perhaps) then the Seizure Robots site.Killer japanese seizure robots with cheesy 70s soundtrack, wow!. Just what the doctor ordered first thing on a monday morning...

Native XML support in ECMAScript (E4X)

Yet another interesting nugget of information pulled from Jon Udell's site. Makes you wonder how many bloggers are merely human blog aggregators of other people's blogs. Eventually there's 1 part content and O(nn) level of repetition, like P2P only worse as info is wrapped with 'opinion' by each subsequent blogger. There's a study that could be done here using a combination of the google API and bloglines. Blog information is distributed virally? Discuss...
E4X is native data type for XML in ECMAScript. More information here

P2P traffic's effect on ISP's

The Internet was designed as a content access system which a predominantly client/server, assymetrically biased towards downstream (downloads etc.) With P2P exchange of data, the creation of decentralized groups allows for information to flow over the public Internet in an anonymous logical fashion. The individual users of these applications are shielded via this anonymity. There are obvious issues with IPR here but also more subtle issues regarding the categories and topology of P2P traffic. (I'll provide a more rigorous mathematical look on this soon) via this form of information exchange, the service providers no longer have the ability to forecast network capacity based on historical subscriber usage patterns. There are four key areas where service providers are feeling the pinch:


  1. Upstream/downstream traffic is flipped where the upstream traffic is much larger then the downstream traffic. This results in network congestion on the upstream link that was never planned for with initial broadband deployments.

  2. Time of day usage statistics no longer apply. Previously, service providers could assume peak usage at certain times of the day and lower usage at other times. With P2P applications, the computers are often left to transfer data throughout the day in an unattended fashion.

  3. Previously, peering traffic always traversed the Internet to another location. In today’s world, two home users can form a direction connection.

  4. Over-subscription assumptions no longer apply. A handful of power users can “hog” all of the bandwidth deployed for a much larger usage base.


Thanks to network world for some pointers in this post.

Church sign generator :-D

Ever wanted to make your own potentially humorous and possibly blasphemous church sign. Well you can do it here.. Isn't the web wonderful (or something)

Caught rotten, LOL

Shane_small.JPG
Ever find yourself eyeing up someone near you in a nightclub. Most time you get away with it as nobody notices and there's no photographic evidence to prove otherwise. Not if your mates are keen photographers who take a digital camera with them everywhere they go. Thanks for this one Jen, it's dead funny and catches me at my best/worst... hahaha


Jen's a budding amateur photographer and her online photo album is located at iwokeupdeadtoday.com. Check it out, some great shots there.

November 2, 2004

Thought provoking reads

I've read 3 books this year that have had a profound affect on my outlook in life. May sound corny but I think that there's something for everybody in these books whether sceptic or wild-eyed believer. Mostly however, they provide an insight into what it means to be a thoughtful individual struggling with the many difficult decisions and tasks of our professional and personal lives. The titles are:

.
Also, after much discussion with friends and family (some of which are practicing psychotherapists) I believe they contain a very important message about people's ability to deal with rapid technological change. I call this "the new dystopia of the Information Age". Catchy title I think you'll agree! The central thesis rests on the Technological Revolution (TR) having substantial positive and negative effects on our self-esteem; depending on age group, social background, intelligence, etc. Expressing it as two distinct push and pull factors:

  • Before mass media people's relative self-worth was established in direct comparison with their neighbours. We're a hierarchical society after all (whether we like it or not) and we look for baselines to compare our progress through life, relative success etc. However, with mass media we're increasingly bombarded with unreal and surreal media fragments about people who are more superficially successful than ourselves, to the point where the baseline is unrealistically moved. In a sense, the media provides us with the criteria for judgement and then pronounces us "unworthy" in order to sell more image enhancing product. This is significantly lowering the self-esteem of many within our society. I'm not proposing ludditism here, merely saying that there are detrimental effects of exposure to socially-emphatic mass media. Let's call this group "the disenfranchised"

  • On the flip side, many people, particularly those in the teen to 20-something age group, find a sense of belonging in technological or online communities, bolstering their self-esteem. These "online ghettos or tribes"vary wildly in content & sentiment but their purpose is perhaps common. Also technology is easing access to these online tribes, making them more inclusive and pervasive. Some tribes with purposes fulfilling basic human needs have grown to embrace millions of users. These include the tribe of mobile phone users or the Instant Messaging community... Individuals in this groups may be called "tribe-members" and the people and organisations who create the technologies, online boards, blogs etc. are their "tribe-leaders"


If we assume that we react to external stimulus such as information then the variation, quantity and the manner and pace of delivery of that information must affect the reaction on an individual basis. From reading these books and trying to absorb their insights about NLP, genetics and human nature it seems that our minds and bodies are being pushed to the limit. One of the first casualties is mental health and life satisfaction. Mental health is difficult to ascertain as there are contrasting views on what it actually means and what constitutes mental illness. But it does seem that if the pace and stress of our techno-dystopia was leading to depression then it would be most severely reflected in depression and suicide statistics of teenagers and 20-somethings. In the UK studies have shown that this definitively IS the case. Eating disorders and addictions are also all on the increase over the past 20 years. Suicide rates among teens in the US have increased by 6% over the past 20 years.. The same stats show that almost 1 in 5 US high-school students seriously consider suicide. I believe that tribe-leaders need to better consider the side-effects of particular technologies on the human tribe, emphasising the positive with tribes promoting inclusiveness, compassion and empathy and ensuring greater responsibility among those promoting image-enhancing products.

November 3, 2004

IDC information society index

This index was established in mid 90s and provides a statistical analysis of the degree of IT access and absorbtion within 53 countries worldwide. Ireland can only manage 23rd spot, which is less than impressive considering we're a small nation with such a disproportionate amount of our Gross Domestic Product (GDP) coming from IT. (For a cold hard look at our GDP/GNP comparisons read this) Our neighbours in the UK fare better in 10th, while the tech savvy danes and swedes claim 1st and 2nd place respectively.

Apologies for archive problems

Apologies to anybody looking at this page over the past few days. Due a mistype there were some archiving problems that I've sorted out now (hopefully)... To make up for it I've been trying out some audio-blogging and I'll make the results available over the next few days. I recommend any MT users out there interested in this technology should install the MTEnclosures plugin

November 4, 2004

Browser Identities

Browser incompatibilities are definitely the bane of a web developer's life. Having spent much of my development life messing around with command lines, I'm now spending a lot of time looking ath CSS section of w3schools grabbling with CSS positioning & layout issues.


I decided that I'd solve some of these browser incompatibilites on the server side rather than with client side javascipt.. MT's natty Perl-plugin interface looked the best bet and I whipped up a few quick lines of PERL to pull the HTTP_USER_AGENT from the env and parse it. Easy-peasy I thought having read all about browser identities here (skipped the RFC)... This turned out to be no fun. I learned a lot about writing plugins which are a really great feature but when I outputted the browser ID for both IE and Opera I got guess what?
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Opera 7.54 [en]
Not exactly what I was expecting. A diff of the two confirmed that I wasn't going nuts. They're the same so my plugin is effectively useless for sorting out CSS layout issues between IExploder, Opera and Nutscrape... So HTTP_USER_AGENT is apparently not the thing to use.. The appName in javascript would be more reliable apparently. SO much for sorting out the problem on the server side. Ah well... de nouveau au conseil de dessin as they say in pidgin french :P

November 5, 2004

John Martyn's playing in Cork

sldair2.jpg
I'm a big fan of the music of 70s singer songwriterjohn martyn as most of my friends will testify. In particular the album solid air (pictured) which never loses its magical quality no matter how many times I listen to it. John's wonderful and deeply expressive voice together with his stunning acoustic technique are something to behold in concert. So I was delighted to learn that he's playing in DeBarra's in Clonakilty, Cork on December 4th.
For those of you not familiar with his music here's a lyrical sample from "I don't want to know"


Sometimes it gets so hard to listen
Hard for us to use our eyes
All around the cold is glistening
Making sure it keeps us hypnotized
I don't want to know about evil
I only want to know about love
I don't want to know one thing about evil
I only want to know about love

California Stem Cell Research initiative

Throughout the rest of the US stem-cell researchers are weighing up the costs (and funding issues) of another 4 years of Dubya. However, California has neatly sidestepped these issues by finding a way to supplant it's stem cell research initiatives with state funds. Cunning!


In the Golden State, stem cell researchers will see a windfall of $3 billion over the next 10 years, averaging about $300 million a year, thanks to the passage of Proposition 71, the California Stem Cell Research and Cures Initiative. It shouldn't be difficult to entice the best minds in the country to move to a place where their work is fully supported by a state known for its mild climate.

Without wanting to get into the complexitiies of the ethical and legal debate surrounding this kind of research I'll be interested to discover the results this promising initiative produces. Whether we morally agree with stem-cell research or not it has the potential to have a major impact on the treatment of a wide range of illnesses, especially degenerative neurological conditions such as alzheimers and parkinsons.

Using SMS to manage and contain the spread of infectious diseases

Read a very interesing article on Wired about a company called Cell-life which is developing SMS and Internet based monitoring software to enable a small team of doctors to effectively monitor the side-effects of Anti Retroviral (ARV)drugs used in the treatment of AIDS. In this case, many side-effects such as lactic-acidosis are life-threatening unless treatment is received quickly. The cell-life system enables fast diagnosis of these issues using SMS text messaging to communicate with doctors and interface with the system databases. It's a wonderful example of technology having a beneficial effect on the lives of thousands of people and (as someone pointed out) a balance to my earlier techno-dystopia remarks...

America is a divided country

Boing-boing's humorous take on secession. There's a strong element of truth in this. I was watching a debate last night contrasting the voter turnout in the US with that in the UK at the last eleection. UK politicians generally believe that elections shouldn't be decided based entirely on religious or moral issues. The differences between the 2 major political parties are a lot less tangible than in the US and can be reduced towards attitudes to tax and public spending (and even then the differences are arguably minimal as they must react to changes in the world economy)
However, in the US it's always seemed like republicans and democrats sit on two opposing political fences with democrats sneering at republicans for being unsophisticated and republicans lambasting democrats for being amoral and ungodly. The reality lies somewhere between this polarised map of the US. (i.e. My political colours would be more democrat than republican but I must admit that Colin Powell and John McCain are sophisticated, smart and quite moderate in many ways and I have much respect for them, while some democrats are quite infantile in their attacks on "republican hicks") It's an interesting debate but I can't help but feel that it leads to gross simplification of the issues and flawed foreign policy. Still, as a TV pundit pointed out "It's democracy in action. The country may be divided but after the results people will go home and get on with their lives. There will be no rioting in the streets"

Steve Vinoski's comments on the WS* standardisation track

Following on from my earlier post about WS standardisation. Steve Vinoksi points out that traditional standardisation efforts are often too slow and overly political. In this month's IEEE Distributed Systems Online (DSO) he discusses WS-NonexistentStandards. Lots of standardisation work but where are the accepted standards and how does the process facilitate the creation and adoption of practical standards?

To get around these problems, WS-* authors appear to be taking a different approach toward standardization:



  1. Write a specification and make it publicly available.

  2. Invite interested parties to one or more private workshops where they can learn more details about the specification and provide feedback.

  3. Iterate steps 1 and 2 until chosen feedback from the workshop participants has been incorporated, and the specification is considered finished.

  4. Submit the specification to an official standards body with the hope of fast tracking it to actual standardization with minimal changes.


Overall, this approach reduces the number of participants involved, which can be a good thing because it reduces the overall volume of communication required to create the specification and resulting standard. However, it can also reduce the resulting standard’s effectiveness, even rendering it useless, because it circumvents at least some of the process of building consensus by not being a truly open process. A standard that is not generally agreed on is a standard on paper only.

This definitely seems to be part of the problem. It's in marked contrast to the IETF standardisation process which often appears much more open and perhaps democratic. However, it's a fine line to walk. I can't help but feel that 2 modifications to the process would significantly improve matters.

  1. The creation of WS-arch so we can categorically say what piece of the WS-jigsaw goes WS-where? ;-)

  2. Incentivised involvement of independent s/w developers in the standardisation process. Spec consumers rather than spec producer/pushers who can't provide neutral guidance. Maybe even some decisions could be put to general developers using a web-based voting system.


Probably/definitely need to think about this more...

Design By Contract in C

Charlie Mills creates a Design-By-Contract library for C (which could equally be used for C++ with minor changes) in his most recent OnLamp article. DBC views functions and methods as contractual agreements between the functional caller and the object/module providing the function. Charlie's implementation is a really neat idea using Object Constraint Language (OCL)to describe:


  • function preconditions

  • function postconditions

  • type and function invariants


The implementation is hacked up using Ruby and Racc and is available here.. I'm currently playing around with DBC for Java using iContracts and I'll post the inevitable success stories here soon...

November 6, 2004

Holding out for Hero

The chinese martial arts movie "Hero" has just been released in Ireland. Entertainment Ireland have a brief review here
I must confess I thought it was a wonderful movie. I've read quite a few reviews that compare it unfavourably with "crouching tiger, hidden dragon" but I disagree. Also my immediate memory of "crouching tiger" doesn't permit me to make a direct comparison but my first impression is of a movie that I liked far more. Overly worthy perhaps but satisfying all the same.
The plot goes a bit like this.


For over a decade the King of Qin has lived in fear of assassination from a trio of powerful warriors in the unconquered regions. This time has come to an end with the arrival of Nameless, a middle-ranking official in his kingdom, who brings news that he has defeated them all. As Nameless claims his rewards in the presence of the King he relates his story of how he defeated the assassin Sky and used the love between Broken Sword and Flying Snow to defeat them. However the King questions some of the things that he is being told
I won't tell you any more about the plot, instead urging you to see the movie.
However I read quite a few reviews of the movie that would have dissuaded me from seeing it so I'll use this opportunity to say why they're all wrong, the critics misguided and why in my not-so-humble opinion it's near perfect.

All the critcs agree that this film looks absolutely fantastic. The cinematography is inspired. A colourful cavalcade of sweeping shots, lithe balletic movements and bold, dramatic scenery. And that's just the first 10 minutes. So many hollywood directors could learn from Yimou Zhang's masterful integration of light and sound, colour and contrast to form a seamless whole. Indeed, such is the beauty of the spectacle that the dialogue may be superfluous. There are many scenes where the 'connectedness'of actors and their surroundings is evident. All the elements (wind, water, earth and fire)articulate the characters emotions. Typical chinese martial arts movie then!
Ok so here's what I think of the criticisms:

  1. The plot is convoluted and doesn't work. I found it interesting, not overly complex and the juxtaposition of the story, the unravelling of truths and the cinematic shifts in colour that accompanied this were a joy to behold

  2. It doesn't have the emotional resonance of crouching tiger Who the hell cares? In my opinion it's a more accessible movie, more entertaining and it definitely has an emotional resonance. Perhaps not one that many western audiences will want to see because it expouses the sacrafice of the individual towards a greater good. (This ain't a hollywood movie kids)

  3. We never empathise with the characters, they're not developed as human beings, more as stereotypes of their Fidelity, Love and Idealism This is a silly criticism. The movie is clearly supposed to be fable. It's not some bloody soap opera or reality TV show. When expect the characters to be well rounded when the whole movie is about high morals, contrasts, archetypes and their portrayal with a rich tapestry of colour

For me this movie had two important lessons that we often ignore.
  1. There are times when the good of the many outweigh the needs of the few. Human history has thought us this time and time again as painful as it is to learn.

  2. Hatred infects all aspects of our lives and ultimately those we love suffer most because we choose to hate.

To summarise. Go see the movie, you may like it!

November 8, 2004

Text v Speech

Following a recent conversation with some friends about how easily the written word can be misinterpreted I started thinking about the implications of this in world where increasingly communicate using emails, text messages and other forms of textual communication. Communication is a risky but worthwhile business! In Neuro-Linguistic Programming-based counselling the subjectivity of most communcation is demonstrated by the asking the client to think of some simple illustrative phrase like "the cat sat on the mat". The therapist may then ask the client to describe cat, mat and their environment. It quickly becomes obvious that we appreciate to differing extents the biases within our interpretation of even a simple phrase. In person-to-person spoken communication we consciously and subconsciously ignore a whole range of possible interpretations by trying to focus on the emotional intent of the other person. Are they lying? Do they have my best interests at heart? Was that an insult? (if it was I don't want to get them to repeat it and give them the chance to insult me again!). Several perceptive friends of mine have referred to a peculiar property of email we call "emotional amplification". This is a property of email relating to:


  • Speed of communication. Many emails, particularly those used in professional communication are sent with the expectation that the subject matter will be understood and acted upon, upon receipt. Therefore there is pressure on the author to convey logical and emotional intent of the message immediately. Conveying emotional intent immediately (like "this is EXTREMELY urgent") can lead to overstatement

  • Its half-duplex nature. You don't get immediate feedback to each point so a long email that expresses many points can find itself in an emotional cul-de-sac where the reader becomes more and more irritated with each point.


With text messages this becomes exascerbated by the enforced brevity of a 160 character limit. The reader has first to decode txt spk or "text speak" and then must try to interpret what the intent of the message was. Chances are the writer has left much unsaid in an attempt at brevity. There are definitely many many conversations that should not be carried out over text messages. In general, anything where conveying emotional intent in a complex situation is vital shouldn't be sent using text.

This problem was noticed at the inception of the internet and smilies were created to denote emotional intent. These appear fun to users of IRC and Instant Messaging but their purpose is quite serious. Preventing or defusing potentially damaging situations by conveying emotional intent symbolically. Other attempts to do this include Prosidic Font. Prosody is the 'song or rhythm of everyday speech". Prosidic font was an MIT project which encoded prosody (temporal, dynamic and emotional nature of speech) using a specially developed font. This is useful because
Research into emotion and speech has found that people can recognize affect with 60% reliability when context and meaning are obscured

I'll leave you with a comment from the famous Canadian communications expert Marshall McLuhan:

When most words are written, they become, of course, a part of the visual world. Like most of the elements of the visual world, they become static things and lose, as such, the dynamism which is so characteristic of the auditory world in general, and of the spoken word in particular. They lose much of the personal element...They lose those emotional overtones and emphases...Thus, in general, words, by becoming visible, join a world of relative indifference to the viewer – a word from which the magic ‘power’ of the word has been abstracted.
Marshall McLuhan in The Gutenberg Galaxy (1962), quoting J.C. Carothers, writing in Psychiatry, November 1959.

November 9, 2004

Putting the brakes on spammers

Pulled this off benezedrine.cx. It a tasty, easy to replicate mechanism for dealing with spammers, safe in the knowledge that you're slowing down their grubby, stinking little operations in the process. As most spammers get paid by volume this reduces the money they make from slowing down the internet, helping to spread viruses and generally being complete assholes. The author advocates the creation of a tarpit using spamd which is basically an MTA which keeps SMTP relaying connections open but slows responses down to a C-R-A-W-L... Throw in the use of spamassasin for some dynamic spam detection together with the creation of a blacklist for tarpit redirection using information from an authoritative site like spews.org and you have a reliable system that kicks the majority of spammers where it hurts. The original text is shown below.
To quote Bill Hicks: "just trying to plant seeds"


Introduction
I don't like getting spam. The problem is not detecting it automatically, that works very well with tools like SpamAssassin and bmf . Even though I can automatically delete spam without reading it, the spammers still successfully deliver their mails and get paid by volume. I want to hurt them. They should not be able to deliver their mails, and waste as much of their resources as possible attempting to do so.

Tarpits
Tarpits like spamd are fake SMTP servers, which accept connections but don't deliver mail. Instead, they keep the connections open and reply very slowly. If the peer is patient enough to actually complete the SMTP dialogue (which will take ten minutes or more), the tarpit returns a 'temporary error' code (4xx), which indicates that the mail could not be delivered successfully and that the sender should keep the mail in his queue and retry again later. If he does, the same procedure repeats. Until, after several attempts, wasting both his queue space and socket handles for several days, he gives up. The resources I have to waste to do this are minimal.

If the sender is badly configured, an uncooperative recipient might actually delay his entire queue handling for several minutes each time he connects to the tarpit. And many spammers use badly configured open relays.

Obviously, I only want known spammers to get connected to my tarpit instead of my real MTA.

Blacklists
I can use an externally maintained list of spammers like spews.org to redirect senders to the tarpit selectively. But such lists may be either to slow to include new spamming hosts, or too aggressive for my taste. Some blacklists will not only include single hosts, but entire networks that contain a single spamming host, willingly hurting innocent customers of an ISP to pressure the ISP to terminate the spammer. The blacklist maintainers document such policies, and if I agree with them, it's my decision to block mail from such networks by using their blacklist.

But even if I'm comfortable with blocking mail from innocent bystanders and use the most aggressive blacklists combined, there will still be spammers getting mails delivered to me through newly discovered open relays. Those spam mails will of course be detected by my spam filters, so I'd like to use these IP addresses to build my own blacklist.

Building my own blacklist
Assume I have the following procmail configuration in place to detect (and file) spam:

:0fw
| /usr/local/bin/bmf -m maildir -p
:0:
* ^X-Spam-Status: Yes
in-x-spam

:0fw
| /usr/local/bin/spamc
:0:
* ^X-Spam-Status: Yes
in-x-spam

Each incoming mail is piped through the two spam detectors. If either one of them classifies the mail as spam, the message gets stored in a separate file. I could delete them instead, but I might want to check the mails for false positives every once in a while. Once the classifiers are tuned right, there will be almost no false positives, and almost all spam is detected. I'm reaching 99.95% accuracy here, with maybe 0.01% false positives, which is fine for me.

Analyzing Received: headers
I'm using one additional tool, relaydb , to build a database of all hosts that send me mail. This is done after the classification by the spam detectors, so I can tell the database whether the sender was sending spam or legitimate mail.

I add the following parts to my procmail configuration:

:0fw
| /usr/local/bin/bmf -m maildir -p
:0c
* ^X-Spam-Status: Yes
| /home/dhartmei/bin/relaydb -b
:0:
* ^X-Spam-Status: Yes
in-x-spam

:0fw
| /usr/local/bin/spamc
:0c
* ^X-Spam-Status: Yes
| /home/dhartmei/bin/relaydb -b
:0:
* ^X-Spam-Status: Yes
in-x-spam

:0c
| /home/dhartmei/bin/relaydb -w

So, detected spam gets piped through relaydb -b (blacklist), and legitimate mail through relaydb -w (whitelist). Note that only copies of mails get piped through relaydb, the program never modifies or drops a mail. All it does is build a database of hosts that sent me mail, counting spam and legitimate mail from each one.

relaydb traverses all Received: headers in a mail from top (nearest relay) to bottom. It only acts on valid numerical IP addresses in [] brackets, which is the only reliable part. And it's only reliable when I trust the previous relay in the chain, as spammers often add fake Received: headers. So relaydb starts with the top-most relay in the header and consults its database to see whether it is a known host, and if so, whether it sent me legitimate mail before. If that's the case, it increases the respective counter (spam or legitimate, as told through the -b/-w option) for that host and continues with the next relay found in the header. If the relay is a known spammer, traversal ends, as further headers cannot be trusted.

After I run this setup for a while, relaydb has built both a blacklist and a whitelist. One important detail is that a legitimate mail has more weight than than a spam mail. I regularly receive spam through mailing lists. Of course, I don't consider the mailing list server a spamming host. Yet, each spam I receive through it will increase the spam counter for that server. Therefore, relaydb only reports hosts as blacklisted when their spam counter is at least three times as high as the counter for legitimate mail (and the factor can be adjusted, of course). So a relay doesn't get blacklisted as long as it sends me legitimate mail to compensate for spam it sends, which covers mailing list servers. But if I get a spam from a host that never sent me anything before, that will cause it to get blacklisted immediately (1 >= 0*3).

Completing the puzzle
Now I'm building my own blacklist, based on the evidence I've seen myself, classified by my own spam detector configuration. The only politics involved in someone getting blacklisted are my own, I don't have to trust a third party to make fair decisions.

And I use this blacklist to redirect hosts to the tarpit, using pf and some cronjobs:


$ pfctl -sn
rdr inet proto tcp from to any port 25 -> 127.0.0.1 port 8025

$ relaydb -lb | pfctl -t spammers -T replace -f -

This requires a recent OpenBSD -current system.

Instead of just loading the relaydb blacklist to redirect to spamd, I could combine it with spews. Or I can use the whitelist to prevent hosts which have sent me legitimate mail before from getting redirected to spamd due to a spews listing, etc. There are many interesting combinations.

And how well does it work?
I'm getting several dozen connections redirected to the tarpit per hour, and most peers waste about ten minutes per connection, and retry several times, for multiple days. The impact on my own resources is minimal.

Best of all, I regularly get spam through a mailing list and the sender (not the mailing list server!) gets blacklisted. Then the same spammer connects to me directly, too, as it harvested my address like the one of the mailing list. And it gets stuck in the tarpit. For long. And many times.

Remember, I'm doing all of this not to reduce the amount of incoming spam. That gets detected and filed very reliably, anyway. The sole purpose is to hurt the spammers. And I'm thoroughly enjoying watching my spamd log now, as I'm perfectly sure that each of those connections comes from a spammer who has spammed me before.

"Spam me once, shame on you. Spam me twice, shame on me." :)

If you have questions or comments, write to daniel@benzedrine.cx . And all you spammers harvesting email addresses from pages like this, please spam me. My trap is awaiting you.


Thanks to benzedrine and fif3. Also thannks to my mate Kieran for pointing me towards the original link. Cheers!

fontographer humour

Still can't decide whether this is awful or funny? I'll put it to the gallery..


Two fonts walk into a bar and the bartender says, "We don't serve your type here."

So the two fonts went and called the SERIF.

So, the fonts returned SANS SERIF, but they brought with them DEPUTY VETTICA. The deputy started to heavily quiz the bartender, and the fonts yelled, "Give 'em HELVETICA!"

The serif was finally located. He was around the BLOCK, reading the TIMES.

Now you may think the deputy's name sounds Czech, but actually it is ITALIC.

November 10, 2004

Ill Will Press

Very funny and profane humour from Illwillpress.com. An particular favourite of mine is the tech support one. Like much of the best satire there's serious social commentary here masquerading as comedy like the remark about the indian tech support getting $20 a week (about the same as their outsourced US counterparts used to get an hour). If ground-breaking US-satirist Bill Hicks was alive today I reckon he'd sound very much like Germaine on iwillpress.

VoIP battle is really heating up in the US ... but where's the FCC going with all this?

The Federal Communications Commission (FCC) have decided that individual states cannot impose additional restrictions on VoIP service providers. This follows an attempt by the Minneapolis public utilities commission to force Vonage to abide by the same rules as existing telephony service providers. The FCC overruled deeming that this stance was "inconsistent with the FCC's deregulatory policies". More information on the reg. This is a fascinating story as the implications of this ruling are unclear. The FCC's policies to-date regarding VoIP are supportive but not coherent. It's very much a wait-and-see approach rather than a strategy promoting adoption of VoIP while reasonably compensating existing operators for the user of their network. This kind of sustainable policy is required to ensure that VoIP services are deployed in a safe and responsible manner with the reliability and security that users expect.

How to distribute an atomic bomb!

This post is actually about U2's new record "How to Dismantle an Atomic Bomb" which is currently spreading like wildfire on certain well-known P2P networks. The problem, apart from the obvious copyright infringements, is that the record hasn't even been released yet. It's due for release the 22nd of November. However, a copy of the album dissappeared at a photo shoot and since then there's been intense speculation about whether the band would bring forward the release date. No decision has been made as yet. More info at the reg..

Which command in DOS

I've been told that I should add more of the little programming hints and tips that I used to come up with during my reearch days to this site. Well here's something I was playing around with today that's useful for many windows developers. Like many programmers I'm often more comfortable at the command line than using some funky GUI where I have to drag (or learn so many command alias key-strokes that I may aswell be at the console anyway).
I was stuck for a UNIX version of the which command. According to man which this command


Which takes a series of program names, and prints out the
full pathname of the program that the shell would call to
execute it. It does this by simulating the shells search-
ing of the $PATH environment variable.

Replicating this functionality using DOS batch ain't that bad...

@ECHO OFF
rem Sanity check OS version and arguments.
IF "%OS%"=="Windows_NT" (SETLOCAL) ELSE (GOTO Syntax)
IF "%~1"=="" GOTO Syntax
IF NOT "%~2"=="" GOTO Syntax
ECHO.%1 ¦ FIND /V ":" ¦ FIND /V "\" ¦ FIND /V "*" ¦ FIND /V "?" ¦ FIND /V "," ¦ FIND /V ";" ¦ FIND /V "/" ¦ FIND "%1" >NUL
IF ERRORLEVEL 1 GOTO Syntax


SET Found=
rem Get the short name for the current directory
COMMAND /C REM
rem Search CurrentDir, path and pathext for the file
FOR %%A IN (%CD%;%Path%) DO FOR %%B IN (.;%PathExt%) DO IF EXIST "%%~A.\%~1%%~B" CALL :Found "%%~A.\%~1%%~B"
rem Display the result
ECHO.
IF DEFINED Found (ECHO.%Found%) ELSE (ECHO -None-)
rem Done
GOTO End


:Found
IF DEFINED Found GOTO:EOF
rem Store the first match found
SET Found=%~f1
GOTO:EOF
:Syntax
ECHO.
ECHO WHICH, Version 2.00
ECHO UNIX-like WHICH utility for Windows NT 4 / 2000 / XP
ECHO.
ECHO Usage: WHICH program_name
ECHO.
ECHO Specify program_name with or without
ECHO extension and without a drive or path.
ECHO Just like the UNIX command. (no wildcards please)


:End
IF "%OS%"=="Windows_NT" ENDLOCAL

November 11, 2004

Right to Bear Arms (or is there?)

We all know that the American consitution protects citizens rights to bear arms. Wrong! It's a bit more subtle than that. The 2nd amendments actually reads: "A well regulated Militia, being necessary to the security of a free State, the right of the people to keep and bear Arms, shall not be infringed.". There is much debate about whether this amendment only applies to state sanctioned militias (whatever they might be in the event of civil-war?) However, we can all agree that there's quite a difference when the 1st half of the amendment is included. So while organisations like the National Rifle Association (NRA) have done their best to popularise the myth that the 2nd amendment is an unlimited excuse to buy an automatic assault rifle for hunting deer or family protection their claims are actually quite tenuous. The US supreme court has deemed that this amendment applies to federal law only, doesn't affect gun-control laws passed by individual states and actually "means no more than (the right to keep and bear arms) shall not be infringed by Congress". For all you legal buffs out there, this ruling was passed almost 130 years ago in 1876 (United States v. Cruikshank). This was reaffirmed ten years later in Presser v. Illinois. Various state gun control laws have been upheld based on these decisions for years. In 1980 the Supreme Court again presented the opinion that "these legislative restrictions on the use of firearms do not trench upon any constitutionally protected liberties". So American's don't have the right to bear arms? It's a myth right? Unfortunately after over a hundred years of consistency in interpretation of this amendment the US supreme court executive branch (including former AG John Ashcroft) presented THEIR INTERPRETATION in 2002 that the 2nd amendment DOES in fact protect the US citizens right to own guns. This doesn't necessarily obviate gun-control or personal responsibility in the choice of gun(s) owned. Indeed according to the most recent pre-election harris poll in 2004 a slim majority of 52% favour tougher gun control laws.

Up until 2002, however, this supposed "right to bear arms" was actually a bit of a myth and flew in the face of the Supreme Court's interpretation of the 2nd amendment. It may be a moot point as 73% of american's agreed (in 2002) with the sentiment of their "consitutional right to bear arms". Big enough lie, often enough etc...

There are arguments against gun control aswell. Some of these seem plausible enough, others are downright paranoid and jefferson's quote about using firearms as a last resort to protect themselves from the tyranny of the goverment is bogus and can be filed neatly in my drawer marked right-wing, gun toting, self-justifying propaganda. If only this was just a drawer... This file gets any bigger I'm gonna need a new house.
I can't help feel that the 2002 reinterpretation of the 2nd amendment is commentary du-jour and will not stand the test of time. The text of the amendment hasn't been amended ;-) and it's fair to say that the 2002 interpretation doesn't sit easy with many lawyers in the US. Check out the excellent overlawyered.com for information on this and other aspects of US legal practice. Stunning and shocking in equal measure.
Also check out the useful summary of gun control in the US here

Thanks to Kieran Colfer for the debate and the link. You're as sharp as ever! Mind like that oughta be subject to some kind of state legislation to keep you from hurtin' yourself, boy! ;-)

November 12, 2004

Eagle Lander 3d

Ever wondered what it would be like to pilot one NASA's Apollo missions. Well thanks to Ron Monsen and his team you can find out using the eagle lander 3d flight simulator


Eagle Lander 3D (EL3D) is an authentic simulation of the Apollo lunar landings and includes accurate renditions of scenery, flight dynamics and the lunar module. EL3D has developed from a freeware first generation Apollo 11 simulator to one that will recreate every Apollo landing mission. Currently EL3D includes Apollo 11,12, 15, a LM racing course and an orbital module. Other missions will easily 'plug-in'.

EL3D is designed to realistically render the physics and dynamics of the lunar module as well as the terrain of the lunar surface. EL3D uses the latest in graphical 3D technology to provide high resolution renditions of the LM, it's instruments, and the lunar surface in the region of the current landing site. All primary flight instruments work like the originals with many operating control panel switches too. The Apollo Guidance Computer has been modeled and works just like the original including the famous 1201 Alarm Code on Apollo 11!


This project really is a labour of love and it's one of the best flight-sim's (and a bit more) that I've ever experienced..
As Ron says, if you have any recommendations for changes then just get on the forum and make them... "Try that with Microsoft"

Arafat's effects on the Middle-Eastern peace process

Picked up a very interesting article from taint.org (thank you Justin) about "selves and others", website which keeps track of the published articles of speakers, writers and journalists with leftish political views. Having followed the link to selves and others I was intrigued by another link to Stephen Zunes article on Arafat's role in the Israeli-Palestinian peace process. Now that Arafat has died and the eulogies are flowing in, it's useful to recap on his leadership of the PLO; his beliefs and policies. Well worth a read for anybody with a passing interest in middleeastern politics.

Static substitution (Fowler Style)

Martin Fowler has a neat little article on refactoring class statics using instance variables. Most languages can't support polymorphism for static methods. e.g.

class A{
public void doInitStuff() { /*do stuff necessary for static init of B objects*/};
} ...
}
class B extends A{
public void doInitStuff() { /*do other stuff necessary for static init of B objects*/};
} ...
}
...
A a = new B();
A.doInitStuff(); /* but I'd quite like to polymorphically call B.doStuff(); Actually, could be trouble! */

Martin's solution is very elegant.

Creating shim libraries in Linux

Anybody who's done a bit of device driver development will know that occasionally system logs just don't provide enough information about the various problems you'll encounter and you have to hack up a shim library which sits between a problem library and it's loader/calling module. Linux Journal has a very nice article this month on creating just such a library for libusb. This could be useful for anybody developing an application or driver which needs to communicate with a USB device. Like writing a synch for a PDA, MP3 player or somesuch..

iPod wireless transceivers (only in Japan as yet)

Japanese Ratoc Systems Corp. has a new lineup of wireless audio products called the "REX-Link" series, and some of them are even specifically designed to fit your 3/4G iPod or iPod mini.

rexlink1p.jpg


There are four products in the series—two "receivers" and two "transmitters." Receivers come in the form of the "CR-RX01" with optical and analog audio outputs or the "REX-WHP1" headphones. For your transmitter, you have two options: the "CR-TXB01" USB transmitter, or "CR-TXB02" USB/analog transmitter (which also attaches to the back of 3/4G/mini iPods). These four products are matched to give three available packages: one with CR-TXB02 analog/USB transmitter and CR-RX01 receiver, one with CR-TBX01 USB transmitter and REX-WHP1 headphones, and one with CR-TXB02 analog/USB transmitter and REX-WHP1 headphones.
Original link from Gizmodo

November 13, 2004

Further apologies for site work

Apologies if templates, tables etc. went wonky today. I had to do some work on the live blog as I accidentally uploaded the wrong files. I know at least one person was looking at it today so I'm sorry for any inconvenience caused.

November 14, 2004

The legacy of Arafat (revisited)

Just to balance my post a few days ago about Arafat's role in the middle-eastern peace process, here's a contrasting view of arafat's role in Palestinian/Isreali relations (or lack thereof). My last post contained an article by the political scientist Stephen Zunes opining that Arafat was often the excuse rather than the reason for the failures in achieving a peaceful resolution to the palestinian/israeli peace process. It's only fair to point out that while Arafat may not have been directly responsible for many of the atrocities committed by factions under the PLO umbrella he arguably contributed to the failure of the Oslo Accords and their final peace talks chaired by Bill Clinton at Camp David in July 2000. The political writer Seth Gitell had the following take on the failure of this process, pinning the blame on Clinton's attempts to harry both sides into striking a potentially unworkable deal (to be fair, he didn't have much time) and an unwillingness on the part of Arafat to accept basic tenets of the deal from the outset


"Clinton has never understood that a steadfast and even-handed approach by America to issues between the Israelis and Palestinians is more than likely to produce a Camp David-style impasse. This has happened at each juncture during the "peace process." When the Palestinians ventured off the Oslo reservation, they were met with only the most polite admonishments. After Arafat gave the green light to violence when Israel opened the tunnel in Jerusalem, the United States responded tepidly. The Clinton administration's even-handed missives — warning both sides to avoid intemperate actions — would almost be comic if not for their damaging effect.

This permissiveness on the part of the Clinton administration — the looking the other way at Arafat's violations of Oslo, the winks, the nods — served to encourage an ultimate breakdown in the negotiations. Because Arafat came to believe he could use Clinton as a lever against the Israelis, he learned that he should always hold out for more. Even at the beginning of Camp David, this strategy seemed to work for Arafat. When Barak offered civil control of parts of Jerusalem, Arafat balked. Barak came back with a more generous proposal. Knowing that the Israelis are weary, that their morale is low, that they recently unilaterally surrendered Lebanon, Arafat had every incentive to push for the maximum — and then walk away."


The justification for Palestinian involvement in the Camp David talks is described below while the official Palestinian comments on the failure of this process can be found here

"The Arab c