<?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; MeinPHP</title>
	<atom:link href="http://www.phphatesme.com/archives/category/meinphp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phphatesme.com</link>
	<description>PhpHatesMe, but that&#039;s ok!</description>
	<lastBuildDate>Wed, 08 Sep 2010 15:38:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MeinPHP: Wer baut das fieseste Skript?</title>
		<link>http://www.phphatesme.com/blog/meinphp/meinphp-wer-baut-das-fieseste-skript/</link>
		<comments>http://www.phphatesme.com/blog/meinphp/meinphp-wer-baut-das-fieseste-skript/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 05:00:20 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[MeinPHP]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=3582</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Am letzten Freitag ging was schief mit unseren Blogartikel. Wir hatten ausversehen zwei an einem Tag veröffentlicht und eigentlich machen wir das ja nicht. Aus diesem Grund habe ich diesen Artikel hier auch wieder rausgenommen und auf heute verschoben. Wundert euch also nicht, wenn er euch bekannt vorkommt.</p>
<p>Wir hatten im Dezember ja schon mal eine Folge <a href="http://www.phphatesme.com/blog/allgemein/meinphp-eine-aufgabe-viele-losungen/" target="_self">MeinPHP</a> auf die Leser losgelassen. Bei MeinPHP geht es eigentlich darum eine Aufgabe, die wir stellen möglichst elegant zu lösen und in seinem Forum, Blog oder woanders zu Posten. Ich habe lange überlegt, was man als nächste Herausforderung machen könnte. Und heute kam mir endlich die Idee.</p>
<p><span id="more-3582"></span>PHP ist meine bevorzugte Sprache, wir ihr ja vielleicht wisst, nichtsdestotrotz kann man echt fiese Sachen damit bauen und das schlimmste daran ist, man findet diese fiesen Sachen immer wieder in produktiv eingesetzten Tools. Und warum? Weil man es kann! (Danke Olaf für die Aussage). Aus diesem Grund möchte ich heute einen kleinen Contest ausschreiben. <strong>Wer kann das fieseste Skript basteln?</strong></p>
<p>Meine Theorie ist ja, dass in einem wirklich schrecklichen Programm mindesten ein <code>goto</code>, ein <code>catchable fatal error</code>, ein <code>class_alias</code>, ein <code>$$</code> und vielleicht ein wenig Reflection dabei sein muss. PHP 5.3 hat echt ein paar schöne &#8220;Monster&#8221; mitgebracht, die in den falschen Händen schon ganz schön Schaden anrichten können. Ich selbst werde mich auch daran probieren, habe da auch schon ein paar Ideen.</p>
<p>Anders als beim letzen Mal werden wir keine konkrete Aufgabe aussuchen, seid also kreativ und versucht euch selbst zu schocken. Ich denke mal, dass so zwei Wochen reichen sollten, um was wirklich gemeines zu zaubern. Solange habt ihr also Zeit euch was auszudenken. Wem was eingefallen ist, der kann es mir gerne per E-Mail schicken oder am besten einfach bei sich im Blog zu posten. Nach dem Ablauf der Frist werden wir dann das beste schrecklichste Skript kühren und den Titel &#8220;PHP Teufel&#8221; verleihen.</p>
<p>Oft hilft es übrigens auch sich den eigenen alten Code anzuschauen. Zumindest bei mir. Viel Spaß also mit der Aufgabe, ich werde ihn haben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/meinphp/meinphp-wer-baut-das-fieseste-skript/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>MeinPHP: Typsicheres Set &#8211; Auflösung Teil 3</title>
		<link>http://www.phphatesme.com/blog/meinphp/meinphp-typsicheres-set-auflosung-teil-3/</link>
		<comments>http://www.phphatesme.com/blog/meinphp/meinphp-typsicheres-set-auflosung-teil-3/#comments</comments>
		<pubDate>Sun, 04 Jan 2009 08:15:49 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[MeinPHP]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=1598</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>So einen Dreiteiler zu erstellen ist wirklich anstrengend. Normalerweise kann man ja schreiben, über was man an dem Tag Lust hat, hier aber leider nicht. Wäre aber doof, wenn ich nicht mit der Auflösung weiter machen würde, also los geht&#8217;s!</p>
<p>Im ersten Teil habe ich euch von den <a href="http://www.phphatesme.com/blog/meinphp/meinphp-typsicheres-set-auflosung-teil-1/" target="_self">eingegangenen Lösung</a> berichtet, im zweiten kurz skizziert, wie wir uns die &#8220;<a href="http://www.phphatesme.com/blog/softwaretechnik/meinphp-typsicheres-set-auflosung-teil-2/" target="_self">Musterlösung</a>&#8221; vorstellen. Heute möchte ich die tatsächliche Implementierung zeigen. Da es etwas mehr Code geworden ist, als wir gedacht haben, werde ich unsere Klassen einfach in eine <a href="/contest/typesafeset/loesung.txt" target="_blank">externe Datei</a> packen. Ich werde auch nur auf die relevanten Stellen eingehen, da es sonst zu aufwendig werden würde.<span id="more-1598"></span></p>
<p>Fangen wir also an. Ich hatte mich ja bei den anderen Lösungen &#8220;beschwert&#8221;, dass alle in O(n) ihre Elemente einsortieren. Es verdoppelt sich also der Aufwand, sobald die Anzahl der Elemente sich verdoppelt. Verwendet man einen normalen Array mit den natürlichen Zahlen als Index, dann hat man eben das Problem, dass sie nach der Reihenfolge, wie sie dem Set hinzugefügt wurden in dem Array liegen. Natürlich muss ich so das Array komplett durchgehen, bevor ich mein Element finde. Wenn aber jedem Element ein spezieller Hashwert zugeordnet wird, der die Position im Array definiert, so reduziert sich meine Suche auf ein Feld. Dieser Hashwert wird bei uns über <code>spl_object_hash</code> berechnet, da dieser eindeutig ist und für jedes Objekt bereits existiert. Nutzt man diesen jetzt als Schlüssel im Array, so verringert sich die Komplexität von O(n) auf O(1) . Das gilt natürlich nur, wenn PHP intern Hashmaps verwendet, um den Zugriff auf einen Array zu gewährleisten. <em>Könnte man ganz einfach testen, in dem man schaut auf der Zugriff ein ein Array mit 10 Elementen genau so lange dauert, wie bei 10.000</em>.</p>
<p>Dieses Problem haben wir also beseitigt. Den Rest haben wir sehr ähnlich den anderen Lösungen gemacht, die wir ja bereits auseinander genommen haben. Wir haben is_a verwendet, anstatt über <code>get_class</code> und &#8220;==&#8221; zu vergleichen, haben uns an die Java Collection angelehnt und das &#8220;Separation of Concerns&#8221; Paradigma befolgt, haben mit Interfaces hantiert und einen Dekorierer erstellt, damit wir über Delegation arbeiten können und nicht die Vererbungshierarchie verändern, haben unsere eigenen Exceptions verwendet. Ansonsten sind die Lösungen relativ <em>ähnlich</em>.</p>
<p>Wenn man sich unsere Lösung anschaut, dann mag sie anfänglich ein wenig komplexer wirken, als die anderen. Ich meine wir haben fast 220 Zeilen Code geschrieben. Dafür sind aber die einzelnen Klassen wiederverwendbar und nicht sonderlich komplex. Bei der Entwicklung einer typsicheren Liste z.B. wäre unsere Arbeit relativ schnell getan und er &#8220;Mehraufwand&#8221; hätte sich bereits gelohnt.</p>
<p>Bis jetzt ist die Lösung nur ein Prototyp und wir haben ihn, wenn ich ehrlich bin auch noch nie getestet. Es ging uns ja auch eher um den theoretischen Ansatz. Die lauffähige Version werde ich die nächsten Tage online stellen. Ich wollte es anfangen meine <a href="http://www.phphatesme.com/blog/allgemein/macht-eure-eigene-bibliothek/" target="_blank">Klassenbibliothek</a> mal öffentlich zugänglich zu machen, vielleicht hat ja der ein oder anderen einen nutzen daran.Ach ja, wenn ihr Fragen habt zu unserer Lösung, dann könnt ihr die jeder Zeit hier stellen. Ihr bekommt auch garantiert eine Antwort.</p>
<p>So ich hoffe euch hat diese kleine Herausforderung Spaß gemacht. Mir hat es das auf jeden Fall und aus diesem Grund wird es auch bald einen neuen Contest geben, in dem ihr zeigen könnt, was ihr drauf habt.  An dieser Stelle möchte ich mich auch noch einmal bei unset, Sebastian, Timo, Schwobeseggl, Schaelle und Andy G. bedanken. Ich hoffe ihr seid das nächste mal auch wieder dabei.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/meinphp/meinphp-typsicheres-set-auflosung-teil-3/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>MeinPHP: Typsicheres Set &#8211; Auflösung Teil 2</title>
		<link>http://www.phphatesme.com/blog/softwaretechnik/meinphp-typsicheres-set-auflosung-teil-2/</link>
		<comments>http://www.phphatesme.com/blog/softwaretechnik/meinphp-typsicheres-set-auflosung-teil-2/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 07:00:25 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[MeinPHP]]></category>
		<category><![CDATA[Softwaretechnik]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=1587</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>So Tag 2 der Auflösung (<a href="http://www.phphatesme.com/blog/meinphp/meinphp-typsicheres-set-auflosung-teil-1/" target="_self">Teil 1</a>). Ich hoffe mal, dass ihr euch alle vor Spannung fast nicht mehr halten könnte. Heute will ich kurz die Lösung, die Timo und ich uns ausgedacht habe skizzieren. Vielleicht noch das ein oder andere UML Klassendiagramm und das wars dann auch schon. Wie fangen wir also an. Ein kurzes Resumé. Wir brauchen eine Klasse, die bestimmte Typen halten kann, aber jedes Element nur genau ein mal zulässt. Nicht mehr, nicht weniger.<span id="more-1587"></span></p>
<p>Zu Beginn betrachten wir uns die Hilfsmittel, die PHP uns von Hause aus mitgibt. Wie es ja schon einige von euch gemacht haben, haben wir uns die, unserer Meinung nach, die best passendste Schnittstelle aus der SPL als Grundlage genommen. Dem Iterator Interface. Wichtig war uns, dass wir das Set später ganz einfach durchiterieren können, um so auf alle Elemente zugreifen zu können, die vorhanden sind. Und genau dies macht ein Iterator.</p>
<p>Getreu nach dem Paradigma &#8220;Separation of Concerns&#8221; brauchen wir jetzt noch eine Klasse, die dafür sorgt, das Daten vorgehalten werden können. Wir haben diese Klasse Collection, in Anlehnung an die <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collection.html" target="_blank">Java Klasse</a>,  genannt. Ein schönes Interface drumrum und alles bestens.Wir können jetzt also durchiterieren und Daten sammeln. Wichtig war uns, dass wir die Collection unabhängig vom Set verwenden können.</p>
<p>Im nächsten Schritt wollen wir das Set, eine spezielle Collection kreieren. Dafür leiten wir die Collection ab und verbieten, dass ein Element mehrmals vorkommen kann. Der letzte Schritt, ist die Typsicherheit. Hier haben wir uns für das Decorator Pattern entschieden. Uns war wichtig, dass dieses spezielle Set auch mit anderen Einschränkungen kombiniert werden kann.</p>
<p>Als Klassendiagramm sieht es also wie folgt aus:</p>
<p><img class="alignnone size-full wp-image-1591" title="typesafeset" src="http://www.phphatesme.com/upload/2009/01/typesafeset.png" alt="Type safe Set" /></p>
<p>Dass viele der Methoden einer Collection einen boolschen Wert zurückliefern, liegt an dem Java Interface, an das wir uns gehalten haben. Diese Methoden geben true zurück. sobald sich die Collection durch Aufruf die Collection verändert hat. <code>retainAll</code> erzeugt den Schnitt zweier Mengen. Neben den hier Aufgeführten Klassen gibt es noch drei Exceptions, die wir eingeführt haben.</p>
<p>Wie wir das ganze dann tatsächlich implementiert haben, zeige ich euch morgen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/softwaretechnik/meinphp-typsicheres-set-auflosung-teil-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MeinPHP: Typsicheres Set &#8211; Auflösung Teil 1</title>
		<link>http://www.phphatesme.com/blog/meinphp/meinphp-typsicheres-set-auflosung-teil-1/</link>
		<comments>http://www.phphatesme.com/blog/meinphp/meinphp-typsicheres-set-auflosung-teil-1/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 13:28:02 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[MeinPHP]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=1566</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Heute ist es endlich soweit. Ich will anfangen, die erste <a href="http://www.phphatesme.com/blog/allgemein/meinphp-eine-aufgabe-viele-losungen" target="_self">Aufgabe von &#8220;MeinPHP&#8221;</a> aufzulösen. Naja auflösen ist vielleicht nicht der richtige Ausdruck, da es viele richtige Lösungen gibt und man auf keinen Fall etwas als falsch bezeichnen kann, das funktioniert. Ich will also unsere (Timo und meine) Lösung vorstellen und auf Schwächen eingehen, die wir bei den anderen Lösungen gefunden haben. Das ganze wird in drei Teile unterteilt. Im heutigen Teil werde ich die eingegangenen Lösung zeigen, die Schwachstellen und die guten Ideen ansprechen. Morgen werde ich einen Überblick auf Klassen- und Interfacebene geben und am Tag darauf die tatsächliche Implementierung. Ich muss natürlich dazu sagen, dass unsere Lösung nur subjektiv gut ist, ich denke es hängt immer vom Betrachter ab, ob einem der Stil gefällt, ich erwarte also auch Kritik eurerseits, wenn etwas nicht sauber gelöst ist.<span id="more-1566"></span></p>
<p>Jetzt geht&#8217;s aber los mit der Übersicht über die Lösungen und meinen Kommentaren dazu:</p>
<ul>
<li><a href="http://blog.gjl-network.net/blog/archives/177-Typsicheres-Set-fuer-PHP.html" target="_blank"><strong>Sebastian vom Milchtüten Blog</strong><br />
</a>Ich fange einfach mal mit der Lösung von Sebastian an, weil ich ihn am besten kenne und somit viel besser auf die Fehler eingehen kann, ohne einen Mordanschlag zu befürchten. Gut finde ich hier natürlich, dass er sich an eine bereits existierende Klasse der SPL hält: dem ArrayIterator. Dadurch wird das ganze schön schlank und natürlich auch Fehler unanfälliger. Es gefällt mir auch, dass die Klasse, die das Set halten soll, über den Konstruktor definiert wird. Wo auf jeden Fall ein Problem bei Sebastians Lösung besteht ist der &#8220;falsche&#8221; Umgang der Klassenhierachien. Sobald ich eine Klasse B von Klasse A ableite, so ist die Klasse B auch vom Typ A und halt auch vom Typ B, denn nach außen bietet B alles, das auch A bietet und kann somit gleich behandelt werden. Aus diesem Grund sollte man auch mit der <code>is_a</code> Relation arbeiten und nicht über <code>get_class</code> und dann &#8220;==&#8221;, da man hier die Hierarchien nicht beachtet.<br />
Leider ist es auch nicht sehr performant, bei jedem hinzufügen alle bereits hinzugefügten Elemente durchzuiterieren, um zu prüfen, ob bereits im Set vorhanden ist. <a href="http://de.wikipedia.org/wiki/Landau-Symbole" target="_blank">O(n)</a> ist eher eine schlechte Komplexität, zu Zeiten von Hashtables O(1).</li>
<li><a href="http://phphacker.net/2008/12/20/aufgabe-typesicheres-set/" target="_blank"><strong>unset von PHP Hacker</strong><br />
</a>Bei unset findet man viele der soeben besprochenen Ansätze von Sebastian wieder, auch er hält sich an die SPL und auch er verwendet &#8220;==&#8221; beim Vergleichen der Klassen. Eine Kleinigkeit noch, für die ich wohl einen Klugscheisserpunkt verdient haben werde, denn in einem Prototypen ist dies egal. Und zwar sollte man nie Standard Ausnahmen verwenden. Ich tippe mal drauf, dass beide im Produktivcode eine expliziete Exception genommen hätten, ich wollte es aber trotzdem loswerden.<br />
Was ich beim phphacker noch schön finde, ist, dass er Methoden verwendet, wenn dies möglich ist. Warum aber <code>getType</code> eine öffentliche Methode ist, weiß ich nicht. Ich kann mir eigentlich keinen Anwendungsfall vorstellen, in dem diese Methode verwendet werden kann.<br />
Unset ist leider nicht drauf eingegangen, dass ein Element höchsten einmal im Set sein darf.</li>
<li><a href="http://schwobeseggl.de/2008/12/12/php-hates-me-eine-set-klasse/" target="_blank"><strong>Schwobeseggl</strong><br />
</a>Der erste der sich an das Set herangetraut hat ohne die SPL um Hilfe zu bitte. <em>Muss ja nicht schlecht sein</em>. Wobei ich Matthias doch raten würde ein wenig mehr auf private Methoden zu setzen, denn es macht es dem Leser einfacher durch den Code durchzusteigen. Aber wieder zurück, der Schwobeseggl hat sich dazu entschieden das ganze als Stapelspeicher zu implementieren, was natürlich allen gestellten Anforderungen entspricht. Anders als die anderen übergibt er den &#8220;Typ&#8221; des Sets nicht im Konstruktor, sondern im macht es am ersten Element fest, das dem Set hinzugefügt wird. Ich bevorzuge, die Konstruktor Lösung, da ich zu einem späteren Zeitpunkt nie weiß, welches das erste Element ist. Wenn dieses schon verkehrt ist, so kann ich mir nicht sicher sein, warum ein Fehler auftritt, bzw. welches der Elemente falsch war.<br />
Die Reflection API zu bemühen ist natürlich auch eine nette Idee, aber in unserem Fall hätte auch ein <code>get_class</code> gereicht. Ich denke, dass es über <code>get_class</code> weniger kostet und außerdem ist es nur ein Befehl statt mehrerer. Auch befinden wir uns wieder in O(n) in unserer Komplexität. <a href="http://schwobeseggl.de/2008/12/12/php-hates-me-eine-set-klasse/" target="_blank"><br />
</a>Auch von der Verwendung von <a href="http://de.php.net/manual/de/function.gettype.php" target="_blank"><code>gettype( )</code></a> rät php.net ab, wenn man es dazu verwendet um auf einen bestimmten Typ zu prüfen, da sich die Zeichenkette in späteren Versionen von PHP ändern kann. Ich finde die Lösung vom Schwobeseggl aber auf keinen Fall schlecht, sie macht das was es machen soll.</li>
<li><a href="http://schaelle.de/2008/12/php5-typsicheres-set/" target="_blank"><strong>Schaelle</strong><br />
</a>Auch hier wunderbar gemacht. Einfach an die SPL gehalten und alles Methoden schön kommentiert. Leider kann man hier nur primitive Typen, wie String oder Bool reinpacken. Spannender wird es natürlich bei Objekten. Martin arbeitet bei der Prüfung, ob ein Element im Set enthalten ist aber auch über ein <code>foreach</code>, was wieder zu O(n). Ich mags aber, dass Schaelle klar nach dem Motto &#8220;Separation of Concerns&#8221; arbeitet und ein neues Objekt zur Verfügung stellt, dass ein Set Element representiert.<br />
Die Liste mit den ganzen <code>is_bool( ) || is_string( )...</code> hätte er wohl ein wenig einfacher hinbekommen können über ein <code>!( is_array( ) || is_object( ) )</code>.  Leider verstehe ich nicht, warum er sein Set nur auf primitive Typen beschränkt hat, denn soweit ich das erkennen kann hängt es nur am Hashwert für ein Objekt. Und dafür bringt ja PHP schon Hausmittel mit.<br />
Leider finde ich auch nicht die Stelle, wo er prüft, ob die Typsicherheit gegeben ist, aber ansonsten auf jeden Fall eine nette Lösung.</li>
<li><a href="/contest/typesafeset/set.txt" target="_blank"><strong>Andy G.</strong></a><br />
Andy hat mir seine Lösung per E-Mail zugeschickt. Nett hierbei finde ich, dass Andy alle Grundfunktionalität in eine abstrakte Klasse gepackt hat und dann diverse Klassen abgeleitet. Da schlägt doch das OOP Herz höher. Leider gibt es auch hier keine Implementierung, die es ermöglicht Objekte zur Menge hinzufügen. Die compareTwoValues Methoden sind meiner Meinung nach alle ein wenig umständlich gelöst. Ein <code>return $value1 === $value2;</code> hätte z.B. im <code>intSet</code> völlig ausgereicht.<br />
Ansonsten denke ich, dass auch die Lösung von Andy nicht schlecht ist, nur fände ich es besser, wenn er die ganzen casts weglassen und dafür exceptions werfen würde.</li>
</ul>
<p>So das waren auch schon die fünf Lösungen, die bei mir eingegangen sind. Von Axel, der eine PHP Erweiterung schreiben wollte, habe ich bereits die Absage bekommen, dass er leider keine Zeit finden wird. Auch Lars Jankowfsky tut es Leid.<br />
Ich würde mich übrigens sehr freuen, wenn ihr euch auch die diversen Lösungen mal anschaut und mir eure Meinung dazu sagt. Ansonsten würde ich sagen stelle ich morgen einfach die Lösung von Timo und mir vor.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/meinphp/meinphp-typsicheres-set-auflosung-teil-1/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>MeinPHP &#8211; Eine Aufgabe, viele Lösungen</title>
		<link>http://www.phphatesme.com/blog/allgemein/meinphp-eine-aufgabe-viele-losungen/</link>
		<comments>http://www.phphatesme.com/blog/allgemein/meinphp-eine-aufgabe-viele-losungen/#comments</comments>
		<pubDate>Fri, 12 Dec 2008 07:00:42 +0000</pubDate>
		<dc:creator>Nils Langner</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[MeinPHP]]></category>

		<guid isPermaLink="false">http://www.phphatesme.com/?p=1390</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Heute möchte ich mal wieder einen Versuch starten euch ein wenig mit einzubeziehen und deshalb probieren wir heute was neues. Im Prinzip ist es ganz einfach. Ich gebe eine Problemstellung vor und ihr schickt mir eure Lösungen, <strong>blogt sie</strong>, veröffentlicht sie in Zeitschriften, tragt sie als Gedicht vor. Ihr sehr es gibt hunderte von Möglichkeiten. Am Ende solltet ihr mich aber trotzdem irgendwie informieren, dass ihr das Problem gelöst habt. Nach ca. zwei Wochen werde ich dann hier meine Lösung posten und wir können fröhlich diskutieren, welche denn nun die schönste ist. Dabei werde ich versuchen möglichst von Architektur losgelöste Probleme zu finden.<span id="more-1390"></span></p>
<p>Ich hoffe, dass hier auch Anfänger mitmachen, denn ich denke, dass man in der Lösungsrunde Tipps für seinen Ansatz bekommen und sich vielleicht ein paar Ideen von den „Profis“ abschauen kann.</p>
<p>Hier also die erste Aufgabe:<br />
<strong>Wir benötigen ein typsicheres Set. Ein Set ist eine Menge, in der jedes Element höchstens ein Mal vorkommen kann. </strong></p>
<p>Eigentlich will ich die Aufgabe gar nicht genauer definieren, weil sonst der kreative Spielraum minimiert wird und ich dies nicht vorhabe. Wenn ihr aber Fragen habt, dann könnt ihr die natürlich stellen.</p>
<p>Also ihr Timos, Ralfs, Axels, Damians, Gerds, Franks, Sebastians, Adrians, Max&#8217;, Caros, Steffies, Jans, Peters, Chipmunks, Ewes, Björns, Johannes&#8217;, Stefans, Lars, kbs, &#8230; die ihr hier alle mitlest, nehmt euch die 15 Minuten Zeit, ich zähle auf euch.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phphatesme.com/blog/allgemein/meinphp-eine-aufgabe-viele-losungen/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
