Skip to content

Fehlersuche

Der Bug mit der Nummer 1926 raubt mir derzeit ein wenig den Nerv. Ich sammle Informationen, um diesem ein wenig auf den Grund zu gehen. Dazu tippte ich die folgende Zeile in meine Shell ein:

for file in `find extra-infos-2011-02 -type f`; do
   awk ‘BEGIN {RS=“” } /history (2000-01-01|2008-09-11|…)/ { print $0 }’ \
     >> wrong.2010-07
 done

Die Datei wollte einfach nicht voll werden. Da knapp über 200000 Dateien durchsucht werden, machte ich mir anfangs keine Gedanken. Irgendwann warf ich einen langen Blick auf die Eingabe, dann noch einen und dann noch einen. Schließlich fiel mir auf, dass $file nicht referenziert wird. Kaum macht man es richtig, schon wird die Datei mit Inhalten befüllt. :-)

Shellfenster in Ubuntu öffnen

Bei einer Durchsicht der Sucheinträge dieses Monats stellte ich fest, dass einige Leute wissen wollen, wie man unter Ubuntu ein Shellfenster öffnet. Ich will das unten kurz beschreiben. Dabei gehe ich von der GNOME-Oberfläche aus.

Zwei Wege führen in der Regel nach Rom (oder zu einem Terminal :-)). Der vielleicht naheliegende geht über das Menü. Mittels der Folge Anwendungen->Zubehör->Terminal öffnest du ein Terminal aka Shellfenster. Wenn du jedoch häufig ein Terminal benötigst, kann es etwas umständlich sein, jedesmal sich durch die Menus zu klicken. Daher kannst du dir auch eine Tastenkombination anlegen. Hierzu gehst du auf System->Einstellungen->Tastenkombinationen, Darauf öffnet sich ein Fenster, indem du verschiedene Kombinationen festlegen kannst. Im Abschnitt “Desktop” ist der Eintrag “Ein Terminal starten”. Klicke den an und drücke danach die Tastenkombination, mit der du später das Terminal aufrufen willst. Bei mir liegt das auf Strg+Alt+T. Das Ergebnis deiner Eingabe steht danach rechts. Falls das deinem Wunsch entspricht, kannst du das Fenster schließen und hernach immer mit der gewählten Tastenkombination ein Shellfenster öffnen.

Chemnitzer Linux-Tage 2009

Nun sind sie wieder vorbei, die Chemnitzer Linux-Tage. Zwei Tage als Linux-Familienfest.

Wie schon im letzten Jahr hatte ich auch dieses Jahr den Aufruf zum Einreichen von Vorträgen verpasst. Daher kam ich hauptsächlich als Besucher. Einige der Vorträge klangen recht interessant und so wollte ich die Zeit nutzen, um mir diese anzuhören und Ideen zu sammeln. Doch wie so oft kam alles ganz anders. Ich hielt mich sehr häufig außerhalb der Räume auf, traf eine Menge nette Leute und unterhielt mich über verschiedene Themen. Doch natürlich besuchte ich auch Vorträge (wenn auch meist nur zur Hälfte ;-)):

Notensatz mit Lilypond für den Hobbymusiker
Kurz nach meinem Eintreffen in Chemnitz hüpfte ich in diesem Vortrag. David Kastrup stellte das Notensatzsystem Lilypond vor. Das erste Beeindruckende war, dass Emacs auch PDF-Dokumente zeigen kann und zwar inline. David meinte später, dass das mit der aktuellen CVS-Variante (Emacs23) geht. Das PDF zeigte Noten zu Kalinka an und David spielte diese live auf seinem Akkordeon. Der Vortrag wurde immer mal wieder durch solche netten Einlagen unterbrochen. Auf diese Weise war er recht kurzweilig, auch wenn ich über Lilypond nahezu nichts lernte.
Die Telematik im Gesundheitswesen: Was läuft auf Linux in der Arztpraxis?
Ich erwartete von dem Vortrag ein paar Aussagen zu Linux in der Arztpraxis allgemein und eine Diskussion von Vor-/Nachteilen. Die Vortragende erzählte jedoch (zu) viele Details zur elektronischen Gesundheitskarte. So fasste ich recht schnell den Entschluss, die Räume wieder zu verlassen.
I2P - anonymous low latency mix network
Der Vortrag zu I2P interessierte mich natürlich besonders, u.a. deswegen weil ich mit dem Gedanken gespielt hatte, selbst einen zu dem Thema einzureichen. Lars gab einen kurzen Einblick in die Software und die Funktionsweise. Leider war die Zeit zu knapp bemessen, um auf mehr Details einzugehen oder ein praktisches Beispiel zu zeigen. Dennoch waren viele Zuhörer interessiert. Vielleicht konnte so der eine oder andere Nutzer gewonnen werden.
Die Rechtsprechung des Bundesverfassungsgerichts zum Datenschutz: Online-Durchsuchung, Vorratsdatenspeicherung etc.
Johannes Lichdi gab einen Überblick zu den Aufgaben des Bundesverfassungsgerichtes und zeigte anhand der in den letzten Jahren gefällten Entscheidungen, dass das Gericht keineswegs immer Gesetze kippt, sondern vielmehr die Anwendung verfassungsgemäß auslegt und anderweitig minimal eingreift. Sein Fazit war, dass wir das Bundesverfassungsgericht unbedingt zum Schutz der Grundrechte brauchen und auch selbst viel tun müssen. Als kleines Detail am Rande wurde die Broschüre Meine Daten gehören mir! Datenschutz im Alltag (lokale Kopie, PDF, 1,2MB) verteilt. Seite 6 verweist auf mein Buch Anonym im Netz. ;-)
Git verstehen und nutzen
Nachmittags wollte ich mir diesen Vortrag noch anhören und hoffte, etwas Neues zu git zu erfahren. Der Vortragende glänzte mit fast 80 Folien, welche im wesentlichen das Tutorial zu git beinhalteten. Hier wäre weniger mehr gewesen. Auf alle Fälle entstand durch den Vortrag bei mir der Plan, selbst einen Workshop oder Vortrag dazu zu machen. Die grundlegenden Ideen zum Ablauf des Ganzen habe ich auch schon im Kopf. Jetzt muss ich nur noch die nächste Linux-Veranstaltung abwarten ...
Quo vadis MySQL?
Wieder ein Vortrag, zu dem ich leider viel zu spät kam. Erkan Yanar gab einen guten Überblick zum MySQL-Universum. Ich würde mich sehr freuen, wenn den Vortrag später als Audio zum Nachhören gäbe.
Analyse und Visualisierung von Daten mit R
Leider war für mich auch dieser Vortrag ein Fehlschlag. Viele Folien und wenig Inhalt. Der Vortragende las viele Funktionen von GNU R vor und am Schluss gab es eine Demo. Diese Übersicht an Funktionen lässt sich auch von der Einführung zu R oder weitergehender Dokumentation gewinnen. Bei der Demo wiederum wurden verschiedene Befehle aufgerufen, ohne dass klar war, was da gemacht wird. Mir wäre lieber gewesen, wenn der Vortragende nach der Einführung kurz erwähnt hätte, dass beispielsweise sämtliche klassischen statistischen Funktionen in GNU R abgedeckt sind (Falls es welche gibt, Ausnahmen nennen). In einer Demo hätte ich mir dann ein kleines Beispiel gewünscht, wo kurz die Datenbasis erwähnt wird und dann später der Vortragende anhand einzelner Befehle die Funktionsweise erklärt. In dem Vortrag habe ich leider nichts von dem Programm mitgenommen. Weder wurde mein Interesse geweckt noch war ich abgestossen.
Verteiltes Suchen – Ein aktueller Überblick
Der letzte Vortrag bei den Chemnitzer Linux-Tagen handelte vom verteilten Suchen. Daniel Gultsch gab einen kurzen Überblick in das Suchen allgemein und stellte später einzelne Projekte (YaCy, Lucene, Wikia und weitere) vor. Dabei kam für mich heraus, dass nur YaCy eine verteilte Suchmaschine ist. Die meisten anderen Projekte decken nur Teilaspekte des Suchens ab. Dennoch scheint YaCy nichts für den normalen Desktop zu sein. Zum einen benötigt das Programm Unmengen an RAM (unter 512MB geht nichts), CPU und anderen Systemressourcen. Zum anderen gibt es nach Aussagen des Vortragenden keine Maßnahmen gegen das Abschalten eines Peers. Der Vortrag selbst gefiel mir gut. Jedoch glänzten die Folien durch Rechtschreibfehler. Würden die Chemnitzer Linux-Tage Preise für Fehler auf Folien verleihen, hätten diese den ersten Platz sicher. Das fand ich sehr schade, da es mich vom Vortrag ablenkte.

Bei vielen anderen Vorträgen hoffe ich, dass es später die Folien oder sogar die Audios gibt.

Liste mit
  Hashsummen
Jens beim
  Erklären

Am Samstagabend stand nun noch das Keysigning auf dem Programm. Ich hatte vorher die nebenstehenden Hashwerte ausgedruckt. Das sollte helfen, meine Stimme zu schonen und nicht alle Zahlen/Buchstaben durch die Halle brüllen zu müssen. Danach gab ich eine kurze Erklärung zum weiteren Ablauf und Sven bestand auf einem Gruppenfoto.

Schließlich hieß es Aufstellung nehmen. Wir hatten etwa 60 Teilnehmer mit fast 80 Schlüsseln. Ich machte den Anfang und wanderte von Teilnehmer zu Teilnehmer. Der Marsch ging sogar recht zügig. Denn viele hatte ich bereits unterschrieben. Auf dem untenstehenden Foto seht ihr einen Blick in die Menge:

Mir haben die Chemnitzer Linux-Tage in diesem Jahr wieder sehr viel Spass gemacht. Auch wenn die von mir gewählten Vorträge eher Mittelmaß waren. Dafür entschädigt die nette Atmosphäre und die perfekte Organisation. Für mich ist das wirklich wie ein Familientreffen der Linuxfreunde und ich freue mich schon auf nächstes Jahr.

Blick in die Runde der Teilnehmer

Project Euler mit Shellmitteln lösen

Als ich kürzlich mit Sven über das Projekt Euler sprach, hatte er recht schnell einen Lösungsvorschlag parat. Auf die Frage, wie er das gemacht habe, antwortetet er: vim.. :-)

Nun war das elfte Problem an der Reihe und ich erinnerte mich wieder an Svens Worte. In dem Problem ist eine 20x20 Matrix gegeben und man soll das größte Produkt von vier nebeneinanderliegenden Zahlen finden:


08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48

Nach einigen Überlegungen kam ich zu dem Schluss, dass die Zahlen in der Lösung größer als 74 sein müssen. Dann kam sed zum Einsatz: sed ‘s,\([0-6][0-9]\|7[0-4]\) , ,g’ problem11. Übrig blieb die untenstehende Matrix:


         97                75          78          77 91    
      99       81          87       98                      
81             79       93             88                   
      95                                                 91 
                     89    92                            80 
            99             75       78    84                
   98 81                                                    
                        95    94             91       94    
                  99    97    78 78 96 83    88    89       
            75    76                         97          95 
78             75          94    80                      92 
            96                88                      85    
86                89                                        
   80 81       94             92    86       77    89       
         83 97    99       97                79       98    
88       87                                        93       
                           94                         76    
                     88       99    82       85             
            78    90                   86 81                
            83             92                   89          


Hier fielen mir sofor die markierten Viererblöcke ins Auge, wobei das Produkt der rot markierten Zahlen größer sein muss als das der blau markierten. Als gab ich die Lösung ein und hatte schnell die richtige Lösung. :-)

Das deutsche zsh-Buch ist da

Cover des zsh-Buches

Beim Schlendern durch eine Bücherei fiel mir gestern, das quasi druckfrische Buch “zsh -- Die magische Shell” auf. Seit einiger Zeit schrieben Julius Plenz und Sven Guckes daran und seit etwa einer Woche ist es im Handel erhältlich.

Im Buch geht es natürlich um die beste Shell der Welt, die zsh. Auf sechs Kapiteln in insgesamt 200 Seiten wird (hoffentlich) alles Wissenswerte gesagt. Hoffentlich deswegen, weil ich das Buch noch nicht komplett gelesen habe. Sobald ich durch bin, werde ich sicher eine Rezension dazu schreiben.

In der Einleitung finden sich kurze Hinweise zur Installation, Konfiguration und zum Prompt. Das zweite Kapitel beschäftigt sich dann mit dem effizienten Arbeiten. Es werden Aliase, Shell-Funktionen und Expansionen erklärt. Der Name des dritten Kapitels “Dateien, Ausgaben und Programmaufrufe” ist selbsterklärend. Kapitel 4 erklärt die interaktive Verwendung und Kapitel 5 das Skripting. Das letzte Kapitel des Buches beschreibt, wie Completions und Widgets selbst geschrieben werden können.

Ich bin sehr gespannt und freue mich, das Buch zu lesen. :-)

cronjob