Posts Tagged ‘irc’

Getting Help for Puppet and Facter

November 7th, 2009

I just thought I’d mention some of the places you can get with Puppet and Facter.

The first is the Puppet users mailing list (and for development related questions – the puppet-dev list too)

Also available is the #puppet IRC channel on Freenode where a lot of helpful people lurk and can answer questions (needless to say a lot of really interesting sysadmin related rant^H^H^H discussion also takes places there too).  Feel free to join and jump right in with a question and if you’re pasting in configuration or log output don’t forget to use the pastie bot or link to a pastie of your data.

For the documentation you can find it at the Wiki (we’re working on a new one – really, we are…).

Some useful links are the Configuration and Type References and the Language Tutorial.

Finally, if you’ve got a bug or an error message or you’re just stuck and can’t find in some of the places I’ve just mentioned then we’d love it if you would log a ticket at the Reductive Labs Redmine site:

Specifically you can log issues for Puppet or Facter.

Please remember to include the (or Facter) version you are using (select it from the Affected Version drop-down), your platform and any log or trace output you have.  We recommend running your master and client with the –verbose –trace –debug options to get the most possible data out before logging the ticket.  That’ll us resolve your issue.

And obviously I’d be remiss if I didn’t mention (disclaimer – I don’t work for Labs but buys me drinks and I’d like him to be able to continue to do that) that does sell support for Puppet.

Hope that helps someone!

Puppet’s BuildBot

August 24th, 2008

So rather than doing the work I actually should be I’ve been playing with BuildBot. I had intended to get around to setting up BuildBot sometime in the next couple of months but I got hooked.

The reason I wanted to have a look at BuildBot was that Puppet has reached a stage where we simply can’t test every platform it runs on. We are also starting to get patches from a wider variety of sources. Buildbot will allow us to execute our tests on a wider variety of platforms. Hopefully with the cooperation of the we can gather a really big collection of build platforms to test on.

Here’s the blurb for BuildBot

The BuildBot is a system to automate the compile/test cycle required by most software projects to validate changes. By automatically rebuilding and testing the tree each time something has changed, build problems are pinpointed quickly, before other developers are inconvenienced by the failure. The guilty developer can be identified and harassed without human intervention. By running the builds on a variety of platforms, developers who do not have the facilities to test their changes everywhere before checkin will at least know shortly afterwards whether they have broken the build or not. Warning counts, lint checks, image size, compile time, and other build parameters can be tracked over time, are more visible, and are therefore easier to improve.

The overall goal is to reduce tree breakage and provide a platform to run tests or -quality checks that are too annoying or pedantic for any human to waste their time with. Developers get immediate (and potentially public) feedback about their changes, encouraging them to be more careful about testing before checkin.

It’s a very easy tool to deploy. The hardest part has been the slightly broken Git source handling and the assumption that any Git repository is local. I need to have a local Git repository to allow BuildBot to submit the right commits references to the PBChangeSource function.

But I designed a basic process for handling new commits:

1. Commit pushed to GitHub.
2. Commit bot at GitHub picks up commit and sends it to BuildBot Master.
3. BuildBot uses the git_buildbot.py script to calculate the before/after commit and branch references and tell BuildBot about them.
4. BuildBot executes the build and tells each slave to retrieve the commit and runs the tests. Currently we’re running:

a. All the Unit tests
b. All the RSpec tests

5. We then get the results of the tests on the website and in an email to the new Builds mailing list.

In addition I’ve also enabled BuildBot’s IRC bot and added a new bot, called pinocchio, to the # channel that reports on build status.

At this stage it’s all in test mode and when I’ve ironed out a few issues we should be in a position to do a production installation at ReductiveLabs and start canvassing for build slaves.

UPDATE

After mucking around with Buildbot I just couldn’t get a whole bunch of issues with Git resolved so we changed to Hudson as our CI – which works much better.  The message overall is – CI and Git: still a young pair.  I’ve included our configuration below for edification:

# -*- python -*-
# ex: set syntax=python:

# This is a sample buildmaster config file. It must be installed as
# ‘master.cfg’ in your buildmaster’s base directory (although the filename
# can be changed with the –basedir option to ‘mktap buildbot master’).

# It has one job: define a dictionary named BuildmasterConfig. This
# dictionary has a variety of keys to control different aspects of the
# buildmaster. They are documented in docs/config.xhtml .

# This is the dictionary that the buildmaster pays attention to. We also use
# a shorter alias to save typing.
c = BuildmasterConfig = {}

####### BUILDSLAVES

# the ‘slaves’ list defines the set of allowable buildslaves. Each element is
# a tuple of bot-name and bot-password. These correspond to values given to
# the buildslave’s mktap invocation.
from buildbot.buildslave import BuildSlave

c['slaves'] = [BuildSlave("debian", "debian"),
BuildSlave("freebsd", "freebsd"),
BuildSlave("redhat", "redhat")
]

# ‘slavePortnum’ defines the TCP port to listen on. This must match the value
# configured into the buildslaves (with their –master option)

c['slavePortnum'] = 9989

####### CHANGESOURCES

# the ‘change_source’ setting tells the buildmaster how it should find out
# about source changes. Any class which implements IChangeSource can be
# put here: there are several in buildbot/changes/*.py to choose from.

from buildbot.changes.pb import PBChangeSource
c['change_source'] = PBChangeSource()

####### SCHEDULERS

## configure the Schedulers

from buildbot import scheduler

stable = scheduler.Scheduler(name=”stable”, builderNames=["debian_stable", "freebsd_stable", "redhat_stable"], treeStableTimer=60, branch=”0.24.x”)
dev = scheduler.Scheduler(name=”dev”, builderNames=["debian_dev", "freebsd_dev", "redhat_dev"], treeStableTimer=60, branch=”master”)

c['schedulers'] = [stable, dev]

####### BUILDERS

# the ‘builders’ list defines the Builders. Each one is configured with a
# dictionary, using the following keys:
#  name (required): the name used to describe this bilder
#  slavename (required): which slave to use, must appear in c['bots']
#  builddir (required): which subdirectory to run the builder in
#  factory (required): a BuildFactory to define how the build is run
#  periodicBuildTime (optional): if set, force a build every N seconds

# buildbot/process/factory.py provides several BuildFactory classes you can
# start with, which implement build processes for common targets (GNU
# autoconf projects, CPAN perl modules, etc). The factory.BuildFactory is the
# base class, and is configured with a series of BuildSteps. When the build
# is run, the appropriate buildslave is told to execute each Step in turn.

# the first BuildStep is typically responsible for obtaining a copy of the
# sources. There are source-obtaining Steps in buildbot/steps/source.py for
# CVS, SVN, and others.

from buildbot.process import factory
from buildbot.steps import source, shell

pstable = factory.BuildFactory()
pstable.addStep(source.Git(repourl=’git://github.com/jamtur01/.git’, branch=’0.24.x’))
pstable.addStep(shell.ShellCommand(command=’rake spec’, name=’Spec Tests’))
pstable.addStep(shell.ShellCommand(command=’rake unit’, name=’Unit Tests’))

pdev = factory.BuildFactory()
pdev.addStep(source.Git(repourl=’git://reductivelabs.com/’, branch=’master’))
pdev.addStep(shell.ShellCommand(command=’rake spec’, name=’Spec Tests’))
pdev.addStep(shell.ShellCommand(command=’rake unit’, name=’Unit Tests’))

debian_stable = {‘name’: “debian_stable”,
‘slavename’: “debian”,
‘builddir’: “debian_stable”,
‘factory’: pstable,
}

debian_dev = { ‘name’: “debian_dev”,
‘slavename’: “debian”,
‘builddir’: “debian_dev”,
‘factory’: pdev,
}

redhat_stable = {‘name’: “redhat_stable”,
‘slavename’: “redhat”,
‘builddir’: “redhat_stable”,
‘factory’: pstable,
}

redhat_dev = { ‘name’: “redhat_dev”,
‘slavename’: “redhat”,
‘builddir’: “redhat_dev”,
‘factory’: pdev,
}

freebsd_stable = {‘name’: “freebsd_stable”,
‘slavename’: “freebsd”,
‘builddir’: “freebsd_stable”,
‘factory’: pstable,
}

freebsd_dev = { ‘name’: “freebsd_dev”,
‘slavename’: “freebsd”,
‘builddir’: “freebsd_dev”,
‘factory’: pdev,
}

c['builders'] = [debian_stable, debian_dev, freebsd_stable, freebsd_dev, redhat_stable, redhat_dev]

####### STATUS TARGETS

# ‘status’ is a list of Status Targets. The results of each build will be
# pushed to these targets. buildbot/status/*.py has a variety to choose from,
# including web pages, email senders, and IRC bots.

c['status'] = []

from buildbot.status import html
c['status'].append(html.WebStatus(http_port=8010))

from buildbot.status import mail
c['status'].append(mail.MailNotifier(fromaddr=”buildbot@reductivelabs.com”,
extraRecipients=["-build@googlegroups.com"],
sendToInterestedUsers=False))

from buildbot.status import words
c['status'].append(words.IRC(host=”irc.freenode.net”, nick=”pinocchio”,
channels=["#"],
password=”password”))

# from buildbot.status import client
# c['status'].append(client.PBListener(9988))

####### DEBUGGING OPTIONS

# if you set ‘debugPassword’, then you can connect to the buildmaster with
# the diagnostic tool in contrib/debugclient.py . From this tool, you can
# manually force builds and inject changes, which may be useful for testing
# your buildmaster without actually commiting changes to your repository (or
# before you have a functioning ‘sources’ set up). The debug tool uses the
# same port number as the slaves do: ‘slavePortnum’.

#c['debugPassword'] = “debugpassword”

# if you set ‘manhole’, you can ssh into the buildmaster and get an
# interactive python shell, which may be useful for debugging buildbot
# internals. It is probably only useful for buildbot developers. You can also
# use an authorized_keys file, or plain telnet.
#from buildbot import manhole
#c['manhole'] = manhole.PasswordManhole(“tcp:9999:interface=127.0.0.1″,
#                                       “admin”, “password”)

####### PROJECT IDENTITY

# the ‘projectName’ string will be used to describe the project that this
# buildbot is working on. For example, it is used as the title of the
# waterfall HTML page. The ‘projectURL’ string will be used to provide a link
# from buildbot HTML pages to your project’s home page.

c['projectName'] = “
c['projectURL'] = “http://reductivelabs.com/trac//”

# the ‘buildbotURL’ string should point to the location where the buildbot’s
# internal web server (usually the html.Waterfall page) is visible. This
# typically uses the port number set in the Waterfall ‘status’ entry, but
# with an externally-visible host name which the buildbot cannot figure out
# without some .

#c['buildbotURL'] = “http://10.0.0.x:8010/”

On Posting

June 10th, 2008

I haven’t really done more than lurked in the blogsphere for the last 6-12 months. I don’t think I’ve commented more than a dozen times (excluding today where I went nuts – the recent tit-for-tat bullying revenge movie extravaganza has prompted some comments) on anyone’s blog. Ruth is the same – she has been a infrequent poster of late also – though she has less excuse than me – she camps with laptop on lap on my couch and should post every night. Unless of course she’s not funny anymore. Yep. That’ll be it. Not funny anymore. *Note to self – be on guard for retaliation tonight*.

Instead I do a lot of Twittering and IRC. Oh and work. Work has left little time to blog too. Some paid work but mostly work. Which I probably shouldn’t call “work” but sometimes feels like it is – truth be told I feel like a walking, talking centre some days. And I cut a lot less actual than I’d like but rather shuffle tickets and triage things. But I have recently migrated a ticketing system for Puppet from Trac to Redmine – which I am fairly chuffed about and that is already making life much easier.

All in all I find the Twitter system of 140 characters updates a much smaller morsel to swallow rather than epic blog posts. Not that I wrote an awful lot of those. But I have decided to make some effort and try to blog at least once or twice a week. I don’t particularly care about readership – that was never this blog’s intent – but I do feel like the journaling/diary element of it has been lost lately as I meander along doing other things. A lot of things in my life I’d like to be taking note of for future posterity (my own future posterity – I am sure no one else cares :) ) have been happening.

So first piece of news – another book in the offing/maybe/possibly – lots of issues around it and not feeling overly motivated but it’s a distinct possibility. A more Linux focussed title this time around – or perhaps more accurately back to my roots. :)

LCA 2008 – Day Two – more mini-confs

January 30th, 2008

Once again the day went smoothly. More mini-confs occurred and went very well.

The SysAdmin mini-conf was particularly notable because a) I got to TWO whole sessions (though I missed ’s lightning talk on ) and b) because it was packed. So packed that it needed to be moved to the PLT. Many thanks to Arjen for being so understanding about moving the MySQL mini-conf.

I got to run madly around and see tiny pieces of the other mini-confs – which all looked pretty cool. I even read a couple of Kernel mini-conf slides which made little or no sense to me. :)

Rest of the day went madly by and all of a sudden it was evening. Avi and I drove down to set up the Speakers Dinner venue. The venue (now not a secret) was the Chapter House room in St Paul’s Cathedral – very cool – and appropriate given our presence tonight at the Night Market or Night Bazaar…. :)

A great night ensued and a few keen speakers drank their way onto Lily Blacks. I didn’t last long. Though whilst there I am fairly sure I incoherently rambled about development methodologies to someone from the Blender project and then the pros and cons of IRC as a tool.

But due to extreme lack of sleep I lasted one drink before my bed claimed me. Of course, insomnia actually claimed me and I was forced to read the new Kitty Norville novel until my body agreed sleep was a good idea. Up at 6.00am for Day Three and the conference proper…

Pascal’s Wager and Pratchett

January 9th, 2005

I have always, despite being an atheist, been a fan of Blaise Pascal. And indeed most keenly of his clever and entertaining, but ultimately flawed, Wager. The Wager can be summarised thus:

“It makes more sense to believe in God than to not believe. If you believe, and God exists, you will be rewarded in the afterlife. If you do not believe, and He exists, you will be punished for your disbelief. If He does not exist, you have lost nothing either way.” (http://www.abarnett.demon.co.uk/atheism/wager.html)

Now just re-reading Terry Pratchett’s [u”>Hogfather[/u”> I came across his paraphrase of the same Wager:

“the Quirmian philosopher Ventre, who said, ‘Possibly the gods exist and possibly they do not. So why not believe in them in any case? If it’s all true you’ll go to a lovely place when you die, and if it isn’t then you’ve lost nothing, right?’ When he died he woke up in a circle of gods holding nasty-looking sticks and one of them said: ‘We’re going to show you what we think of Mr Clever Dicks in these parts…’”

I love Pratchett. Brilliant.

Ten ways to avoid being detained as a terrorist suspect

April 18th, 2004

1. Avoid being of Middle Eastern, Mediterranean, or Hispanic appearance.
2. God is called “God”. He has two arms, two legs, is white and has a son called Jesus.
3. Don’t be poor.
4. Speak English. The use of any other languages, especially those with squiggly writing that sound like you have emphysema, should be avoided (glossolalists excluded).
5. Don’t visit any countries whose names end in “stan” or where they wear funny clothes and don’t let you drink.
6. Don’t own any oil, be related to anyone who owns any oil or be from a country where they have oil.
7. Beards are right out. Didn’t your mother tell you not to trust men with beards?
8. Don’t protest (especially if you are a student). The use of words like “freedom”, “democracy”, “human rights” and “justice” are un-Australian/American/British (circle relevant country).
9. Avoid leaky boats and refugee detention centres. Everyone knows refugees are just really, really cunning terrorists.
10. Especially avoid doing 1 to 9 in an election year.

Redfern, Aboriginal relations and the future

February 17th, 2004

On Sunday and Sunday night yet again Redfern came to resemble our own little infatada with Aboriginal youths dressed in the finest of West Bank chic – the t-shirt pulled up over the face to hid their identity. There was rock throwing, Redfern station set alight and petrol bombs thrown. Forty police officers were wounded dispersing the crowd. I haven’t read any official counts on how many Aboriginals were injured.

I’d like to say my opinion of the whole thing is balanced. That I should believe the fascist agents of the State were crushing an oppressed minority. But I don’t. I am sorry for the death of Thomas Hickey. It is tragic when a young person dies. But in the immediate situation elements of the Aboriginals acted in a violent and aggressive manner with total disregard for the law. The area around Redfern and some parts of Waterloo is a disgrace. Everleigh St looks like Beirut on a bad day. I’m scared to walk through there and I’ve had some bad experiences walking home from Redfern station. The drug and alcohol problems down there seem endemic and the area is rife is violence.

Now during all of these comments I may seem to be channelling someone a bit to the right of me. In some senses the opinions expressed are neither right nor left viewpoints. They are the facts of the environment in which a large portion of the Aboriginal population exists and the ongoing situation in Redfern. Overall a lot of Aboriginal communities are dangerous places where domestic violence is rampant and drug and alcohol problems are destroying lives and families. Aboriginals have massive unemployment, are overly-represented in our prison system, have third world infant mortality rates, significantly reduced life expectancy and suffer from diseases that have been all but eliminated from the rest of Australian society.

In the case of the incidences in Redfern I am not and will never be an apologist for the use of violence – whether to achieve political ends or indeed any ends. I deplore the use of violence by the Aboriginal and I strongly the arrest and prosecution of the people found to be responsible. But this violence and the state of the Aboriginal at Redfern as a microcosm of the conditions of the wider Aboriginal population spark some broader questions. Why are Aboriginal communities like this? How did the situation become this bad? What can be done about it and how did we get to this place?

The why of it and how did we get here I think is easy. We did it. Australians and our forebears are responsible for and have to accept blame for at least some of the circumstances that have resulted in the current environment and position of the Aboriginal population in Australia. Whatever spin the historians of the Right (Keith Windschuttle, Geoffrey Blainey, Bjorn Lomborg et al) want to put on it Aboriginal people were persecuted in this country. Some basic facts not even those idiots could disagree with (and I have cited references here of as impartial nature as possible with an emphasis on Australian government sites with the exception of the last reference because Windschuttle’s work has been found to be evidentially flawed no matter how much the Right would love history to reflect their viewpoint):

1. Aboriginals were not recognised as citizens until 1967.

2. Excluding the dodgy dance around Section 41 of the Constitution most Aboriginals did not have the vote until 1962.

3. Aboriginals were actively dispossessed of their land and it is only since the early 1970s that Aboriginals have regained control of some of their land.

4. Commonwealth and State welfare agencies actively separated Aboriginal and part-Aboriginal children from their families.

5. That a virtual genocide was committed by white settlers against the Tasmanian Aboriginal population.

Now these events I can prove. It is my belief (and one not shared by the Right and its revisionists – the Tim Blair and Andrew Bolt’s of the world) that a lot worse than this happened to Aboriginal peoples throughout Australia. Events and actions that have resulted in the splintering and destruction of their communities and a large portion of their culture. The Aboriginal we see now is a shattered and disjointed collection of people who are the result of a stumbling and violent attempt at transition from a Stone Age civilisation to contemporary Australian society with pit stops at forced assimilation along the way. Transition and assimilation that not only failed the Aboriginal people but in a wider sense also failed the overall Australian .

So we got ourselves in this mess? Now how do we fix it? No idea. I wish I had some answers. I would comment that I doubt current attempts by the Right to re-write history (the ‘Whitewash’ cited by Robert Manne in the above article and his recent book) are helping the situation but I don’t see it as a huge issue. Partly because I suspect overall you’re always going to have a few bigots who need an intellectual and historical fig leaf to them justify their bigotry. Also because whilst I believe a lot of Australians harbour some racist thinking about the Aboriginal most of the historical debate is simply happening outside of the mainstream and its relevance to and impact on the wider Australian is limited.

Overall with reference to answers I suspect we might have shot our bolt. I think the damage that has been done is too great. We can’t take the Aboriginal people back two hundred years to their previous existence even if we or they wanted to. We can’t reconstruct family groups. We can’t bring back culture and languages lost in the last two hundred years. Would a semi-autonomous nation within Australia like the Canadian model work? I don’t know but I doubt it – funding and self-sufficiency would probably sink that one. A return to tribal laws? Didn’t work in the United States and I suspect the bonds of tribal laws wouldn’t encompass all of the Aboriginal or solve all of the problems. More funding? Throwing money at the situation doesn’t appear to have helped so far but perhaps with more pragmatic and strict governance of the financial resources some advances might be possible. All in all I see the future of Aboriginal communities, people and relations as a bleak place.

Jonathon Delacour: Conflicting visions – a response of sorts

January 12th, 2004

I often find myself torn about placing myself on the defined political spectrum. Jonathon Delacour offers an interesting perspective on the argument in this piece on his site. He offers a different way of looking at the definition and divide between liberal and conservative based more on the different interpretations of the underlying motivation that drive societal interactions. It results in an interesting perspective that is one of the best articulations of the conflict between pragmatism and idealism that I have read.

My confusion about placing myself on the political spectrum has less to do with defining my own personal political and moral values than feeling comfortable with how other people attach certain positions to the ideological definitions I seem forced to use to represent my values. Personally I identify as left libertarian – indeed on the Political Compass test (also discussed in Delacour’s post) I find myself further to the left and considerably more libertarian than Delacour is in his post. I do, however, find myself in conflict with the some of the ideological positions that have been attached to the definitions of left and libertarian. I perceive I hold views about some social and economic issues that would place me in conflict with the left and especially the libertarian camps.

On the libertarian spectrum I would be clearly disowned for my belief in universal health care, some form of centralised oversight on environmental issues and criminal justice issues and some degree of universal education (though I do not espouse a government run education system but more the government mandated provision of a right to a certain level of education). From a left liberal perspective as am example I am definitely not on the same page with reference to criminal justice issues. For example I am not convinced some criminals can be rehabilitated. Nor am I convinced that certain kinds of anti-social behaviour – pedophilia for example – is treatable and that the liberal desire for rehabilitation is both unrealistic and dangerous. In those circumstances I believe some form of containment should be considered mandatory. I do, however believe that the rate of crime (especially property crime, violence within families and drug-related crimes) could be reduced with a greater focus on education, employment and the breaking of chains of poverty and the structures of generational repetition in the family, educational achievement, welfare and employment status.

So like Jonathon Delacour I perceive a great deal of blur or movement in the traditional definitions that make it almost impossible to use these labels to adequately identify people’s ideological positions. Delacour offers an alternative methodology. On one side is a constrained view for which Delacour cites Adam Smith – in which the moral limitations of humanity (placing self-interest above egalitarianism) have to be factored into any societal equations – in other words it necessary to perceive social and economic contracts and relationships as a series of compromises rather than solutions.

On the other side is an unconstrained view in which he cites the work of William Godwin. In the unconstrained view the moral limitations and self-interest of humanity do not necessarily invariability appear in societal interactions. In this view there is the potential for humans to perform acts of selflessness or altruism. Delacour also introduces Godwin’s view that the intention of an act has the potential to generate virtue, though perhaps not an equality of virtue with the act itself, in its own right.

Delacour claims an antipathy to the unconstrained view – partly due a self-declared an antipathy to the view that the intention of an act can generate virtue. I can both understand and agree to some degree with that position. Robert Louden’s “On Some Vices of Virtue Ethics” offered such a damning critique of virtue theory as opposed to acts-morality that I do not believe that virtue theory remains a substantially tenable position (as much as I would like it to be in my more regressive naive moments). Delacour also relates that antipathy for the unconstrained view to the belief, whilst not denying altruism totally, that it is largely impossible (using the potentially very subjective judgement of everyday observation) for humanity to act without being driven by self-interest.

This acceptance of the inevitability of moral fallibility in human interaction disturbs me. Whilst it would be naive to argue that inherent human moral prejudices don’t exist I believe the divide between individual self-interest and altruistic behaviour is not as great as argued here. I would be among the first to argue that altruism on its own is often (perhaps even usually) too much to hope from humanity. But I do perceive that acts can be motivated by an enlightened self-interest where self-interest is not or only partly in conflict with an altruistic motivation. In this model the resulting outcome, even if that outcome is a “prudent tradeoff” represents an overall increase in the virtue (or ‘good’ given the issues I perceive with using the concept of virtue) in society whilst also addressing the individual’s self-interest. Thus I do not see a contradiction between acts committed in self-interest and those committed altruistically if the overall outcome is identical. At that point the original intent of the act becomes irrelevant because in Delacour’s words “intentions count for nothing … only actions have value.”

I believe, though admittedly through everyday observation, that a great deal of these accidentally altruistic acts take place. I also believe it is further possible to leverage self-interest using ego and reward, in much the same way current political leaders are motivating people with fear, to commit a greater number of this acts of accidental altruism. In this I am reminded of a quote by Elie Wiesel which is worth ending with:

I have learned two lessons in my life: first, there are no sufficient literary, psychological, or historical answers to human tragedy, only moral ones. Second, just as despair can come to one another only from other human beings, hope, too, can be given to one only by other human beings.

Washington Day 1

October 23rd, 2003

Came to Washington early. Was well over Baltimore and my conference. Caught the Amtrak to Union Station and then went to my hotel and checked in. Then picked up my camera and guidebook and started walking. I am staying near Georgetown and near George Washington University so I close to all the things I wanted to see.

Went first to the Lincoln Memorial. Which is an impressive monument. And the Gettysburg Address has always moved me.

Then I walked down to the Vietnam Veteran’s Memorial. Don’t know what I expected. I just walked up and down and looked. I took some photos and then wandered some more and watched and listened to people. It is an incredible monument. It’s powerful and moving. It’s hard to get your head around the fact that there are 58,000 names on those pieces of black stone. 58,000 men who never came home to their families and loved ones. Who never had the chance to live. Ask the mothers, fathers, lovers and friends of those people whether any war is worth it. Incredibly sad and incredibly frustrating. This is the true cost of war. The only thing I think could add to the message of the monument is that they need enough panels to write the names of the 3 million Vietnamese who also fell in that war.

There were quite a lot of older people there – several older couples – men and women in their seventies looking at names and taking rubbings of them. A group of immaculately dressed older women – like they were on their way to church on Sunday – holding one of their number and patting her on the shoulder as she cried quietly against the Wall. From their accents and conversation I gathered they were from somewhere in the south. I don’t know who the boy the woman was crying over was but from her age I would guess it would be a son. I wonder if she’d been there before and whether seeing that name was a comfort or a curse?

Then a group of laughing and mocking schoolboys walking past me – no interest in where they were at all. Then one of them stopped dead. He’d found someone with his exact name on the Wall – down to the middle name. They clustered around the name and looked serious – all their humour seemingly gone. Their teacher gathered them up and I watched them walk away – no laughter now.

Eventually I walked away too.

I walked up to the Washington Monument but couldn’t work out how to get a ticket to get in so just had a sticky beak and kept walking. Went all the way around the White House – got several stares from guys in black jump suits with Secret Service caps – I think partially bearded men with black overcoats and black jeans are probably on their list of potentially suspicious characters. Took some photos and kept walking. Walked all the way through Downtown and then up onto Dupont Circle. Then back to my hotel. Feet were bloody sore.

Tomorrow I’m going to hit the Library of Congress, the Capitol building, the Smithsonian, the National Archives, the Holocaust museum and whatever else is in that general area.

I am the opposite of you

August 23rd, 2003

Pacifists are morons. You are basically saying if you were attacked, you would not defend yourself. So you would rather let yorself die or be robbed or murdered, or see you’re loved ones killed, than fight back. Guns- there is nothing wrong with guns. Guns don’t kill people, killers with gus kill people. Gun control – liberal crap. Won’t prevent criminals from getting the weapons, just disarms innocent people. Capital punshment gives jerks what they deserve. Religion strenghten’s one’s confidence and adds meaning to life. You are a moron.

I received this email this morning and thought I’d respond publicly. I’ve quoted it above exactly as I received it. To begin I must state that undoubtedly on many levels most humans can be morons (myself included on occasion) but my desire to respond isn’t because of any name-calling. My desire to respond was because it is this sort of ignorance and dislike of people because their beliefs and ideas differ from your own which causes much of the anger, violence and bloodshed that I (in my very small way) oppose. It also very clearly illustrates the point I made in an earlier post about attempting to generate understanding and tolerance.

Firstly ‘pacifism’ is a little more complicated than my correspondent would have you believe. There are two major schools of pacifistic thought – and I’ll keep this relatively brief to avoid turning it into a philosophy lecture and cover it in broad terms. The first is ‘Absolute Pacifism’ – which can be described as the belief that all forms of violence, war, and/or killing are unconditionally wrong. This absolutist position I find is almost untenable. It would requires the growth of a degree of moral purity and a considerable increase in overall virtue in the world to be possible. It is I suppose best described as an idealistic dream. The second is ‘Conditional Pacifism’ which posits that the absolute prohibition of the use of violence or war is not possible and admits its use under certain circumstances. Myself? I am a ‘Conditional Pacifist’ and part of the ‘Pacificism’ movement or at least I share much of their ideology.

To give it a broad definition (one which encompasses many and varying viewpoints) pacificism is a movement which believes that peaceful conditions are better than war but who accept that some wars may be necessary if they advance the cause of peace – now I exist in the figurative ‘extreme left’ of these thinkers – I not only prefer peaceful conditions to war but believe a ‘just war’ has to meet some exceptional conditions. Conditions for example that elements of the Second World War met but certainly not the actions of the United States in Afghanistan, Iraq, Vietnam, Laos, Grenada, Beirut, South America, Cuba and pretty much everywhere else they’ve invaded or sanctioned violence in during the mid to late 20th and early 21st Century.

In my idealistic youth I believed Kahlil Gibran’s words – “If my survival caused another to perish, then death would be sweeter and more beloved.” (Voice of the Poet). Whilst I still honour the sentiment I sadly do not follow the creed anymore. I believe there are instances in which violence becomes necessary and some circumstances under which you may call a war ‘just’ but those instances are limited. They should be tightly controlled and carefully monitored. The prime example I use is the monstrosity that is called ‘collateral damage’ – that very casual phrase used for the devastating consequences of the use of force on the innocent which is almost treated a side effect of that violence. Whilst wars are still fought in which ‘collateral damage’ is regarded as unfortunate but not note-worthy there can be no ‘just war’. We need to learn to use force in a manner which protects the innocent whilst achieving an outcome that enhances peace. I do not believe in turning the other cheek but just cause must be given, weighed and carefully considered before there is recourse to violence. Violence and war should never be resorted to for glory, land, honour or wealth. The taking of human life for these purposes lessens us all as human beings.

I will briefly touch on my correspondent’s last three points because I believe they have been better answered elsewhere by others and indeed my words are little likely to change their mind. Gun Control? The nonsense about criminals and disarming innocent people? I agree with my correspondent that gun control does not stop criminals getting guns. But so what? The vast majority of gun deaths are people killed with their own weapons – not some hypothetically heavily armed criminal but either accidentally, by a family member or by an intruder using their own weapon. The only other point I will make about gun control is about statistics. It has been repeatedly statistically proven that if you restrict the ownership of guns then deaths from firearms (including accidents as well as murders) are dramatically reduced and indeed, though I tend to be more conservative on the statistical linkages cited, that overall murder rates fall as well. This is a FACT. I thankfully live in a country where gun control, whilst not perfect, is pretty good and gun violence is considerably less than in other countries – not non-existent but significantly statistically smaller than a country like the United States. I would be happy to cite via email a number of statistical studies on this topic if anyone would like further evidence.

Capital punishment? It’s never achieved anything – except revenge by the State onto the criminal. It’s not a deterrent, it doesn’t reduce the number of crimes committed, it fosters a culture of violence and revenge, it encourages increasingly violent acts because the perpetrators know they have nothing to lose if they are executed and tragically as has been borne out repeatedly the State frequently executes the wrong person for the crime. There is no decent argument to it that has been proven to actually make sense.

Religion? Apparently religion provides confidence and adds meaning to life. Does this imply the author lacked these traits beforehand or do they believe everyone who lacks religious faith also lacks these traits? If the former is true then I am sorry they are unable to find those traits within themselves but I am happy for them that they have found them through their religious beliefs. Personally I find myself a flawed being but a reasonably self-confident and happy one without the need for religious beliefs. But I respect their right to believe without the urge to describe them as a moron for believing it. If the latter is true then I think they would find it a very hard position to defend given the intellectual capital of agnostic and atheist thought. I would suggest they wander over to alt.atheism and ask the question there and see if the many fine people on that newsgroup believe that religious belief is linked to meaning of life and confidence.

I know little I write will change the mind of my correspondent – in my opinion he or she has a very narrow and what I would consider ‘traditional’ right-wing view of the world. My guess is that from the opinions stated in the email that the author is male, white, 18 to 35, probably at least nominally a Christian of some kind, American and probably a Republican and a supporter of the Bush Administration. I don’t think he or she is a moron but I do feel pity for them. To place so little value on human life itself and to deride someone for believing that taking human life is wrong is a great shame.