Archiv für die Kategorie ‘Website’

6
Februar
Abgeheftet in: Website | Tags: , , | 21:02 Uhr | 2

Blog Benchmark

Vor etwas über einer Woche kam mir der Gedanke, meine Webseite etwas zu entschlacken, da mir die Ladezeiten sehr lang vorkamen. Und so wie es aussieht, war ich mit dem Gedanken im Raum Hamburg nicht allein. Durch einen glücklichen Zufall hat Fabian von nodomain.cc ein kleines Tutorial über den Reverse Proxy varnishd in sein Blog geschrieben, dass ich erst einmal eins-zu-eins ausprobiert habe. Eine weitere Möglichkeit seinen Blog zu beschleunigen ist der W3 Total Cache, welches als Plugin für Wordpress daher kommt. Aber von vorn.

Zuerst habe ich das Blog entschlackt. Plugins, die ich nicht benötige, flogen raus. Damit halbierte sich die Ladezeit der Seite von etwa 8 Sekunden auf knapp unter 4 Sekunden. Aber im Zeitalter von DSL immer noch eine halbe Ewigkeit.

Danach installierte ich varnishd. Achtung: varnishd kann man nur auf einem eigenen Server nutzen. Die Ladezeit der Seite verkürzte sich auf rasend schnelle 1,5 Sekunden. Weiter wollte ich den Durchsatz des Webservers messen. Mit dem varnishd Proxy schaffte der Webserver 322 Anfragen pro Sekunde. Ohne varnishd packt der Server gerade einmal 1,8 Anfragen pro Sekunde. Letzten Wert finde ich dramatisch schlecht, aber nachdem ich einige andere bekannte Blogs gebenchmarkt habe, muss ich sagen, dass diese auch nicht mehr Durchsatz haben. Eher sogar weniger. Rühmliche Ausnahme ist der Ad, der auf gute 7 Anfragen pro Sekunde kommt.

Das W3 Total Cache Plugin beschert ähnliche Werte, wie der varnishd Reverse-Proxy, aber die Installation ist sehr viel einfacher. Weiter benötigt man auch keinen eigenen Server mit root-Zugang. Mit dem aktivierten Plugin werden 307 Anfragen pro Sekunde durch die Leitung geschaufelt. Der W3 Total Cache stellt also eine sehr gute Alternative zum varnishd dar.

Die Nachteile vom varnishd, sowie vom W3 Total Cache sollte man nicht verschweigen. Beide cachen. Dadurch kommt auch der enorme Geschwindigkeitszuwachs zustande. Cachen heisst soviel, dass die Seite einmal generiert wird und dann für eine vorgegebene Zeit immer wieder aus dem Zwischenspeicher abgerufen wird.

Damit varnishd sein volles Potenzial ausspielen kann, werden auf dem Weg zum Browser alle Cookies ausgefiltert. Bei mir ist es aber so, dass sich einige weniger User einloggen und dann in meiner Gallery ein paar Fotos mehr sehen, die nicht für alle Augen bestimmt sind. Das fällt mir dem varnishd erst einmal weg.

Das ganze cachen hat noch einen Nachteil. Dafür eine eine kurze Erklärung. Wenn bei mir ein User über eine Suchmachine kommt, bekommt er eine Meldung eingeblendet, die dem User erklärt, woher er kommt und wonach er gesucht hat (kann ja sein, dass er das schon wieder vergessen hat). Also, wenn der User von einer Suchmachine kommt, in dem Moment die Seiten durch die Cache-Software neu generiert wird, dann bekommt der User diese Meldung zu sehen. Aber auch nur dann. Weiter bekommen dann aber auch alle anderen User genau die gleiche Meldung zu sehen, auch wenn diese nicht von der Suchmachine kommen. Und das solange, bis die Gültigkeitsdauer des caches abgelaufen ist.

Oder kurz ausgedrückt: Die Seite ist nicht mehr so dynamisch, wie ich es mir vorstelle!

Ich habe erst einmal den W3 Total Cache nur in einer sehr abgespeckten Konfiguration laufen und lebe gerade mit nur 1,8 Request pro Sekunde. Weiter muss ich sehen, ob ich meine Seite nicht so umbaue, dass ich mit den Nachteilen des Cachings leben kann. Weiter werde ich mir, wenn wieder etwas mehr Zeit da ist, die Möglichkeiten von varnishd genauer ansehen, ob darüber nicht mehr zu machen ist.

18
August
Abgeheftet in: Website | Tags: , , | 11:08 Uhr | 3

Auch Mobil eine schlanke Figur

mobile-puzich.comIch habe meine Webseite mal etwas erweitert. Wer diese nun von mit einem Handybrowser – wie z. B. im iPhone – aufruft, bekommt eine verschlankte Version. Weniger Grafiken, keine Javascript-Auswüchse und alles auf den kleinen Bildschirm angepasst.

Wer Lust hat, testet diese ausführlich und berichtet mir von evtl. aufgetretenen Fehlern. Das gröbste funktioniert aber.

Viel Spass!

11
März
Abgeheftet in: Website | Tags: , | 13:03 Uhr | 5

Suchmaschinenoptimierung von DiWe Media

Ich wundere mich eigentlich selten über etwas, aber ab und zu kommt es sogar bei mir vor.  So geschehen auch mit den in letzter Zeit häufigen Kommentaren, die hier aufschlagen. Viele der Kommentare, seit ungefähr Januar, hatten folgendes gemeinsam:

  1. Die Kommentare bezogen sich nur im weitesten Sinne zu dem Beitrag (eigentlich waren sie kompletter Schwachsinn)
  2. Der Kommentator verlinkte immer zu einer kommerziell aussehenden Seite

Mir wurde das langsam zu viel und so sah ich mir die Webseiten mal etwas genauer an. Hinter all dem steckt die DiWe Media GmbH aus Bad Neuenahr. Diese hat sich – laut eigener Beschreibung – auf Suchmachinenoptimierung spezialisiert. Dies sieht in der Realität so aus, dass sinnlose Kommentare in Weblogs wie meinem abgelassen werden, um den Pagerank bei den Suchmaschinen wie Google & Co nach oben zu pushen. So etwas nennt man Spam und ist einfach eine Sauerei.

So sehen das auch David, Ramón, Christian, Daniel, Mike, Dennis, Marcel genauso.

Ich habe alle Kommentare die auf das oben genannte Schema passten gelöscht oder zumindest den enthaltenen Link  gelöscht. Die ganze Arbeit der fleißigen Blödsinnkommenarschreiber ist nun im Nirvana. Ich hoffe die DiWe Media GmbH unterlässt das schreiben der Kommentare hier und sollte sich im klaren sein, dass man so nur seinem Ruf schaden kann und auf lange Sicht keinen Erfolg erzielt.

9
Februar
Abgeheftet in: Website | Tags: , | 21:02 Uhr | 0

Smarte Archiv Seite

Als ich im Januar 2008 von dem Blog-System Sunlog auf Wordpress umstieg, gefiel mir die Archive-Seite, die Wordpress mitlieferte, überhaupt nicht. Mit dem Plugin Smart Archive von Justin Blaton kam ich aber ungefähr zu dem zurück, was ich vorher hatte.

Was mir aber nie wirklich passte war, dass bei jedem Aufruf der Archiv-Seite weit über 600 Datenbankabfragen gemacht wurden. 50 Datenbankabfragen (auch Queries genannt) durch die sehr ineffektive Programmierung des Plugin. Alle weiteren kommen durch einen zwingenden Aufruf der Wordpress-Funktion get_permalink().

Mir fiel keine andere Lösung ein, als das alles zu cachen. Darum habe ich auch mir auch etwas zusammenprogammiert, was jeder gerne auch nutzen kann, dem es gefällt. Mir ist erst im nachhinein aufgefallen, dass die neue Version von Smart Archive auch Caching behinhaltet. Ich finde meine Version aber smarter ;-) . Smart Archive cached in einer eigenen Textdatei. Bei mir wird nach jedem erstellen eines neuen Artikels das Archiv neu erstellt und als Post direkt in Wordpress gespeichert.

Als erstes muss folgender Code in die Datei function.php in eurem Template kopiert werden.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
// Archive Seite
function my_archive()
{
    // set locale
    setlocale(LC_ALL,'de_DE.UTF-8');
   
    global $wpdb;
    $now = gmdate("Y-m-d H:i:s",(time()+((get_settings('gmt_offset'))*3600)));  // get the current GMT date

    $allPosts = $wpdb->get_results("
        SELECT ID AS id, post_title AS title, post_name AS name, UNIX_TIMESTAMP(post_date) AS date
        FROM $wpdb->posts
        WHERE post_type = 'post'
        AND post_status = 'publish'  
        ORDER BY post_date DESC"
);
   
    $lastdate = '';
   
    foreach ($allPosts as $post) {
   
        if($lastdate != date('Ym', $post->date) ) {
            if(!empty($lastdate)) $archive .= '';
            $archive .= '<h2><a href="' . get_month_link(date('Y', $post->date), date('m', $post->date)) . '">' . strftime('%B %Y', $post->date) . '</a></h2>';
            $archive .= '<ul style="list-style: none;">';
           
            $lastdate = date('Ym', $post->date);
        }
       
        $archive .= '<li><a href="' . get_permalink($post->id) . '">' . $post->title . '</a></li>';
       
    }
    $archive .= '</ul>';
   
    $my_post = array();
    $my_post['ID'] = 171;
    $my_post['post_content'] = $archive;

    // Update the post into the database
    wp_update_post( $my_post );

}
add_action('publish_post', 'my_archive'); // generate archives after a new post

In Zeile 41 muss die Zeile muss die ID (hier 171) durch die ID des Archiv-Posts ersetzt werden. Am einfachsten ist dies herauszufinden, wenn man im Admin-Menu die Archiv Seite editiert. In der Adress-Zeile findest man die ID hinter post= .

Nun muss das Archiv Template in der Datei archives.php angepasst werden. Hierfür wird alles um wp_get_archives() und wp_list_categories() durch folgendes ersetzt:

1
2
3
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
        <?php the_content('<p class="serif">Weiterlesen &raquo;'); ?>
    <?php endwhile; endif; ?>

Damit das Archiv angelegt wird, muss einmal ein Beitrag geschrieben werden.

18
Januar
Abgeheftet in: Website | Tags: , , | 21:01 Uhr | 3

Ich gehe mit der Sonne

Ich bastel ja regelmäßig unregelmäßig an dieser Webseite. Meistens fallen die Änderungen gar nicht direkt auf, obwohl sich einiges getan hat.

Seit heute spiegelt sich der Sonnenauf- und Untergang oben in der Navigationsleitste nieder. Es werden vier verschiedene Bilder – je nach Tageszeit – angezeigt. Dreizig Minuten um den Zeitpunkt des Sonnenauf- und Untergangs wird dieser wiedergespiegelt, sowie wenn Tag oder Nacht ist. Natürlich wird nicht einfach plump zu einer bestimmten Uhrzeit ein Bild angezeigt, sondern es wird vom Standort Hamburg der aktuelle Sonnenstand berechnet, so dass die Bilder im Sommer zu anderen Uhrzeiten erscheinen, als im Winter. Also, diese Bilder sieht man nun hier öfter.

Sonnenuntergang

Sonnenuntergang

Nacht

Nacht

Sonnenaufgang

Sonnenaufgang

Tag

Tag

14
Januar
Abgeheftet in: Website | Tags: , , | 13:01 Uhr | 1

Feed URL Umleitung

Ich wundere mich seit knapp zwei Wochen, warum meine eigenen Beiträge in meinem Feed Reader nicht mehr auftauchen. Heute habe ich dann auch das Problem gefunden.

Ich bin ja Anfang 2008 von Sunlog mit vielen eigenen gestrickten Sachen auf Wordpress umgestiegen. Dadurch änderte sich auf die Feed-URL. Damit nun die paar Leser die ich schon hatte nicht die neue URL in ihren Feed Reader eintragen müssen, habe ich mit dem Wordpress Plugin eine transparente Umleitung von der alten Feed URL auf die neue eingerichtet. Transparent heisst, das es weiter so aussah, dass die alte Feed URL vorhanden ist.

Und aus mir unerklärlichen Gründen funktionierte diese Umleitung seit dem 30.12.2008 nicht mehr. Mir ist dies aber heute erst aufgefallen. Den Fehler habe ich soweit es möglich war behoben. Jetzt sollte auch in allen Feed Readern wieder mein Content ankommen!

31
Dezember
Abgeheftet in: Website | Tags: , | 10:12 Uhr | 0

Platz 171 der Wordpress Plugins

Was man so nicht alles erfährt. Nach dieser Liste, welche nach Anzahl der Downloads sortiert ist, ist mein Lightview Plus Plugin auf Platz 171 aller Wordpress Plugins.

Wer hätte das gedacht…

Hanging Monk