Categories
Programmierung

1,2 Sekunden (eine Ewigkeit)

Bei mir jetzt auch ein Artikel über Profiling. Soeben erlebt: Eine relativ kleine Webseite mit eigenem ollen CMS brauchte relativ lange (1,25 Sekunden) um eine Seite zu generieren. Zunächst die Datenbankabfragen angeschaut – nichts schlimmes gefunden. Also schnell den (proprietären) Profiler angeschmissen. Es zeigte sich folgendes Bild:

1,2 Sekunden? Arg viel. Ein Blick in die betreffende Zeile:

$string = strtr($string, $replace);

Hmm, da scheint strtr wohl nicht so performant zu sein. Noch nett ausgedrückt. Ausweichcode ausprobiert:

foreach ($replace as $key => $value) {
       $string = str_replace($key, $value, $string);
}

Dauert jetzt 12ms. Unglaublich.

Links
http://www.cznp.com/blog/3/strtr-vs-str_replace-a-battle-for-speed-and-dignity
http://www.simplemachines.org/community/index.php?topic=175031.0

Categories
Programmierung Tools

Browser Clipboard

In modernen Browsern ist mittlerweile der Zugriff auf die Zwischenablage nicht mehr erlaubt (aus gutem Grund). Möchte man aber den Benutzern seiner Webapplikation zumindest das schreiben in die Zwischenablage ermöglichen, gibt es einen Workaround: Der Umweg führt über das Adobe Flash Plugin…

Der Link zum Script: Zeroclipboard. Nicht das ich das jetzt unbedingt bräuchte – aber man weiß ja nie.

Categories
Programmierung

MySQL Substring

Fast jede Programmiersprache hat eine Funktion für Substring. MySQL auch. Nur verhält sich die MySQL-Variante dieser Funktion anders als von mir vermutet…

SELECT SUBSTRING('abcd', 1, 3);

sollte eigentlich IMHO “bc” zurückgeben. Tut es aber leider nicht, weil MySQL schlauerweise bei 1 (statt bei 0) anfängt zu zählen – es muss also für MySQL so lauten:

SELECT SUBSTRING('abcd', 2, 4);

Merkwürdig dieses SQL… Dokumentiert ist das ganze hier.

Categories
Programmierung

Nagios Mail auf dem iPhone

iphone_nagios_mailDie Extended Nagios Notification Mail ist jetzt für das iPhone optimiert. Bei der Gelegenheit habe ich mir gleich mal die entsprechenden Safari-Erweiterungen angeschaut…

Da die HTML-Mail auch vom Safari gerendert wird, helfen hier auch die iPhone-Erweiterungen. Im wesentlichen das Safari Meta-Tag “viewport”. Viele weitere nützliche Infos dazu gibt es in der Safari Referenz. So kann man z.B. auch die Ausrichtung des Bildschirms per Javascript auslesen und sogar Touch-Events auswerten.

Folgendes Beispiel legt die imaginäre Breite der im Safari dargestellten Seite auf 600 Pixel fest.