<?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>Twick.it-Blog &#187; PHP</title>
	<atom:link href="http://twick.it/blog/de/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://twick.it/blog/de</link>
	<description>Twick.it-Blog</description>
	<lastBuildDate>Wed, 29 Feb 2012 10:36:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Nerds only! Neuigkeiten von der Twick.it-API</title>
		<link>http://twick.it/blog/de/nerds-only-neuigkeiten-von-der-twick-it-api/</link>
		<comments>http://twick.it/blog/de/nerds-only-neuigkeiten-von-der-twick-it-api/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 13:51:25 +0000</pubDate>
		<dc:creator>Markus Möller</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Geokodierung]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programmierschnittstelle]]></category>
		<category><![CDATA[Wrapper]]></category>

		<guid isPermaLink="false">http://twick.it/blog/de/?p=1960</guid>
		<description><![CDATA[Achtung! Das Thema dieses Blog-Artikels ist technisch. Sehr technisch. Wenn du mit Programmierung nichts am Hut hast, dann kannst du diesen Beitrag überspringen. Ausnahmsweise. Ab ins Freibad! OK, Kollegen, nun sind wir also unter uns. Als Programmierer kennst du ja sicherlich schon unsere . Mit dieser offenen Programmierschnittstelle ist es möglich, auf die Daten der [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Achtung! Das Thema dieses Blog-Artikels ist technisch. Sehr technisch. Wenn du mit Programmierung nichts am Hut hast, dann kannst du diesen Beitrag überspringen. Ausnahmsweise. Ab ins Freibad!</strong></p>
<p>OK, Kollegen, nun sind wir also unter uns. Als Programmierer kennst du ja sicherlich schon unsere <a href='http://twick.it/de/API' target='_self' rel='glossary' title='Schnittstelle, die von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird' class='wp_twickit_link' id='dummy0.27519100 1337657649444'>API</a><script type="text/javascript">wpTwickitLinkInit("dummy0.27519100 1337657649444", "<a href='http://twick.it/de/API' target='_self' class='twick'>API</a><br />Schnittstelle, die von einem Softwaresystem anderen Programmen zur Anbindung an das System zur Verfügung gestellt wird<br />");</script>. Mit dieser <a title="Doku: Erklärungen über die API" href="http://twick.it/blog/de/fur-entwickler/api/" target="_blank">offenen Programmierschnittstelle</a> ist es möglich, auf die Daten der Erklärmaschine zuzugreifen und selbst Applikationen zu schreiben.</p>
<p>Nun gibt es gleich zwei Neuigkeiten. Erstens experimentieren wir gerade mit der Geokodierung von Twicks und möchten diese Funktion gerne über die API freigeben und zweitens können PHP-Programmierer nun Wrapper-Klassen nutzen, um uns noch einfacher anzuzapfen.<br />
<a name="geo"></a><br />
<h2>Geokodierung</h2>
<p>Seit kurzem werden die Themen bei Twick.it mit Geokoordinaten (Längen- und Breitengrad) versehen. Diese Funktion befindet sich zwar noch in einem frühen Beta-Stadium, aber ihr könnt trotzdem schon drauf zugreifen. Die Rückgaben der Funktions-Aufrufe liefern dazu sowohl im <a href='http://twick.it/de/XML' target='_self' rel='glossary' title='Auszeichnungssprache zum Austausch und zur Darstellung strukturierter Datensätze in Form von Textdaten. Plattformunabhängiger Standard.' class='wp_twickit_link' id='dummy0.48005100 1337657649452'>XML</a><script type="text/javascript">wpTwickitLinkInit("dummy0.48005100 1337657649452", "<a href='http://twick.it/de/XML' target='_self' class='twick'>XML</a><br />Auszeichnungssprache zum Austausch und zur Darstellung strukturierter Datensätze in Form von Textdaten. Plattformunabhängiger Standard.<br />");</script>- als auch im <a href='http://twick.it/de/JSON' target='_self' rel='glossary' title='Schlankes Datenaustauschformat von Douglas Crockford basierend auf JavaScript. Kann Name-Wert-Paare oder Liste von Werten enthalten.' class='wp_twickit_link' id='dummy0.68778000 1337657649912'>JSON</a><script type="text/javascript">wpTwickitLinkInit("dummy0.68778000 1337657649912", "<a href='http://twick.it/de/JSON' target='_self' class='twick'>JSON</a><br />Schlankes Datenaustauschformat von Douglas Crockford basierend auf JavaScript. Kann Name-Wert-Paare oder Liste von Werten enthalten.<br />");</script>-Format einen Geo-Block, der Längen- und Breitengrad als Bogenmaß angibt.</p>
<p>Auch eine neue Funktion <a title="API-Dokumentation der Funktion" href="http://twick.it/blog/de/fur-entwickler/api/find_topics_nearby/">find_topics_nearby</a> gibt es. Der Sinn dieser Funktion ist schnell erklärt: Ihr übergebt dem Aufruf eure eigene Position und bekommt Themen, die sich in der Nähe befinden. Einzelheiten und ein Beispiel findet ihr wie immer in der <a title="API-Dokumentation der Funktion" href="http://twick.it/blog/de/fur-entwickler/api/find_topics_nearby/" target="_blank">API-Dokumentation</a>.<span id="more-1960"></span><br />
<a name="php"></a><br />
<h2>PHP-Wrapper</h2>
<p>Wenn ihr mit <a href='http://twick.it/de/PHP' target='_self' rel='glossary' title='Skriptsprache, die hauptsächlich zur Erstellung von dynamischen Webseiten oder Webanwendungen verwendet wird. PHP ist Open-Source-Software.' class='wp_twickit_link' id='dummy0.89963600 1337657649776'>PHP</a><script type="text/javascript">wpTwickitLinkInit("dummy0.89963600 1337657649776", "<a href='http://twick.it/de/PHP' target='_self' class='twick'>PHP</a><br />Skriptsprache, die hauptsächlich zur Erstellung von dynamischen Webseiten oder Webanwendungen verwendet wird. PHP ist Open-Source-Software.<br />");</script> auf die Twick.it-Schnittstelle zugreifen wollt, könnt ihr euch das Leben jetzt noch einfacher machen. Wir haben einige Wrapper-Klassen geschrieben, die dafür sorgen, dass ihr euch nicht mehr mit dem ganzen <a href='http://twick.it/de/REST' target='_self' rel='glossary' title='Basiert auf zustandslosem Client/Server-Protokoll, bei dem jede Ressource über eigene URI mittels HTTP-Verben angesprochen wird.' class='wp_twickit_link' id='dummy0.15954100 133765765020'>REST</a><script type="text/javascript">wpTwickitLinkInit("dummy0.15954100 133765765020", "<a href='http://twick.it/de/REST' target='_self' class='twick'>REST</a><br />Basiert auf zustandslosem Client/Server-Protokoll, bei dem jede Ressource über eigene URI mittels HTTP-Verben angesprochen wird.<br />");</script>-Zeugs (http-Request senden und XML parsen) herumschlagen müsst. Stattdessen gibt es eine PHP-Klasse, die die Twick.it-Funktionen als statische Methoden zur Verfügung stellt. Die Rückgabe erfolgt schön strukturiert in Form spezieller Twick.it-Klassen.</p>
<p>Natürlich ist der PHP-Wrapper kostenlos und steht unter der BSD Licence. Kurz gesagt: Ihr dürft damit machen, was ihr wollt. Zu finden ist diese PHP-Zauberkiste bei Sourceforge unter <a href="https://sourceforge.net/projects/twickitapiphp/">https://sourceforge.net/projects/twickitapiphp/</a></p>
<p>Als Alternative sei auch noch einmal die<a title="PHP-Klasse von Sascha" href="http://somegas.de/wordpress/projekte/twick-it-api-php-class/" target="_blank" rel="nofollow"> PHP-Klasse von Sascha Ohms</a> genannt. Die das Ergebnis als XML liefert.</p>
<h2>Immer Up-to-date</h2>
<p>Vielleicht werden solche Wrapper auch für weitere Programmiersprachen (Java, Ruby on Rails, Perl, .NET, etc.) folgen. Über Erweiterungen oder Änderungen an der API informieren wir immer als erstes über den extra dafür angelegten <a title="Twitter-Account der Twick.it-API öffnen" href="https://twitter.com/twickit_api">Twitter-Account @twickit_api</a>. Selbst wenn du selbst kein Twitter nutzt kannst du dort Updates per RSS abonnieren.</p>
<p>So, jetzt hast du zwei Möglichkeiten: Entweder selbst ein cooles Mashup programmieren oder ab ins Freibad! Die anderen warten schon.</p>
]]></content:encoded>
			<wfw:commentRss>http://twick.it/blog/de/nerds-only-neuigkeiten-von-der-twick-it-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Backstage – Ein Blick hinter die Technik-Kulissen</title>
		<link>http://twick.it/blog/de/technik/</link>
		<comments>http://twick.it/blog/de/technik/#comments</comments>
		<pubDate>Mon, 03 May 2010 06:42:24 +0000</pubDate>
		<dc:creator>Markus Möller</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technik]]></category>

		<guid isPermaLink="false">http://twick.it/blog/de/?p=1437</guid>
		<description><![CDATA[In letzter Zeit wurde ich des öfteren nach der Technik gefragt, die Twick.it zugrunde liegt. Geduldig gebe ich dann immer wieder die selben erstaunlich unspektakuläre Antworten. Und heute gibt es die sogar schriftlich. Programmiersprache Die Erklärmaschine wurde und wird in programmiert. Spezielle Framework kommen dabei nicht zum Einsatz. Um die Zugriffe auf die Datenbank zu [...]]]></description>
			<content:encoded><![CDATA[<p><strong>In letzter Zeit wurde ich des öfteren nach der Technik gefragt, die Twick.it zugrunde liegt. Geduldig gebe ich dann immer wieder die selben erstaunlich unspektakuläre Antworten. Und heute gibt es die sogar schriftlich.</strong></p>
<h1>Programmiersprache</h1>
<p>Die Erklärmaschine wurde und wird in <a href='http://twick.it/de/PHP' target='_self' rel='glossary' title='Skriptsprache, die hauptsächlich zur Erstellung von dynamischen Webseiten oder Webanwendungen verwendet wird. PHP ist Open-Source-Software.' class='wp_twickit_link' id='dummy0.52582100 1337657650289'>PHP</a><script type="text/javascript">wpTwickitLinkInit("dummy0.52582100 1337657650289", "<a href='http://twick.it/de/PHP' target='_self' class='twick'>PHP</a><br />Skriptsprache, die hauptsächlich zur Erstellung von dynamischen Webseiten oder Webanwendungen verwendet wird. PHP ist Open-Source-Software.<br />");</script> programmiert. Spezielle Framework kommen dabei nicht zum Einsatz. Um die Zugriffe auf die Datenbank zu abstrahieren, habe ich ein eigenes Persistenz-Framework geschrieben, das mir die Objekte direkt so zurückliefert, wie ich sie gerne hätte. Neuerdings befindet sich auf dieser Ebene auch ein Caching-Mechanismus.</p>
<p>Der Blog wurde mit der Blog-Software <a href='http://twick.it/de/WordPress' target='_self' rel='glossary' title='Kostenlose Open Source Software zur Erstellung und Verwaltung von Blogs. Realisiert mit PHP und MySQL. Plugins erweitern die Funktionalität.' class='wp_twickit_link' id='dummy0.94930800 1337657650827'>Wordpress</a><script type="text/javascript">wpTwickitLinkInit("dummy0.94930800 1337657650827", "<a href='http://twick.it/de/WordPress' target='_self' class='twick'>WordPress</a><br />Kostenlose Open Source Software zur Erstellung und Verwaltung von Blogs. Realisiert mit PHP und MySQL. Plugins erweitern die Funktionalität.<br />");</script>  und einem selbst erstellten Template realisiert.</p>
<h1>Datenbank</h1>
<p>Als Datenbank muss eine <a href='http://twick.it/de/MySQL' target='_self' rel='glossary' title='Relationales Datenbanksystem, verfügbar als Opensource und kommerzielle Version. Sehr beliebt bei Web-Anwendungen und in Verbindung mit PHP.' class='wp_twickit_link' id='dummy0.37855900 133765765157'>MySQL</a><script type="text/javascript">wpTwickitLinkInit("dummy0.37855900 133765765157", "<a href='http://twick.it/de/MySQL' target='_self' class='twick'>MySQL</a><br />Relationales Datenbanksystem, verfügbar als Opensource und kommerzielle Version. Sehr beliebt bei Web-Anwendungen und in Verbindung mit PHP.<br />");</script> herhalten. Sie ist mit einer handvoll Relationen gefüttert und dank der kurzen Texte noch immer nicht besonders groß. Ein Umstand, der beim regelmäßig stattfindendem Backup sehr praktisch ist.<span id="more-1437"></span></p>
<h1>JavaScript</h1>
<p>Aufmerksame Nutzer haben bemerkt, dass auf der Seite vermehrt <a href='http://twick.it/de/Ajax' target='_self' rel='glossary' title='Asynchrone HTTP-Datenübertragung zwischen Server und Webbrowser. Ermöglicht Anfragen im Hintergrund, während eine Webseite angezeigt wird.' class='wp_twickit_link' id='dummy0.71083800 1337657651981'>AJAX</a><script type="text/javascript">wpTwickitLinkInit("dummy0.71083800 1337657651981", "<a href='http://twick.it/de/Ajax' target='_self' class='twick'>Ajax</a><br />Asynchrone HTTP-Datenübertragung zwischen Server und Webbrowser. Ermöglicht Anfragen im Hintergrund, während eine Webseite angezeigt wird.<br />");</script> zum Einsatz kommt. Bei der Frage, ob und auf welches JavaScript-Framework hier zurückgegriffen werden sollte, wurde vor einiger Zeit zugunsten von Prototype und <a href='http://twick.it/de/Scriptaculous' target='_self' rel='glossary' title='JavaScript-Bibiothek. Stellt grafische Effekte und Drag&Drop-Funktionen zur Verfügung. Basiert auf dem Framework Prototype.' class='wp_twickit_link' id='dummy0.21853900 1337657652781'>Script.aculo.us</a><script type="text/javascript">wpTwickitLinkInit("dummy0.21853900 1337657652781", "<a href='http://twick.it/de/Scriptaculous' target='_self' class='twick'>Script.aculo.us</a><br />JavaScript-Bibiothek. Stellt grafische Effekte und Drag&amp;Drop-Funktionen zur Verfügung. Basiert auf dem Framework Prototype.<br />");</script> entschieden. Würde die Entscheidung heute getroffen, hätte <a href='http://twick.it/de/JQuery' target='_self' rel='glossary' title='Javascript-Framework, welches HTML-Manipulation und -Selektion , Ajax Interaktionen, Events und Animationen vereinfacht.' class='wp_twickit_link' id='dummy0.46073200 1337657652886'>JQuery</a><script type="text/javascript">wpTwickitLinkInit("dummy0.46073200 1337657652886", "<a href='http://twick.it/de/JQuery' target='_self' class='twick'>JQuery</a><br />Javascript-Framework, welches HTML-Manipulation und -Selektion , Ajax Interaktionen, Events und Animationen vereinfacht.<br />");</script> vermutlich bessere Chancen.</p>
<h1>Server</h1>
<p>Bleibt die Frage nach der Hardware. Genau hier kommt meine Chance, DinA0-große Skizzen der Server-Architekur aus dem Hut zu zaubern. Die Wahrheit sieht jedoch ganz anders aus. Wir hosten Twick.it seit Ende März auf einem stinknormalen Mittelklasse-Server bei Host Europe. Die Auslastung des Servers wird stetig überwacht und bei Bedarf aufgestockt. Nicht besonders spektakulär, oder?</p>
<h1>Sonst noch was?</h1>
<p>Sorgenkind ist und bleibt ein wenig die Performance. Hier kommt schon heute das DEFLATE-Modul des Apache-Webservers zum Einsatz, das dafür sorgt, dass Inhalte per gzip verpackt durch die Leitung geschickt werden. Außerdem läuft serverseitig APC zum cachen von PHP-Dateien.</p>
<p>Etwas schönere URLs werden übrigens mit mod_rewrite erzeugt.</p>
<h1>Und die Zukunft?</h1>
<p><a href="http://twick.it/user/norro" target="_blank">Norro</a> hat uns auf den Reverse-Proxy Varnish aufmerksam gemacht. Das Prinzip und die versprochenen Geschwindigkeits-Vorteile hören sich sehr vielversprechend an. In diese Richtung werden wir weiter denken.</p>
]]></content:encoded>
			<wfw:commentRss>http://twick.it/blog/de/technik/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Der erste Twick &#8211; Noch ohne Twick.it</title>
		<link>http://twick.it/blog/de/der-erste-twick-noch-ohne-twick-it/</link>
		<comments>http://twick.it/blog/de/der-erste-twick-noch-ohne-twick-it/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 20:00:10 +0000</pubDate>
		<dc:creator>Markus Möller</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Anekdote]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://twick.it/blog/?p=147</guid>
		<description><![CDATA[Die Entstehungsgeschichte hat Sean bereits treffend beschrieben. Eine möchte ich dazu noch zum besten geben. Die folgende Geschichte kann zwar nicht als Geburtsstunde von Twick.it bezeichnet werden, sie ereignete sich aber in der sehr frühen Anfangszeit der Plattform und war maßgeblich für die Umsetzung verantwortlich. Zusammen mit zwei Kollegen der Werbeagentur conception fuhr ich zu [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Die Entstehungsgeschichte hat Sean <a href="/blog/2009/07/die-twick-it-geschichte/">bereits treffend beschrieben</a>. Eine Anekdote möchte ich dazu noch zum besten geben. Die folgende Geschichte kann zwar nicht als Geburtsstunde von Twick.it bezeichnet werden, sie ereignete sich aber in der sehr frühen Anfangszeit der Plattform und war maßgeblich für die Umsetzung verantwortlich.</strong></p>
<p>Zusammen mit zwei Kollegen der Werbeagentur <a href="http://www.conception.cc" target="_blank">conception</a> fuhr ich zu einem potentiellen Kunden, der an der Implementierung eines Online-Shops interessiert war. Uns gegenüber saß ein Abgesandter der Geschäftsleitung sowie der IT-Leiter des Unternehmens.</p>
<p>Gegen Ende des Gesprächs fragte mich mein Gegenüber aus der IT-Abeilung, welche technische Basis vonnöten sei. „Was benötigen Sie? PHP?“. Ich nickte. Resultat dieser wortkargen Techniker-Unterhaltung war ein zufriedener IT-Mensch und ein ebenso verwirrter Kaufmann. Über dem Kopf des Geschäftsführer-Assistenten prangerte ein großes, imaginäres Fragezeichen. Er dreht den Kopf zu seinem Kollegen aus der IT-Abteilung: „PHP???“. Dieser zögerte nicht lange und erwiderte: „Das ist so eine Programmiersprache, mit der Internetseiten gemacht sind“.</p>
<p><a href='http://twick.it/de/Bingo' target='_self' rel='glossary' title='Bingo: Lotteriespiel. Bei Ziehung einer Zahl wird diese auf der Teilnahme-Karte gestrichen. Wer zuerst eine komplette Reihe gestrichen hat gewinnt. | Bingo (Ausruf): Ursprünglich Ausruf beim Bingo-Spiel, wenn man gewonnen hat. Im übertragenen Sinne bedeutet es "Volltreffer" oder "Genau richtig".' class='wp_twickit_link' id='dummy0.35470800 1337657653731'>Bingo</a><script type="text/javascript">wpTwickitLinkInit("dummy0.35470800 1337657653731", "<a href='http://twick.it/de/Bingo' target='_self' class='twick'>Bingo</a><br />Lotteriespiel. Bei Ziehung einer Zahl wird diese auf der Teilnahme-Karte gestrichen. Wer zuerst eine komplette Reihe gestrichen hat gewinnt.<br /><a href='http://twick.it/de/Bingo' target='_self' class='twick'>Bingo (Ausruf)</a><br />Ursprünglich Ausruf beim Bingo-Spiel, wenn man gewonnen hat. Im übertragenen Sinne bedeutet es &quot;Volltreffer&quot; oder &quot;Genau richtig&quot;.<br />");</script>! Kurze Frage, kurze Antwort. Und ein zufriedener Mensch mehr auf dieser Erde.</p>
<p><span id="more-147"></span>Die Idee einer Micro-Enzoklopädie war gerade erst ausgesprochen worden und wir befanden uns noch in einer Phase, in der es noch überaus fraglich war, ob ein Startschuss zur Umsetzung fallen würde. Ist eine Ultra-Kurz-Erklärung sinnvoll? Kann man genügend Informationen in 140 Zeichen unterbringen? Würde das jemand brauchen? Die erlebte Geschichte machte die Antwort auf alle drei Fragen deutlich: Ja, ja und nochmals ja.</p>
<p>Was wäre wohl passiert, wenn der unwissende Kollege nichts gesagt hätte. Stattdessen hätte er heimlich drei Buchstaben auf ein Blatt Papier gekritzelt. P-H-P. Dahinter ein bis drei Fragezeichen. Später hätte er wohl die Suche von Google bemüht und wäre von Millionen von Ergebnissen erschlagen worden. Bestenfalls hätte er einen Wikipedia-Artikel gefunden, der ihm auf zig DinA4-Seiten die Geschichte, die Funktionsweise, die Vor- und Nachteile der Programmiersprache inkl. Programmbeispiele gezeigt hätte. Viele Informationen. In dieser Situation sicherlich viele unnötige Informationen. Und wer weiß, vielleicht wäre er nachher genauso schlau wie vorher gewesen. Die knappe –und zugegebenerweise recht oberflächliche- „Programmiersprache für Internetseiten“-Erklärung war hier hingegen goldrichtig.</p>
<p>Für mich war klar: Erklärungen müssen nicht immer präzise, detailverliebt und ausführlich sein. Es gibt genug Situationen, in denen eine knappe Erklärung auch ohne Tiefgang genau die richtige ist. Mit Sicherheit habt auch Ihr schon Menschen kennengelernt, die –einmal angefangen- nicht mehr aufhören zu reden. Dies sind Menschen, die man nur sehr ungern nach Erklärungen fragt. Die gute Nachricht: Solche Erklärungen wird man bei Twick.it nicht finden.</p>
<p>Nach diesem Meeting stand fest: Wir brauchen eine Kurz-Enzyklopädie. Twick.it konnte beginnen.</p>
]]></content:encoded>
			<wfw:commentRss>http://twick.it/blog/de/der-erste-twick-noch-ohne-twick-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

