The Orphaned Children of War

On the Natural History of Destruction, by W G Sebald.

Very few writers could approach this book’s subject matter and deliver such a powerful, methodical damnation of a generation. W G Sebald asks a simple question in the first essay: how is it that the near-total destruction of Germany by allied bombing in World War II has been so completely ignored by the survivors, and particularly by German culture and writers?

Although he never calls it by this term, the core of Sebald’s anger is directed at the moral relativism that is used to justify evading the topic: German crimes during the war were so horrible (and they were) that the wanton destruction of the entire nation was justified. Sebald is angry that the experience of living through such atrocities was so thoroughly repressed by the survivors that the memory was not passed on the future generations. Instead there seems to have been a near-unanimous cultural suicide. Sebald describes growing up feeling as if a secret were being kept from him, like a part of his identity as a German was being denied. It was an Etch-A-Sketch end to the past, without context or meaning.

Although Sebald doesn’t really mention it (his critique is aimed directly at the German people), American and British writers have had the moral courage to broach the subject, and it has given us fantastic and disturbing books like Slaughterhouse-5. These help us to center our moral compasses; we can recoil in horror at the firebombing of Dresden (and Tokyo) while fully maintaining our outrage at the Holocaust. The morality of the atomic bombings of Hiroshima and Nagasaki is still a heated subject for debate today.

It is this that Sebald finds lacking in German culture, and, in the remaining essays, he singles out writers who contributed to this collective evasion. It is not, as one so often sees it referred to, amnesia. Sebald is quietly, methodically angry, and his prose has never been better than it is in these essays.

Minima Moralia, by Theodor Adorno

I have created an eBook, in ePub format, of Theodor Adorno’s magnificent, haunting book, Minima Moralia, using the Creative Commons-licensed translation by Dennis Redmond.

This relatively small book (as Critical Theory texts go) consists of aphorisms, written during Adorno’s exile from Naziism and his return to post-World War II Germany. This form is especially well-suited to Adorno’s critique of the paradoxes, illusions, and alienation that constitutes modern civilization — a critique centered on culture. Most disturbingly, Adorno, in many of these aphorisms, connects aspects of modern society to the rise of totalitarianism. He does this with an unrivaled lucidity and skill for distillation of complex notions and observation — an abilitiy to, as Orwell phrased it, face unpleasant facts.

  • Download MinimaMoralia.epub
  • Last Modified: December 12, 2012
  • For: Any ePub 3-capable eReaders (iBooks, Nook, Kobo)

Happy Bloomsday: New eBook of Ulysses, by James Joyce

I have been disapointed by the formatting of the Gutenberg edition of Ulysses for some time now. It lacks chapter breaks, so the only navigation points are the three parts of the book. It makes it hard to pick out a favorite episode to read. There is also inconsistent emphasis, capitalization, margins, spacing, etc.

Therefore, I have created an ePub 23 edition of Ulysses that reproduces, as closely as I can digitally, the textual formatting and layout of the Orchises Press facsimile of the original Shakespeare and Company edition. It can be downloaded here.

I set out to make the most software-agnostic edition I could, first creating an ePub 3 file as close to spec as I was able, then adding support for ePub 2 readers. The Calibre reader and the latest version of iBooks display the formatting more or less as intended. The latest version of the Nook software reader does a decent enough job but does not preserve uppercase capitalization. The only dedicated eReader I have access to is a first-generation Nook, and it is consistent with the Nook software reader. The file can be converted to Mobi, using Calibre, for reading on the Kindle. A quick test of the Kindle software reader is decent — there are some issues with indentation. I do not know how it would look on a Kindle.

Anyway, this is, as Ulysses has always been, a work in progress. It was not my intention to make any changes to the text, so any errors that existed in the already-digital text are still there. I hope my humble, hand-crafted effort brings some enjoyment this Bloomsday.

  • Download Ulysses.epub
  • Last Modified: June 16, 2012
  • For: Any ePub 3-capable eReaders (iBooks, Nook, Kobo)

Sterilizing Human Rights in Europe

Today I encountered a campaign to end Sweden’s sterilization requirement for transgender individuals to have their preferred gender recognized (complete with poignant video). I would urge everyone, particularly anyone reading from Sweden or Europe, to sign the petition. I did a bit more digging, and found this astonishing paper from the Council of Europe.

Some countries require surgery leading to sterilisation before they legally recognise the new gender. It should be stressed that this requirement would also apply in the absence of a medical necessity or the applicant’s wish for such surgery.

Map of European Laws on Sterilization

That doesn’t include divorce and medical requirements for recognition and name change.

I would write more but I would have to pick my jaw up off of the keyboard. Forced sterilization is the sort of thing one associates with the darker days of European and American history.

Forced sterilization by the state has no place in the twenty-first century. Anywhere. For any reason. It’s an outrage to human dignity regardless of gender.

The Humanness of Modern Man

The dual loss of Christopher Hitchens and Václav Havel this week have left the world intellectually poorer. Hitchens would be the first to disavow any comparison between the two of them, but there is a line in Disturbing the Peace that I believe speaks to the essential struggle of both:

If the world is to change for the better it must start with a change in human consciousness, in the very humanness of modern man.

ZopeEditManager 0.9.7 Universal

If you do a lot with Zope and don’t like to have to use Zope’s ZMI editor, external editing is a godsend. Unfortunately the ZopeEditManager application for Mac OS X hasn’t been updated in quite a while. This is fine because it still functions well, but the problem is the most recent binaries are not universal. I don’t have anything else using Rosetta, so I’d prefer not to have to install it.

Thankfully because it’s open source you can download the source. I’ve done just that and built a quick universal binary. I’ve made no other changes, and it seems to work quite nicely.

ZopeEditManager 0.9.7 Universal
MD5: 5bd3e6497ec0d65d21c60e138c8d6fa5
SHA1: da5f5e216d518727d6f95fe2af32c0db2c6039f9

Railo on FreeBSD with Tomcat and Apache

This is primarily written for myself for posterity, but maybe others might find it useful. I find myself wanting to play with Railo, an Open Source ColdFusion engine. Java on FreeBSD can be quite un-fun, but I’m going to assume a working JDK to start off with.

First thing is to get Apache and Tomcat installed:

cd /usr/ports/www/apache22 && make install
cd /usr/ports/www/mod_jk-apache2 && make install
cd /usr/ports/www/tomcat6 && make install

Next is to create the /usr/local/etc/apache22/workers.properties file. The mod_jk port gives you a sample to start from. Mine contains:

worker.list=default          # The name of the tomcat server
worker.tomcat.port=8009       # The port of the tomcat server
worker.tomcat.host=127.0.0.1  # The host of the tomcat server
worker.tomcat.type=ajp13      # The type of the connection
worker.tomcat.lbfactor=1      # The weight of the tomcat server

Then mod_jk needs to be added to httpd.conf:

LoadModule jk_module libexec/apache22/mod_jk.so    # Load the mod_jk module

# mod_jk basic configuration
<IfModule mod_jk.c>
    JkWorkersFile etc/apache22/workers.properties # Set the worker.properties file
     JkLogFile  /var/log/jk.log                   # Set the jk log
     JkShmFile  /var/log/jk-runtime-status        # Set the status file
     JkLogLevel error                             # Set the log level
</IfModule>

That was successful in getting Tomcat up and working. Now for Railo. Thankfully, that’s the easy part. Railo provides a WAR file that can easily be dropped into Tomcat’s webapps directory. After that it’s a simple matter of telling Apache what to do about it. I simply added the following to my mod_jk.c’s IfModule:

JkMount /*.cf* default
DirectoryIndex index.html index.cfm index.cfml

And hey presto. I also added a entry for a particular domain I wanted to use Railo with:

<Host name="domain.com" appBase="/path/to/domain.com">
    <Context path="" docBase="www"/>
</Host>

And simply extracted the Railo WAR file there instead of in Tomcat’s webapps directory and used it as the basis for the particular site. The only thing is to make sure the web server has appropriate permissions on the WEB-INF directory.

Rounding DateTimes in Cocoa

Let’s see here, what’s the currently supported way to round a datetime to the nearest hour in Cocoa?

// Round the current date to the nearest hour
NSDate * currentDateTime = [NSDate date];
NSCalendar * currentCalendar = [NSCalendar currentCalendar];
NSDateComponents * dateComponents = [currentCalendar components:NSEraCalendarUnit | 
                                                                NSYearCalendarUnit | 
                                                                NSMonthCalendarUnit | 
                                                                NSDayCalendarUnit | 
                                                                NSHourCalendarUnit | 
                                                                NSMinuteCalendarUnit 
                                                       fromDate:currentDateTime];
if ([dateComponents minute] >= 30) 
    [dateComponents setHour:[dateComponents hour] + 1];
[dateComponents setMinute:0];
NSDate * roundedDate = [currentCalendar dateFromComponents:dateComponents];

The API seems a little excessive. I can appreciate what Apple has tried to do in making dates more flexible and easier to internationalize, but should basic manipulation really be that cumbersome?

Transforming XAR files with XSLT

One of the more interesting things about xar is the representation of the the Table of Contents (toc) in XML, with the ability to store “subdocs”, or additional XML trees, within the toc. You can easily add your own metadata to a xar file, in addition to its support for a variety of new metadata, including Extended-Attributes, both POSIX and Mac OS X’s.

Anyway, I’ve been playing with prototyping a package manager based on XSL transformations of xar files. Basically registering extension functions that can perform the necessary actions on the xar file as it is transformed. It’s a very interesting concept, and one I’m looking forward to exploring in greater detail.

I’ll write some more about this as I have time to play with it.