Inklings: a tumblelog

Announcing SVN Support - GitHub

Nice! Now that is a good April Fool: it’s silly, but it also works and has practical uses.

The James Bond Shower: A Shot of Cold Water for Health and Vitality

Grinder Stays FPS on Wii - Wii News at IGN

Bloody right it should! In spite of the Wii being well suited to FPSs–as demonstrated by Metroid Prime: Corruption and The Conduit, even if the latter is better thought of as a great tech demo that happens to be a good if not spectacular game–if the Wii version ended up as a Hunter: The Reckoning style game, it’d have been a real shame.

Nine Men's Morris

Nine Men’s Morris is an abstract strategy board game for two players that emerged from the Roman Empire.

Distributed lock on top of memcached - amix.dk

The ultimate Vim configuration (vimrc) - amix.dk

Contains some useful ideas.

SBA I - Space-based Architecture

Use of tuple spaces as a work distribution mechanism. Also see parts two–Space-based Agility–and three–Space-based Archetypes.

Dnsmasq - a DNS forwarder for NAT firewalls.

Dnsmasq is a lightweight, easy to configure DNS forwarder and DHCP server. It is designed to provide DNS and, optionally, DHCP, to a small network.

I was going to use NSD or MaraDNS for this, but Dnsmasq seems like a better fit. We’ll see.

Capitalism just like Adam Smith pictured it

I’m most interests in one of the comments on the post. I’m reproducing most of it here for reference because I think the point made is very, very important:

I think invoking Adam Smith always requires caution. The positive claims of the invisible hand, that private vice leads to public virtue, are too oft used & abused to defend vice in laissez-faire style capitalism.

As Nash & game theory demonstrate, the invisible hand only works when private vice and public virtue are aligned. This alignment however, is purely coincidental. There is no market force that drives this alignment and left unchecked, private vice often destroys public virtue.

To ensure markets provide a public good, strong regulation is needed to align private and public incentive. So while it may seem to the outsider that Wall St and VC are the same, if the cost of increased regulation is the limitation of some VC activity, then that would be a small price to pay given the public costs of this last financial debacle.

This point applies quite strongly here in Ireland too. McCreevyism, with its treatment of any and all growth being good, its treatment of the invisible hand of the market as infallible (thus under-regulation because none is needed), and its simple-minded use of the Laffer curve to justify cutting tax rather than optimising it, can’t be let happen here again.

RFC 5789 - PATCH Method for HTTP

Hurray!

Beanstalk Protocol

Valued Lessons: Monads in Python (with nice syntax!)

Nice! The example implementation of threadless actors using a continuation monad is particularly interesting.

Tiny Tiny RSS

Tiny Tiny RSS is an open source web-based news feed (RSS/Atom) aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.

Swapped to this from Gregarius because it’s (a) actively maintained and (b) it can use SimplePie instead of Magpie without performing invasive brain surgery on the code.

I don’t like the interface; it’s one of those three-pane style readers, where I’m more of a river of news kind of guy, albeit I also like to be able to group feeds and mark unread items as read when I’m finished with them. That said, it’ll do for now until I get frustrated and write my own or find one that suits me better.

Update: I’ve been messing with the configuration and I think I’ve it at a point where it’s bearable, which is a huge improvement over Gregarius.

Dagda, my new laptop

I received my new laptop–a Dell E6500–today, which I’ve christened dagda, following my tradition of using Irish mythological figures for naming most of my machines, etain, aonghus, and lir being the others.

It’s quite spiffy and for a dell machine, surprisingly pretty. Here’s a dodgy cameraphone shot:

And for comparison’s sake, here’s it displaying the Facebook homepage:

Sweet! It almost feels like a spiritual successor to the IBM ThinkPads of old.

YouTube - o - iamamiwhoami

I haven’t been paying too much attention to the whole iamamiwhoami palaver, but this new song’s actually quite good!

Dabeaz: Python Binary I/O Handling

My brain has exploded (a little).

Digital Rights Ireland: FOI shows Department of Justice planning internet blocking for Ireland

[It’s] clear that for some time now the Department of Justice has been proposing the introduction of internet blocking in Ireland - and has been doing this under the radar, without any public consultation or legislative approval. Indeed, it is clear from the list that the Department is not planning on introducing legislation but instead intends to introduce this new form of censorship without any legal basis, based on the now discredited Norwegian and Danish models.

Hitler, as "Downfall producer" orders a DMCA takedown

Parody of the takedown notices issued to YouTube from Constantin Film AG, the production company, for parodies of the clip. Interestingly, the screenwriter has praises the parodies.

Shocking Fraud from Financial Scum : Good Math, Bad Math

To quote from one of the commentators:

Stuff like this is why the “invisible hand” of “rational agents” who “always act in their own best interests” can’t possibly be the basis of any solid economic theory.

'Gossips' say Apple will acquire ARM

I very, very much hope this turns out not to be true.

How Not To Sort By Average Rating

maemo SDK+ - Installation Instructions for Ubuntu Linux

7 Reasons To Hate Your Code « yield thought

Gobby

A cross-platform SubEthaEdit-esque collaborative text editor.

Fitzwilliam Guest House Dublin City | B&B Guesthouse Dublin City Centre Bed & Breakfast Dublin | Cheap Accommodation Family Rooms

Looks good for somewhere to stay while I’m up in the big smoke on the 13th.

This music blogger IMRO licence thing.. | Nialler9 Music Blog

What a total joke: it’s like IMRO want to kill one of the best avenues lesser known bands have to getting exposure and sales.

Fixing my mail

Ever since I moved over to using mutt as my primary mail reader, I’ve been attempting to manage my mail in a rather simplistic, if surprisingly effective manner: one big inbox.

This worked well enough, but I’ve began to find myself overwhelmed by the mailing lists I’m on and some of the various sundry rubbish I get in my mail, so I’ve came to the decision that I’m going to have to reintroduce some kind of filtering again.

My new way of managing mail is simple: there’s three mailboxes: one of lists, one for sundry rubbish (invoices, &c.), and everything else goes into my primary inbox. Then, at the end of every month, everything in those mailboxes gets archived if it’s over thirty-one days old.

Below is my initial fdm ruleset. I’ve purposely omitted a few things, the mailing list rules could do with improving, and haven’t written the junk mail filtering rules, but it’s pretty close to complete:

path = "%h/Mail"

action "keep" keep
action "drop" drop

# Basic folders.
action "inbox"     maildir "${path}/inbox"
action "junk"      mbox    "${path}/junk"
action "family"    maildir "${path}/family"
action "friends"   maildir "${path}/friends"
action "sundry"    maildir "${path}/sundry"
action "reference" maildir "${path}/reference"
action "lists"     maildir "${path}/lists"

# Housekeeping
action "archive" mbox "${path}/archive/%[maildir]-%yq%Q" compress

account "stdin" disabled stdin

account "local" mbox "/var/mail/keith"

account "archive" disabled maildirs {
    "${path}/inbox"
    "${path}/sundry"
    "${path}/lists"
}   
match account "archive" and age > 31 days action "archive"
match account "archive" action "keep"

action "crap" remove-headers { "X-*" "*-Signature" "Received-SPF" }
match all action "crap" continue

# List filtering
match "^Precedence:[ \t](bulk|list)" in headers
   or "^Sender:.*metacl-bounces@conlang.org" in headers
   or "^Sender:.*kragen-tol-bounces@canonical.org" in headers
   or "^(Sender|Reply-To|Mailing-list):.*(langsmiths|celticonlang|concatenative|conculture|rest-discuss|testdrivendevelopment)@yahoogroups.com" in headers
   or "^(Sender|Reply-To|Mailing-list):.*(gevent|listyland|ossdev-ireland|python-ireland)@googlegroups.com" in headers
   or "^(Sender|Reply-To):.*CONLANG@listserv.brown.edu" in headers
   or "^(Sender|Reply-To):.*ilug-bounces@linux.ie" in headers
   or "^(Sender|Reply-To):.*ilug@linux.ie" in headers 
   or "^(Sender|Reply-To):.*open@webnet.ie" in headers
   or "^Sender:.*phpug-bounces@lists.iephpug.org" in headers
   or "^Sender:.*pycrypto-bounces@lists.dlitz.net" in headers
   or "^Reply-To:.*pycrypto@lists.dlitz.net" in headers
   or "^Sender:.*ubuntu-ie-bounces@lists.ubuntu.com" in headers
   action "lists"

# Crap I get sent that doesn't matter much
match "^From:.*billing@digiweb.ie" in headers action "sundry"

match all action "inbox"

I bet when I review my cleaned up inbox, I’m going to find a pile of mail I’d miss due to mailing list detritus. sigh…

Update

A wee bit of tweaking later, and here’s what I’m currently using. I’ve scrapped a couple of folders (family and friends), my eircom.net and GMail accounts are now being pulled in (with login details safely ensconced in my .netrc file), and since all the mail was delivered from /var/mail/keith the first time I ran the original, I was able to scrap that account and now Postfix is running fdm on delivery, which is precisely what I’d wanted in the first place.

path = "%h/Mail"

account "eircom.net" pop3 server "mail.eircom.net" no-apop
account "gmail" pop3s server "pop.gmail.com" port 995
account "stdin" disabled stdin

action "keep" keep
action "drop" drop

# Basic folders.
action "inbox"     maildir "${path}/inbox"
action "junk"      mbox    "${path}/junk"
action "sundry"    maildir "${path}/sundry"
action "reference" maildir "${path}/reference"
action "lists"     maildir "${path}/lists"

# Housekeeping
action "archive" mbox "${path}/archive/%[maildir]-%y-%m" compress

account "archive" disabled maildirs {
    "${path}/inbox"
    "${path}/sundry"
    "${path}/lists"
}
match account "archive" and age > 31 days action "archive"
match account "archive" action "keep"

action "crap" remove-headers { "X-*" "*-Signature" "Received-SPF" }
match all action "crap" continue

# List filtering
match "^Precedence:[ \t](bulk|list)" in headers
   or "^Sender:.*metacl-bounces@conlang.org" in headers
   or "^Sender:.*kragen-tol-bounces@canonical.org" in headers
   or "^(Sender|Reply-To|Mailing-list):.*(langsmiths|celticonlang|concatenative|conculture|rest-discuss|testdrivendevelopment)@yahoogroups.com" in headers
   or "^(Sender|Reply-To|Mailing-list):.*(gevent|listyland|ossdev-ireland|python-ireland)@googlegroups.com" in headers
   or "^(Sender|Reply-To):.*CONLANG@listserv.brown.edu" in headers
   or "^(Sender|Reply-To):.*ilug-bounces@linux.ie" in headers
   or "^(Sender|Reply-To):.*ilug@linux.ie" in headers 
   or "^(Sender|Reply-To):.*open@webnet.ie" in headers
   or "^Sender:.*phpug-bounces@lists.iephpug.org" in headers
   or "^Sender:.*pycrypto-bounces@lists.dlitz.net" in headers
   or "^Reply-To:.*pycrypto@lists.dlitz.net" in headers
   or "^Sender:.*ubuntu-ie-bounces@lists.ubuntu.com" in headers
   action "lists"

match all action "inbox"

I just have to wait until tomorrow, which is when fdm is scheduled to archive all the old emails I’ve pulled in from GMail. The biggest revelation from implementing all this is exactly how much non-list mail I’ve missed because everything’s been scattered all over the place. Consolidation is proving to be a very good thing.

Why We're Siding With The Bloggers and Why IMRO's LOEL Blog License Won't Work

tbaggery - A Note About Git Commit Messages

Notes on writing good commit messages; the ideas apply to more than just git, mind.