FreeBSD anybrowser Valid XHTML 1.1! Valid CSS! Vim logo
Letzte Änderung: 22-Jul-2008
 Inhaltsverzeichnis Was hier zu finden ist

 Selbstportrait  (im FAQ Stil)

F: Wohin soll ich meinen Liebesbrief, Jobangebot, Scheck, Geburtstagsgeschenk und Wasweißich schicken?

A: Post: Teckstraße 20, D-71384 Weinstadt, Deutschland. Email bitte an schweikh@schweikhardt.net; für vertrauliche Informationen benutzen Sie bitte meinen öffentlichen PGP Schlüssel.

F: Ich kann kaum erwarten, Ihre Stimme zu hören!

A: Büro: +49 7191 13-2219, privat: +49 7151 909516.

F: Wo ist Ihr Lebenslauf? Irgendwelche Zeugnisse?

A: Hier sind mein Lebenslauf und meine Zeugnisse (auf Deutsch).

F: Wie alt sind Sie und wann haben Sie Geburtstag?

A: Ich bin 41. Kommen Sie einfach regelmäßig auf dieser Seite vorbei und schauen Sie, ob sich die Zahl erhöht hat. Alternativ rufen Sie an, schreiben Sie mir eine Postkarte oder besuchen Sie mich.

F: Ich will ein Bild von Ihnen sehen! Kann ich?

A: Kein Problem, fragen Sie mich in einer em@il danach, und ich nenne Ihnen eine URL mit einem hübschen Bild von mir. Wenn Ihnen das zu aufwendig ist, sind Sie auch nicht wirklich an mir interessiert... Nein, ich muß mich nicht verstecken, im Gegenteil, aber ich bin auch nicht so exhibitionistisch veranlagt. Sonst rennen mir die Mädels nur die Bude ein :-)

F: Am Samstag schon was vor?

A: Kommt drauf an. Auf den Samstag.

F: Wo arbeiten Sie?

A: Seit dem 1. Januar 2001 arbeitete ich bei Marconi Communications als Software Ingenieur in der Abteilung Systemsoftware. Im Januar 2006 wurde Marconi von der schwedischen Firma Ericsson übernommen. Ericsson produziert u.a. SDH Gerätschaften, d.h. die Vermittlungsstellen für Glasfaserleitungen und Funkübertragungstrecken. Es ist sehr wahrscheinlich, daß die Übertragung dieser HTML Seite auch über diese Komponenten erfolgte.

Davor war ich fast fünf Jahre beim Network Operation Center des DFN. Kurz zusammengefaßt: Der DFN Verein realisiert den Internetanschluß fast aller Universitäten und Forschungsinstitute in Deutschland. Er ist der größte nationale ISP in Europa. Meine Aufgaben umfaßten die Erkennung, Analyse und Entstörung von WAN Problemen, Schreiben von Software für verschiedene netzorientierte Fragestellungen, Entwurf und Implementierung von Sicherheitslösungen, Administration unserer Workstations und vieles mehr.

F: Würden Sie einen Programmierauftrag annehmen?

A: Wenn es in Standard C (+POSIX, Unix API) oder Perl ist oder sich mit den Unix Werkzeugen erledigen läßt, bin ich der Richtige.

 Wissenschaftliches E=mc2

Ich habe an der Universität Stuttgart Physik studiert. Nach den obligatorischen Fächern Klassische Mechanik, Thermodynamik, Kontinuumsmechanik, Quantenmechanik und Elektrodynamik habe ich mich auf Synergetik und Quantenoptik spezialisiert. Quantenoptik, insbesondere Laser und Hologramme sind faszinierende Erscheinungen (ich erwarb selbst einen Laser und habe zuhause Hologramme aufgenommen), so ergab es sich, daß meine einjährige Diplomarbeit zum Thema "Digitale Holographie mit Flüssigkristalldisplays" entstand. Sie ist natürlich in deutsch geschrieben. Interessierte können das gute Stück herunterladen, es ist eine 4.4 Megabyte gezippte PostScript-Datei. Darin sind meine Resultate beschrieben, wie man konventionelle LCDs (die man in Suchern von Videokameras findet) als räumliche Lichtmodulatoren [spatial light modulators, SLM] benutzen kann, um Phasenhologramme zu erzeugen. Ja, es funktioniert!

Seit Anfang 2001 Mitglied des Institute of Electrical and Electronics Engineers (IEEE).

 Meine Philosophie wie Rechner und Software benutzt werden sollten. Herr oder Sklave?

Ich betrachte einen Rechner als ein Arbeitswerkzeug. Um damit effizient umgehen zu können, habe ich meine Arbeitsumgebung im Laufe der Zeit stetig verbessert. Mit der Gefahr, etwas Selbstverständliches zu verkünden: die Software, mit der ich tagtäglich arbeite muß mächtig, flexibel und zuverlässig sein. Die grundlegenden Bestandteile sind meiner Meinung nach (mit absteigender Bedeutung)

  1. Das Betriebsystem
  2. Die Shell
  3. Der Editor
  4. Der Windowmanager

Das Betriebsystem darf nicht in die Quere kommen, wenn Schwerarbeit ansteht - keine Beschränkungen, weder für Dateigröße, noch Speicher, noch Prozesse, noch Plattenplatz, noch CPU Takte. Eine mächtige Entwicklungsumgebung mit mehr als der Grundausstattung wie Compiler und Debugger ist unerläßlich. Ich habe festgestellt, daß Unix all meine Anforderungen erfüllt und darüber hinaus eine Menge mehr bietet. Der Hersteller ist dabei zweitrangig. Am Arbeitsplatz benutzt unsere Gruppe Solaris zusammen mit Unmengen frei verfügbarer Software. Hin und wieder treffe ich auf AIX, HP-UX, OSF/1, IRIX, oder Cray's UNICOS. Zuhause und in meiner Freizeit arbeitete ich mit Linux (von den 0.99pl14 Tagen bis 1.2.13). 1995 konvertierte ich zu FreeBSD, Gottes eigenem Betriebsystem, motiviert zum größten Teil durch die klaren Entwicklungszyklen und das Ports-Konzept, welches tatsächlich mal Das Richtige™ für jemanden wie mich ist, der einfach jede Software selber compilieren will. Es wird Ihnen schwerfallen, mich zu überzeugen, irgendetwas anderes als ein unixoides System anzufassen.

Aus Kompatibilitätsgründen ist eine Bourne-kompatible Shell ein Muß. Außerdem: wer will zwei syntaktisch verschiedene Sprachen für interaktive Benutzung und Programmierung? Ich fand die GNU Bourne Again Shell (bash) eine gelungene Verbesserung der ksh. Kürzlich las ich die Docs für die zsh. Die programmierbare Vervollständigung sieht für einen Kommandozeilenfetischisten wie mich nach einer echten Arbeitsersparnis aus und ich spiele mit dem Gedanken, allein wegen dieses Merkmals zur zsh zu konvertieren. [1998 probierte ich die zsh und habe mich sogleich in die programmierbare Vervollständigung verliebt. Sie rettet Leben, wenn man sich an die compctl Syntax gewöhnt hat.]

Ich bin auf mehr als einem Dutzend Unix Workstations zuhause, meine Editorwahl ist daher klar wie Kloßbrühe. Nichts schlägt nvi oder vim. Zugegeben, im ersten Monat war es etwas unbequem--nein, das ist eine Untertreibung; ich haßte und verfluchte vi. Nach einer Weile jedoch gewöhnte ich mich an die Modi und wurde täglich flinker. Als ich die Eleganz des Designs erkannte, begann ich vi zu lieben und glühend weiterzuempfehlen. Heute will ich nicht mehr ohne vi leben und erfände ihn, hätte es nicht schon ein anderer getan...

Kennen Sie das auch: keine Voreinstellung entspricht Ihren Präferenzen, Sie drehen an jedem Knopf bis sie endlich zufrieden sind? Das ist der Grund für mich, ctwm zu benutzen, einen hochgradig konfigurierbaren twm Klon. Popup-Menüs können auf Tasten gelegt werden, ebenso Wechseln zwischen virtuellen Bildschirmen. Ich mag es, meine Finger auf der Tastatur zu lassen. Die interpolierten Farben in Menüs sind erst recht ein Brüller.

Über Bugs

Die Erfahrung zeigt, daß Murphy recht hat - da ist immer noch ein Bug. Allerdings kann ich Bugs in Software nicht ausstehen. Wenn ich einen finde und er in vernünftiger Zeit ausgemerzt werden kann, mache ich das. Wenn das unmöglich ist, z.B. weil es sich um proprietäre Software ohne Quellen handelt oder weil ich mit dem Code nicht allzu vertraut bin, schreibe ich einen Bug-Report. Ja, es ist manchmal eine entnervende Prozedur. Jemanden von <beliebigem Hersteller> dazu zu bringen, mir zuzuhören ist oft frustrierend. Ewiglebende Bugs, die sich durch alle Releases ziehen, sind aber noch frustrierender, daher ist das für mich kein Grund, meine Klappe zu halten. Darüberhinaus gibt es jede Menge freie Software, für die Bug-Reports gar kein Aufwand sind. Zum Beispiel kommt bash mit dem bashbug Skript. Ein brauchbares System um Bugs zu verfolgen ist auch FreeBSDs send-pr (eigentlich GNATS), das einen Problem-Report per email an das Entwicklungsteam schickt. Jeder meiner Reports wurde bisher prompt bestätigt und in fast allen Fällen kam kurze Zeit darauf ein Fix. (Die restlichen sind zumindest in Bearbeitung.) Man kann die Bug-Datenbank einsehen, ob ein Fehler schon bekannt ist und wer an dessen Behebung arbeitet. Das ist ein Grund, warum FreeBSD über die Jahre so stabil wurde. Ein offenes Ohr für Bug-Reports, welch ein Gewinn.

 Programmieren in C Expertise Nummer 1

Da bin ich wirklich schlecht. In der Tat sind meine C-Programmierfähigkeiten so dermaßen unterdurchschnittlich, daß ich 1996 drei Preise beim International Obfuscated C Code Contest gewann. Mit dem ersten Hattrick in der dreizehnjährigen Geschichte habe ich mich unter die allerschlimmsten C-Verbrecher eingereiht.

Ich kann es kaum glauben. Am 11 Juni 1999 wurde ich informiert, daß ich beim 98er Wettbewerb wieder einen Hattrick erreichte. Das sind zwei in Folge. Warum ist es so schwer zu entscheiden, ob ich stolz oder peinlich berührt sein soll? Warum bin ich C-Programmierer und nicht Tennis-Star?

Die Saga geht weiter. Beim Wettbewerb des Jahres 2001 errang ich einen Gewinnbeitrag in der Kategorie Bester Einzeiler.

Siehe den folgenden Abschnitt mit meinen unzensierten originalen IOCCC Beiträgen.

Als ob das nicht schon genug wäre, verwirre ich C-Frischlinge und Alte Hasen in den News-Gruppen comp.lang.c, comp.lang.c.moderated, de.comp.lang.c (auf Deutsch) und comp.std.c mit meinen unerbetenen Ratschlägen :-\

Ich habe einen Schachproblemlöser geschrieben, der Probleme der Art "Weiß (oder Schwarz) setzt in N Zügen matt" löst. Das Verlangen, dieses Programm zu schreiben kam über mich, weil ich kein Schachprogramm kenne, das dies wirklich richtig angeht. Nämlich auch en-passant, Unterverwandlung und mögliche Rochaden beachtet. Darüberhinaus gab keins der Programme eine vollständige Antwort aus, sondern immer nur den ersten Zug. Das Resultat meines Lösers ist ein Zugbaum mit allen möglichen Zügen, die zum Matt führen (falls vorhanden), ansonsten zeigt es die Züge, die ein Matt verhindern. Man kann es benutzen, um eigene Problemkompositionen zu testen oder zu entwanzen. Nein, es spielt nicht Schach zur Zeit. Es besteht aus einem Zuggenerator und einem einfachen Stellungsbewerter mit zwei Werten, Matt oder nicht. Der Quelltext ist 100% ISO C89 mit optionalen POSIX Erweiterungen für Timing. Aus unbestimmten Gründen glaube ich, daß der Löser noch nicht für die große Öffentlichkeit geeignet ist. Aber ich gebe ihn allen, die mich ausdrücklich darum bitten. Nichtsdestotrotz habe ich den Löser die 1001 Schachprobleme einer Problemdatenbank durchrechnen lassen und ich füttere ihm auch das wöchentliche Problem in unserer Zeitung. Es schlägt sich hervorragend, mmN.

 Der IOCCC Ein internationaler C-Programmierwettbewerb

Warum mir der IOCCC gefällt

Dieser Wettbewerb erfordert keine Mittel, die nur ein paar ausgewählte Leute auf Erden aufbringen können, wie:
  • schwere Ausrüstungsgegenstände (wie man sie für die schnellste Atlantiküberquerung oder für eine Weltumrundung im Ballon braucht). Ein ausgedienter Rechner mit einem C Compiler und es kann los gehen.
  • Einen Haufen Geld (siehe voriger Absatz). Es reicht aus, ein paar Bücher im Regal stehen zu haben, darunter eine C Referenz und die C Norm selbst.
  • Physische Stärke (wie sie ein Gewichtheber für die Weltmeisterschaft braucht) oder Ausdauer (Ironman Triathlon). Volleyballspielen und ein bischen Fahrradfahren scheint aber zu helfen, wie mein Fall demonstriert...
  • Perfektion ist nicht erreicht, wenn man nichts mehr hinzufügen kann, sondern wenn man nichts mehr entfernen kann. Die Größenbegrenzung fördert diese Philosophie in unserer Welt aufgeblähter Software.
Die weiteren Zutaten (neben C Compilern [beachte den Plural!] und Büchern) für eine Karriere als Obfuscator Magnus sind
  • Ein kreativer Geist. Man will tapfer dorthin gehen, wo noch kein Programmierer zuvor hinging. Ohne Vorstellungskraft ist man verurteilt, im Kreis zu gehen oder das Rad neu zu erfinden. Wer seit seiner Kindergartenzeit ein Erfinder werden wollte, ist mit Sicherheit auf der richtigen Spur.
  • Zeit. IOCCC Beiträge werden selten mit 1KLOC/Tag geschrieben, eher mit einer Zeile pro Stunde, wenn man alles miteinbezieht: die Überholungen, die Fehlersuche und das Testen auf verschiedenen Implementationen. Programmieren ist vergleichbar mit wissenschaftlicher Arbeit: Die in einem Wissenschaftsjournal veröffentlichten Werte sind nie diejenigen der ersten Messung. Der experimentelle Aufbau wird immer wieder variiert, um ein klares Signal mit möglichst wenig Rauschen zu bekommen. In gleicher Weise ist das fertige Programm niemals jenes nach dem ersten erfolgreichen Lauf. Jedes überdurchschnittliche Programm hat viele Stunden Feineinstellung hinter sich.

Hier sind meine drei Gewinner des 1996er IOCCC zusammen mit den originalen und vollständigen Anmerkungen.

Bester Algorithmus

Ein spezieller Ausdrucksbewerter.

Bestes Hilfsprogramm

Bestimmt die Ehrlichkeit des Betriebsystems bei Speicheranforderungen.

Schlimmster Missbrauch des Präprozessors

Berechnet das Osterdatum im Gregorianischen Kalender.


Tatsächlich habe ich noch einen vierten Beitrag eingeschickt, der nicht gewann. Mit anderen Worten, das war ein

Verlierer

rot13-invariantes Mehrzweckprogramm.

Nun, drei von vier ist nicht schlecht.


Der 1998er IOCCC

Nach meinem ersten Hattrick fing ich an, weitere wilde und nie dagewesene C Programme zu hacken. Ich habe Blut geleckt und es schmeckte einfach gut. Zunächst war ich enttäuscht, daß der 1997er IOCCC wegen Verschiebung der Usenix Konferenz ausfiel. Im Nachhinein sieht es aus, als ob das zusätzliche Jahr ideal für die Reifung meiner Beiträge war.

Unberechenbarstes Verhalten

Noch ein Zufallszahlengenerator.

Beste Raumnutzung

Samefile - Findet identische Dateien, die Platz verschwenden

Übelster/Bester Missbrauch des Präprozessors

stdc - Prüft die Standardkonformität der C Implementation

Hinweis: dieser Quelltext enthält einige Formfeeds und vertikale Tabulatoren. Manche Browser zeigen diese nicht korrekt an. Das Symptom ist fehlender Zwischenraum, d.h. die erste Zeile lautet defineH(x) ohne Zeichen zwischen define and H(x).

Keine Verlierer?

Doch, ich habe zwei Verlierer eingesandt. Ich werde sie hier nicht zeigen. Sie sind zu gut, um sie hier zu verschwenden :-) Vielleicht zeige ich sie nächstes Jahr...


Der 2001er IOCCC

Zurück zur Normalität. Nur einer von drei Beiträgen gewann. Ich bin stolz, daß es in einer neuen Kategorie ist: bester Einzeiler. Manche mögen denken, Einzeiler seien einfach zu obfuskieren, weil sie so knapp sind. Andere mögen denken, sie seien schwer zu obfuskieren, weil man nicht viel machen kann. Der Leser entscheide selbst.

Bester Einzeiler

match - ein Shell Glob Patternmatcher

 Beiträge zur netz.gemeinschaft Sei sozial!

Probiere Splint, einen frei verfügbaren ISO C89 kompatiblen lint, für den ich die POSIX Library geschrieben habe.

Schreibe portable Programme. Kenne die Namen und Header in ISO C und POSIX.

Prüfe die Header einer C Implementation auf Standardkonformität mit meinem isomac.c Programm.

Ich bin erfreut, daß das Internet Systems Consortium (ISC) mein samefile Utility in seinen reichhaltigen Schatz aufgenommen hat. Samefile findet Dateien identischen Inhalts (aber mit beliebigen Namen). Es kommt mit einem configure script und compiliert auf jedem POSIX System. Lesen Sie mehr über das gute Stück auf der Samefile Home Page oder laden Sie meine aktuelle Version [2.12] herunter.

Sie müssen eine man page schreiben? Dann sehen Sie sich mal die Linux Man Page HOWTO an. Auch erhältlich in italienisch.

Ich habe die Standardized Bonehead Reply Form, comp.lang.c-Version ein bischen massiert. Wenn Sie sie mal bei Gelegenheit posten wollen, nur zu!

Wenn Sie was zum Lachen haben wollen, probieren Sie mal meinen Schwäbisch Compiler, ein perl script, das Text von Hochdeutsch nach Schwäbisch übersetzt. Eigentlich ist ihm die Eingabesprache egal und ich empfehle dringend, ihm eine Man-Page oder einen Liebesbrief zu füttern. Aber holen Sie zuvor tief Luft, Sie werden sie brauchen.

Ein Traktat, Wider die Sinnmacher, über philosophische Tieffliegerey.

Seit April 2001 bin ich FreeBSD Committer, d.h. ich habe Schreibzugriff auf den Quelltext von Gottes eigenem Betriebsystem. Mein Interesse gilt der Konformität zu verschiedenen Standards, vorzugsweise ISO, POSIX und IEEE.

 Das menschliche Wesen Es gibt noch mehr

Es gibt mehr im Leben als Programmieren. Tatsächlich ist Hacken nicht mal der wichtigste Zeitvertreib. Ich bin ein menschliches Wesen und lebe in einer Welt mit vielen Mitmenschen, nah und fern. Es ist wichtig, unsere Verantwortung für unsere Mitmenschen zu erkennen.

Ich bin ein aktives Mitglied unseres CVJM. Wir bieten verschiedene sportliche Betätigung für mehrere Altersgruppen an. Mein Ehrenamt ist jenes als Trainer unseres Mädchenvolleyballteams. Wir achten auf den Spaß in den Trainingsstunden und das ist möglicherweise der Grund warum unser Team mittlerweile auf fast 20 angewachsen ist. Dieses Freizeitangebot für junge Leute hilft dabei, sie von der Straße zu holen, ist eine formidable Übung für den Teamgeist, und es wäre nicht der CVJM, wenn wir nicht versuchten, unsere christliche Vorstellung von Verantwortung für unsere Mitmenschen der nächsten Generation zu vermitteln.

Vergessen wir nie, daß auf diesem Planeten Menschen leben, deren Schicksal weit weniger glücklich als das unsrige ist. Für manche von ihnen könnte man sogar das Wort leben als Euphemismus werten. Verlassen vegetieren sie in Kerkern, werden misshandelt oder sogar gefoltert, oder warten auf ihre Hinrichtung. Als Mitglied von amnesty international schreibe ich Briefe an Könige und Königinnen, Präsidenten und Guverneure, Minister und Generäle, weise sie auf die Ungerechtigkeit hin, welche einer armen menschlichen Seele zugefügt wird. Können Sie sich das Gefühl vorstellen, wenn man davon in Kenntnis gesetzt wird, daß solch ein Schicksal zum Guten verändert wurde? Ein Gefangener freigelassen? Die Folter beendet? Ein Todesurteil umgewandelt? Ja, es geschieht tatsächlich. "Was ihr einem dieser Geringsten getan habt, das habt ihr mir getan."

 Bücher übers Programmieren Ein jedes unverzichtbar

Die folgenden Bücher sind alle in meinem Regal. Mit Ausnahme der C Traps (die mein Arbeitgeber in seiner Bibliothek hat), habe ich alle selbst gekauft und kann sagen, daß sie jede Mark bzw. Euro wert sind. Es mag überraschen, aber es findet sich unter ihnen kein Buch mit dem Titel "Lernen Sie <wasauchimmer> in 21 Tagen", "Jetzt lerne ich <wasauchimmer>" oder "<Wasauchimmer> für Dummies" unter ihnen. Wenn ich die Wahl habe, nehme ich lieber die harten Fakten, mit anderen Worten eine Bibel, Standard oder Quasi-Standard.

Über C und UNIX (in beliebiger Reihenfolge):

Peter van der Linden, Expert C programming, Prentice Hall, ISBN 0-13-177429-8

Steve Summit, C Programming FAQs, Addison-Wesley, ISBN 0-201-84519-9

P.J. Plauger, Jim Brodie, Standard C - A Reference, Prentice Hall. ISBN 0-13-436411-2

Kernighan, Ritchie, The C Programming Language, 2nd ed.

Robert Sedgewick, Algorithms in C, Addison-Wesley, ISBN 0-201-51425-7

Andrew Koenig, C Traps and Pitfalls, Addison-Wesley, ISBN 0-201-17928-8

Kernighan, Plauger, The Elements of Programming Style, 2nd ed, McGraw Hill, ISBN 0-07-034207-5

Donald Lewine, POSIX Programmer's Guide, O'Reilly, ISBN 0-937175-73-0

W. Richard Stevens, Advanced Programming in the UNIX Environment, Addison-Wesley, ISBN 0-201-56317-7

W. Richard Stevens, UNIX Network Programming, Networking APIs: Sockets and XTI, Addison-Wesley, ISBN 0-13-490012-X

Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman, The Design and Implementation of the 4.4 BSD Operating System, Addison-Wesley, ISBN 0-201-54979

International Standard, ISO/IEC 9899:1990 Programming Languages - C

International Standard, ISO/IEC 9899:1999 Programming Languages - C, aka C99, erhältlich als PDF Datei für etwa US$18 von Techstreet oder vom ANSI Webstore.

International Standard, ISO/IEC 9945-1 (ANSI/IEEE Std 1003.1) Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language], Reference Number ISO/IEC 9945-1:1990(E) IEEE Std 1003.1-1990, IEEE, ISBN 1-55937-061-0

David R. Hanson, C Interfaces and Implementations, Addison-Wesley, 1996, ISBN 0-201-49841-3

John R. Levine, Tony Mason, Doug Brown, Lex & Yacc, 2nd ed, O'Reilly, ISBN 1-56592-000-7


Andere Programmiersprachen:

Adobe Systems, PostScript Language Reference Manual, Addison-Wesley, ISBN 0-201-181274

Larry Wall, Randal Schwartz, Programming Perl, O'Reilly, ISBN 0-937175-64-1

Andrew Koenig, Barbara Moo, Ruminations on C++, Addison-Wesley, ISBN 0-201-42339-1

Bjarne Stroustrup, The C++ Programming Language, 3rd Ed 1997, Addison-Wesley, ISBN 0-201-88954-4

Don Libes, Exploring Expect, O'Reilly, ISBN 1-56592-090-2

Norman Walsh, Making TeX Work, O'Reilly, ISBN 1-56592-051-1

Helmut Kopka, LaTeX Einführung, Band 1, Addison-Wesley, ISBN 3-89319-644-1

Helmut Kopka, LaTeX Ergänzungen, Band 2, Addison-Wesley, ISBN 3-89319-665-X


Computer im Allgemeinen:

Douglas R. Hofstadter, Gödel Escher Bach (German translation), Klett, Buch Nr. 03283 9

David G. Stork (Editor), Hal's Legacy - 2001's Computer as Dream and Reality, MIT Press, ISBN 0-262-19378-7


Alles andere:

Die Bibel

Aho, Sethi, Ullman, Compilers; Principles, Techniques and Tools, (The Dragon Book), Addison-Wesley, ISBN 0-201-10194-7

Simson Garfinkel, PGP - Pretty Good Privacy, O'Reilly, ISBN 1-56592-098-8

Craig Hunt, TCP/IP Network Administration, O'Reilly, ISBN 0-937175-82-X

 Mein C Buch Mitautor gesucht!

Fast hätte ich es vergessen! Ja, ich schreibe noch ein (aber mein erstes) Buch über C, das sich in vielerlei Hinsicht von anderen C Büchern unterscheiden wird. Es lehrt nicht die Sprache C, wenigstens nicht in erster Linie. Stattdessen zeigt es dem C Kenner, wie all die verwandten Werkzeuge rund um C vorteilhaft eingesetzt werden können. Hier ist der Entwurf einer Kapitelstruktur:

  1. Standards
    1. C89
    2. POSIX 1003.1
    3. C99
  2. Compiler
    1. gcc
    2. lcc
    3. Tendra
    4. POSIX c89
    5. POSIX c99
  3. Interpreter
    1. Cint
    2. EiC
  4. Fehlersuche
    1. Selbst instrumentiert
    2. gdb
    3. ddd
    4. electric fence
  5. Lint & Splint
  6. Make
    1. Einführung
    2. POSIX make
  7. Lex
    1. Crashkurs
    2. Hello World
    3. Ein Lexer für ISO C
    4. POSIX lex
  8. Yacc
    1. Crashkurs
    2. Hello World
    3. Ein Parser für ISO C
    4. POSIX yacc
  9. Profiling
  10. Versionskonstrolle (RCS)
  11. Projektkontrolle (CVS)
  12. Muß man probieren
    1. SFIO - Safe/Fast IO Library
  13. Andere Werkzeuge
    1. Autoconf et al
    2. Indent
    3. Ctags
  14. Handbuchseiten
  15. Ein Beispielprojekt
  16. Programmieren für Ruhm und Ehre: Der IOCCC
Wenn Sie denken, da fehle noch was, lassen Sie es mich wissen. Wenn Sie den Entwurf Korrekturlesen und kommentieren wollen, geben Sie mir bitte bescheid. Die Version 1.0 des Buchs wird in deutsch erscheinen. Eine englische Version ist geplant, wenn die deutsche fertig ist. Nein, ich habe keinen Erscheinungstermin. Alles was ich sagen kann ist, daß ich noch einen Verlag suche. Der Markt für C ist klein geworden. C++, Java und objektorientierte Sprachen haben die Herrschaft in den Regalen übernommen. Vielleicht wird es nie kommerziell erhältlich sein. Eventuell mache ich es frei über das Netz verfügbar (dann müßte ich allerdings ein paar Teile entfernen, für die ich nur die Erlaubnis für Veröffentlichung als Druckwerk habe.) Vielleicht findet sich auch ein Ko-Autor, der mein Burnout-Syndrom kompensiert.

Die ersten 100 Seiten erforderten etwa drei Stunden pro Seite, alles eingeschlossen, die Forschung, das Programmieren, wasauchimmer. Meine Absicht ist, ein qualitativ hochwertiges Buch vorzulegen, nichts hastig Zusammengeschustertes. Die alten Hasen in comp.lang.c sollen das Buch eines Tages empfehlen. Qualität entsteht nicht spontan. Sie braucht, wie jede außergewöhnliche Handwerkskunst Wissen, Genauigkeit, Kreativität und Zeit.

Wenn Sie für einen Verlag arbeiten, wäre ich an einem Angebot interessiert.

 Änderungshistorie Für Historiker
Jul 22 2008 Alter erhöht
Jul 22 2007 Alter erhöht
Jul 22 2006 Alter erhöht
Jan 24 2006 Marconi -> Ericsson
Nov 20 2005 Link zur samefile Startseite
Sep 25 2005 Das menschliche Wesen
Jul 22 2005 Alter erhöht
Jul 22 2004 Alter erhöht
Apr 17 2004 Nach XHTML 1.1 konvertiert
Sep 7 2003 Links auf diese Seite
Jul 22 2003 Alter erhöht
Oct 18 2002 HTML Validierung
Aug 13 2002 Mehr Bücher; mehr über mein Buch
Jul 22 2002 Alter erhöht
May 20 2002 Wider die Sinnmacher
Mar 09 2002 Noch ein IOCCC Gewinn
Jan 27 2002 Neu: Öffentlicher PGP Schlüssel
Jul 22 2001 Alter erhöht
Apr 17 2001 FreeBSD committer
Jan 01 2001 neuer Arbeitgeber, Marconi
Jul 22 2000 Alter erhöht
Feb 18 2000 Neu: Links zu Astronomie/Astrologie Diskussion
Sep 20 1999 Neu: Ohne Erwiderung
Jul 22 1999 Alter erhöht
Jun 11 1999 Neu: Noch ein IOCCC Hattrick
Oct 15 1998 Mehr Gedichte
Sep 06 1998 Neu: Einige Gedichte
Aug 04 1998 Neu: Schwäbisch-Übersetzer
Jul 22 1998 Neu: Schachproblemlöser; Alter erhöht
Jun 23 1998 Neu: Originale IOCCC Beiträge
May 28 1998 Neu: Mein C Buch
May 20 1998 Neu: Bonehead reply form
$Id: index.html.m4,v 1.36 2008/07/21 23:04:20 schweikh Exp schweikh $ Lesen hier einstellen.