PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for Juni, 2011

Urlaub

with 5 comments

Damit ihr euch nicht wundert wenn in den nächsten 2 Wochen keine neuen Artikel erscheinen: Ich werde heute in den Urlaub nach Norwegen aufbrechen und 2 Wochen internet-abstinent leben.

Aber ihr habt während dieser Zeit mindestens 2 Aufgaben: Macht mit beim Gewinnspiel zum Geburtstag falls ihr noch nicht teilgenommen habt, und postet hier unter diesen Artikel alle interessanten Links innerhalb der nächsten 2 Wochen, die ich dann lesen kann bei meiner Rückkehr, also diesmal eine Art „Crowd-Lesepool“.

Und wenn ihr dann immer noch Langeweile habt schreibt ihr einen kleinen Gastartikel, den ich dann hier veröffentlichen werde, auch wenn es nur 10 Sätze sind, Gedanken, Neuigkeiten, Erklärungen, egal was. Das wäre doch mal was wenn wir hier ein dutzend Gastartikel zusammenbekommen würden! Einfach an  schicken!

Bis die Tage!

Written by Michael Kliewe

Juni 21st, 2011 at 1:49 pm

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

Zwei Jahre PHP Blogging: Ihr werdet beschenkt!

with 342 comments

*tröööt* Zwei Jahre, zwei kurze Jahre, wird dieser Blog gefüllt mit PHP- und anderen Webtechnik-Artikeln, und auch einige Gastautoren haben bereits hier veröffentlicht (es könnten aber gern noch mehr werden!), und dieser Blog wäre nichts ohne euch Leser, die ihr durch Feedback und Ergänzungen zur Diskussion und Wissensbildung beitragt. Deshalb möchte ich mich bei euch bedanken und euch mit einigen Geschenken eindecken.

218 Artikel in 2 Jahren, 2337 Kommentare (bereits spambereinigt), kein schlechter Schnitt, und ich habe viel gelernt von euch, Danke!

21 Firmen stellen insgesamt 192 Geschenke zur Verfügung, und es sind alles großartige Sachen, der Gesamtwert liegt bei ca. 4800 Euro, und einige sind nicht käuflich! Schaut euch die folgende Liste genau an (ihr könnte da auch draufklicken um Details zu erfahren):

——————————————————————————————

1 * International PHP Conference im Herbst 2011 von S&S Media

1 * Dutch PHP Conference 2012 (ohne Tutorial Tag) in Amsterdam von ibuildings

3 * 100 Euro Gutscheine von cloudControl, dem deutschen PHP Platform-as-a-Service Anbieter

3 * Basic Hosting Paket von Orchestra.io, 1 Jahr lang die PHP-Cloud genießen

10 * 29 Dollar Gutschein für PHPFog, ebenfalls ein sehr guter PHP PaaS Anbieter

1 * Zend Studio 8.0 Lizenz von Zend

10 * schwarze YubiKeys von Yubico

5 * Personal Lizenzen einer der folgenden IDEs von JetBrains: PHPStorm, IntelliJ IDEA, RubyMine, PyCharm, ReSharper, WebStorm
5 * Jahresabonement des PHP-Magazin
1 * PHP Design Patterns von O’Reilly
1 * Canvas – kurz & gut von O’Reilly
1 * jQuery – kurz & gut, 2. Aufl. von O’Reilly
1 * Der pragmatische Programmierer von Hanser
1 * Softwarequalität in PHP Projekten von Hanser
1 * Zend Framework im Einsatz von Hanser
1 * PHP Zend Certified Engineer Übungsbuch vom mitp Verlag
1 * Der leidenschaftliche Programmierer von mitp
1 * Web-Sicherheit von mitp
1 * Power-Workshops PHP von Video2Brain
2 * Plug-in-Entwicklung mit jQuery von Entwickler-Press
2 * MongoDB – Sag ja zu NoSQL von Entwickler-Press
2 * Onlinerecht für Webmaster von Entwickler-Press
2 * Websites optimieren für Google&Co von Entwickler-Press
1 * Agile Entwicklungspraktiken mit Scrum von dpunkt
1 * Leitfaden Web-Usability von dpunkt
1 * Die Pomodoro-Technik in der Praxis von dpunkt
1 * Gelungenes Webdesign von dpunkt
1 * Agile Softwareentwicklung von dpunkt
1 * Einstieg in PHP 5.3 und MySQL 5.5 von Galileo Press
1 * Linux Hochverfügbarkeit von Galileo Press
1 * CSS in der Praxis von Galileo Press
2 * vServer L für 6 Monate kostenlos von 1blu
2 * eco Server für 6 Monate kostenlos von 1blu
3 * Zeitmanagement für Webentwickler von Terrashop

5 * 2 Planning Poker Sets von Holisticon

2 * 5 Planning Poker Sets von agile42

100 * vServer Beta-Accounts Gutscheine von EUserv

——————————————————————————————

Na, ist das eine Liste? Und das ist alles FÜR EUCH! Ich hatte mir erst überlegt noch eine extra kleine Webseite zu bauen für die Verlosung, aus Zeitmangel ist sie aber nicht fertig geworden.

Doch die Verlosung wäre nicht möglich gewesen ohne die zahlreichen Unterstützer, DENEN ICH ALLEN GANZ HERLICH DANKEN MÖCHTE!! Ich würde mich freuen wenn ihr die ein oder andere Webseite besuchen würdet und dort immer schön fleißig einkauft und Dienstleistungen nutzt, so viele Geschenke zu bekommen ist wirklich toll und sollte belohnt werden!

Ihr müßt 2 Dinge tun um bei der Verlosung mitzumachen: Besucht mindestens 3 Links aus der Liste oben, und danach hinterlasst ihr einem Kommentar hier im Blog, JEDER NUR EINMAL TEILNEHMEN, und dann werden all diese schönen Geschenke verlost. Ihr habt Zeit bis zum 04.07.2011, dann wird die riesige Lostrommel gerührt! Also, spread the word, twittert, bloggt, sagt es allen weiter, dieser Tag ist ein toller Tag! Ihr macht diesen Blog zu dem was er ist! Danke.

Written by Michael Kliewe

Juni 10th, 2011 at 11:02 am

Slides der php|tek 11

with one comment

Die PHP Konferenz Saison ist in vollem Gange, und auch dieses Jahr fand wieder die php|tek statt, in der 11. Auflage kamen vom 24. bis 27. Mai 2011 viele PHP Interessierte in Chicago zusammen.

Das Programm inklusive Links zu den Slides:

24. Mai 2011

Mobile for PHP Developers
Ivo Jansch

Writing and Using PHP Streams and Sockets
Elizabeth Marie Smith

Zend Framework Tutorial
Rob Allen

Design Patterns
Jason E. Sweat

Optimizing MySQL Essentials
Ligaya Turmelle

NoSQL: Why, How and When
Benjamin Young

25. Mai 2011

Weiterlesen »

Written by Michael Kliewe

Juni 8th, 2011 at 9:43 am

Posted in PHP

Tagged with , , ,

Das Y2K38 Problem

with 18 comments

Wer viel mit Terminen und Datumsangaben arbeitet kennt das Problem vielleicht, aber häufig fällt uns das Problem jetzt noch nicht auf, und in einigen Jahren werden wir dann Probleme bekommen.

Es geht um den Unix Timestamp, also die Anzahl der Sekunden seit 1970. In PHP arbeiten Funktionen wie time() und strtotime() mit diesem Timestamp, aktuell heute liegt diese Zahl bei ca. 1,3 Milliarden (1307428397). Wenn wir nun mit Geburtsdaten arbeiten und jemand hat vor 1970 Geburtstag, dann können wir bekannterweise nicht den Timestamp nutzen. Aber es gibt auch eine obere Grenze, und kaum jemand weiß wo diese liegt. PHP arbeitet im 32-bit-Modus mit 4-Byte signed Integers, also vorzeichenbehaftete Zahlen zwischen -2.147.483.647 und 2.147.483.647, aktuell sind wir mit 1,3 Milliarden bereits über die Hälfte vorangeschritten. Exakt am 19.01.2038 um 03:14:07 werden wir einen Überlauf haben, der Timestamp wird also von 2.147.483.647 auf -2.147.483.647 umspringen, und negative Timestamps bedeuten immer 01.01.1970.

Mit einem Zweizeiler können wir zeigen dass wir bei Timestamps größer 2038 ein Problem bekommen:

<?
$date = strtotime('2037-02-01');
echo date('d.m.Y H:i', $date);

Die Ausgabe in diesem Fall lautet 01.02.2037 00:00.

<?
$date = strtotime('2039-02-01');
echo date('d.m.Y H:i', $date);

Hier haben wir das Maximum überschritten, es wird ausgegeben: 01.01.1970 01:00.

Aber nicht nur PHP hat Probleme damit, sehr viele Programmiersprachen, Programme und Betriebssysteme sind betroffen. Und da wir alle wissen wie lang einige Programme laufen werden (na, wer muss noch mit alten Cobol-Programmen arbeiten, oder Intranetseiten von 1995 nutzen?), oder man Termine für die Zukunft plant, sollte man schon jetzt mit dem Problem vertraut sein, um nicht schwer zu findende Bugs zu produzieren.

Es gibt mehrere Lösungen um das Problem zu umgehen. Entweder man arbeitet mit 64-bit Systemen und Software, die 8-Byte signed Integers nutzen, um damit das Problem effektiv zu beseitigen. Eine zweite Möglichkeit ist die Zeit in einem String zu speichern, also einfach „2045-05-27“ speichern und dann mit Hilfe der  DateTime Klassen diesen String umwandeln und mit ihm rechnen:

$date = new DateTime('2045-05-27');
echo $date->format('d.m.Y H:i');

Gibt aus: 27.05.2045 00:00.

Also kurz drüber nachdenken wenn ihr das nächste Mal Unix Timestamps nutzt die in der Vergangenheit oder der Zukunft liegen, oder falls euer Programm evtl. auch noch in 27 Jahren laufen wird.

Written by Michael Kliewe

Juni 7th, 2011 at 9:09 am

Posted in PHP

Tagged with , , ,