Einträge mit dem Tag ‘Netz’

It has taken me some time, but I have pushed my lox-spark project one step further: the code is now complete up to the end of chapter 5 in Bob's book.

Why has this taken so long, even though the new code is still unproven (i.e. the proof hasn't progressed beyond chapter 4)?

The Visitor pattern turned out to be quite​ a nut to crack. Bob has used templated accept() methods. This means a concrete visitor can choose to return whatever type it needs -- the example AST printer returns a string, but later in the book, other types might come in handy. Unfortunately, in Ada generic functions cannot be overloaded, so I couldn't copy this approach. I tried to code around this restriction only to discover I didn't really understand the Visitor pattern (which I hadn't encountered before).

After some searching, I found an Ada implementation by Matthew Heaney. He, too​, uses generics, but in a different way. The gist is that instead of returning a value, the Visitor type ("object") stores the data internally -- this is not a problem because the abstract visitor type is extended (subclassed) anyway -- and can then be queried by the caller. There seems to be a bit more boilerplate code, but most of this is written by Lox's source code generator, so this is no real problem.

The second nut stems from a shortcoming in current prover technology: Gnatprove cannot deal with aliasing (i.e. writing to one variable changes the value of another), and therefore access variables (pointers) are not allowed in SPARK. This is not as large a problem as it may seem since Ada programmers use access variables very sparingly. But the abstract syntax tree has nodes containing other nodes, so some kind of reference is needed.

I have decided to store all Exprs in a Formal_Indefinite_Vector (a container supplied by the standard library) and refer to them by their index in the vector.

I am quite satisfied with how far lox-spark has come, this is a good way to start the weekend.

What's next? Obviously, the new code needs to be annotated and proven. Also, chapter six has been out for almost two weeks, so there's still more code to be written. I haven't yet decided on where to start, so maybe I'll take advantage of git and do both in parallel.

Kein Kommentar

My current pet project is coming along quite well: the implementation is complete up to chapter four (Scanning). More importantly, the AoRTE proof (absence of runtime errors) is also completely done. The only shortcomings are a handful of package bodies that are compiled with SPARK_mode => off: Ada.Command_Line and SPARK.Text_IO come to mind.

A few days ago, Bob has published the fifth chapter of his book. It is mainly about theory, and the only code it contains is a tool that generates source code for a part of the interpreter (the type hierarchy of the abstract syntax tree).

I thought about this for a while, and came to the conclusion I would not follow his path. Instead, I planned to write the types by hand. Here is why: generating source code is not really a problem, and since the generator would not be part of the final program, I would write it in plain Ada (without proving anything). The resulting code, however, would be part of the interpreter and thus needs to be proven. I could add the necessary annotations by hand, but that would defeat a big advantage of the generator: one can make changes at a high level (namely, change the input to the generator) and regenerate the sources. This is fine for ordinary languages, but it will kill my hand-written annotations.

Meanwhile, about a dozen Lox ports have appeared on github. I looked at all those I could find, but nobody seems to have written code related to the new chapter. Either the other developers have not yet found the time to implement the generator, or they, too, have their doubts.

Somehow, this lack of activity has prompted me to revise my decision: I will implement the generator, and I will generate annotations as well. After all, this project was meant to help me learn something new, and to be a challenge. But what good is a challenge unless it is challenging?

This should keep me busy in the coming days (I have not yet written any code for the generator). A quick Google search tells me that I can build multiple executables from the same project with GNAT, so that simplifies things on the organisational side.

Watch this site (or better yet, github) for updates!

Kein Kommentar

For some time, I've taken an interest in software engineering. With that, I mean robust software. After learning about Ada (my first project is from 2011), I haven't looked back (at C/C++, that is); Since then, I've learned a little about formal methods. So far, a few half-hearted attempts at SPARK/Ada have been the only results.

Now, I have stumbled across a project of Bob Nystrom's: He has designed a simple programming language, Lox, and is writing (and continuously publishing) a book on how to implement it. He has chosen Java and C, but quite a few folks have taken his code and re-implemented it in various languages: Alejandro Martinez (Swift), Ivan Katanic (C++), Paul Jackson (Go), Sasha Matijasic (Python).

So, why not do a SPARK port? I have some past experience with various parsers, so writing the bare code should not be that hard. Once that is done, annotations could be added and proofs done. The advantage of this project is that Bob is doing it now, chapter by chapter; I expect to follow at more or less the same pace, so if SPARKifying means I have to change something fundamental, I do not have to do that to the complete program. Instead, I can deal with problems as they crop up in the early stages.

I should add that SPARK can be used in different ways (or maybe I should say intensities). In the simplest case, only absence of runtime errors is proven. However, it is also possible to prove functional correctness at various levels: For example, one might set out to prove that a sorting subroutine actually returns a sorted list. This approach can be extended to more and more routines and eventually encompass the whole program. I do not know how far down this path I will (manage to) go, and in any case I have no idea how to prove functional correctness for a compiler.

Time will tell, I guess. Back to writing code now.

Kein Kommentar

Öfter mal was neues: ich habe jetzt ein Studientagebuch.

Kein Kommentar

Inzwischen habe ich Zeit gehabt, mein EMail-Setup im Alltag zu testen und noch ein paar Verbesserungen anzubringen. Die größte Änderung ist dabei die Einbindung von procmail gewesen.


Ich bin ein großer Freund von Mailinglisten, und komme allein deswegen um das Filtern nicht herum (lies: Listenmail soll in passende Ordner wegsortiert werden, um den Posteingang freizuhalten). Bei dienstlichen Mails habe ich dafür auf die etwas umständlich einzurichtenden Filterregeln des Exchange-Serers zurückgegriffen, privat Mails blieben einfach ungefiltert, weil mein Provider hier nichts anbietet. Beides ist kein haltbarer Zustand, es musste also eine lokale Lösung her.


Procmail ist ein Mail delivery agent (MDA), der sehr mächtige Filterfunktionen bietet (die weit über das bloße Wegsortieren hinausgehen). Diesen galt es jetzt nur noch mit offlineimap zu verheiraten. Mein erster Ansatz -- ein Cronjob, der die gesammelten Mails auf Neuzugänge durchsucht -- erwies sich als unzureichend:  viel zu leicht hat man eine exponentiell arbeitende Mail-Loop gebaut. Hier lohnt es sich gar nicht, die genauen Fehler zu suchen, denn schon das Konzept stimmt nicht: ein MDA stellt Mail zu, wenn aber offlineimap die lokalen Mails mit dem Server abgleicht, sind sie schon längst zugestellt.


Ich musste also die Mail aus der Inbox des Servers erst zustellen, bevor offlineimap sie zu Gesicht bekam. Dazu kann man z.B. Fetchmail verwenden oder aber das modernere getmail. Dessen Autor hat übrigens ein paar deutliche Worte für fetchmail übrig. 

Ich habe mich dann für einen Fork entschieden, der auf meine verschlüsselte Passwortdatei zugreifen kann:

passwordeval = gpg -d ~/.mutt/pw.gpg |awk '/my_gwdg/{print $NF}' |tr -d '"'

Getmail kann die Zustellung an Procmail delegieren:

type = MDA_external
path = /usr/bin/procmail
arguments = ("$HOME/.procmailrc.gwdg",)

delete = true
message_log = ~/Mail/getmail.log

Die Inbox liegt in der Mailverarbeitung jetzt also vor der Zustellung und ist für offlineimap tabu:

folderfilter = lambda folder: folder not in ['INBOX']

Das heißt andererseits, daß ich lokal einen neuen Posteingang brauche, damit offlineimap diesen wieder mit dem Server synchronisieren kann. Das geht mit einer passenden Zeile in der procmailrc:



Jetzt word meine Mail per Getmail vom Server nur aus der Inbox abgeholt, üer procmail hefiltert und zugestellt, befor sie per offlineimap wieder auf dem Server landet, und zwar schön sortiert in Dutzenden von Ordnern -- bloß nicht in der Inbox, sonst haben wir doch woeder eine Loop. und hanz nebenbei bietet mir procmail die Möglichkeit, nach Herzenslust Mailinglist-Tags aus Betreffzeilen zu entfernen oder z.B. Mails von mir an mich gleich in Todos zu verwandeln.

Kein Kommentar

Jetzt ist also Firefox der letzte größere Community-Browser.

Tschüß, Camino. Es war schön mit Dir.

Kein Kommentar

Dieser Artikel ist für mich eine Premiere -- ich nehme nämlich zum ersten Mal an einer Blogparade teil. Diejenigen, die nicht wissen, was das ist (bis gerade eben gehörte ich auch dazu) können sich das Ganze als große Schwester der Stöckchen vorstellen. Man schreibt zu einem vorgegebenen Thema, allerdings ohne daß sich das ganze endlos durch Raum und Zeit zieht; stattdessen gibt es einen Einsendeschluß (Deadline heißt das heutzutage wohl), und die Verbindung zum Erfinder der Blogparade soll -- anders als beim Stöckchen -- auch nicht abreißen.


Also gut: diese Blogparade stammt von Wibke Ladwig, und ich habe sie bei Tanja entdeckt. Die Frage lautet schlicht: Was machen Sie beruflich? Dabei soll es insbesondere um neue Berufsbilder gehen. Was mache ich also beruflich? Ich habe gerade noch einmal nachgeschlagen: In meinem Arbeitsvertrag steht das gar nicht -- trotzdem sind mein Chef und ich uns einig, daß ich Systemadministrator bin. Das hört sich -- verglichen mit einigem, was einem bei dieser Blogparade so begegnet -- noch recht verdaulich an: es ist auf jeden Fall was mit Computern, und wahrscheinlich verrate ich den meisten von Euch nichts Neues, wenn ich mein Tagewerk zusammenfasse: ich halte die Computer am Laufen.


Was heißt das konkret? Zunächst möchte ich anmerken, daß ich (wie wahrscheinlich die meisten Admins) sozusagen als interner Dienstleister fungiere: um uns herum sitzen lauter kernkompetente Menschen, die tolle Produkte herstellen, und wir sorgen dafür, daß sie dazu alles haben, was sie brauchen. Vielleicht ist der Beruf auch deshalb so vielseitig: es gibt einfach nicht genug Kollegen, um eine starke Spezialisierung zu ermöglichen.
Was tut ein Admin also für seine Kollegen (oder, wenn man so will, Kunden)? Grob kann man das in drei Bereiche einteilen: er beschafft neue Dinge (seien es nun Rechner oder Programme), er sorgt dafür, daß die vorhandene Hard- und Software funktionsfähig bleibt, und er unterstützt die Anwender im Umgang mit der EDV.


Als erstes fällt einem hier wohl der Kauf neuer Rechner ein. Das hört sich vielleicht trivial an, ist es aber oft nicht: schon ein gewöhnlicher Arbeitsplatzrechner bedarf einiger Überlegung, wenn er nicht nur eine größere Zahl Festplatten beherbergen soll, sondern auch noch fünf Jahre quasi ununterbrochen Dienst tun soll (unsere Rechner laufen auch nachts und am Wochenende).
Wenn es dann darum geht, ein echtes Arbeitspferd zu kaufen, dessen Preis oft über dem eigenen Jahresgehalt liegt, wollen alle Möglichkeiten sorgfältig ausgelotet werden: wieviel Speicher, wie viele und welche Prozessoren von welchem Hersteller, brauchen wir ein Hochgeschwindigkeitsnetzwerk, und so weiter. Am grünen Tisch lassen sich diese Fragen nicht beantworten, hier sind dann Benchmarks mit unserer Software gefragt.
A propos Software: in vielen Fällen greift man auch hier einfach zum Beschaffungsauftrag. Wenn es das benötigte am Markt gibt, ist das in der Regel billiger als eine Eigenentwicklung. Aber es kommt natürlich oft vor, daß es keine fertige Lösung gibt, und dann schreibt der Admin eben selber ein Programm. Das fängt an bei einem kleinen Skript zur Automatisierung häufiger Arbeitsschritte und kann bis zu ausgewachsener Software gehen -- mein ganzer Stolz ist derzeit ein grafisches Front-End (genauer: ein CGI), für unser Batch-System.


Auch das einfachste Werkzeug braucht Pflege. Computer sind nun alles andere als einfach, und entsprechend aufwendig ist ihre Wartung. Fehlersuche ist an der Tagesordnung: Fehler in Hardware, Fehler in gekauften Programmen, Fehler in selbstgeschriebenen Programmen, und Fehler in Programmen der Kunden[1] wollen gefunden und ggf[2] behoben werden. Obwohl meine Lieblingsbeschäftigung das Programmieren ist, hat die Fehlersuche ihren eigenen, ganz besonderen Reiz: mit Intuition und den unterschiedlichsten Werkzeugen[3] pirscht man sich -- manchmal über Tage -- immer näher an die Ursache heran, und das Gefühl, ein besonders heimtückisches Problem erfolgreich analysiert zu haben, ist schon etwas ganz Besonderes.

Auch wenn kein Fehler auftritt, gibt es immer etwas zu verbessern: Computer sind ja nur deshalb so vielseitig einsetzbar, weil auf einfachste Operationen (die vier Grundrechenarten und ein bißchen Logik) Abstraktionsebene über Abstraktionsebene gebaut wird, bis Begriffe entstehen, die ein gegebenes Problem lösbar werden lassen. Und selbst dann, wenn man mit dem Computer nur Probleme lösen will, die man ohne Computer nicht hätte[4], kann man sich die Arbeit mit jeder zusätzlichen Abstraktionsebene weiter erleichtern. So hilft eine Verwaltungssoftware dabei, auf einem Haufen Computer gleiche Programme zu installieren oder Einstellungen vorzunehmen, ohne jeden einzelnen anfassen zu müssen; wenn man Programme in Pakete packt, lassen sie sich leichter auf verschiedenen Rechnern mit verschiedenen Betriebssystemen installieren; Überwachungssoftware hilft, aus dem Zoo von Rechnern diejenigen mit defekten Festplatte oder fehlerhaften Programmen herauszufischen, bevor die Benutzer Probleme bekommen; ... diese Liste ließe sich noch lange fortführen.


Mit einem funktionierenden Rechner- und Softwarepark ist es natürlich noch nicht getan. Ziel des ganzen ist ja, daß die Benutzer die Rechner für ihre Zwecke einsetzen können. Deshalb helfen wir bei allen möglichen Problemen, ob nun ein Programm installiert werden muß, das wir bislang nicht kannten, ob jemand Probleme bei der Bedienung eines Programms hat, oder ob Hilfe bei der Fehlersuche angesagt ist. Die Computerkenntnisse unsere Benutzer sind recht unterschiedlich, aber fast alle können[5] programmieren, und sie tun das auch bei ihrer täglichen Arbeit. Je nach Fertigkeiten werden dann schon einmal Fehler in die Programme eingebaut, die ohne fremde Hilfe nicht wieder zu entfernen sind. Ja, und dann gibt es auch noch Leute, die Hilfe benötigen, ohne es zu wissen; wenn jemand vier Rechner für ein parallel arbeitendes Programm anfordert, dann aber nur einen benutzt[6], dann zahlt sich die Systemüberwachung aus.


Zu guter Letzt möchte ich noch einen Punkt erwähnen, der zwar nicht direkt zur Arbeit eines Systemadministrators gehört, der aber trotzdem ungeheuer wichtig ist[7]: was immer man tut, muß dokumentiert werden. Nichts ist ärgerlicher, als Stunden oder gar Tage mit der Fehlersuche zu verbringen, nur um ein paar Wochen oder Monate später an anderer Stelle vor dem gleichen Problem zu stehen -- und genauso lang an der Lösung zu arbeiten. Davon, daß möglicherweise auch andere Leute mit einem komplexen System umgehen müssen, will ich gar nicht anfangen.

Diese Aufgabe habe ich zusammen mit einigen anderen durch das Werkzeug Bugzilla in Angriff genommen. Neben der Dokumentation dient Bugzilla nämlich noch als To-Do-Liste, hilft bei der Kommunikation mit den anderen Admins und den Benutzern und kann die nach einem vollen Arbeitstag manchmal etwas beunruhigende Frage Was habe ich heute eigentlich getan? beantworten.

  1. siehe nächster Abschnitt
  2. bei Rechnern und gekaufter Software macht das dann normalerweise der Lieferant
  3. und wenn gar nichts hilft, gibt es immer noch strace
  4. will sagen: wenn man nur die Computer und ihre Programme verwalten will
  5. mehr oder weniger
  6. und zu 400% belastet
  7. wie ich auf die harte Tour gelernt habe
4 Kommentare

... und warum es keinen interessiert

Der persönliche Computer

Als alles begann, füllten Computer ganze Räume und brauchten Heerscharen an Bedienpersonal. Durch Fortschritte in der Elektronik wurden sie aber zunehmend kleiner, leistungsfähiger und einfacher zu bedienen. Nannte man die ersten Modelle in der Größe einer Waschmaschine noch Mini-Computer, so brach in den siebziger Jahren das Zeitalter der Mikrocomputer an, die Geräte hatten nur noch die Größe einer Schreibmaschine und waren -- oft als Bausätze -- für Hobbyisten erschwinglich. Eine Professionalisierung brachte schließlich einen Rechner, der klein und preiswert genug war, daß er (zunächst in Firmen) von nur einer einzelnen Person genutzt werden konnte: der Personal Computer war geboren.

Die Universalmaschine

Ein Vierteljahrhundert lang ist der PC nun preiswerter, (etwas) kleiner und (viel) schneller geworden. Gleichzeitig hat sich mehr oder weniger im Verborgenen eine andere Entwicklung vollzogen, die den Charakter des PCs aus einem anderen Blickwinkel beleuchtet: dank fallender Preise und fortschreitender Miniaturisierung finden sich in mehr und mehr Geräten embedded Systeme, eine Art Kleinstcomputer, der anstelle aufwendiger analoger Verschaltungen (oder gar mechanischer Steuerungen) Stereoanlagen und Waschmaschinen Leben einhaucht. Wer schon einmal versucht hat, gegen seine Waschmaschine Schach (oder Go) zu spielen, hat gemerkt, daß der PC nicht nur ein persönliches Gerät ist, sondern auch ein sehr universelles: ein computerisiertes Haushaltsgerät bleibt seinem Zweck treu, aber ein PC kann mit entsprechender Software ganz beliebige Aufgaben übernehmen.

Clever & Smart

In den letzten Jahren hat eine weitere Spielart des Computers für Furore gesorgt: nachdem die klobigen Autotelefone des letzten Jahrhunderts unter anderem durch Embedded-Technik zu kompakten Winzlingen kleiner als ein Telefonhörer geschrumpft sind, ist mittlerweile das Zwitterwesen Smartphone aufgetaucht: halb Telefon, halb PC.

Wolken am Horizont

Doch wer nun einen tragbaren PC mit Telefonfunktionalität erwartete, der wurde unter Umständen enttäuscht: wer ein iPhone erwirbt, hält keine uneingeschränkte Universalmaschine in Händen, sondern ist auf das Placet des Herstellers angewiesen, wenn er Software (und sei es selbstgeschriebene) installieren möchte. Vereinzelt geäußerte Befürchtungen, den PCs desselben Herstellers könnte über kurz oder lang ein ähnliches Schicksal drohen, wurden allgemein mit Hinweis auf die andere Natur des PCs (als Universalmaschine nämlich) abgetan.

Nun hat die Firma Apple etwas getan, das sich in meinen Augen wie der Anfang einer sehr schlechten Entwicklung ausnimmt: es gibt für das Betriebssystem keine Installationsanweisungen-CDs mehr. Windows-Benutzer könnten diese Aussage unter Umständen mißverstehen: ich meine damit nicht, daß man sich nach dem Kauf eines vorinstallierten Rechners eine Recovery-CD selbst brennen (oder für viel Geld eine Vollversion in der Pappschachtel kaufen) müßte. Nein, ich kann meinen Rechner -- egal ob vorinstalliert oder mit einem nachgekauften System -- nur über das Internet installieren. Das Installationsprogramm löscht sich nach getaner Arbeit. Selbst, wenn ich fünf Rechner installieren will (was ich ganz legal mit nur einer Lizenz tun kann), muß ich fünfmal einen Installer von über vier Gigabyte herunterladen.

Und nun?

Für mich ist das eine Katastrophe: wenn ich meinen eigenen Rechner nur dann neu installieren kann, wenn es dem Hersteller paßt, dann muß ich befürchten, bald noch mehr Kontrolle abgeben zu müssen. Der Wert der Universalmaschine PC wäre dahin, ich hätte nur noch einen besseren Fernseher auf dem Schreibtisch. Für mich ist das Grund genug, nach zwanzig Jahren[1] Markentreue zum ersten Mal ernsthaft über einen Wechsel nachzudenken. Seltsamerweise scheint die Angelegenheit sonst niemanden zu stören. Ein wenig Googeln hat zwar ein paar Leute zutage gefördert, die sich über die Bandbreitenverschwendung beim Besitz mehrerer Rechner ärgern, aber den Kontrollverlust bemerkt (oder zumindest bemängelt) niemand.

Thou shalt not pass

Damit die Geschichte hier nicht zu einseitig wird, möchte ich noch auf einen potentiell viel gefährlicheren Schachzug aus dem anderen Lager hinweisen: wer als Hardware-Hersteller künftig Windows-zertifizierte Systeme anbieten will, muß einen Mechanismus einbauen, der nur noch kryptographisch signierte Betriebssysteme bootet. Diese Signatur stellt nur Microsoft aus -- in sehr naher Zukunft kann man also zum Beispiel Linux nur noch benutzen, wenn Microsoft das gestattet.
Na, gruselt es schon?

Was tun

Im Gegensatz zu Apples lustigen Ideen gibt es hier genug kritische Stimmen im Netz. Das dürfte natürlich daran liegen, daß eben nicht Microsofts eigene Kunden, sondern gerade die anderen gefährdet sind. Außerdem ist die Bastelfreiheit(freedom to tinker) gerade unter diesen Anderen (z.B. Linux-Entwicklern) ein sehr hoch gehaltenes Gut.

Im Umkehrschluß sieht es ganz danach aus, daß es Apples Kunden egal ist, was sie mit ihren Maschinen machen können. Sie brauchen vielleicht gar keinen PC, sondern nur eine Schreibmaschine mit Bildverarbeitung und Musik-Player. Naja, und wenn Cupertino sowieso schon die Finger dein hat, macht es auch nichts, daß die Synchronisation von PC und Smartphone weniger und weniger über ein USB-Kabel und dafür mehr und mehr über einen Server bei Apple läuft. Darüber regt sich nämlich auch keiner auf. Ihr Schafe!

  1. angefangen mit dem LC II
1 Kommentar

Wie schon angekündigt, habe ich mit die Kriterien zur Lesechallenge näher angesehen und dabei festgestellt, daß ich für - was ein Zufall - dreizehn davon schon passende Bücher habe:

Ein Buch mit mindestens 500 Seiten

Nicht so einfach, wie man denken sollte, weil ich gerade keine dicken Fantasy-Schinken horte. Passen würde aber Magyk von Septimus Heap oder Die Flut von Wolfgang Hohlbein.

Ein Buch, dessen Cover dir gar nicht gefällt

Gar nicht ist manchmal ein relativer Begriff, aber The Thousand Orcs von R.A. Salvatore hat sicher nicht das beste Cover aller Zeiten.

Ein Buch, das mit dem Buchstaben “Z” im Titel beginnt

Hier muß ich für's erste passen.

Ein Buch in dem mindestens 1 Tier vorkommt

Ich nehme an, das Tier soll nicht nur im Buch, sondern auch im Titel vorkommen. Hund Katze Maus kann jeder, aber ich habe Oscar Wilde and the Nest of Vipers von Gyles Brandreth.

Ein Buch, das mittlerweile seit einem Jahr auf deinem SuB liegt

Das ist wieder leicht, mein Stapel Ungelesener Bücher ist ein echter Stack: ich lese immer die Neuzugänge als erstes, der Rest wartet monate- oder jahrelang. Zum Veispiel der Wolkenspringer von Daniel Tammet.

Ein Buch, das schon einmal gelesen wurde oder gebraucht ist

Ich habe gerade eine alte, noch in Fraktur gesetzte Ausgabe von Goethes Faust bekommen. Die wäre eine Möglichkeit, ein Band aus Samuel Pepys' Tagebüchern eine andere.

Ein Buch mit einem schwarz-weißen Cover

Sobald er sich wieder angefunden hat: Haarmann von Peer Meter und Isabel Kreitz.

Ein Buch, das du abgebrochen und nie beendet hast

Vor Jahren habe ich ein paar Kapitel von Magyk gelesen.

Ein Buch, dessen Autor weder deutsch- noch englischsprachiger Herkunft ist

Darauf freue ich mich schon lange: Les 3 Formules du Professeur Sato aus der Reihe Blake und Mortimer des Frankobelgiers Edgar P. Jacobs. Diesen Band kenne ich nämlich noch gar nicht.

Ein Buch, dessen Erscheinung du kaum erwarten konntest

Hmm, das ist schwierig: wenn ich auf solch ein Buch warte, landet es natürlich nicht auf dem SuB, sondern wird sofort gelesen. Das letzte war wohl The Wise Man's Fear von Patrick Rothfuss. Im Moment muß ich passen, aber vielleicht ergibt sich im Laufe des Jahres noch etwas.

Ein Buch, das alle Vokale [a, e, i, o, u] im Titel enthält

Gar nicht mal so einfach, aber wenn der Titel lang genug ist, geht's: The hundred-year-old man who climbed out of the window and disappeared von Jonas Jonasson.

Ein Buch von einem kleinen/unbekannteren Verlag

Man kann sicher streiten, ob gewisse Verlage klein oder groß sind; aber wenn ich nach dem ISBN-Nummernkreis gehe, gehört Mare zu den kleinen. Nun denn: Heyerdahl von Ragnar Kvam.

Ein Buch, das vor dem 21. Jahrhundert veröffentlicht wurde (bis 1999)

Da ist die Auswahl wieder ziemlich groß. Wenn ich mutig bin, werden es die Canterbury Tales von Geoffrey Chaucer (14. Jh), ansonsten vielleicht ein Band aus Pepys' Diary (17. Jh).

Ein Buch, dessen Autor oder Genre dich bisher nicht begeistern konnte

Hier muß ich wirklich passen.

Ein Buch, das eine andere Person wahllos aus deinem SuB fischt

Dazu kann ich im Voraus natürlich nichts sagen...

Ein Buch, dessen Autor den Nobelpreis erhalten hat

Hier muß ich ein bißchen schummeln: gemeint ist natürlich der Literatur-Nobelpreis, aber das steht da nicht. Also: Der Teil und das Ganze von Werner Heisenberg.

Ein Buch, das du lesen möchtest, bevor der Film erscheint

Ich bin derzeit etwas abgehängt von den aktuellen Entwicklungen auf dem Filmmarkt, deshalb lasse ich die Kategorie aus.

Ein Buch, das im Titel eine Fantasy-Gestalt enthält (z.B. Elfenfluch, Dämonenkuss, Engel der Nacht, usw.)

Ganz einfach: Der Hobbit als Comic.

Ein Buch, das auf einer wahren Begebenheit basiert

Gemeint sind wohl Romane. Dazu habe ich derzeit nichts.

Ein Buch lesen, in dem es um das Thema BÜCHER geht

Auch hier fällt mir im Moment nichts ein.

Mal sehen, was ich im kommenden Jahr schaffe, und wie sich die Liste noch verändern wird.

[Edit: vor Müdigkeit waren mir wohl die HTML-Kentnisse abhanden gekommen...]

Kein Kommentar

Hui, schon wieder fast ein Monat, seit ich das letzte Mal etwas geschrieben habe. Das Jahr neigt sich rasant seinem Ende zu, und da kommt mir die Buchchallenge 20/13 von Bookaholica gerade recht: dreizehn Bücher muß man lesen, hat dafür aber auch immerhin ein Jahr Zeit; das sollte also auch für mich als Wenig- (oder doch Nicht-mehr-ganz-so-viel-) Leser reichen.

Natürlich nicht irgendwelche Bücher, vielmehr sucht man sich dreizehn witzige Kriterien aus einem Katalog von zwanzig (20/13 eben) aus und sucht sich dann jeweils ein passendes Buch. Für meine dreizehn Kriterien habe ich mich noch nicht entschieden, die Liste folgt dann in nächster Zeit.

[via Lilaeulenkind]

Kein Kommentar