<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PHP hates me - Der PHP Blog &#187; Projektwerkstatt</title>
	<atom:link href="http://www.phphatesme.com/archives/category/projektwerk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phphatesme.com</link>
	<description>PhpHatesMe, but that&#039;s ok!</description>
	<lastBuildDate>Sat, 11 Feb 2012 10:13:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>&#8220;Kunden, die diesen Artikel gekauft haben, kauften auch&#8221; in der Softwareentwicklung</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/kunden-die-diesen-artikel-gekauft-haben-kauften-auch-in-der-softwareentwicklung/</link>
		<comments>http://www.phphatesme.com/blog/softwaretechnik/kunden-die-diesen-artikel-gekauft-haben-kauften-auch-in-der-softwareentwicklung/#comments</comments>
		<pubDate>Fri, 25 Nov 2011 06:00:04 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projektwerkstatt]]></category>
		<category><![CDATA[Qualitätssicherung]]></category>
		<category><![CDATA[Softwaretechnik]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=11303</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Zeit für Ideen. Leider nicht meine, sondern von einem anderen Held. Darüber erfahren hab ich über Sebastian Bergmann. Genug verwirrt? Aber eigentlich sollte die Idee im Mittelpunkt stellen, ich wollte nur mal schnell sagen, dass ich damit kaum was zu tun habe.</p>
<p>Wenn man Sebastian Bergmann hört, dann ist ja schon klar, dass es sich um ein QA- oder QM-Thema handelt und genau das ist es auch. im Prinzip geht es dabei nur um einen Commit-Hook. Ja ich weiß, da gibt es viele, aber was haltet ihr von der Idee, dass er einen darauf hinweist, wenn man vergessen hat eine Datei zu comitten oder sogar sie unzupassen? Hääh? Wie soll denn das gehen? Im Prinzip muss man nur folgende Aussage in den Raum stellen: &#8220;<strong>Wenn sie in der Vergangenheit Datei A comitted haben, dann haben sie auch immer Datei B angefasst.</strong>&#8221;</p>
<p>Finde den Ansatz genial. Er ist simpel und trotzdem scheint es effizient zu sein. So viel ich weiß, hat Sebastian dies sogar mal in PHP implementiert. Leider fehlen mir dazu die Links. Hatte mir nur die Idee gemerkt weil ich sie toll fand.</p>
<p>Ich würde ja gerne mehr darüber erzählen, aber die Idee ist ja schon in dem einen Satz wunderbar erklärt, deswegen wird es heute mal ein wenig kürzer und wir denken uns alle, wie toll es wäre, wenn wir das mal austesten dürften.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/softwaretechnik/kunden-die-diesen-artikel-gekauft-haben-kauften-auch-in-der-softwareentwicklung/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Projektwerkstatt: Rückgängig machen</title>
		<link>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-ruckgangig-machen/</link>
		<comments>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-ruckgangig-machen/#comments</comments>
		<pubDate>Wed, 16 Nov 2011 06:00:18 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[Projektwerkstatt]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=11067</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Rückgängig machen ist eines der meistgenutzten Features der Softwaregeschichte. Ist ja auch toll, wenn man einfach den letzten Schritt als nichtig erklären kann. Wir kennen diese Funktionalität wahrscheinlich erstmal aus dem Textverarbeitungsumfeld. Desktopanwendungen haben es aber so gut wie alle implementiert. Aber wie sieht es mit Webanwendungen aus? Eigentlich gibt es da kaum welche. Ok, so langsam kommt es, aber wenn man im Netz einmal auf ok gedrückt hat, dann hat man die Änderung auch schon persistiert. Ist aber auch nicht schlimm und eigebntlich auch gar nicht das, worauf ich hinaus will.</p>
<p>Es gibt einfach Aktionen, die man nicht rückgängig machen kann, denn sie sind immer mit einer Interaktion mit anderen Verbunden. So ist es zum Beispiel schwer eine E-Mail wieder zurückzunehmen oder einen Tweet doch nicht zu senden. Aber warum ist das so? Naja ganz klar. Eine E-Mail soll sofort nach dem jemand auf den Senden-Knopf gedrückt hat beim Gegenüber ankommen. So ist eben die Natur einer E-Mail. Eigentlich könnte man da aber auch anders denken.<strong> Ob meine Mail in 1 Sekunde ankommt oder in 10 ist mir eigentlich relativ egal</strong>, so wie es den meisten von euch wahrscheinlich auch ist. So das wäre Fakt eins.</p>
<p><strong>Wenn ich eine E-Mail versende, dann fällt mir oft ganz kurz nach Klicken des Senden-Buttons ein, dass ich noch was vergessen habe</strong>. Fakt Zwei. So jetzt kombinieren wir das. Wenn wir eine E-Mail oder einen Tweet versenden wollen, dann klicken wir auf Senden und das System im Hintergrund wartet erstmal pauschal 10 Sekunden, bis es die Aktion ausführt. Und genau in den zehn Sekunden habe ich dann Zeit es rückgängig zu machen. Bei der Kommunikation wird es nicht auffallen, aber ich könnte mir vorstellen, das so mancher glücklich gewesen wäre, wenn er das Feature vorher gehabt hätte. Kann man ja auch an- und ausschalten, dann stört es niemanden.</p>
<p>Ich glaube sogar, es gibt Systeme die schon so arbeiten, aber mir fällt gerade kein Beispiel ein.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-ruckgangig-machen/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Projektwerkstatt: WP Auto-Layout</title>
		<link>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-wp-auto-layout/</link>
		<comments>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-wp-auto-layout/#comments</comments>
		<pubDate>Wed, 09 Nov 2011 06:00:05 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[Projektwerkstatt]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=10905</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Ganz genau, ich will, dass WordPress wie ein Auto aussieht. Also nur vom Layout her. Da es dort aber bestimmt schon sehr sehr viele Themes gibt, muss ich mir vielleicht doch was anders unter dieser Überschrift einfallen lassen. Mal nachdenken &#8230; grübel &#8230; ajaaaa. Nein doch nicht. Weitergrübel &#8230;</p>
<p>Das könnte ich jetzt noch Stunden weiter so machen, einfach nur weil ich es lustig finde und ihr bestimmt trotzdem weiterlesen würdet, weil ihr hofft, dass da vielleicht doch noch was sinnvolles für euch erscheint. Aber wer sagt denn, dass ich nicht auch mal einen Tag einfach nur Nonsens schreiben darf? Ok, ich lass es ja schon.</p>
<p>Heute möchte ich einfach mal wieder eine Idee vorstellen, für ein WordPress-Plugin. Die meisten von euch wissen ja, dass ich für einen &#8220;relativ&#8221; großen Verlag arbeite und natürlich betreuen wir auch Webseiten, 40 an der Zahl. Im Moment sind wir dabei das Frontend ein wenig zu verbessern und dabei bauen einige von uns Templates für die verschiedenen Artikeltypen. Es ist ja wichtig, dass man Leben in die Seite bekommt und dem Leser nicht langweilig wird. Dabei unterscheiden wir aber nur zwischen Bilderstrecken, Artikeln, Quiz und und und, also wirklich anderen Inhaltstypen. Warum wir nur ein Template haben für einen normalen Artikel weiß ich nicht, aber ich finde es schade. Ich kenne einige Webseiten, die sich für besondere Artikel auch besondere Layouts ausdenken und das mag ich. Ich finde das irgendwie liebevoll.</p>
<p>Was ich jetzt gerne für WordPress hätte wäre folgendes. Ich erstelle einige unterschiedliche Templates für meine Artikel. Ein einspaltiges, ein zweispaltiges ein bildlastiges &#8230; ok ich glaube ihr versteht die Idee. Jetzt definieren wir noch wofür die Templates besonders gut geeignet sind. Wenn wir zum Beispiel eine Aufzählung drinnen haben, dann schnappen wir uns das Template Nummer 5, wenn wir mehr als 4 Bilder darstellen müssen, dann ist es am besten mit Template Nummer 3 zu starten. Wir verknüpfen unser Layout also mit definierten Regeln und haben danach &#8220;immer&#8221; die beste Optik für den jeweiligen Artikel.</p>
<p>Leider kann WordPress out-of-the-box nicht mal mit unterschiedlichen Templates für Artikel umgehen. Bei Seiten geht das komischerweise. Das Konzept scheint also schon im System integriert, aber mehr auch nicht. Wenn ich mal viel Zeit habe, dann werde ich mein WordPress so umbauen, dass es das kann und die passende KI wird es auch geben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-wp-auto-layout/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Called Annotations</title>
		<link>http://www.phphatesme.com/blog/projektwerk/called-annotations/</link>
		<comments>http://www.phphatesme.com/blog/projektwerk/called-annotations/#comments</comments>
		<pubDate>Fri, 14 Oct 2011 05:00:48 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projektwerkstatt]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=10653</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Warum hat sich eigentlich niemand beschwert, dass es am Montag und Mittwoch keine Artikel gab? Ihr seid ja echt treue Leser. Aber wahrscheinlich wusstet ihr alle, dass ich auf der PHP Conference in Mainz war und deswegen nicht zum Schreiben kam. Hatte ich nur vergessen anzukündigen. Wer Lust hat, kann sich unseren <a href="http://www.slideshare.net/phphatesme/redaktionelle-hochlastwebseiten-am-beispiel-von-sternde">Vortrag auf Slideshare</a> durchklicken, denn dort haben wir ihn endlich veröffentlicht.</p>
<p>So aber wieder zum Thema <strong>Called Annotations</strong>. Wahrscheinlich habt ihr da noch nie was von gehört. Zumindest ist die Chance nicht groß, denn den Namen habe ich erfunden, aber wie ich finde, beschreibt er ganz gut, was ich da gebastelt habe. Wie immer gilt, ein wenig Code, sagt mehr als tausend Worte, deswegen hier ein paar Zeilen:</p>
<pre>AnnotationHandler::registerAnnotation('deprecated');

AnnotationHandler::registerCallback('deprecated',
                                    AnnotationHandler::HOOK_TYPE_PRE,
                                    function($params){ echo 'PRE'; });

AnnotationHandler::registerCallback('deprecated',
                                    AnnotationHandler::HOOK_TYPE_POST,
                                    function($params){ echo 'POST'; });

$testObject = new Deprecated();
$testObject-&gt;deprecatedFunction();</pre>
<p>Was sollen die paar Zeilen machen? Jedes mal wenn eine Methode mit einer Annotation @deprecated ausgestattet wurde, soll doch bitte vor dem eigentlichen Aufruf dieser mein registrierter Callback ausgeführt werden und danach dann auch noch mal einer. Uns was soll ich sagen, ich hab das einfach mal <a href="https://github.com/phmLabs/CalledAnnotations">programmiert</a>, so dass es funktioniert. Nicht schön, aber das muss ein Proof of Concept ja auch nicht sein. Ich glaube aber der heutige Stand reicht, um ein paar Leute anzufixen und jemanden zu finden, der den Ansatz ein wenig mitverfolgt <a href="https://github.com/phmLabs/CalledAnnotations">Sourcen sind auf gitHub.zu finden</a>.</p>
<p>Wer wissen will, wie ich das Feature umgesetzt habe, der muss sich einfach den Source-Code anschauen. Zumindest bis ich nächste Woche mal die Zeit gefunden haben, die Ideen zusammenzufassen. Das wird dann aber wahrscheinlich auf GitHub passieren.</p>
<p>Die Idee kann man jetzt noch mal ein wenig weiterspinnen. Ich glaube, dass man Asserts und Validierung recht schön so durchführen könnte. Logging ist sicherlich auch ein Kandidat und Event-Handling im allgemeinen auch sehr interessant. So viele Ideen. Also hier noch mal der Aufruf, falls jemand von euch Lust hat mitzumachen, soll er sich bei mir melden und wir bauen da eine schöne sauber implementierte Komponente, die jeder in seinem Projekt nutzen kann.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/projektwerk/called-annotations/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Projektwerkstatt: Meinungsverstärker</title>
		<link>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-meinungsverstarker/</link>
		<comments>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-meinungsverstarker/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 05:00:00 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[Projektmanagement]]></category>
		<category><![CDATA[Projektwerkstatt]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=10627</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Eigentlich sollte dieser Artikel ja mit einem Bild von einem Baseballschläger beginnen, da ich aber leider keins habe und meine Ascii-Art-Künste nicht die besten sind müsst ihr euch jetzt einfach einen vorstellen. Die heute vorgestellte Idee kam mir beim Vortrag von <a href="http://gordon-oheim.biz/">Gordon Oheim</a> auf der Froscon 2011. Gordon hat einen Vortrag zum Thema Singletons gehalten und erklärt, warum sie böse sind. Eigentlich habe ich mich mit dem Thema schon relativ häufig, deswegen war ich überzeugt, dass ich nichts mitnehmen würde aus dieser Stunde. Tja, war ein wenig zu früh das Thema verdonnert.</p>
<p>Erstmal war der Speaker sehr gut und es hat Spaß gemacht ihm zuzuhören und zweitens hat er einen Stil draufgehabt, den ich gerne für eine Webseite adaptieren würde. Was hat Gordon also so besonders gemacht? Er hat mit Zitaten gearbeitet und somit seine Behauptungen unterlegt. Warum ist das gut? Naja in den meisten Firmen ist es so, dass die Meinung von internen Mitarbeitern oft untergeht. Der Prophet zählt nun mal nichts im eigenen Land. Ist schade, aber leider Fakt. Externe Meinungen zählen doppelt und wenn der eingekaufte Berater noch wunderbar teuer ist, dann wird das auch noch mal als &#8220;richtiger&#8221; erachtet.</p>
<p>Wichtig ist also nicht seine Meinung zu vertreten, sondern eine allgemeine, die man auch teilt. Sätze wie &#8220;Kent Beck hat zu dem Thema gesagt&#8221; oder &#8220;Uncle Bob hat das mal ganz schön beschrieben&#8221;, können einen ganz schön viel Nachdruck verleihen. Guru-Ismus klappt halt in vielen Fällen und man macht sich den Effekt zugute, dass externe Meinungen stärker gewichtet werden. Besonders wenn es von Leuten kommt, die man sich eh nicht hätte leisten können.</p>
<p>Jetzt noch ganz schnell die Idee. Ich möchte eine Webseite, auf der zu allgemeinen Softwareentwicklungsthemen Zitate gesammelt werden. So müsste ich zum Beispiel nur schnell Singleton nachschlagen und habe sofort fünf Sätze zu dem Thema, die ich in meiner Argumentationskette verwenden kann. Vielleicht kann man das auch als Unterseite von phphatesme bauen, fehlt nur jemand, der dies pflegt. Aber das könnte auch die Community übernehmen. Ich finde die Idee auf jeden Fall richtig gut.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-meinungsverstarker/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Projektwerkstatt: Facebook Textadventure</title>
		<link>http://www.phphatesme.com/blog/webentwicklung/projektwerkstatt-facebook-textadventure/</link>
		<comments>http://www.phphatesme.com/blog/webentwicklung/projektwerkstatt-facebook-textadventure/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 05:00:40 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[Projektwerkstatt]]></category>
		<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=10483</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Kennt ihr so Tage, an denen man keine Lust auf irgendwas hat? So einen Tag hatte ich natürlich noch nie, denn ich bin ja ein motivierter, dauerbereiter Superinformatiker. Aber wenn ich so einen Tag hätte, dann wäre der wohl heute. Aber ich schreibe einfach mal wieder eine meiner eine Million Euro Ideen auf. Wie immer gilt, wer Zeit hat es umzusetzen, der schreibt mir doch bitte einen Brief mit ganz viel Geld drinnen.</p>
<p>Es gibt so viele Facebookspiele und wenn mir noch mal jemand eine Farm Ville anfrage sendet, bekommt er den Popo versohlt. <em>Warum geht man nicht einfach mal einen Schritt zurück und nutzt die Kommentarfunktion wie eine Kommandozeile</em>?Damit könnte man so schöne Dinge umsetzen, wie zum Beispiel ein Textadventure. Ich glaube da hätte ich wirklich Spaß dran, wenn ich einfach überall so  ein Spiel spielen könnte. Speichern bräuchte ich auch nichts, denn überall finde ich die selben Kommentare. Quizspiele auf diese Art zu machen, wäre auch eine Bereicherung und da mal überall in den Hauptmeldungen auftauchen würde, wäre die Verbreitung sicherlich schnell recht gut.</p>
<p>Aus technischer Sicht könnte man da ein kleines PHP-Framework oder eine Komponente veröffentlichen, die sich um die Facebookanbindung kümmert. Vielleicht könnte man es so gestalten, dass es sich wirklich wie die Kommandozeile anfühlt. Müsste man mal ein wenig drüber nachdenken.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/webentwicklung/projektwerkstatt-facebook-textadventure/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Projektwerkstatt: Facebook Marketing</title>
		<link>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-facebook-marketing/</link>
		<comments>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-facebook-marketing/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 05:00:23 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[Projektwerkstatt]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=10428</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Was macht man, wenn man gerade eine Idee hatte, die echt doof ist und wenn sie ein Erfolg wir von der Menschheit gehasst wird. Natürlich, man bloggt drüber, hofft, dass die Idee jemand umsetzt und dann mit einem Koffer voll Geld irgendwann mal vor der Tür steht und Danke sagt. Bis jetzt hat es noch nie geklingelt.</p>
<p>So jetzt die Idee. Warum baut man nicht mal ein Tool, mit dem man jedem Facebook-Post einen Werbelink anhängt. Also ganz ähnlich Adsense. Man scanned kurz den Post nach dem Thema und hängt ein passendes Produkt als Link an. Was damit verkauft wird geht als Provision an den Poster. Wenn das nur wenige sind und man irgendwie klein ein &#8220;Werbung&#8221; mit drinnen hat, glaube ich, dass man so wirklich viele Klicks generieren kann. Geld verdienen also leicht gemacht. Also zumindest der der das Tool baut. Irgendwie doof, dass ich keine Zeit habe.</p>
<p>Wäre so ein Tool kackefür alle Facebooker? <strong>Auf jeden Fall</strong>. Würde man viel Geld mit verdienen? <strong>Auf jeden Fall</strong>. Ist es das wert gehasst zu werden?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/projektwerk/projektwerkstatt-facebook-marketing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

