chris blogs: May 2004

28may2004 · Nukumi

During the last two days, I’ve been writing Nukumi, my new weblog system.

So far, “chris blogs” has been generated by a bunch of ruby scripts, Makefiles and XSLT stylesheets. This was by no means bad; it was very effective and just worked. But it also was very brainless. I had no way to do “real” permalinks, and the archive support I added recently was a kludge.

Therefore, I have been dropping the Makefile stuff and replaced it with some clever script. The pages are still generated with XSLT, because it’s the easiest way to get multiple output formats (so far, XHTML, RSS and Atom) from a single source.

However, the new system is much more flexible at this. While the only script, dubbed xml2entries.rb as you may notice, just outputted the last 15 entries (or all of them, if supplied the --archive parameter), into xsltproc, the new one supports multiple views of the same entry base.

My configuration code so far is:

#        Extension Stylesheet         Views
n.flavor "html",   "xml2xhtml.xsl",   :ALL
n.flavor "rss",    "xml2rss.xsl",     :front
n.flavor "atom",   "xml2atom.xsl",    :front

First, we define several flavors (term stolen from Blosxom) for the different output formats.

The second part is more interesting, however:

#        Name      Prefix      Hashfunc
n.view   :archive, "archive-", proc { |e,i| e.time.strftime("%Y-%m") }
n.view   :daily,   "entry-",   proc { |e,i|
  e.time.strftime("%Y-%m-%d-") + \
    e.header["Subject"].downcase.
    gsub(/[^a-z]/, '_').squeeze('_')
}
n.view   :front,   "index",    proc { |e,i|
                                        i < FRONT_LENGTH ? "" : nil
                                    }

The Hashfunc maps every entry onto a string which they get grouped by. The first entry just generates archives for each different month, that is 2004-05, 2004-04 etc.

The second one generates a permalink file for each entry of the form 2004-03-27-kurt_cobain_jokes, providing some context to the person coming from an external page.

Finally, it generates the index page (inclusive feeds in RSS and Atom) for all entries appearing before FRONT_LENGTH.

All these views get generated in each defined flavor into a file which has the flavor extension appended.

Note that all this is very efficient: Only the files which are new or would get changed (i.e. modification time of any entry in the file is newer than the entry itself) get generated anew.

Nukumi, which has its name from the japanese word for “warmth” (which was missing to the Makefile approach… :-)), works already very nicely, though I spend only about 5 hours coding it. I’ll relase it when I’m back from holidays.

I’ll be away for the next week till Sunday, and not be able to blog during that period.

NP: Beatsteaks—Big Attack

27may2004 · A proposal for HTML mails

HTML mails have been pissing off people since they were introduced. The additional clutter and bloat soon were criticized. Today, most mail I recieve is still plain text, but most spam is HTML.

Nevertheless, the concept isn’t that bad at all: Users don’t want to write plain text, but markup their text with emphasis, add links, define paragraphs etc.

Therefore, the content-type text/enriched was defined in RFC 1896. It failed; being a kind of SGML dialect with nonstandard semantics, it’s too complicated for most mail clients to implement. In fact, the only text/enriched document I’ve ever seen was the sample file enriched.doc included in the Emacs distribution.

I have some ideas to help users get their markup, but make users (or are these “professionals” now?) for text clients still being able to read the mails without the need of a browser.

First, all markedup mails get created as restricted XHTML. Basically, only these modules are needed:

  • Text module: abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var.

  • Hypertext module: a

  • List module: dl, dt, dd, ol, ul, li

  • Edit module: del, ins

  • Bidirectional text module: bdo

  • Table module: caption, col, colgroup, table, tbody, td, tfoot, th, thead, tr

  • Image module: img

This is a small, document-centric subset of XHTML, but enough for mail. Note that the “Style sheet module” is missing: CSS is problematic in mail, and not needed for the purpose of markup. Instead, each user should define his own stylesheet (or use a predefined one).

Just using XHTML doesn’t help against the problem of text client users, though. (Although I think they’d already be happy if the mails didn’t use crappy HTML3.2, but valid XHTML.)

Therefore, the mail gets updated in a textual format, for example Markdown or Textile. An example; this mail as the user wants it:

Hello John,

I have some new data for you; it’s very important to me that you evaluate it soon:

Date Size
05-01-2004 17.1cm
05-16-2004 18.4cm
06-01-2004 19.8cm

Isn’t that great?

Yours,
J. Random User


J. Random User
42 Foo Street
Pittsburgh, PA 15213

This is the according XHTML snippet:

<div>
<p>Hello John,</p>
<p>I have some new data for you; it's
<strong>very important</strong> to me that
you evaluate it soon:</p>
<table>
  <thead><tr><th>Date</th>  <th>Size</th></tr></thead>
  <tbody>
    <tr><td>05-01-2004</td> <td>17.1cm</td></tr>
    <tr><td>05-16-2004</td> <td>18.4cm</td></tr>
    <tr><td>06-01-2004</td> <td>19.8cm</td></tr>
  </tbody>
</table>
<p>Isn't that great?</p>
<p>Yours,<br />J. Random User</p>
<hr />
<address>
<a href="mailto:jranduser@example.org">J. Random User</a><br />
42 Foo Street<br />
Pittsburgh, PA 15213</address>
</div>

Can you see the clutter? :-). However, in Textile, it would only look like this:

Hello John,

I have some new data for you; it's *very important* to 
that you evaluate it soon:

|_. Date     |_. Size |
| 05-01-2004 | 17.1cm |
| 05-16-2004 | 18.4cm |
| 06-01-2004 | 19.8cm |

Isn't that great?

Yours,
J. Random User

<hr /><address>"J. Random User":mailto:jranduser@example.org
42 Foo Street
Pittsburgh, PA 15213
</address>

Definitely an improvement, no? And it’s readable by anyone.

So the way future markup-mail should work is:

Markup -> restricted XHTML -> Textile/Markdown

On the reader site, it’s of course just the reverse.

The only problem for now is the automatic conversion of XHTML to Textile. (And the need of a WYSIWYG XHTML widget; the Mozilla Compos(t)er code I just tried sucks hard.)

NP: Smog—No Dancing

26may2004 · System Architecture with XML

System Architecture with XML by Berthold Daum and Udo Merten, what a generic title. And so is the book; it gives a really nice overview about the various uses of XML and their (co-)standards.

The book was published in 2003 and features all important W3C specs, XML, XML Schema—RELAX NG is unfortunately missing—, XPath, XPointer, XInclude, Namespaces and XML Base. XQuery and XSL, SOAP and the various security-related XML specs are included too. All specifications are shown with an understandable sample and some discussion.

RDF and XTM are handled in their own chapters, a section shows up the differences between them. Webservices are discussed in a business-related way.

Of course, the book can’t go very deep into all these standards; but it’s enough to get seriously interested in various standards one hasn’t yet found a simple introduction into. Two sections handle the philosophical aspects of ontologies, contexts, and topic maps.

A large index at the end of the book makes finding certain sections again easy.

I can fully recommend that book to anyone with only a little or no knowledge about XML at all that want to get an introduction into the most important, (mostly) business-related specifications and standards. Advanced XML people certainly don’t need it.

NP: Pearl Jam—Strangest Tribe

25may2004 · Monthly archives

Finally the entry archive got a bit too big for me (~97k), so I decided to split it up into monthly archives.

The new archive will stay of course, for the sake of permalinks, but all references on it have replaced; this may be sub-optimal for newsfeed readers, but doing it right is, IMHO, not worth the hassle.

NP: Nirvana—Plateau (unplugged)

24may2004 · Atom feed

“chrisblogs” has since today an valid Atom 0.3 feed.

The specification of Atom is, though in “PRE-DRAFT” state, as they call it, very clear and readable (much unlike RSS, but I’m not going to start the anti-Dave-Winer-specs post now.); but it’s also very strict (not necessarily a bad thing) and has more required elements than RSS.

I have been able to implement by modifying my xml2rss.xsl stylesheet in about half an hour. Now I just need to find a nice Atom reader to see if this actually works… :-)

NP: Pink Floyd—Run Like Hell

23may2004 · New design available

I’ve been doing a new design for “chris blogs”, dubbed “Dark Mint”.

It looks very different from the “Barcode” designs available; it is very minimal, has only one graphic and a bright font on a dark background.

I hope you like it.

BTW, CSS really needs something like #define in the C preprocessor. There are cases in which several elements have the same color but that color can’t be defined using cascades. Changing these colors can get very complicated and it’s easy to redefine an element with the same color but a different purpose. (For “Dark Mint”, I just used the macroprocessor m4 to define colors, but running m4 after each change is tedious.)

Prank of the minute:

class String
  def dylanize
    gsub(/\b([b-df-hj-z]\w+in)g/i, 'a-\1\'')
  end
end

puts "For the times, they are changing".dylanize
puts "I'm wondering if she remembers me at all".dylanize
puts "I saw a room full of men with their hammers bleeding".dylanize
puts "I'm going back out 'fore the rain starts falling".dylanize

This will result in:

For the times, they are a-changin'
I'm a-wonderin' if she remembers me at all
I saw a room full of men with their hammers a-bleedin'
I'm a-goin' back out 'fore the rain starts a-fallin'

*veg*

NP: Pearl Jam—Hold On

22may2004 · Webstuff

I found a nice trick to hide e-mail addresses from harvesters, using CSS:

<div style="padding:5px;font-family:'Courier New',monospace;
            line-height:0%;text-indent:1ex;letter-spacing:1ex;">
  hekrhnyhod<br />cnuice@ao.e
</div>

It will look like:

hekrhnyhod
cnuice@ao.e

Go figure how that works!

I added two very useful extensions to Zyl, first, an image chain that can resize images on the fly via the URL. You can, for example, say:

<img src="graphics/foo.png/200x300" alt="A foo" />

And, whoo!, have a 200x300 pixel image, nevermind how big foo.png is in reality.

The other extension allows rendering of TrueType fonts on the fly, e.g.:

<img src="font/chicago-32/Page Title" alt="Page Title" />

And get the according picture immediately. Very useful.

I also played with BefTer-Shadows, which are non-intrusive shadows (i.e. they require only one <div>) and look really cool.

From the Emacs NEWS file:

** Convenient commands to switch buffers in a cyclic order are C-x <left> (prev-buffer) and C-x <right> (next-buffer).

These rock! (C-x b tends to get very confusing if you edit more than three files at the same time.)

NP: English Beat—Save It For Later

20may2004 · ppchTeX

Today I experimented with ppchTeX, a macro package for plain TeX, LaTeX and ConTeXt to typeset chemical formulas.

It’s stucture is very interesting; it uses an arcane syntax which in fact is a domain specific language. I’ll show some examples here.

Chemical formula of Ethene First, Ethene (CH2CH2).

The code of this looks like this (there is some stuff around it, but this is the code unique to this certain formula):

\chemical[ONE,SB46,DB1,Z0146,MOV1,SB28,Z28][C,C,H,H,H,H]

This reads like a simple program:

  • ONE: This is the command to introduce an “node” inside the formula.

  • SB46: Draw a Single Bond on position 4 and 6 of the current node. This is bottom-left and top-left.

  • DB1: Draw a Double Bond on position 1 of the current node. This is right-middle.

  • Z0146: Add the name of the atoms at position 0 (the middle of the node), 1, 4 and 6. These get the names from the data attached to the call; i.e. the current node gets named C, just like the right node, and the two left ones get H.

  • MOV1: Move to the node at position 1, that is, the right node.

  • SB28 and Z28: Draw the upper-right and bottom-right bonds, and name them accordingly.

This sounds quite compilicated, but once you got how to look at the formula, its quite easy to write.

Chemical formula of two
acetic acid molecules connected by hydrogen bonds

Now, a bit more complicated example, two acetic acid molecules connected by hydrogen bonds. The code:

\chemical[ONE,Z05,SB25,DB8][C,H_3C]
\chemical[PB:Z2,ONE,Z01,SB1,PE][O,H]
\chemical[PB:Z8,ONE,Z0,HB1,PE][O]
\chemical[SUB1,ONE,18OFF1,Z01,SB16,DB4][C,CH_3]
\chemical[PB:Z4,ONE,Z0,HB5,PE][O]
\chemical[PB:Z6,ONE,Z05,SB5,PE][O,H]

I’ll only explain the stuff not covered above:

  • PB:posPE: Start a subdiagram at position pos.

  • SUB1: move one structure in relation to another in the direction given.

  • 18OFF1: do 18 small steps in direction 1 (right).

Now, a quite tricky one, Guanine:

\chemical[FIVE,SB235,DB14,SR4,Z1245,RZ4][C,C,C,N,H]
\chemical[PB:Z3,ONE,Z0,SB3,CZ3,PE][N,H]
\chemical[ADJ1,SIX,SB1356,DB2,Z1236,DR6,RZ6][N,C,N,C,O]
\chemical[ADJ1,SIX,SB35,Z6][H,H]
\chemical[PB:Z3,ONE,Z0,SB28,CZ28,PE][N,H,H]

Chemical formula of Guanine

  • FIVE draws a five-ring.
  • RZ draws substituents using names from the data given.
  • ADJ1 moves another structure in the direction given adjacent to a bond.

Yeah, that’s it. Lots of fun and a source of endless frustration… :-)

NP: Grateful Dead—Mountains Of The Moon

20may2004 · Nochmal Zitate

Endlich Ferien!

Bei Trigonometrie machen wir draußen Mathe.Hoffentlich regnet’s da!

Du kommst aus Kuba!Schalom!

Aufbewahrungsbehälter für radioaktive Violinen: Fidel Castor.

Ich bin bescheuert!

Das ist ja voll leer.

Was ist rund und stinkt?Ein Stuhlkreis!

Wenn die Augen von der Gummipuppe weiß werden, ausleeren!

NP: Nirvana—In Bloom

18may2004 · Lisp, Arch & Emacs

Yay, Dave Roberts cites me in his blog “Finding Lisp”; when he asked why so many Lisp projects use Arch:

The best thing I heard was from Christian Neukirchen who wrote and said it was “…because Lispers like to do it the Right Way.” Somehow, that sort of makes sense. Lispers certainly don’t follow the crowd. They look for good solutions to problems and they aren’t afraid to stick with something that isn’t winning the technology popularity contest. So, while the rest of the masses struggle on with CVS, it seems like a lot of Lispers are turning to Arch for its superior approach to change sets, branching and merging, etc.

I exchanged a few emails with Christian and as a result of his urging, I have started using Arch myself.

(I didn’t urge at all! I just told the truth :-))

So far, there were many Arch interfaces for Emacs, and a self-made repository browser contained the comment:

;; nbbba.el doesn't yet integrate with the other tla interfaces,
;; as time will tell which one of the few around will put through.

A mail from Matthieu Moy tells me:

That was true a few weeks ago, but today, tla.el and tilly.el (and recently mst-arch.el) joined xtla, which is now the Emacs interface for tla.

xtla calls itself “a very complete Emacs front-end for tla”.

I tried xtla before, and wasn’t too impressed of it, but a diff against a more recent revision tells me that lots of functionality was added. The archive browser feels a lot like mine but has lots of additional features like viewing changesets, diffing to arbitrary revisions etc. Furthermore, the code is a lot cleaner than mine, since it uses ewoc and not string twiddling for display.

Masatake Yamato even had a patch to make it use tree-widget to get a nice tree overview; he wanted to install that patch soon. It seems to kicks ass now.

Cory Doctorow does civil obedience in the cinema, and they like it!

Ihr seid alle Atheisten! Ich bin ein Christ, ich war von Anfang an Verlieren gewohnt!

NP: Hammerfall—Legacy of Kings

17may2004 · Halbe Woche

Eine halbe Woche noch bis zu den Ferien.

Back’ mir ‘nen römischen Kuchen!

Ihr könnt euch ja alle bescheißen.Hab ich seit meinem Kindesalter nicht mehr gemacht!

Das war jetzt der Kurzdurchlauf.

Ich hab gestern dort schon zwei Tage verbracht.

Kompetzen (was haben wir gelacht…)

Schrittschnitt

“Ein Bäuerchen machen” ist doch doppelsinnig, oder?

Morgen Deutsch-ZK!

17may2004 · News :)

David, a friend of mine, now blogs at livejournal: dasdingonesin.

XMLhack will not get updated anymore, however:

[…] drinking from the fountain of Berners-Leesian wisdom I note that cool URIs don’t change. Every endeavour will be made to keep XMLhack content online at the same URLs for the foreseeable future.

Thank you, and let’s hope you’ll start anytime again.

Dave Winer will open source Frontier. I haven’t yet used it, and I honestly don’t like Dave too much; but I enjoy open sources, let’s hope they choose the right license.

NP: Pink Floyd—The Thin Ice

16may2004 · Digitalizing everything considered harmful

Is it just me, or are things in daily life getting more and more digital?

You may not consider this to be a bad thing, but take note that almost everything digital is also very innatural; nature is, by definition, analogue. There is not just day and night; sunlight slowly fades in the evening.

Still, everything gets digital: While started with photography (anyone still buying analogue cameras?), we currently are digitalizing the media. Radio and television get streamed in digitally compressed formats all over the world. Music (mostly) gets recorded and mixed using computers; large parts of formerly used instruments get replaced by plug-ins that try to sound like them using digital synthesis and/or samples.

These instruments will never sound like they used to, and while inexperienced (and I don’t claim here to have better ears than you) listeners may not notice acoustically, I’m pretty sure they will notice by feeling different.

Don’t forget that we are analog devices: While digital things may look like the holy grail in our life, they aren’t. This is because they are too different, they misses the warmth of life. And while those digitalized instruments are “perfect” in some way, we aren’t. It’s really the small errors, glitches and uncertainties that make the music worth listening and interesting at all. It’s as Donald Knuth tells in the MetaFont-Book:

Musicians who use computers to synthesize their compositions have found that music has more “life” if its rhythms are slightly irregular and offbeat; perfect 1—2—3—4 pulses sound pretty dull by contrast.

However, the only way to have music on computers (which is a facility I definitely wouldn’t want to miss), is by digitalizing it. But then, please do that in the last step (you might even consider recording on vinyl), and don’t “click all the music together”. It will pay out.

It’s by the way interesting that this true for many, but not all arts. Computer graphics can definitely look great, but you won’t reach the detail and feel a “real” drawing has; you can’t, by definition. The devil is in the details. But it’s not, at least not that, true for poetry for example. It doesn’t really matter if you read it from a book or from a screen. This is probably because it is already digitized by putting it into words. I’m sure it would feel different if the original author read it aloud.

Heck, I can already myself in some years getting asked by my son watching a bug with magnifying glass, “Dad, this resolution really rocks! I can’t see a single pixel there.”

Or maybe, he will.

NP: Scott McKenzie—San Francisco (definitely recorded analogue)

14may2004 · Freitag...

Yay.

[Ghandi wird im gleichnamigen Film aus dem Zug geworfen:]
Jetzt komm! Messer raus und Reifen zerstechen!

Dracoola

Man muss die parallel zum Höhepunkt bringen?

Mehlmangel in Deutschland! Jetzt wird das Mehl schon mit Kokain gestreckt!

Welche grammatische Form ist “Du hättest nie geboren werden sollen.”?Praeservativ defect!

Salary: Sellerie

NP: Die toten Hosen—All die ganzen Jahre

13may2004 · Dannerstog

*ehem*:

Ich hab’s extra gelocht.Ich brauch aber vier Löcher!

Wenn ich einen See seh, brauch’ ich kein Meer mehr.

Die Sonne könnte morgen regnen.

(ja, zurzeit ist nix los…)

NP: Killing Joke—The Wait

12may2004 · Zitaaate!

Heute und gestern:

Tür zu ihr Vollfische!

Man müsste mal ein Begattungsunternehmen aufmachen.

Und wer kratzt das Hirn von der Wand?Bei dir gäb’s keins!

Die Opfer kann man an einer Hand abzählen: eine Million, zwei Millionen, drei Millionen…

Hattest du schonmal ‘ne Fotze am Hals?Ja, bei der Geburt.

As seen on #ruby-lang:

* dblack 's ceiling totters on the verge of collapse
<dblack> a leak
<chris2> write a patch

NP: Pearl Jam—Daughter (On two legs)

10may2004 · News on Zyl and other stuff

Went on with development of Zyl. Now I have everything put nicely together in a single directory, so I can start with serious version control.

I also extended ruby-xslt to support parameters which are essential to me. I hope that patch will get included upstream. XML::XSLT is really a nice library, but there are some license issues to clear.

Maybe a first release and a bit of documentation in this week, no, I wont promise anything.

IRC raw and uncensored:

&lt;chris2&gt; if i need to wash the dishes,
             i automatically need to go to the bathroom :)
&lt;dragonkh&gt; chris2, my bathroomsis too small to wash dishes in 
&lt;dragonkh&gt; even if I pee on the plates
&lt;dragonkh&gt; well they might all fit in the bath actually -
               hmm interestin gidea

: <dragonkh> Germany was awesome in those days <dragonkh> booze, women, apfelstrudel and metallica - aah

This could make you think…

10may2004 · Schule on the Rock

Mooooohntag:

Wir dealen mit Tempos!

hinausrauben

Die Merkel hat’s schon schwer.Und ihr Frisör erst!

Kohl ist die breite Masse der Partei.

Was für ein Arzt muss man sein, um eine Abschiebepraxis zu haben?

Wollen sie die Nutte hier oder zum Mitnehmen?

“Glotka” heißt alles: Tür, Fernseher…Also alles was geklaut werden kann.

Die Zigarettenmarke der Arbeiter — Lucky Strike!

NP: Guns ‘N’ Roses—Knocking On Heaven’s Door

09may2004 · zyl

Today I hacked a prototype of zyl, my framework for REST-applications (which include dynamically generated websites, database views etc.) based on Ruby and Webrick.

I already have pipelined data transformations, a flexible URI parsing system (modeled like mod_rewrite) and XML accessibility (XSLT only, so far).

Initially, I used to pipe to xsltproc, but one fork per page doesn’t make the thing better than CGI, so I choose to use ruby-xslt by Gregoire Lejeune. They need a recent libxslt, which is when the trouble started. I’ll not tell you about the hacks I needed to make that package compile for my debian…

I’ll probably model my CMS based on ideas described in Toxical, which then can be wget-ted and be published on static servers (if needed).

NP: Lamb—Zero

08may2004 · Simplifying s-expressions

Many people have their problems with lispy s-expressions because they involve many parentheses. Especially if Lisp is coded in the way it should, “like a waterfall”, that is: functional, reusing values, avoiding sequences. Then code often looks like this (example taken from sb-md5):

(defparameter *t*
  (make-array 64 :element-type 'ub32
          :initial-contents
          (loop for i from 1 to 64
                collect
                (truncate
                 (* 4294967296
                    (abs (sin (float i 0.0d0))))))))

Note the 9(!) closing parens at the end; these become difficult to maintain, especially if code gets changed in the middle of it.

Seth Gordon now describes something very clever in a mail to Paul Graham: he invents the ~-syntax. Code which looked like

    (f (g (h x)))

now gets:

    (f ~ g ~ h x)

Notice the reduction of parentheses. Again the first sample:

(defparameter *t*
  ~ make-array 64 :element-type 'ub32
          :initial-contents
          ~ loop for i from 1 to 64
                 collect
               ~ truncate
                 ~ * 4294967296
                    ~ abs ~ sin ~ float i 0.0d0)

Suddenly, we have much less parentheses, but a more mysterious and—at least to Lisp users—more weird syntax.

Also note that there have been former tries to simplify multiple parentheses, for example the superparentheses of Interlisp. They are written as [ and ]. ] closes all parens upto the first [, or to toplevel.

Or, as we can read in the INTERLISP Manual:

The INTERLISP read program treats square brackets as “superparentheses”: a right square bracket automatically supplies enough right parentheses to match back of the last left square bracket (in the expression being read), or if none has appeared, to match the first left parentheses, […]

Now the code would get:

(defparameter *t*
  (make-array 64 :element-type 'ub32
          :initial-contents
          (loop for i from 1 to 64
                collect
                (truncate
                 (* 4294967296
                    (abs (sin (float i 0.0d0]

This looks even more weird than the ~-syntax because it is visibly unbalanced. This is probably the main reason that the superparentheses didn’t made it into Common Lisp.

I, for myself, however consider the ~-syntax to be an interesting, refreshing idea for lisp and hope Paul Graham will implement them. If not in the core language, they are at least possible using a reader extension. Maybe I code them for myself in Common Lisp. Mhmmm…

07may2004 · Wochenende!

Heute gab’s:

Oben-Ohne-Macht

Andre Agassi ist jetzt ja Grafiker!

Da wird mein Stopfen so dick!

Ich hab auch ‘nen Blautick, aber nur am Wochenende von acht bis drei.

NP: Bob Dylan—Spanish Harlem Incident

07may2004 · Style switcher

I made seven new subthemes for this website, which you can access using the styleswitcher from a list apart just under the title of the page. (You can also use View -> Use Style in Mozilla and Firefox, but then your change won’t be saved.)

All pictures are from stock.xchng, a really great site for free stock photography. Thanks a lot to all the photographers there!

I’m also thinking about a new default theme for “chris blogs”, I think “Rainy Window” would be nice.

BTW, on ashidakim.com, there is a nice collection of english Zen koans:

These koans, or parables, were translated into English from a book called the Shaseki-shu (Collection of Stone and Sand), written late in the thirteenth century by the Japanese Zen teacher Muju (the “non-dweller”), and from anecdotes of Zen monks taken from various books published in Japan around the turn of the 20th century.

Nice read.

NP: Bad Religion—The Lie

06may2004 · rpg releases CLOS papers

Richard P. Gabriel released some of his CLOS-related papers on his home page, http://www.dreamsongs.com

I got:

  • The Common Lisp Object System by Linda G. DeMichiel

  • Common Lisp Object System by Linda G. DeMichiel and Richard P. Gabriel

  • The Common Lisp Object System: An Overview by Linda G. DeMichiel and Richard P. Gabriel

  • Common Lisp Object System Specification, 1. Programmer Interface Concepts and 2. Functions in the Programmer Interface by Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon.

  • CLOS in Context: The Shape of the Design Space by Daniel G. Bobrow, Richard P. Gabriel, Jon L White

  • CLOS: Integrating Object-Oriented and Functional Programming by Daniel G. Bobrow, Richard P. Gabriel, Jon L White

… so I have plenty to read. :-)

NP: Foo Fighters—I’ll Stick Around

06may2004 · Jaja

…, die üblichen Zitate:

Was ist dein Puls?69 bpm!bpm? Des hoißt mpm: Mal per Minute.

Ich kauf’ mir jetzt einen Opel Mantra.Und ich mir einen Opel Tantra!

Herr Becker mit ihrer Frau.

Du Popo!

Du hast mein Misstrauen verbraucht!

Anus Bräter [meint: Anus praeter]

Ich schreib “Oh Kot!”, das ist umweltfreundlich.

Ergo, so ein verficktes Land…

Während Herr Rock uns ermahnte, kein Schuleigentum zu zerstören, ließ er den Adapter für den Fernseher fallen…

Die Evangelischen haben ja Karfreitag als höchsten Feiertag…Für mich ist das Schützen!

Im Lehrerzimmer ist alles kaputt.Oder gestört…

Was passiert, wenn man sich einen Döner ans Ohr hält?Schweigen der Lämmer!

NP: Beatsteaks—Hello Joe

04may2004 · Page redesign

As you probably may have noticed (except when reading this blog via RSS), I did a page redesign because I got bored by the old one.

The new one is about barcodes and other stuff that just looks cool. :-)

BTW, the barcode in the entry titles reads “chris” using “Code 128-B”. It was generated by GNU Barcode, a nifty tool. The header picture is by stock.xchng, and the background image was made with GIMP’s Filters -> Color -> Smooth Palette… tool.

Mail me any opinions on it!

NP: Bob Dylan—House of the Rising Sun

04may2004 · Zitate von heute

*Räuspert sich* — Sind sie erkältet?Das kommt vom Alkohol!

Sind sie auch nett zu uns?Wenn i des sag, dann bin i an Schwuler.

Die sind ja schuld an allem, die Amerikaner.

Da bin ich heimgefahren, und hab’ mich während dem Fahren umgezogen!

Wieso gibts in Polen soviele Kreisverkehre?Weil die Lenkradsperre noch drin ist!

Gebot im Hinduismus?Gewalttätigkeit! [meint: Gewaltlosigkeit]

Die Notenskala ist zwar ‘ne andere, aber immer die gleiche.

Ich werde gewisse Einflüsse geltend machen!Ich werde gewisse Ausflüsse…

NP: Tori Amos—Love Song (The Cure)

03may2004 · Und schon wieder Montag...

Gewisse Schulstunden zeichnen sich halt doch ab:

Net wegen den Korkenzieherlocken oder dem Brustumfang, sondern weil sie als Referendarin weniger Unterricht hat.

Ich war auch auf’m Bahnhof!Da verdienst du auch dein Geld!

Wir fahren mit dem IRE?Mit einem irischen Zug?Des heißt IRA!

So g’scheit seit ihr nämlich au it!

Ach des soll ein Franzose sein?Ich dachte, des wär so ein scheiß Deutscher!

Sie müssen nachts 9Live schauen, nicht WDR!

Wir sind doch nicht im Irrenhaus!… da ist wenigstens das Personal normal.

Ich hoffe ich krieg mal so Haare wie meine Mutter, die hat voll die fetten Haare!Wo?

Wenn du zuhause mithelfen musst, hast du dann etwa ein weißes Hemd an?Nein, er hat gar nichts an!

NP: Dan Bern—God Said No

02may2004 · Breaking up by "chaos"

Yesterday I recalled a story my former History teacher told us (Jürgen W. Conzelmann, RIP), which I think is worth to know:

He has been in Berlin with a class of him, and there was something quite important—I think it was a state visit, but I’m not sure—so the policemen roped off some very important main streets of Berlin. They also shutdown all the traffic lights on their crossings. A traffic chaos was on it’s way.

After the event was over, it would have been tedious work for the policemen to tell all those waiting cars at both sides of the street where to go. If they would just go and turn on the traffic lights again, it would have been even worse: In minutes of time, the biggest honk-concert ever would have started.

So they did something very clever and impressive: They just went and kept the traffic lights off.

Contrary to what you may think, this was no problem at all: Short after, the streets were open again and the traffic jam broke up. Everyone had been driving more careful, you look more at others if the traffic lights are off. Also, common sense seems to be used a lot more.

Sometimes it’s just better not to regulate everything, but let it regulate itself.

NP: The Human Echo—How’d You Find Me

Copyright © 2004–2016