Home // Articles posted by matse (Page 3)
image_pdfimage_print

Assoziative Arrays in Bash

Fenster mit Quellcode

Mit bash 4.0 und höher hat man die Möglichkeit Assoziative Arrays verwenden zu können. In Python werden diese Art von Datenstrukturen Dictionaries genannt, in Perl heissen diese Hashes. Im Prinzip sind assoziative Arrays eine Erweiterung von normalen (indizierten) Arrays. Diese werden in der Regel dann eingesetzt, wenn man Arrayeinträge über vorher definierte Zeichenketten wiederfinden möchte.

 

Der Unterschied zu den indizierten Arrays besteht darin, dass bei den assoziativen Arrays nicht fortlaufende Nummern als Indizes, sondern sogenannte Keys (engl. Schlüssel) benutzt werden, die neben Zahlen auch Zeichenketten beinhalten können. Die einzelnen Arrayelemente werden demnach nicht einfach durchnummeriert, sondern jedes Element erhält eine Zeichenkette als Index.

Read more [+]

Das Ding in deinem Bauch…

Jeder werdende Vater kennt das. Irgendwann MUSS MANN seine Patschehändchen auf den Bauch der Frau legen um ES zu spüren. Meistens passiert das in einer Phase der Schwangerschafft, in der nicht 100% bewiesen ist ob FRAU sich die Bewegungen einfach nur einredet oder ob es da tatsächlich etwas zu spüren gibt. Sprich: Die Aktivitäten des Nachwuchses dringen zumeist gar nicht bis an die Oberfläche… Dieses Problem hat der Vater in folgendem Video definitiv nicht 😀

AOL.COM verschwindet von der Bildfläche

An der ETH bin ich unter anderem als Mailmaster der ISG.EE tätig. Da kommt man natürlich nicht umhin immer wieder einmal in die Maillogs hineinzuschauen. Heute war es nicht ganz so öde wie auch schon, denn heute war sogar Action angesagt.

Grund? Lauter Fehlermeldungen der folgenden Art.

Dec 21 06:43:07 mailserver postfix/smtp[6882]: [ID 197553 local1.info] 88306D9331: to=<AOLBENUTZER@aol.com>, relay=none, delay=0.05, delays=0.02/0/0.03/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=aol.com type=A: Host found but no data record of requested type)

oder auch

Dec 21 10:51:17 mailserver postfix/smtpd[12882]: [ID 197553 local1.info] NOQUEUE: reject: RCPT from imr-mb02.mx.aol.com[64.12.207.163]: 450 4.1.8 <AOLBENUTZER@aol.com>: Sender address rejected: Domain not found; from=<AOLBENUTZER@aol.com> to= proto=ESMTP helo=

Die Meldungen besagen, dass Mails an resp. von AOLBENUTZER abgewiesen werden weil die Domäne nicht existiert. Zumindest beim Empfangen ist solch eine Regel sinnvoll, damit Spammer nicht irgendwelche Fantasiedomänen verwenden die es nicht gibt. Aber warum soll es aol.com nicht mehr geben?

Nun, eine DNS Abfrage zeigt warum:

~ $ dig +short aol.com
~ $ dig +short mx aol.com

Da ist (DNS Technisch) nichts mehr vorhanden was auf AOL.COM deutet. Na toll… In den einschlägigen Postfix Mailinglisten hat dann jemand sogar eine temporäre Lösung für dieses Problem gefunden. Man setze einfach eine Transportmap auf aol.de, da diese auch die MX Einträge für aol.com kennen.

Ich will ja nicht wissen wie der sich gefühlt hat, welcher da die DNS Einträge verbockt hat 😀

Achja… mittlerweile ist alles wieder so wie es sein soll:

~ $ dig +short aol.com
207.200.74.38
64.12.79.57
205.188.100.58

~ $ dig +short mx aol.com
0 mailin-04.mx.aol.com.
0 mailin-01.mx.aol.com.
0 mailin-02.mx.aol.com.
0 mailin-03.mx.aol.com.
maegger@rista:~ $

Der Adventskalender Marathon 2010

Herzlich Willkommen zum vierten Adventskalender Marathon. Auch dieses Jahr habe ich versucht die spannendsten, lustigsten, gewinnbringendsten und abwechslungsreichsten Adventskalender in den Untiefen der Google Datenbanken zu finden. Und wie man es sich vom matse Blog gewohnt ist sind alle Links fein säuberlich nach Kategorien sortiert. Und dieses Jahr gibt es sogar ein Highlight! Ab 1. Dezember gibt es unter der Adresse http://xmas2010.matse.ch jeden Tag eine kleine matse-Überraschung! Viel Spass also beim täglichen Marathon durch die unzähligen Kalender.

Read more [+]

Druckerrettung nach Papierstau

Canon Pixma iP4500 Ein lautes quitschen und einige blinkende LEDs, das war alles was dem Canon Tintenstrahldrucker noch zu entlocken war. Der Grund dafür war ebenfalls recht schnell klar; Papierstau.

Nachdem ich die hintere Luke geöffnet und das Papier vorsichtig herausgepult hatte begann ein neuer Druckerlauf. Doch oh weh… diesmal zerknitterte das Papier derart, dass ich es bei aller Sorgfalt nicht mehr an einem Stück herausbringen konnte. Nach einigen weiteren Versuchen war der Fall fast schon klar. Die Papierstaus haben dazu geführt, dass irgendwo in der Papierführung selbiges festgeklemmt ist und ich – ohne Gewalt oder kompletter Demontage – nicht daran kommen würde.

Es gab nun – vorerst – zwei Möglichkeiten. Drucker entsorgen und neuen kaufen oder versuchen das Problem durch den Hersteller beseitigen zu lassen. Doch ein Anruf bei Canon resp. der auszuführenden Reparaturwerkstatt war ernüchternd. Eine Reparatur würde sich nicht lohnen bei diesem Drucker.

Rein vom ökonomischen Standpunkt aus betrachtet ist diese Aussage natürlich korrekt. Doch hat mich die Ökologie nie sonderlich interessiert, zeigte doch gerade die jüngste Vergangenheit mit Kriesen, Pleiten und Finanzdesastern was ökonomen so drauf haben… Aber das soll nicht Thema dieses Artikels sein 😉
Jedenfalls ist bei mir also statt dem ökonomischen das ökologische Gewissen in den Vordergrund getreten. Und nach einigen Versuchen habe ich die ultimative Lösung gefunden um den Drucker wieder zu reparieren.

Man nehme einen dünnen aber bereits stabilen Karton wie man ihn z.B. hinter einem Papierblock findet und schiebt diesen ganz vorsichtig bei abgeschaltetem Drucker! durch die Papierführungsleiste des Druckers. Dies kann zum einen bewirken, dass eingeklemmte Papierfetzen herausgestossen werden und zum anderen, dass ein eventuell verklemmter Papiersensor wieder gelöst wird.

Jedenfalls funktioniert der Drucker – Ökologiegewissen sei Dank – wieder einwandfrei und Papier hat er auch keines mehr gefressen.

Eggers are back

Phew… das waren zehn lange Tage. Angefangen hat es eigentlich ganz simpel mit dem Kauf eines Rechners als neue Workstation. Wenn schon, denn schon dachte ich da und habe mir eine anständige Maschine inkl. Windows 7 zugelegt. Obwohl mich Micrososfts neuestes Betriebsystem absolut überzeugt hat, fingen damit jedoch die Probleme erst an 🙁

Windows 7 und meine bestehende SAMBA Umgebung? Nö… also musste da ein Update her. Aber oh weh… um den Update machen zu können musste erst ein Systemupdate her. Doch oh weh… Um das Systemupdate machen zu können musste erst ein Kernelupdate her. Und so weiter…

Da ich ausserdem schon lange unzufrieden war mit meiner serverseitigen Harddisk Aufteilung entschloss ich mich kurzen Prozess zu machen und die Infrastruktur komplett vom Netz zu nehmen und alles von Grund auf neu aufzusetzen.

Und der Mühe Lohn?

Eine Topaktuelle Infrastruktur, alle Anleitungen auf dem neusten Stand (das hat wohl am meisten Zeit gefressen!) und wieder einmal eine Menge dazugelernt.

In diesem Sinne hoffe ich in bälde wieder mehr Artikel zu veröffentlichen mit meinen letzten Ergüss… aehm… Erkenntnissen 🙂

Liebe Frauen dieser Welt…

Danke vielmals, dass es euch gibt. Denn ohne euch hätten wir Männer wesentlich weniger zu lachen 😉

Achja, frohen Muttertag allerseits!

Der Vanilleeisvergaser

Vanilleeis (von luke.skywalker79 in flickr)

Was haben Vanilleeis und ein Vergaser gemeinsam? Im ersten Moment natürlich nichts. Doch wie so oft im Leben können auch zwei völlig unabhängige Objekte die Ursache eines Problems darstellen und gleichzeitig den Hinweis für die Lösung liefern. Aber ich greife der Geschichte vor…

Es ist eine Geschichte die jedem, der in irgend einer Art und Weise mit dem analysieren von Problemen beschäftigt ist, als Lehrstück dienen sollte. Denn die Geschichte zeigt auf, dass jeder Kundenhinweis zu einem Problem, und sei er auch noch so abwegig,  bei richtiger Interpretation zur Lösung des Problemes beitragen kann.

Alles fing mit einem Brief an, welcher in der Beschwerdeabteilung der General-Motors-Gruppe in Amerika einging.

Sehr geehrte Damen und Herren

Dies ist mein zweiter Brief an Ihre Beschwerdeabteilung. Ich nehme es ihnen nicht uebel, dass Sie auf meinen ersten Brief nicht geantwortet haben. Er muss in der Tat sehr merkwuerdig geklungen haben. Aber es entspricht nun mal den Fakten, dass wir in unserer Familie allabendlich Eiscreme zum Dessert essen.

Read more [+]

Ninas dritter Geburtstag

Meine Güte…

Nun ist Nina schon drei Jahre alt. Wie die Zeit doch vergeht. Während es an den letzten zwei Geburtstagen verhätnismässig ruhig zu und her ging, war dieses Jahr eine Piratenparty angesagt. Einige Ipressionen darüber findet man in der Bildergalerie.

Als Oberpirat oblag es mir die Piratenmeute in schach zu halten und zu bändigen. Also habe ich mir am Morgen noch einige Spiele ausgedacht, welche die Kinder als Piratenprüfung durchspielen sollten. Die Motivation war bei den Kids natürlich besonders gross, gab es doch zum Schluss ein echtes Piratendiplom.

Piraten-Gschicklichkeitstest
Ein Pirat muss auch bei stürmischer See immer einen festen Halt auf Deck haben. Aus diesem Grund wollte ich von den Piratenanwärtern eine Geschicklichkeitsprüfung absolviert wissen. In dieser Prüfung mussten Sie zuerst eine Strecke mit einem Plastiklöffel und einem Ping-Pong Ball darauf zurücklegen, ohne dass der Ball herunterfällt. Am Ziel musste dann der Löffel gegen einen Abfallsack getauscht werden und mit selbigen zurückgehüpft werden. Wer als erster ankam, erhielt einen kleinen Preis.

Piraten Kanonenschiessen
Ein richtiger Pirat muss natürlich auch die Kanone zielsicher bedienen können. Daher wurden auf einer Unterlage (z.B. ein Blatt einer Papierzeitung) einige leere PET Flaschen aufgestellt und die Piratenanwärte mussten aus einiger Entfernung mit 4 Softbällen versuchen die Flaschen umzuschiessen. Wer dies geschafft hat erhielt wieder einen kleinen Preis.

Piratenfrass
Ein echter Pirat muss auch fischen können. Hierzu habe ich jeweils zwei Piratenanwärter eine Minute lang fischen lassen und wer nach dieser Zeit am meisten gefangen hatte, erhielt einen kleinen Preis. Zum fischen kann man z.B. ein Angelspiel verwenden welches an der Rute einen Magnet besitzt und damit die Kartonfische aus dem Aquarium fangen kann. Alternativ – so haben wir es gemacht – kann man auch eines dieser mechanischen Angelspiele verwenden, bei denen sich das Spielfeld im Kreise dreht und je nach Position der Fische die selbigen den Mund auf und zu machen.

Kraftmessen
Piraten müssen stark sein, denn im Ernstfall müssen Sie bei Wind und Wetter auf den Ausguck hinaufklettern. Aus diesem Grund soll ein Tauziehen die stärksten der starken Piraten eruieren. Man nehme einen alten Gartenschlauch oder ein altes Stück Seil und befestige in der Mitte eine Schnur. Dann macht macht man am Boden für beide Seiten jeweils eine Markierung und verteilt die Kinder gleichmässig auf die beiden Seiten. Wer nun als erstes die andere Gruppe über die jeweilige Markierung ziehen kann hat gewonnen.

Piratendiplom
Ein echter Pirat pfeift natürlich auf ein Diplom. Viel erfolgreicher ist man da schon, wenn man en Fahndungsplakat vom Jungpiraten hat. Zeigt dieses doch, dass der Pirat ein extrem gefährlicher Zeitgenosse ist. Für das Diplom kann man z.B. etwas dickeres Papier kaufen, dass in einer braun-gelben Farbe daher kommt. Auf dieses Papier druckt man nun das Fahndungsplakat und kann ein während der Party geschossenes Photo darauf aufkleben.

Multipart ZIP Archive unter Linux öffnen.

Eigentlich ist das splitten von grossen Archiven eine ganz praktische Sache. Man kann dadurch grosse Archive in kleinere Häppchen schneiden. z.B. haben viele Mailserver eine Dateianhang Begrenzung von 10 MB. Hat man ein Paket das 16MB gross ist packt man es einfach nochmals neu, stellt aber ein, dass z.B. zwei 8MB Archive erzeugt werden. Der Empfänger speichert dann einfach beide Dateianhänge im selben Verzeichnis ab und kann diese wieder entpacken.

Soweit die Theorie. Leider musste ich feststellen, dass Multipart ZIP Archive doch einige Probleme bereiten können. Gerade bei Benutzern welche auf freie Alternativprodukte setzen, sei es nun unter Windows oder Linux, kommt es beim entpacken der Archive zu Problemen. So unterstützt z.B. 7-zip keine Multipart Archive. Und auch unter Linux heisst es in der Manpage von unzip:

[...]
BUGS
       Multi-part archives are not yet supported, except in  conjunction  with
       zip.  (All parts must be concatenated together in order, and then ''zip
       -F'' (for zip 2.x) or ''zip -FF'' (for zip 3.x) must  be  performed  on
       the  concatenated  archive  in  order to ''fix'' it.  Also, zip 3.0 and
       later can combine multi-part (split) archives into a  combined  single-
       file  archive using ''zip -s- inarchive -O outarchive''.
[...]

Schlussendlich hat bei mir die Variante funktioniert, welche ganz am Schluss der Manpage angegeben wird.

zip -s- archivname.zip -O archiv.zip
unzip archiv.zip

Das nächste mal produziere ich einfach weniger Daten 😉