2021-12-20 the real world Nie langweilig brennend abgetaucht und verschlungen Ich stuerze von einem Interesse in das naechste. Erst habe ich das Sockenstricken fuer mich entdeckt, dann habe ich mich mit Go beschaeftigt. Diese zwei Interessen waren kombinierbar, weil ich vor allem Vortraege ueber Go angeschaut habe, so dass ich nebenher stricken konnte. Dann waren die Socken fertig. Mit gleich einem neuen Paar wollte ich nicht anfangen -- man muss es ja nicht uebertreiben. Bei Go bin ich an einem Punkt angelangt, wo weitere Vortraege wenig sinnvoll sind. Nun muss praktisch dam- it programmiert werden, wenn ich dort weiterkommen will. Dafuer ist es noch nicht ganz der richtige Zeitpunkt. Davor will ich wohl auch erst noch das Buch von Donovan und Kernighan lesen. Es waren nur wenige Tage der ``Befreitheit''; jetzt stecke ich schon im naechsten Thema drinnen: Ncurses ... Das kam so: Im Debianforum hat heinz von einem Dungeon-Crawler- Programmierprojekt erzaehlt, das er ueber seinen Winterurlaub um- setzen will. [0] Es ging vor allem um die Labyrinth-Generierung und ich dachte: Ist ja nett, ist interessant, da kann ich ja mal mitlesen. Irgendwie hat mich das Thema dann aber doch gepackt. Ich habe in der Wikipedia nachgelesen [1] und im Kontext von Doom rumgesurft. In den letzten Jahren hatte ich immer mal wieder Lust darauf ein Spiel zu programmieren. Ausser dem Igelspiel im Sommer vor einem Jahr (in Tcl/Tk) ist aber nichts daraus geworden. Dieses Mal aber bin ich auf einen Ncurses-Quick-Start-Guide [2] gestossen, worauf ich dachte: Ist ja gar nicht schwer. Und abends im Bett ist mir auch noch eine Spielidee gekommen ... Am naechsten Tag habe ich angefangen zu programmieren. Es lief richtig gut. Vor allem war durch das Spielszenario irgendwie mehr Spass dabei als bei nuechterneren Programmen. Es macht Spass, nicht nur die Nuetzlichkeit, sondern auch die (optische) Experi- ence zu verbessern. Ebenso macht es Spass, mich in die Curses- Programmierung einzuarbeiten. Auch wenn ich da derzeit schon etwas zum Laufen kriege, so verstehe ich doch immer noch viel zu wenig davon. Folglich arbeite ich mich derzeit darin ein. Nun habe ich leider kein Curses-Buch, also habe ich zunaechst nach Material online gesucht. Das ``NCURSES Programming HOWTO'' von Pradeep Padala [3] und ``Guile NCURSES'' von Michael L. Gran [4] sind okay, aber nicht so ganz der Stil und die Art, die ich suche. Nachdem ich nochmal durch mein Buecherregal gegangen bin, ist mir ``The Berkeley UNIX Environment'' von R. Nigel Horspool ins Auge gefallen. Ich dachte, dass darin Curses erwaehnt sein koennte. So war es auch: Auf einer halben Seite war ein winziger Ueberblick gegeben, vor allem aber waren weitere Buecher aufgel- istete: ``Programming with Curses'' von J. Strong (O'Reilly) und ``Unix Curses Explained'' von B. Goodheart (Prentice-Hall). Beide hoeren sich gut an ... muesste man nur haben. ;-) Zudem war die Originaldoku von Ken Arnold ``Screen Updating and Cursor Movement Optimization: A Library Package'' erwaehnt. Diese habe ich online gefunden [5] ... und zwar als Teil der 4.4BSD Dokumentation. Da ist mir eingefallen, dass ich diese auch gedruckt habe. Via TUHS habe ich sie mal von Greg Lehey aus Ausstralien gegen 40,- Por- tokosten bekommen -- alle fuenf Baende. Ein Band davon -- ``Programmer's Supplementary Documents'' -- enthaelt Papers zu allerlei Programmierthemen: Unix-Architektur, Sprachen, Devtools ... eines eben auch zu Curses. So kann ich jetzt auf Papier lesen statt am Computer. Das ist besser. (Nachtrag: Die gedruckte Version ist leider um die lockeren For- mulierungen beraubt. Netter zu lesen ist die Version, die ich on- line gefunden habe. Zudem enthaelt diese ein paar zusaetzliche Abschnitte.) Nun, es ist ja schoen, dass ich mich so fuer die Dinge begeistere und in jedes Thema gleich richtig tief einsteige ... Ich habe na- tuerlich auch nicht nur einfach Socken gestrickt, sondern die Techniken fuer die Fussspitzen untersucht, verglichen und meine individuelle Variante entwickelt, die ich das naechste Mal noch weiter optimieren moechte. Meine Ferse habe ich versucht nach einer Vorlage ohne Anleitung zu stricken. Das hat halbwegs funk- tioniert. Danach habe ich mehrere ``Fersenstudien'' gemacht, wo auch noch weitere folgen werden, bis ich sie so habe wie ich sie haben will. Gleichermassen ist aus der Idee, ein kleines Spiel zu programmieren, nun eine grundlegende Beschaeftigung mit den verschiedenen Teilaspekten geworden. Ich programmiere also nicht einfach ein Spiel, sondern ich tauche tief in die verschiedenen Themen ein. Gerade bin ich aus dem Stricken aufgetaucht, schon bin ich wieder abgetaucht. Das ist auch keine Seltenheit. Einerseits mag ich das so. Dafuer gibt es zwei Gruende: Erstens schafft das eine fokussierte Konzentration auf ein Thema zu einer Zeit, also eine Serialisierung statt Parallelitaet. Zweitens finde ich eine tiefe Beschaeftigung mit Themen besser als eine oberflaechlichere. Darum will ich das auch nicht aendern. Dennoch hat das andererseits die Folge, dass ich von Thema zu Thema stuerze, das mich jeweils fuer eine Zeit verschlingt. Ich fuehle mich dabei manchmal etwas hin und her geworfen. Naja, das sind wohl die Kosten fuer die Gewinne. Ich sollte mich nicht beklagen, denn viele wuerden sich wuenschen, dass es bei ihnen so waere wie bei mir ... so fuer die Themen brennen zu koennen. [0] https://debianforum.de/forum/viewtopic.php?t=182922 [1] https://en.wikipedia.org/wiki/Maze_generation_algorithm [2] https://medium.com/programming-in-c/an-introduction-to- ncurses-in-c-d977efd706f8 [3] https://tldp.org/HOWTO/pdf/NCURSES-Programming-HOWTO.pdf [4] https://www.gnu.org/software/guile-ncurses/manual/guile- ncurses.pdf [5] https://docs.freebsd.org/44doc/psd/19.curses/paper.pdf http://marmaro.de/apov/ markus schnalke