![]()
|
OriginsI am a software engineer, and have been for most of my life. One afternoon I was thinking about my tendency to obsess over minor technical details. I'm not alone in this tendency, but I have no doubt that many others — even some in my profession — view it as a peculiar form of madness. What metaphor, I wondered, could possibly convey why it was so difficult to let go of seemingly-trivial issues? As it happens, I'd recently been discussing Douglas Hofstadter's Gödel, Escher, Bach with a friend. It was that book which introduced me to Zen kōans. Thoughts collided, and the first of these pseudo-kōans was born. Consider it an experiment: an attempt at merging vocation and avocation. Happily, I'd been looking for a small daily writing project to do during the month of November, something to ease my regret at (once again) not being able to participate in National Novel Writing Month. The project had to be something I could fit in at the edges of the day, and I realized that I could probably manage one new pseudo-kōan every evening for the month. There were days when I did more than one, and a couple where I was unable to complete what I'd started the night before. Still, by the twentieth of the month, I had enough to justify putting the collection online. Authenticity (or lack thereof)Although the title of this collection is a rather obvious play on The Gateless Gate (a historically important collection of Zen kōans), please note that the offerings here are not Zen kōans, nor do I intend any disrespect to practicioners of Zen Buddhism. Some of the differences:
In a few cases I've tried to follow the traditional form of the Gateless Gate. "Echo" is the first example to do so:
You will notice that the number four plays a significant role. Update scheduleI am attempting to add one new kōan a week, on Sunday. If inspiration strikes me and I add mid-week, it will probably be on Wednesday. IllustrationsAll illustrations are done by me (that includes the border artwork you see on every page). I generally start with mechanical pencil on plain paper or graph paper, then scan the page in and do the digital inking and coloring on my Linux box using Gimp and a Wacom graphics tablet. Sometimes I use Inkscape to turn the pencil lines into clean vector graphics. I first hit upon the idea of illustrating the kōans when I wrote Shape. I was struck by how much the then-simple graphic lent to the page. I went back and did pictures for a few earlier ones, like Empty, and by then was convinced that I wanted to illustrate as many kōans as possible. It's a challenge, because the illustrations can take much much longer to do than the kōans, and my actual goal is to keep churning out text. TranslatorsThe kōans are written in English, which is my native language. All other languages on the site are courtesy of the hard work of some very generous volunteers:
Submitting translations via emailIf you want to provide a translation for a particular case, I am very happy to post it! All you need to do is send me the text as UTF-8 or HTML, and tell me how you would like to be creditted. Don't worry about formatting or images—I'll take care of all of that. If you want to make things really easy on me, you can email me (or provide via a git repository, or link to URL) a simple text file in UTF-8 as shown below. Submitting translations via GitThanks to Alessandro Desantis (one of the Italian translators), we now have a Git repository for translations! Alessandro created the repository and has very generously agreed to act as the curator. Go to https://github.com/alessandro1997/the-codeless-code and take a look at the 'it' (Italian) directory for examples of translations. I will do my best to pull from the repository in a more-timely manner in the future, but for now I can at least agree that any contributions you post to the repository for cases 60 and upwards will be posted to the main site on Sunday when I post the new case. If you want to commit your current work on a file but don't want it to go up on the website just yet, just put the following in the header:
Skip: 1
That will cause my conversion scripts to ignore it. Translation file formatI use a MediaWiki-style format in UTF-8, which gets turned into PHP/HTML content fragments by scripts on my home machine. Here are the key points:
Here's an actual example for this case: Number: 65 Title: Due scelte Lang: it Translator: alessandro1997 Il maestro Java [[Kaimu|Kaimu]] aveva lasciato [[#64|tre novizi]] a discutere della firma di un metodo di servizio. Un'ora dopo trovò i tre nel suo ufficio, confusi e in disordine. “Avete raggiunto un accordo?” chiese Kaimu. Il primo novizio, l'abito strappato e il labro rotto, disse: “Siamo più lontani che mai da una conclusione pacifica. Ciascuno di noi preferisce la propria soluzione rispetto alle altre due. Vi preghiamo di fare la scelta giusta al posto nostro.” “Molto bene,” sospirò Kaimu. “Tra le tre opzioni offerte, una era abbastanza audace da rigettare la nostra tradizione della tipizzazione forte, dichiarando il metodo in modo che accettasse un oggetto Object, in modo da soddisfare tutti i potenziali utenti. Chi di voi l'ha proposto?” Il secondo novizio si fece orgoliosamente avanti. Con un rapido calcio nello stomaco, il maestro lo fece ruzzolare fuori dalla porta. == Il commento di Qi Il metodo che accetta Object accetterà felicemente PiedeSinistro. == Il poema di Qi Una rana perfetta è rannicchiata sul tavolo, // circondata da schegge di giada. // A ogni soffio, lo scultore ha due possibilità: // favorevole, contrario. In some cases I have received more than one translation in a given language. In general, the first one I receive will become the "default" translation, but the others can all be reached from links in the footer and the "translations" menu at top. WebsiteThe website is pure custom PHP5 — my first major foray into learning the language. There is no real content management system: I write the kōans in plain text on Emacs and use some custom-rolled Perl scripts to turn them into HTML fragments with fancy quotes, em-dashes, and the like. I preview my local copy of the site, then update the real site via a secure rsync. FontsThe titles for this website use the lovely (and free) Gothic Ultra Regular font (version 2.0) which was designed by Jess Latham of Blue Vinyl Fonts. Jess was kind enough to generate a custom version of the font for me. The original CSS @font-face kit was downloaded from Font Squirrel, which saved me quite a lot of work. Forums (or lack thereof)I thought really long and hard about this, after having been asked by a number of people to create a facility for feedback and/or discussion. The short answer is: since my intent is for these writings to invite personal contemplation, I think that a public forum would subtract more than it would add. I also don't want to be a moderator or spam-cop. Please know that I am always happy to read and respond to email, if you really want to discuss something one-on-one. My address is at the footer of every page. CreditsThanks go to several individuals for their help with the site:
Related works
DisclaimerThe stories in this collection are works of fiction, synthesized from ideas acquired over many years. Any resemblance to persons living or dead, or to corporations, situations, religions, philosophies, gross acts of injustice, or other works of fiction — past, present, or future imperfect — is purely coincidental. No* actual monks were harmed in the making of this website. * Well, maybe a few.
License
Final thoughtsI know the audience for these is somewhat limited. I'm often dismayed by this thought. But then I remember Stanislaw Lem's poem from The Cyberiad which merges love and tensor algebra. Sometimes we are simply called to write something, no matter how weird or useless it might appear to be. There's little point in debating inspiration, and it's downright perilous to turn her away at the doorstep. She may not choose to visit again. Anyway, thanks for reading this far.
Отрывок из The Codeless Code, созданная Qi (qi@thecodelesscode.com). При условии, в соответствии с условиями Creative Commons Attribution-NonCommercial 3.0 Unported License. |
||||||||||||||||||||||||||