Category: Programmierung

  • Leere ohne Breite

    Im typographischen Setzkasten gibt es seit der Renaissance Zwischenräume (Spatien) verschiedener Breite, gemessen in Unterteilungen eines Gevierts (der Breite, die der Höhe der Letternkegel einer Satzschrift entspricht). Eine Breite kam erst mit dem digitalen Schriftsatz hinzu: Ein Leerzeichen mit einer Breite von 0 – nullbreites oder breitenloses Leerzeichen genannt, en. zero-width space, fr. espace sans…

  • Shebang

    Letztens wunderte ich mich, warum ein Shell-Skript, das lokal einwandfrei lief, auf dem Server mit einer Fehlerausgabe aussetzte. Die beanstandete Zeile entspricht in etwa folgendem Code-Schnipsel: if [[ $PATH =~ (^|:)$DIR(:|\$) ]] then echo „$DIR is in the PATH“ fi

  • Doppelklammern

    In einem früheren Artikel über die Bash haben wir uns bereits mit Ersetzungen im Sinne von Befehlssubstitutionen und insbesondere bei der Extraktion von Teilen von Zeichenketten befasst. Es gibt auch Ersetzungen, welche als Arithmetic Expansion bezeichnet werden, bei denen eine arithmetische Operation mit Ganzzahlen durch ihr Ergebnis ersetzt wird.

  • Ersetzungen

    Zu einem unixoiden System, wie es auch Linux und Mac OS X sind, gehört unbedingt eine Shell. Sicher gibt es Anwender (vielleicht die meisten), die noch nie eine Befehlszeile in eine Shell getippt haben, und lieber die Finger davon lassen. Es ist auch leicht, sich hier die Finger zu verbrennen, denn alles wird ohne Nachfrage…

  • Kopieren über Schreiben

    Der Zugriff auf gemeinsam benutzte veränderliche Daten sollte in nebenläufigen Programmen synchronisiert werden, weil ein kritischer Wettlauf (race condition) zu Zugriffsfehlern und zu nicht deterministischem Verhalten führt (s.a. Item 66 in Effective Java von Joshua Bloch, 2. Auflage, 2008). In Java wird Synchronisation hergestellt, indem ein Thread (Ausführungsfaden) eine Sperre erwirbt (auch Monitor genannt), die…

  • Ressourcen freigeben

    Bei Nr. 41 der Tüftelfragen in Java Puzzlers von Joshua Bloch und Neil Gafter (2. Auflage, 2005) geht es darum, wie zwei Datenströme, ein Eingabestrom und ein Ausgabestrom, sicher geschlossen werden, somit so, dass auf jeden Fall – also auch wenn eine Ausnahme erhoben wurde, und bei der Behandlung dieser dann eine weitere Ausnahme eintritt…

  • Wege durch den Schutzwall

    Der Stein rollt, aber es bröckelt: Änderungen, die es leichter machen sollten, sich durch eine Firewall mit einem JMX-Server zu verbinden, wurden diese Woche aus der Feature-Liste für Java 7 gestrichen. Begründet wurde der Schritt mit der zu knapp gewordenen Zeit: Schließlich soll Java 7 nun endlich Anfang Juni fertig und Ende Juli allgemein verfügbar…

  • Ansicht oder Kopie?

    Es lohnt sich oft, den Vertrag einer Methode zu lesen, also die Dokumentation, welche die Methode, ihre Argumente, ihre Rückgabe und die Auswirkung auf den Status des Objektes beschreibt. Bei manchen Methoden von Java-Collection-Klassen ist das besonders wichtig, denn sie liefern nicht unbedingt das, was der Name der Methode suggeriert. Z.B. gibt die Methode subList…