PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Search Results

SPDY Beta-Patch für nginx verfügbar: Ein erster Test

with 12 comments

Endlich ist es soweit, mein favorisierter Webserver nginx erhält SPDY Support. Für Apache gibt es schon seit längerem ein SPDY-Modul das seit einigen Wochen als stabil gekennzeichnet ist. SPDY wird wahrscheinlich das neue HTTP 2.0, von Google entwickelt bietet es einige neue Features die das Web schneller und sicherer machen sollen. Unter anderem wird alles komprimiert (auch die Header), SSL ist zwingend vorgeschrieben und mittels Multiplexing können alle Resourcen über eine TCP-Verbindung geladen werden, und noch einiges mehr. Wer mehr über SPDY wissen will schaue sich am besten das Video von Google über SPDY an, es ist sehr empfehlenswert!

Read the rest of this entry »

Written by Michael Kliewe

Juni 16th, 2012 at 10:08 am

Posted in Server-Software

Tagged with , , , , , ,

Velocity Europe Tag 2: Whao!

without comments

Speeeed! Genauso wie der letzte Tag geendet hat beginnt der zweite.

Steve und John eröffnen den zweiten Tag mit einer kurzen Opening Keynote, gefolgt von Jeff Veen der von den Problemen berichtet als Typekit einige Tage vor Weihnachten vom Erfolg überrollt wurde, und wie innerhalb eines Wochenendes das Problem kurzerhand gelöst werden musste und auch wurde. Das Grundproblem waren die vielen Kits die nicht zeitnah in das CDN gebracht werden konnten, und sich so eine massive Queue aufgebaut hatte. Ich mag solche praxisnahen Einsichten sehr. Eine These bzw. Grundsatz der Kultur der Firma: IRC über E-Mail. Im IRC kann man kurze Fragen und Antworten schreiben wie „no“. In E-Mails haben wir irgendwie den Zwang, formal zu schreiben und viele Sätze zu bilden. Das bläht schnelle interne Kommunikation unnötig auf.

Read the rest of this entry »

Written by Michael Kliewe

November 11th, 2011 at 12:57 pm

Mehrere Scripte via Cronjob parallel aufrufen

with 15 comments

Heute ein kleines Problemchen mit Cronjobs und Parallelität. Normalerweise empfehle ich Gearman wenn es darum geht, mehrere Scripte im Hintergrund laufen zu lassen, aber nehmen wir an dass wir es mit normalen Cronjobs ohne Gearman lösen wollen.

Wir haben also das Script work.php. Wir möchten alle 5 Minuten die Datenbank prüfen ob es Arbeit gibt, und wenn dem so ist, dann soll die Arbeit erledigt werden. Das geht relativ einfach mit einem Cronjob

*/5 * * * * /usr/bin/php /data/work.php

und in der work.php findet dann die Datenbankabfrage statt. Wenn X Ergebnisse in der Datenbank gefunden werden, wird eine Schleife X mal durchlaufen um alles abzuarbeiten. So weit so gut.

Nun sei die eigentliche Arbeit aber relativ zeitaufwändig, sodass ein Schleifendurchlauf 2 Minuten dauert, und bei 5 Aufträgen dauert es also 10 Minuten (wir arbeiten ja seriell in einer Schleife), der Aufruf von work.php überlappt und wir bekommen ein Problem. Angenommen die Aufgabe ist parallelisierbar, d.h. wenn man alle 5 Aufgaben zeitgleich starten würde gäbe es keine Probleme, und die ganze Arbeit wäre nach 2 Minuten erledigt. Wir könnte man soetwas einfach realisieren?

Read the rest of this entry »

Written by Michael Kliewe

Juli 19th, 2011 at 9:25 am

Posted in PHP

Tagged with , ,

Schöner hashen mit bcrypt

with 93 comments

Gastartikel von Oliver Sperke.

Ich bin 34 Jahre alt und seit 10 Jahren selbständiger Webentwickler. Mein Fokus liegt dabei auf der Erstellung, Beratung und Optimierung in den Bereichen High Performance, Usability und Sicherheit in den gängisten Internetsprachen: PHP, HTML, Javascript und CSS.

Bei meinem vorherigem Gastbeitrag wurde ich direkt im ersten Kommentar aus meiner heilen Welt geworfen. Dort stand nämlich folgender „erschütternder Kommentar“ zu lesen:

Das du Salting und Mehrfachhashing predigst, während der Rest der Welt schon einen Schritt weiter zu bcrypt geht… Traurig.

Nun ja, dazu möchte ich drei Dinge sagen.

  1. Ich predige nicht (Ausnahme: „Es heißt Standard, verdammt, nicht Standart!“).
  2. Ach, wenn die Welt schon mal auf dem Stand des einfachen md5 wäre …
  3. Bcrypt verdient einen eigenen Beitrag.

Natürlich hatte der Autor völlig recht. Über Hashfunktionen im Web zu schreiben und bcrypt nicht zu erwähnen ist fast schon schändlich. Also bcrypt ist eine Hashfunktion, die auf Langsamkeit optimiert wurde. Um genauer zu sein, es ist nicht mal ein richtiger Hashalgorithmus, sondern eine Blowfish Verschlüsselung, bei der am Ende „die Schlüssel weggeworfen werden“, daher lässt sich das Ergebnis nicht mehr entschlüsseln. bcrypt ist eine Weiterentwicklung der „Traditional DES Scheme“ Funktion aus der Unixwelt. Obwohl dieses Verfahren 30 Jahre lang (!) gute Dienste geleistet hat, stellen sich so langsam „Alterserscheinungen“ ein. Der Zahn der Zeit nagt auch hier in Form von gestiegener Rechenleistung.

Kurze Rückschau

Read the rest of this entry »

Written by Oliver

Juli 18th, 2011 at 8:56 am

Posted in Linux,PHP

Tagged with , , , ,

Transparenz erhöhen bei einem Webprojekt

with 19 comments

Ich habe eine interessante Anfrage erhalten, und ich bin mir nicht ganz sicher wie man das Problem am besten lösen kann. Vielleicht könnt ihr ja einige Tipps geben, was man da machen kann.

Die Situation ist folgende: Der Auftraggeber hat ein Webseitenprojekt in Auftrag gegeben bei einer Internetagentur, aus Mangel an Wissen über IT-Projekte wurde der Vertrag nicht besonders straff gestaltet, viele Dinge wurden nicht spezifiziert, der Hauptgegenstand war ein Click-Dummy und einige kleine Listen mit Dingen, die umgesetzt werden sollen. Es wurde ebenso kein Zeitplan/Meilensteine festgelegt, mündlich wurden Versprechungen wie „Ende April ist es fertig“ gemacht. Nun ist es Mitte Juni, die öffentlich sichtbare Webseite ist unter einer Testdomain ansehbar (ca. 15 Seiten mit 2-3 Formularen und etwas Javascript). Der HTML/CSS/Javascript-Code sieht soweit gut aus. Mehr kann man allerdings noch nicht sehen.

Zum Projekt gehört auch ein „eingeloggter Bereich“ sowie eine Anbindung an einen Zahlungsdienstleister und an ein Transportunternehmen, und die Internetagentur hält den Auftraggeber nun seit mehreren Wochen hin, dass der Rest der Webseite nun noch nicht fertig ist da die Schnittstellen noch nicht fertig sind. Da nichts im Vertrag festgelegt ist gibt es Aussagen der Internetagentur wie „Da hätten Sie sich drum kümmern müssen dass die Schnittstelle bei den Dienstleistern eingerichtet wird“, und es wird versucht, Geld nachzufordern. Die Spannung und der Ärger steigt also langsam an.

Und nun die Frage: Was kann der Auftraggeber machen, um die Webseite nun endlich fertig zu bekommen, bzw. erstmal herauszufinden, wie weit denn nun der Fortschritt ist? Hätte die Internetagentur auch zum eigenen Schutz auf mehr Details und einen strafferen Vertrag bestehen müssen? Kann man nachträglich noch einen verbindlichen Zeitplan festlegen? Kann der Auftraggeber nun irgendwie Transparenz erhalten und Zwischenergebnisse der Schnittstellen und des Admin-Bereichs fordern, oder hat er nur ein Recht auf das Endergebnis, das „irgendwann geliefert wird“? Was würdet ihr tun?

Written by Michael Kliewe

Juni 19th, 2011 at 6:30 pm

Posted in Allgemein