Rubrik: Webtipps

Billabong Pro J-Bay ‘08

Billabong Pro J-Bay

Der Billabong Pro in Jeffreys Bay, South Africa ist Live! Dank der gleichen Zeitzonen könnt ihr euch nen ganzen Tag live surfen geben. Enjoy!

Kommentar hinzufügen 10. Juli 2008

EM 2008 Raportagen

EM 2008

So langsam wird’s ernst mit der EM. Das letzte Spiel hab ich mit Katie im Schlossgarten beim Public Viewing geschaut, das obige Foto ist danach auf der Theo-Heuss-Str. entstanden. Superstimmung, weiter so :)

Unter “mehr” gibt’s die altbewährten Raportagen von Blumentopf. (Update: Portugalspiel is auch drin!)

Kommentar hinzufügen 19. Juni 2008

O’Neill Highland Open 2008

Es ist wieder Zeit für meinen Lieblings WQS Contest! Der Highland Open findet in Thurso, im Hohen Norden Schottlands in eiskaltem Wasser statt und ist eine kleine Herausforderung für alle Teilnehmer.

Link zum Highland Open Teaser bei Youtube.

23. April 2008

Gilles Peterson Worldwide Radioshow

Gilles Peterson Worldwide

Gilles Peterson’s Worldwide Radioshow, wöchentlich auf BBC Radio 1, kann ich nur jedem empfehlen! Feinste Jazz, Funk, Soul, Hiphop, DnB,… Sounds und das ganze perfekt gemischt und angenehm moderiert. Ein riesiges Archiv gibt’s bei Newmixes.com.

17. April 2008


Kurz ein paar Links:

Mein Travelmate Chris ist momentan in Australien unterwegs. See you in Bali :)

Dieter’s gemütliche Surf-WG in Marokko mit dem besten Blick, Wireless Internet, netten Menschen und der Möglichkeit sich an einem Mietwagen zu beteiligen und mit an die besten Spots zu fahren.

Opodo, um Flüge zu suchen. Nicht vergessen nochmal auf der Webseite der jeweiligen Fluggesellschaft nachzuschauen! Meistens geht es dort mit den gleichen Daten noch billiger.

MP3 Player für 10€ von Hama. Plus SD-Karte(n) für 8-10€. Ich bin sehr zufrieden mit dem Teil. Hat sogar einen Tauchgang im Pool durchgehalten. Wenn er geklaut wird, auch fast egal :)

(1)


Quiksilver Premium Bags Linie

Quiksilver Workstation

Quiksilver hat eine neue Taschenlinie. Die Rucksäcke finde ich alle nicht so besonders, auch wenn viele gute Ideen dabei sind.

Der Knaller ist aber eine Laptoptasche (oben abgebildet), die man ausklappen kann und dann gleich sein ganzes Büro vor sich hat. Der Laptop steht auf einer rutschfesten Unterlage, die gleichzeitig sein Aufbewahrungsort ist, den man auch als einzelne Hülle abnehmen kann. Einzig das Mousepad ist für mich auf der falschen Seite.

Hört sich sehr praktisch an, kann mir nur vorstellen, dass das alles ziemlich viel Platz weg nimmt, den man auf Reisen nicht unbedingt hat. Ich bin selbst grad auf der Suche nach einer guten Möglichkeit wie ich meinen Laptop am besten in mein Handgepäck integriere und das dann mit einem großen Kofferrucksack und evtl. einem Doppelboardbag noch angenehm transportieren kann.

11. Juni 2007

Skalierung einer PHP Applikation

Die Kosmonauten, mit denen ich zu Beginn meiner Freelancer-Zeit schon einmal zusammen gearbeitet habe, kontaktierten mich zu Beginn des letzten Wochenendes mit der eiligen Bitte, mir die Performance einer von ihnen entwickelten Partyseite einmal genauer anzuschauen.

Der Grund war, dass die frisch gelaunchte Seite Eraffe.de ab einer Last von 250 Usern die gleichzeitig online waren, extrem langsam wurde bzw. den Server fast komplett lahm legte. Die Seite ist in PHP mit Mysql Anbindung umgesetzt und lief auf Mysql 5.0 und einem Apache 2.2 mit PHP 5.2. Zugrunde lag eine Datenbank mit Daten von ca. 15.000 Usern.

Da sowohl die Entwickler als auch das Team der Community davon ausgingen, dass das Problem mit einer Erweiterung der Server Architektur relativ einfach zu lösen war, waren zum Zeitpunkt meiner Beratung schon neue Server unterwegs. So konnten wir über 4 zusätzliche leistungsstarke Server verfügen, von denen drei als Appserver (Apache 2.2, PHP 5.2) und einer als reiner DB-Server vorgesehen waren.

Meine Arbeit bestand darin, den Entwickler sowie den Serveradmin der Kosmonauten zu beraten und teilweise helfend in die Programmierung einzugreifen. Erste Anhaltspunkte waren die per Skript gemessenen Parsezeiten von einzelnen Programmteilen und die hohe CPU Last die Mysql zog.

Nachdem ich den Code kurz überflogen hatte um mir einen Überblick zu verschaffen begannen wir damit,eine Kopie der Seite auf einen externen Server zu legen. Dieser war noch etwas leistungsschwacher, aber durchaus geeignet um die Anwendung zu Testzwecken darauf laufen zu lassen. Auf dem Liveserver war dies nicht möglich, da sich auch Nachts noch eine größere Anzahl Benutzer darauf befand.

Server Software: Als ersten Schritt wechselten wir von Apache 2.2 auf den weniger speicherintensiven Lighttpd und die neusten Mysql/PHP Versionen sofern noch nicht aktuell. Zudem wurde auf PHP-Ebene Opcode-Caching durch APC aktiviert.

Code Profiling: Um den Flaschenhals im Skript zu finden, nutzten wir zunächst die PHP Extension Xdebug. Xdebug wird einfach auf dem Server installiert und man kann per Profiler genau sehen, wo sich der oder die Flaschenhälse im PHP Teil der Anwendung befinden. Xdebug benötigt auch noch zusätzliche Serverressourcen, deshalb sollte man ihn nicht ständig laufen lassen. Ist aber auch gar nicht nötig, da man innerhalb kürzester Zeit große Datenmengen zum Profiling erhält. Diese Daten können dann mit WinCacheGrind oder KCacheGrind (KDE) analysiert werden und zeigen bis zur letzten ausgeführten Funktion genaue Daten zur Parsezeit und Speicherintensität an.

Query Analyse: Das Profiling ergab, dass sich unser Flaschenhals bei den Mysql Queries befand. Um die langsamen Queries rauszufiltern kann man am Mysql Server das Slow Query Log aktivieren.

Daraus ergab sich, dass bei unserer Anwendung die Queries zur Auslese der sich auf der Seite befindlichen User (das typische Onlineuser Skript) sowie einige Schreibbefehle (sowohl INSERT als auch UPDATE) mit mehreren Datumsfunktionen die langsamsten waren.

Bei fast allen Queries lies sich noch einiges optimieren, dennoch blieb die Anwendung langsam.

Um das zu messen muss man natürlich Lasttests auf der Seite fahren, möglich durch Apache-Benchmark, Siege oder ein Windows-Tool zur Trafficanalyse.

Caching: Das Naheliegendste war nun, eine Form von Caching zu aktivieren. Da im Projekt Smarty eingesetzt wurde, bot sich das Smarty eigene Caching an, erwies sich aber als die schlechtere Lösung. Um die erste Nacht zu überstehen, deaktivierten wir auf dem Liveserver dann die Onlineuser-Anzeige und benutzten dateibasiertes Caching der Mysql Ergebnisse von einigen anderen Funktionen, deren Abfragen sich als langsam erwiesen. Am Ende der Nacht war zumindest die Startseite und einige andere häufig benutzte Funktionen der Seite wieder benutzbar.

Im Endeffekt erwies sich dann das mir bis dato unbekannte memcached als die beste Lösung zum Speichern von aus der DB gelesenen Daten. Im Laufe des Tages bauten wir es in jede Funktion ein, wo dies Sinn machte [ PHP.net/memcache ].

Damit war mein Job so gut wie erledigt, doch ein paar weitere Tipps konnte ich dem Entwicklerteam noch auf den Weg geben:

  • Keine Superklassen, die alles können (und womöglich noch statisch aufgerufen werden) benutzen.
  • Keine Angst vor einzelnen Funktionen. Sie sind schneller als statisch aufgerufene Methoden die bunt in eine Klasse geworfen werden.
  • Programmteile nur unmittelbar an der Stelle an der Sie benötigt werden nachladen (gilt für Klassen, Objekte, Funktionen, Konstanten..).
  • PHP Optimierung (Kommentare durchsehen), Lighttpd Optimierung, Apache Optimierung, Mysql Optimierung ist weiterhin nötig!

Innerhalb von zwei Tagen konnten wir so die Seite auf eine angenehme Geschwindigkeit bringen und die Last auf den Servern deutlich verringern, auch wenn der Code noch nicht optimal ist.

12. Mai 2007

Internet Explorer Developer Toolbar

Die Internet Explorer Developer Toolbar von Microsoft ist fertig.

The Microsoft Internet Explorer Developer Toolbar provides a variety of tools for quickly creating, understanding, and troubleshooting Web pages.

Die Developer Toolbar erlaubt ein ähnliches Debuggen des Quelltextes wie es unter Firefox mit der Firebug Extension möglich ist und funktioniert unter IE 6 sowie IE 7.

11. Mai 2007

Mercedes-Benz Mixed Tape 17

Mercedes Benz Mixed Tape 17
Das Mercedes Benz Mixed Tape Nummero 17 ist online.

2 Kommentare 10. Mai 2007

Firefox Companion für eBay

Mozilla und eBay veröffentlichen den Firefox Companion für eBay. Es handelt sich hierbei um ein Firefox Add-on, keine alleinstehende Firefox Version, wie mancherorts angenommen.
Durch das Add-on ist man ständig bei eBay angemeldet, bekommt Benachrichtigungen wenn sich der Status eines beobachteten Artikels ändert und kann sicher gehen, dass man auf den Original-eBay-Seiten ist und nicht einer Daten pflückenden Phishing-Seite.

Ein Ersatz, der zudem noch das beliebte Snipern (Abgeben von Geboten in letzter Minute um die Auktion sicher zu gewinnen) unterstützt, wäre die Firefox-Erweiterung Biet-O-Zilla.

10. Mai 2007

Ältere Einträge


Kalender

August 2008
M D M D F S S
« Jul    
 123
45678910
11121314151617
18192021222324
25262728293031

Einträge nach Monaten

Einträge nach Rubrik