Archiv der Kategorie Programmierung
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
Text extrahieren
Für die meisten Benutzer einer Schreibmaschine mit Bildschirm (Computer genannt) ist Textverarbeitung ein Synonym für das Programm Word des Herstellers Microsoft (und Tabellenkalkulation ein Synonym für das Programm Excel des gleichen Herstellers). Entscheidend für die Erfolgsaussichten von Konkurrenzprodukten ist die … Weiterlesen
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 … Weiterlesen
Bewegte Oberfläche
Die meisten Web-Seiten werden heute mit HTML (für Inhalt und Struktur), CSS (für die Darstellung) und JavaScript (für die Interaktion mit dem Benutzer und den Datenaustausch mit dem Server) gebaut. Mit JavaScript können HTML-Elemente und CSS-Stilauszeichnungen verändert, entfernt und hinzugefügt … Weiterlesen
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. … Weiterlesen
Versionen
Es soll noch Teams von Software-Entwicklern geben, die ohne ein Versionsverwaltungssystem auskommen und die Versionsverwaltung ihrer Projekte ganz von Hand durchführen. Dabei lohnt sich der Einsatz eines Systems für die Versionsverwaltung (en. version control system, VCS), auch Quellenverwaltung (en. source … Weiterlesen
Speichermodell
Ein Speichermodell beschreibt, welche Ausführungsfolgen für ein Programm erlaubt sind, insbesondere bei nebenläufigen Lesezugriffen auf Variabeln. Das Java Memory Model wird in Kapitel 17 der Java Language Specification (JLS) beschrieben. Mit dem Java Specification Request 133 (JSR-133) wurden einige Probleme … Weiterlesen
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 … Weiterlesen
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 … Weiterlesen
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 … Weiterlesen