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.
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.
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.
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.
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.
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.