Das Internet wird zum Zentranet

Als ich 2004 mit meinem Blog begonnen habe, befand sich das Internet immer noch in einem recht frühen Anfangsstadium der Suche und der Experimente, was man denn nun damit anfangen könne. Blogs waren damals der (nicht mehr ganz so)  neue „hot shit“ und alle haben mitgemacht. Die sogenannte Blogosphäre war in aller Munde, sie wurde als das Zentralhirn des Webs gehandelt, ein riesiger Berg an Wissen und Nicht-Wissen, Nonsens und Kontroverse, für jeden auf Knopfdruck erreichbar, dezentralisiert, so, wie das Web eben angelegt war: anarchisch und doch strukurierbar mit Hilfe von Suchwerkzeugen und Links.

Und: das Schöne an Blogsystemen ist ja unter anderem, dass es zig verschiedene Systeme gibt und jeder in der Gestaltung seines Blogs absolut frei ist. Die meisten Systeme sind sowieso OpenSource (wie z.B. WordPress), und mit ein wenig HTML-Kenntnissen kann man recht beachtliche optische Ergebnisse erzeugen. Weiterhin gibt bzw. gab es die RSS-Feed-Suchmaschinen und Aggregatoren, die einem die Suche nach spannenden Themen ungemein erleichter(te)n.

Und heute? Heute beschränkt sich die Nutzung des Webs auf „mal schnell ne Info auf Google suchen“, Shoppen und die sog. sozialen Netzwerke wie Facebook, WhatsApp,  Instagram oder Twitter.

„Was nicht auf Facebook/Instagram ist, gibt es nicht.
Gestaltungsfreiheit? Pustekuchen! Die einzige Individualität ist das Titelbild und Dein Avatar. Alles andere: Einheitsbrei. Längere, ausgefeilte Artikel sind eher Mangelware – dumm nur, dass man die Welt nicht in 140 Zeichen erklären kann.

Und so sind aus dem offenen Internet zentralisierte Inseln geworden, die voneinander abgekapselt sind, das (wie ich geneigt bin, es zu nennen) sogenannte „Zentranet“.

Dabei sind die neuen Dienste ja wirklich toll! Sie haben dafür gesorgt, dass eine absolut nicht internet-affine Generation (die unserer Eltern) plötzlich mit Tablets bewaffnet unterwegs ist und sich über das Netz austauscht. Kein Gemurkse mehr mit viren-verseuchten Rechnern, die man am Wochenende dann fixen muss. Was sie jedoch nicht mitbekommen: Es gibt ein Netz außerhalb der Dienste, das viel spannender ist, das einen weiter bringt, aus dem man lernen kann!

10 Jahre Tomblogg

Uh oh, 10 Jahre sind rum, das ist eine mächtig lange Zeit…

Wie schon häufiger erwähnt, habe ich mittlerweile recht wenig Zeit zum Bloggen, was mir persönlich echt leid tut, aber was will man machen. Ich denke, ich habe mich vom „Internet-Nerd“ mittlerweile doch zum „normalen“ Anwender entwickelt, der häufiger auch das Analoge zu schätzen weiß, vor allem jetzt, wo mein Sohnemann auf der Welt ist.

Deswegen: Entschuldigt, ich werde versuchen,  trotz all dessen ab und an etwas zu schreiben.

Dennoch: Ich trinke ein Gläschen auf meine alte Tante Blog, 10 Jahre sind ja eine Ewigkeit im Internetzeitalter!

Euer Thomas

Dateien mit Safari hochladen und PHP

Wer PHP-Seiten erstellt und dort eventuell auch mal das Hochladen von Dateien zulassen möchte, erlebt unter bestimmten Umständen (die sich mir bisher noch nicht ganz erschließen), dass Safari (alle Versionen) dies nicht mehr zulässt. Er lädt und lädt, aber nichts passiert. Wer das feine Programm Little Snitch dabei im Einsatz hat, wird oben im Netzwerkmonitor sehen, dass kein Netzwerkverkehr mehr stattfindet, d.h. Safari befindet sich sozusagen im Leerlauf, obwohl er anzeigt, dass er die Datei hochlädt. Das ganze betrifft übrigens nicht nur PHP, jedes andere System ist davon auch betroffen.

Was also tun? Die Lösung ist geradezu banal! Als erste Zeile in der PHP-Seite einfach folgenden Schnipsel einfügen:

<?php header("Connection: close"); ?>

Das war’s schon. Zitat aus den header-Docs:

HTTP/1.1 defines the „close“ connection option for the sender to signal that the connection will be closed after completion of the response. For example,

Connection: close
in either the request or the response header fields indicates that the connection SHOULD NOT be considered `persistent‘ (section 8.1) after the current request/response is complete.

HTTP/1.1 applications that do not support persistent connections MUST include the „close“ connection option in every message.

Der Tag ohne Kommunikation

Gestern morgen ist das passiert, was man gemeinhin wohl als technischen Supergau bezeichnet. Während der Umbaumaßnahmen am Rödelheimer Bahnhof durchtrennte ein in die Erde getriebener Stahlträger ein extrem dickes Glasfaserkabel der Telekom.

Das hatte zur Folge, dass die gesamte Westerbachstraße tot war. Es ging nichts mehr: Telefone und Internetleitungen standen still. Auch das Rechenzentrum, in dem tomblogg.de werkelt, war davon betroffen. Deswegen war der Blog gestern nicht erreichbar. Ich selbst konnte dagegen auch nichts tun, denn auch mein Büro war von der Außenwelt abgeschnitten.

Die Beseitigung dauerte dann auch die ganze Nacht. Noch um 23.30 Uhr waren Techniker dabei, das Kabel zu flicken. Sicherlich keine schöne Aufgabe bei der Menge an Leitern! Vorher musste noch das dicke, neue Kabel verlegt werden, damit der Betrieb überhaupt wieder aufgenommen werden konnte.

Und heute morgen „lag das Internet auf der Straße“: Unbewacht und für jeden zugänglich, na fein.

PHP-Arrays vs. JavaScript-Arrays in Forms

Uhhhh, das war echt ne harte Nuss, die mich da eine Weile beschäftigt hat. Alte Coder werden mich jetzt auslachen, ist mir aber egal, ich denke schon, dass der ein oder andere auch auf dieses Problem stoßen könnte und nach einer Lösung sucht. Also, worum geht’s?

In HTML kann man in einem Form z.B. ein Array in der Art

<input type=“text“ name=“meinArray[]“ value=“1234″/>
<input type=“text“ name=“meinArray[]“ value=“5678″/>
<input type=“text“ name=“meinArray[]“ value=“9012″/>

erzeugen, d.h. im Array meinArray gibt es die Elemente meinArray[0], meinArray[1] und meinArray[2] jeweils mit den Werten „1234“,„5678“ und „9012“.

Über PHP kann man ja auf die einzelnen Elemente prima zugreifen, z.B. so:

$meinArray = $_POST[‚meinArray‘];
for ($i=0; $i<count($meinArray); $i++) {
echo „Wert in meinArray an der Stelle“ . $i . “ = “ . $meinArray[$i];
}

oder auch so:

foreach($_POST[‚meinArray‘] as $key=>$value) {
echo $key.‘ ‚.$value;
}

Wer jetzt glaubt, er könnte das in JavaScript so ähnlich machen, hat sich geschnitten. Etwas in der Form (hier nur beispielhaft)

var meinArray = document.forms[0].meinArray;
for ($i=0; $i<meinArray.length; $i++) {
alert( „Wert in meinArray an der Stelle“ + i + “ = “ + meinArray[i]; // oder auch noch .value hinten dran, ist aber egal, geht eh nicht.
}

funktioniert einfach nicht. Richtig ist hingegen das hier:

var meinArray = document.forms[0].elements[„meinArray[]“];
for(i=0;i<meinArray.length;i++) {
alert( ‚Wert in meinArray an der Stelle‘ + i + ‚ = ‚+ meinArray[i].value);
}

Siehe auch http://de.selfhtml.org/javascript/objekte/elements.htm. Hat ne Weile gedauert, bis ich dahinter gestiegen bin.