// der php hacker

// archiv

Zwei Dinge, die mich immer schon an Webapplikationen genervt haben

Geschrieben am 16. Nov 2010 von Cem Derin

Es gab eine Zeit, da war eine Webapplikation nichts weiter als die etwas hübscher aufbereitete Darstellung von Daten die an gewissen wenigen Punkten sogar dynamisch war. Ich erinnere mich da an meine ersten Tage im Internet zurück. Damals war GMX so ein Dienst, wo man kostenlos eine Email-Adresse bekommen hat. Wow. Eine Email-Adresse. Sowas hatte nicht jeder – lag vielleicht auch daran, dass kaum einer (oder zumindest keiner den ich kannte) wusste, was das eigentlich ist. Über eine Weboberfläche konnte man Emails schreiben und lesen. Unglaublich unkomfortabel und hässlich – jedenfalls aus heutigen Gesichtspunkten.
// mehr lesen

Haben Design Pattern versagt?

Geschrieben am 10. Nov 2010 von Cem Derin

Beim morgentlichen stöbern durch die Entwickler-Blog-Welt bin ich auf einen Artikel aus Australien gestoßen, in dem die gewagte These aufgestellt wird: Design Patterns haben versagt. Es wird mit der Einleitung begonnen, dass man selbst so viele Design Pattern wie möglich benennen und erklären soll. Und zwar, bevor man weiterliest. Ein wenig Brimborium, Design Pattern sind ganz nett, aber schlussendlich gibt es ein Problem:

“Design patterns have flopped because most programmers don’t know design patterns well enough to recognise the recurring problems that they solve.”

zu Deutsch: Design Patterns haben versagt, weil die meisten Programmierer sie nicht gut genug kennen um zu verstehen, welche Probleme sie lösen.”

Vor allem in Verbindung mit dem ersten Absatz impliziert diese Aussage, dass man alle Design Pattern auswendig kennen muss, um sie richtig verwenden zu können. Das wird auch noch einmal damit unterstrichen, dass der Autor ganz offensichtlich aus dem Recruiting-Umfeld stammt, und Bewerber regelmäßig Pattern aufsagen oder erklären lässt. Zumindest ersteres wäre auch für mich ein Problem: Ich merke mir Sachen, die ich mir merken muss. Ich muss mir Sachen merken, wenn ich sie täglich Anwende. Ein Pattern wende ich aber nicht an, sondern ich setze das Resultat ein – es sei denn, ich entwickle etwas auf Grundlage von Pattern. Die allermeisten könnte ich aber aus dem Stehgreif erklären.

Ich sehe hier also keine Ambivalenz zwischen der mangelnden Fähigkeit rund 30 Pattern auswendig aufsagen zu können und der Tatsache, dass ich das Konzept dahinter nicht verstehe. Um zur Frage im Titel zurückzukommen: Nein! :)

Geschrieben in Entwicklung, Theorie 8 Kommentare

5 Motivationstipps (nicht nur) für Entwickler

Geschrieben am 09. Nov 2010 von Cem Derin

Wir alle lieben unseren Job. Wir machen ihn gerne, leidenschaftlich und können uns nicht vorstellen etwas anderes zu machen. Trotzdem: Manchmal hat man auch einfach keine Lust, ist frustriert von immer den gleichen Standardaufgaben oder es beschäftigen einen andere Dinge. Manchmal hat man dann die Möglichkeit sein Pensum herunterzuschrauben um sich nicht komplett zu frustrieren – aber oft verhindern Abgabetermine, Parallelprojekte und nicht zuletzt man selbst das. Da auch ich diese Probleme kenne möchte ich ein paar Tipps geben, wie man dem entgegenwirken kann – und vor allem dann, wenn das Kind schon in den Brunnen gefallen ist.
// mehr lesen

Liebe Webdesigner: Sein lassen!

Geschrieben am 05. Nov 2010 von Cem Derin

Wenn ihr Seiten für Leute baut, die Leute mit evtl. Sehproblemen auch lesen können sollen, dann lasst einfach so einen Scheiß wie Flash weg und baut nicht so doofe Knöpfe da rein. Sollte jemand eure Seite wirklich besuchen, dann weiß er schon, wie man mit einem Kommando die Schrift vergrößern kann … wenn das nicht ohnehin schon durch ein User-Stylesheet gelöst wurde! Mensch!

Geschrieben in Allgemein, Theorie 20 Kommentare

Frankenstein spielen: Objektmutation mit PHP

Geschrieben am 14. Mai 2009 von Cem Derin

Wagen wir Heute ein Experiment: Ich möchte eine Instanz einer beliebigen Klasse mutieren lassen. Und zwar so, dass am Ende eine Instanz einer vollkommen anderen Klasse dabei herauskommt – die Daten aber immer noch die selben sind.

Wozu man das brauchen könnte? Nehmen wir einfach mal an, wir verwenden eine Bibliothek. Eine Klasse dieser Bibliothek leiten wir ab und fügen ein oder mehrere Methoden hinzu. Korrespondierende Klassen aus der Bibliothek allerdings geben immer eine Instanz der Ursprungsklasse zurück. Wir müssten nun also alle Methoden in denen das der Fall ist kopieren, und die Ursprungsklasse durch unsere Ableitung ersetzen.


// mehr lesen

Kennst du Entwickler, die besser sind als du?

Geschrieben am 24. Mrz 2009 von Cem Derin

Ich habe einen Artikel gelesen, auf den ich mit mehr als nur einem Twitter-Link eingehen will: Are You The Best Developer You Know? Dustin erklärt dort, dass er sich immer für die Jobs entscheidet, wo er das meiste lernen kann bzw. wo er am meisten gefordert wird. Wie auch ich lernt Dustin beim Arbeiten – also bei der Anwendung einer neuen Technik, einer neuen Bibliothek, eines neuen Frameworks, etc. Bei mir ist es sogar so, dass ich ohne realen Einsatzfall nicht wüsste, was ich überhaupt entwickeln sollte – Jenseits von “Hello, World!”.

Alerdings finde ich die Aussage, dass man sich einen Job suchen sollte, in dem man mit Leuten zu tun hat, von denen man etwas lernen kann ziemlich interessant. So ist es – zumindest in Deutschland – doch eher so, dass die Leute sich Job gerne dannach aussuchen, was sie selbst können um zumindest nicht als derjenige da zu stehen, der am “wenigsten” kann.

Das bedeutet jedoch, dass man sich selbst daran hindert sich zu entwickeln; darüberhinaus läuft man auch Gefahr dem Irrglauben zu unterliegen, dass man das gar nicht mehr nötig habe – immerhin sind die anderen ja noch schlechter. Was dabei rauskommt kann man sich denken: Schlechte Software, schlechte Entwickler. Das wird sich auch nicht mehr ändern, denn tatsächlich gute Entwickler werden kein Interesse haben, diesem Team beizutreten. Alles in allem tritt hier ein Ähnlicher Effekt ein wie beim Anti-Pattern des Programmer Experience Clumping.

Daher mein abschließender Rat: Versucht immer darauf bedacht zu sein, von Kollegen lernen zu können. Das ist nicht nur persönlich fördernd, sondern sorgt auch für eine ganz andere Arbeitsmoral. Darüberhinaus auch ein Aspekt was Selbstmotivation angeht. Aber dazu habe ich Morgen noch einen Artikel für euch parat ;-)

Mein Arbeitsplatz (oder: Dinge die man nicht mehr missen will, Teil 2)

Geschrieben am 22. Mrz 2009 von Cem Derin

Ich möchte heute mal meiner exhibitionistischen Ader freien Lauf lassen, und euch einen Blick auf meinen Arbeitsplatz erlauben. Keine Sorge, ihr werdet hier keine Fotos von meinem Schreibtisch bekommen, auf dem ich mit meiner handvoll Cinemascope-LCDs protze, meine Designerleuchte zur Schau stelle oder meine teuren Gadgets prominent positioniere. Nein, mir gehts es um die inneren Werte: Was nutze ich für Software. Dabei überschneidet sich das, was ich privat bzw. zu Zeiten als freiberuflicher Entwickler einsetzte bzw. einsetze und was beruflich auf den Desktop kommt zum allergrößten Teil. Daheim lege ich ein bisschen mehr Wert auf Open Source (auch wenn ich hier kein Dogmatiker bin). Im beruflichen Alltag kann – und will – man das nicht immer. Wie dem auch sei …


// mehr lesen

Meine Backup-Nemesis

Geschrieben am 18. Mrz 2009 von Cem Derin

Ich gebe es zu: Ich bin eine Backup-Niete. Ich lege Backups immer nur sporadisch, schlampig und hastig an. Und meistens arbeite ich an dieser Strategie nur, wenn ich einmal auf Backups angewiesen war und – Überraschung – keine zur Verfügung hatte. Beruflich ist das kein Problem: Da übernehmen andere Leute die Arbeit für mich. Leute, die Ahnung von dem haben was sie tun – und keine Ahnung von dem was ich tue. Aber privat ist und war das schon immer ein Problem (vor allem in meiner Freelancer-Zeit).

Ich muss allerdings dazu sagen, dass ich mich immer irgendwie aus dem ärgsten rauswinden konnte. Quelltexte hatte ich verstreut zwischengelagert und konnte das meiste innerhalb einer angemessenen Zeitspanne wieder zusammenklauben. Layouts waren irgendwo mal als eMail verschickt worden, wenn auch in früheren Versionen. Und eMail-Korrespondenz hat man durch Weiterleitungen ohnehin auf mehreren IMAP-Servern.

Da ich in vielen Bereichen meines digitalen Lebens ein pedantisches Arschloch bin und auf meinem Desktop mehr Ordnung herrscht als in meiner WG-Stube, meine MP3′s wie meine Platten penibel nach Jahrgang und Genre Sortiert sind, ist mir das Thema Backups immer ein übles Dorn im Auge gewesen und befleckte meine ansonsten blütenweiße Nerdweste. Aus diesem Grund will ich mal meine (laut Feedbruner nicht mehr so kleine) Leserschaft zu rate ziehen, und mir ein paar Best Practices für “Desktop”-Backups abholen. Evtl. gibt es ja auch ein paar Buchempfehlungen o.ä. ;-)

Ich freue mich schon.

Conventions over configuration

Geschrieben am 13. Feb 2009 von Cem Derin

Derzeit lese ich Agile Webdevelopment with Rails. Das Buch ist zwar von 2006, aber mir ging es auch in erster Linie um das Prinzip von Ruby on Rails. Wie dem auch sei, keine Sorge, ich werde jetzt nicht über Ruby berichten oder gar komplett auf Ruby umsteigen (obwohl ich gerne was produktives mit Rails bauen würde, hehe). Es geht mir viel mehr um eines des Kernprinzipien von Ruby on Rails: Conventions over configuration.

Dieses Grundprinzip ist das, was Ruby eigentlich so bekannt gemacht hat. Was dafür gesorgt hat, dass man eine Applikation mit Rails in wenigen Minuten aufbauen kann (Scaffolding) und nur noch der Feinschliff gemacht werden muss. Aber was bedeutet conventions over configuration genau und wie kann man es auf PHP anwenden?


// mehr lesen

Von Foo, Bar und Fnord

Geschrieben am 26. Jan 2009 von Cem Derin


Jeder kennt sie, viele benutzen sie. Aber woher kommen eigentlich Hello World, asdf und 42? Diese Frage möchte ich heute beantworten, auch wenn das nur indirekt mit PHP zu tun hat. Ein bisschen Hintergrundwissen hat noch niemandem geschadet ;-)


// mehr lesen

theme von mir, software von wordpress, grid von 960 grid system. funktioniert in allen browsern, aber der safari bekommt das mit der schrift am schönsten hin.