2004

robhu made an entry about visiting an evangelical church, which lead us into a discussion about the implicit assumptions of evangelical Christianity, and just what the word “Biblical” means. It sort of follows on from cathedral_life‘s observation that evangelicalism seems to be more about a philosophical theory (an epistemology, I’d say) than about discipleship (see what large words I use as I type this entry with my own hands!)

Meanwhile, over on rec.arts.sf.written, there is a huge crossposted thread about Philip Pullman. This included a posting from an ex-Christian, about the difference between the personal God “who helps grandmothers find their car keys” and the God-of-the-Philosophers who is unreachable and unknowable. More specifically, about how some Christian apologetic arguments switch between one and the other when it’s convenient. Good examination of a tendency I’d not thought of before, but recognised when it was described.

I must also recommend livredor‘s answer to shreena‘s question on whether livredor has ever doubted her Judaism. Interesting stuff.

Some while ago, Mark Pilgrim did a post on cool software tools he couldn’t do without. In the absence of any pending rants about religion, here’s mine. Probably only of interest to fellow geeks, so cut for length.
<lj-cut>
Mail:

I’m still using Pine, that staple from university days. As it’s terminal based, I can use it to read my mail by logging in to my machine from wherever I happen to be. It supports multiple incoming folders for mailing lists and the like, and multiple roles. It’ll invoke an external editor, so I can use Vim to write email. The address book is nice. It keeps mail in flat text files, which, despite being a somewhat broken format, is easily understood by grep and the like. What more do you want? I hear good things about Mutt and also Apple’s own Mail.app, but nothing which compels me to change.

I run Exim as a mail transport agent, and use its nice filtering lanuage to handle sorting stuff into folders, ditching HTML mail sent to my Usenet posting address, and that kind of thing. Fetchmail gets the mail to Exim. Exim calls dccproc, which checks for bulkiness, and rbfilter, which checks for blacklisted senders.

My pobox.com forwarding address has been around since 1998 and so gets a tonne of spam, but since I used their spam filtering options to block China, Korea, and Brazil; and also turned on their cunning “looks like a consumer broadband machine” test (which looks for bytes from the IP address in the machine’s hostname, as that’s a common naming convention for broadband addresses), spam is a solved problem for me.

News:

I was using trn, but gave that up after failing to compile it for OS X. slrn is a worthy replacement, with colour highlighting and a useful scoring language. As well as using that to killfile people, I can increase the score of posters or threads which interest me and sort by score in the thread view. slrn shares trn’s handy habit of doing the right thing when you just keep hitting space, which is handy for eating and reading news at the same time.

I use Leafnode to fetch news from a variety of servers (NTL groups from their server, news.individual.net for everything else). A tip for Mac users: Leafnode creates directories full of lots and lots of small files (one per article, in fact). HFS+, the native OS X filesystem, is dog slow at accessing these. Make a UFS disk image and put your news spool on there.

Editing:

I use Vim, which combines the usability of the old Unix vi with the startup time of Emacs. It does all the usual good stuff like syntax highlighting every language known to man (including quoted text in mail messages, which is nice), indenting automatically and all that jazz. A killer feature is the function which will complete words from occurrences in the same file, or from a tags file (a list of all the names defined in a program). Helpful for not getting variable names wrong and also in rants where you find yourself writing “evangelical” a lot. The interface to cscope is also very useful when writing C code (and more importantly, trying to understand other people’s C code).

Browsing:

Since I started using OS X, I’ve been happily using Safari as my web browser. When writing long comments here on LiveJournal, I occasionally miss the text entry box editing facility of Mozex, since I could then edit the comments with Vim, but since no-one’s ported Mozex to the Mac yet, I’ve not switched to Mozilla or Firefox. You Windows users should so switch, of course, because Firefox is nicer and a lot more secure than IE.

Uploading:

I maintain my websites with sitecopy, which replaces that Perl or Python script which everyone seems to have written at least once to FTP stuff to their provider’s web space. sitecopy is works with both NTL’s and Gradwell’s servers and can do useful stuff like uploading based on hash values rather than modification times.

I post to LiveJournal using Xjournal, a pretty and featureful client for OS X. If I want to post from the command line, I use Charm.

Scripting:

I prefer Python to Perl for scripting tasks. As Yoda says, you will know Python is better than perl when your code you try to read six months from now.

Mudding:

I use Mudwalker when I have the OS X GUI available, mainly because I’ve made it talk using the Mac’s speech synthesis stuff. I’d also recommend Crystal.

Coding:

From within Vim, I make heavy use of ctags and cscope for browsing around code and jumping to declarations and references to a symbol. You can do it with grep, but it’s not as nice (and a lot slower on big projects).

I’ve also used Smatch to write customised static checkers for C code. Smatch is a modified version of GCC which outputs an intermediate language which is readily processed by your scripting language of choice. If you’ve ever found yourself writing Perl or Python code to parse C directly, you probably should have used this instead. There are some scripts which come with it which can do useful things like attach state to particular code paths as your script parses the code, and allow you to describe what happens to that state when the paths merge (so you could check that all paths free anything they’ve allocated, say).

lisekit has a discussion on novels, religion and relativism in religion. She says that, where religion is concerned, she doesn’t like to say that anyone’s views are more or less valuable than anyone else’s. This set me thinking about the idea of relativism in general (which lisekit isn’t advocating, lest I accuse her of it, as she mentions respect and tolerance as moral virtues).

I seem to have been brainwashed by Neal Stephenson into believing that strict relativism is undesirable because it does not work. If you cannot say one thing is better than another, the only sin left is hypocrisy (and, perhaps, intolerance 🙂 In a sense I’m a relativist, since I don’t believe in absolutes imposed by a deity, but in another sense, that of refusing to say that one thing is better than another, I am not. In morality, say, I advocate things which I believe will lead to a society which I hope will be a good one for myself and people I care for. In religion, I would like to see well-reasoned disagreement between people who do think their viewpoint is the right one but are prepared to learn from others. Better that than the pop-culture spirituality which accepts everything that feels good (poor Greg Egan’s disgust for that sort of thing in Silver Fire makes me think he’s forgotten what G.K. Chesterton said happens to people who stop believing in God). Stephenson again:


The only real problem is that anyone who has no culture, other than this global monoculture, is completely screwed. Anyone who grows up watching TV, never sees any religion or philosophy, is raised in an atmosphere of moral relativism, learns about civics from watching bimbo eruptions on network TV news, and attends a university where postmodernists vie to outdo each other in demolishing traditional notions of truth and quality, is going to come out into the world as one pretty feckless human being. And–again–perhaps the goal of all this is to make us feckless so we won’t nuke each other.

On the other hand, if you are raised within some specific culture, you end up with a basic set of tools that you can use to think about and understand the world. You might use those tools to reject the culture you were raised in, but at least you’ve got some tools.

In this country, the people who run things–who populate major law firms and corporate boards–understand all of this at some level. They pay lip service to multiculturalism and diversity and non-judgmentalness, but they don’t raise their own children that way. I have highly educated, technically sophisticated friends who have moved to small towns in Iowa to live and raise their children, and there are Hasidic Jewish enclaves in New York where large numbers of kids are being brought up according to traditional beliefs. Any suburban community might be thought of as a place where people who hold certain (mostly implicit) beliefs go to live among others who think the same way.
In the Beginning was the Command Line

(The rest of Stephenson’s essay is a huge digression on technology and culture, seen through the lens of the Windows/Unix clash: it’s well worth reading if you’ve an hour to spare).

I suppose I’m back to morality as enlightened self-interest again: the reason these people are inculcating their children in their particular culture is because those cultures work, and they want their children to be happy, fulfilled and all that stuff. There are cultures which don’t, and I’ll gladly preach the superiority of those which work over those which don’t, as it’s in my own interest to do so.

Background: news.admin.net-abuse.sightings is a newsgroup for posting copies of spam, so that the domains and servers involved become public record. Gradwell, run by the eponymous Peter, currently host noctua.org.uk. Peter Gradwell objected to my posting copies of spam to the newsgroup because his machines appear in the headers of all my email. <lj-cut text=”Now read on…”>

  Date: Tue, 28 Sep 2004 00:11:16 +0100
  From: Paul Wright <-$P-W$-@noctua.org.uk>
  Cc: Peter Gradwell <peter@gradwell.com>
  Newsgroups: news.admin.net-abuse.email, uk.net
  Subject: Gradwell.net policy on .sightings postings (was Re: spam reports in usenet)
  
  On Mon, 27 Sep 2004, Peter Gradwell wrote:
  
  > You have reported a spam in news.admin.net-abuse.sightings.
  
  In fact, I have reported several hundred, I should think, if not more.
  I've not counted then all.
  
  > Unfortunately, when customers do this it tends to backfire horribly as
  > the mail is seen to pass through our mail forwarding system and we
  > then get accused of spamming.
  
  Accused by whom? news.admin.net-abuse.sightings is for posting copies of
  spam with full headers. I tend to obscure my own email addresses so that
  it won't be picked up, but many other posters don't.
  
  > It takes a lot of time and resources to persuade our server colocation
  > providers that we are not spamming. Usually we are only able to enter
  > into these discussions after we have had our servers unplugged.
  
  The spam I have posted clearly does not originate at your servers, as
  the headers show it mostly comes via pobox.com's forwarding service, and
  originates at open proxy servers (usually in the Far East). If your
  colocation providers are really so clueless, I would be concerned for
  the reliablity of your internet services, in any case.
  
  > I must therefore insist that you immediately
  >
  >          - post a followup message to your posting pointing out that
  >          we have nothing to do with the origination of this spam and
  >          that you did not intend to cause us to be associated with it.
  
  For the avoidance of doubt, I make it clear that Gradwell's machines did
  not originate any of the spam which I have posted to
  news.admin.net-abuse.sightings.
  
  I shall post a copy of this email to both news.admin.net-abuse.email and
  uk.net. I hope that will suffice.
  
  >          - cease posting spam reports of this nature that include our
  >          mail servers in the headers.
  
  I shall certainly do so.
  
  > If we receive another spam report originating from yourself that
  > detriments our good standing in the community we will be forced to
  > terminate your account without further notice.
  
  Coo. I believe your policy is misguided but be assured I shall abide by
  it for as long as you continue to host my domain.
  
  -- 
  Paul Wright | http://pobox.com/~pw201 | http://blog.noctua.org.uk/
  Reply address is valid but discards anything which isn't plain text
  
  



Now, I would have been OK had he not made that threat at the very end. We could have come to an arrangement, or discussed the problem. As it is, come renewal time, I’m gone. I hear Black Cat Networks are cheaper. 😉

Update: of course, I’m still there as I’m far too busy to work out how to transfer the domain. Still not particularly impressed, OTOH, they’re technically competant and have a nice interface.

It was the year of fire. The year of destruction. The year we took back what was ours. It was the year of rebirth. The year of great sadness. The year of pain. And the year of joy. It was a new age. It was the end of history. It was the year everything changed.

The year was 2003. The place: Cambridge. Right, readers?

I started the Losing My Religion essay because I was angry. I finish it now because I am not (and because I happen to have a free Sunday, which also makes sense if you think about it). I’ve not really added much to the page itself: since so much discussion has gone on here, much of the new material is links to pages on LiveJournal. But in any case, the thing is done.

The talk continues, as always. livredor‘s posting about a Christunfriend’s blog leads us to a discussion of prayer in Christianity, and of whether Jews, Muslims and Christians worship the same God. Off to post some more.

Courtesy of someone who knew I’d like the quote:

Insofar as I may be heard by anything, which may or may not care what I say, I ask, if it matters, that you be forgiven for anything you may have done or failed to do which requires forgiveness. Conversely, if not forgiveness but something else may be required to insure any possible benefit for which you may be eligible after the destruction of your body, I ask that this, whatever it may be, be granted or withheld, as the case may be, in such a manner as to ensure your receiving said benefit. I ask this in my capacity as your elected intermediary between yourself and that which may not be yourself, but which may have an interest in the matter of your receiving as much as it is possible for you to receive of this thing, and which may in some way be influenced by this ceremony. Amen.

— Roger Zelazny, Creatures of Light and Darkness

Linkage: Beautiful photographs of Cambridge.

Via sjdr, who is a LJ-friend of a LJ-friend, comes a new rhumba for General Dancing: I speak of the top one listed here. Actually, it’s a little fast, but it’s a nice idea. While I was out searching for what that rhythm is actually called (I think it’s a bossa nova, myself), I found animations of ballroom dances. Neat, although expensive if you want to see anything other than the basic steps.

ladysisyphus writes that Jesus has laser beams. As does Aslan, which makes sense if you think about it.

It turns out that Macs have speech synthesis built in. It’s not bad, and it’s easily accessible to programmers. So I’ve spent an entertaining evening making my MUD client talk. That way, if the window is hidden, I still find out when someone interesting logs in. I’ve ended up using MudWalker, a free, open source MUD client for Mac OS X. It’s scriptable in Lua, and helpfully provides a speak function to Lua scripts. The thing prospective programmers will want to know is that your regular expression match groups (the things Perl would call $1 and so on) are arg[n] to the Lua scripts you can use to write triggers. For console use, I’d still recommend Crystal as a good MUD client, but it turns out to be a bugger trying to get that to talk (Crystal is supposedly scriptable in Lua, but my attempts killed it).

Also been looking at Twisted, Python’s marvelous asynchronous mouse organ networked application framework thingy. It seems that as well as being very clever, it’s actually reasonably well documented these days. The Perspective Broker and Avatar stuff seems to be a good fit for games where the players can write code which is not trusted by the system, since the choice of which methods allow remote access imposes some sort of capability based access control. If I ever wrote a MUD in Python, something I’ve been threatening for some years now, Twisted would be the way forward (indeed, it was originally created to provide multiplayer interactive fiction in the form of Twisted Reality, another addition to fine the fine Internet tradition of hugely ambitious, but largely unfinished, MUD servers).

It’d probably be easier just to do this in Java. Python’s restricted execution stuff is not really there, so if you wanted to allow players to program (which I think is essential for holding people’s interest once they’ve finished the game proper) you’d probably end up running untrusted code in another process and using PB to talk back to the server. Still, it’s a nice dream. I saw that the author of MudWalker has got a prototype MUD written in E, the capability-based security language, which might well be worth a look too.

I much prefer old, depressive-to-rival-Leonard-Cohen Counting Crows to new, happy Counting Crows.

It’s quieter now all those weddings and barbeques have subsided for a bit. Me and she had a lovely evening with Gareth and Emma the other night. Gareth is the Scourge of Uk.religion.christian, putting nutters to flight with his rapier-like logic. Or something.

I remember mentioning Leonard Richardson’s Guess the Verb interactive fiction game, Munchkin, and opportunitygrrl (whose interests include geology, interplanetary video feeds, Mars, and Christina Aguilera).

Speaking of interactive fiction, I remember I promised terriem some links to IF works recommended by S. terriem also pointed me at Kingdom of Loathing, which I’ve not tried yet. I played through Slouching Towards Bedlam and enjoyed it, although I did have to resort to the help a couple of times. Still, the story’s the thing in this one, not the puzzles so much.

S also recommended 9:05 (which is short and funny in a twisted sort of way), and Spider and Web (which I’ve played a little way, and which is apparently longer). Get them from Home of the Underdogs in their IF section. To play them, you’ll need an interpreter which runs the files. On the Mac, I got Frotz from Fink for the .z5 files and MaxTADs for the TADS ones. This page lists IF interpreters for Windows. There’s a selection of Beginner’s Guides to help with the conventions of the medium.