Gravatare zwischenspeichern und eingrauen | 30. September 2005 um 22:11 Uhr / Programming

Eingestellt am 30. September 2005 um 22:11 Uhr » Programming

Als ich am monochromen Block Design arbeitete und fast fertig war fiel mir auf, dass Christian auch Gravatare nutzt. Jetzt war alles schön Schwarz - Weiß nur diese Gravatare haben die ganze Stimmung kaputtgemacht indem sie mit krassen Farben aus dem Rahmen fielen. Da musste Abhilfe geschaffen werden. Ich habe Christian gebeten ein Plugin zu schreiben welches die Gravatare on-the-fly in Grau umwandelt. Er hatte aber keine Zeit also blieb es doch an mir hängen, wenn ich das haben wollen würde.

Ich habe das ganze sogar ziemlich schnell hinbekommen, so dass die Bildchen auch schön grau wurden. Als ich so schön beim Testen war teilte man mir mit, dass das ganze ziemlich ressourcenfressend ist, vor allem wenn ein Blog öfter besucht würde, dann zwingt so etwas einen Server ganz schnell in die Knie. Es musste also eine andere Lösung her.

Die Meiste Arbeit machte es die Bildchen Pixel für Pixel von Farbe zu befreien. Wenn das getan war musste man es nur noch ausgeben. Wenn man es also irgendwo auf dem Server abspeichern würde müsste man es nur noch ausgeben falls es noch einmal angefordert wird. Somit war die Idee des Cachings geboren. Die Umsetzung war dann um so schwieriger.

Als erfahrener Programmierer hat dann irgendwann einmal Christian übernommen und das ganze zuende geführt mit richtigem Caching für alle Gravatare. Auch gab es bei meiner Version probleme mit 24-bit PNGs, die nicht so richtig grau werden wollten. Das hat er auch bereinigt.

Leider unterstützt Gravatar.com keine If-Last-Modified header, so dass es einen größeren Workaround bedurfte nicht jedes mal den ganzen Gravatar herunterzuladen.

Die Geschwindigkeit der Ausgabe der Gravatare wurde dadurch um einiges erhöcht, da kein fremder Server mehr kontaktiert werden muss. Ein weiterer Vorteil ist, dass falls Gravatar.com mal wieder ausfallen sollte alle Gravatare aus dem Cache weiter funktionieren und zur Not das default Gravatar angezeigt wird.

Kann ich das auch nutzen?

Ja, natürlich. In der Datei befindet sich auch eine Installationsanleitung auf Englisch aber hier noch einmal auf Deutsch:

  1. Lade diese Datei gravatar-cache-n-gray.php in deinen Browser, speichere sie auf deiner Festplatte (Datei -> Speichern unter) und lade sie mittels eines FTP Programmes auf deinen Server hoch.
  2. In deinem Template oder Gravatar-Plugin musst du jetzt den Bild-URL (also das src im Bildtag)

    von: <img src="http://www.gravatar.com/avatar.php?gravatar_id=[hier gibt es weitere Daten]" />

    zu: <img src="/pfad/zu/gravatar-cache-n-gray.php?gravatar_id=[hier kommt die url-encodete E-Mail Adresse]" />

    Außer gravatar_id wird allerdings nichts übernommen und falls etwas dort steht wird es von den DEFINITIONS überschrieben
  3. Nun musst du noch die DEFINITIONS an deine Bedürfnisse Anpassen

Ihr dürft das Plugin gerne für eure Zwecke nutzen es steht wahlweise unter der BSD, GPL, Artistic Licence, sucht euch einfach die aus die für euer Projekt am besten passt.


Kommentare

Die Kommentare sind für diesen Eintrag geschlossen.