<?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>Digital entwickelt. &#187; JSON</title>
	<atom:link href="http://blog.digitallifedesign.net/tag/json/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.digitallifedesign.net</link>
	<description>DigitalLifedesign</description>
	<lastBuildDate>Fri, 03 Sep 2010 07:28:21 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Die geheime Zutat in der Suppe und Daten auf der Couch</title>
		<link>http://blog.digitallifedesign.net/2010/02/die-geheime-zutat-in-der-suppe-und-daten-auf-der-couch/</link>
		<comments>http://blog.digitallifedesign.net/2010/02/die-geheime-zutat-in-der-suppe-und-daten-auf-der-couch/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 10:18:09 +0000</pubDate>
		<dc:creator>drcho</dc:creator>
				<category><![CDATA[Web-Entwicklung]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[suppe]]></category>

		<guid isPermaLink="false">http://blog.digitallifedesign.net/?p=338</guid>
		<description><![CDATA[Seit Jahren versuche ich Suppen zu kochen wie meine Tante Hildegard, doch nie hat eine meiner Suppen mal so richtig gut geschmeckt wie jede ihrer Suppen. Klar, meine schmecken auch, aber eben nicht so richtig absolut total köstlich, so, dass man gar nicht mehr aufhören möchte zu essen. Eine sinnlose Suche für mich? Ich hatte [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_340" class="wp-caption alignleft" style="width: 310px"><a class="thickbox" href="http://blog.digitallifedesign.net/wp-content/uploads/2010/02/couchdb.png"><img class="size-medium wp-image-340 thickbox " title="couchDB" src="http://blog.digitallifedesign.net/wp-content/uploads/2010/02/couchdb-300x170.png" alt="couchDB speichert Daten ohne Schema" width="300" height="170" /></a><p class="wp-caption-text">couchDB speichert Daten ohne Schema</p></div>
<p>Seit Jahren versuche ich Suppen zu kochen wie meine Tante Hildegard, doch nie hat eine meiner Suppen mal so richtig gut geschmeckt wie jede ihrer Suppen. Klar, meine schmecken auch, aber eben nicht so richtig absolut total köstlich, so, dass man gar nicht mehr aufhören möchte zu essen. Eine sinnlose Suche für mich? Ich hatte es schon fast aufgegeben.</p>
<p>Ebenso suche ich seit einiger Zeit in einem ganz anderen Bereich, nämlich für einfache Internetapplikationen, nach einer Möglichkeit, Daten im Computer so behandeln, wie es das menschliche Gehirn meiner Meinung nach tun würde. Gestern wurde ich endlich fündig.<span id="more-338"></span></p>
<h2>PHP-Klassen als Pendant zum menschlichen Gehirn?</h2>
<p>Meine Vorstellungen darüber sind eher philosophisch als technisch, aber Kai meinte dazu nur, dass alle Informatiker die er kennt philosophisch seien. Ich bin Soziologe.</p>
<h3>Der Controller (das Bewusstsein?): jemand stellt eine Frage</h3>
<blockquote><p>&#8220;Was gibt&#8217;s Neues?&#8221;</p></blockquote>
<p>Woher weiß der Befragte, was nun zu tun ist. Je nach persönlichen Fähigkeiten müsste diese Frage erst einmal eine Folge von kontrollierten Denkschritten erfordern:</p>
<p>Das Bewusstsein wendet sich an die Datenbank des Gehirns, und stellt eine Anfrage ohne selbst Gehirn zu sein, am besten als HTTP-Request. Es fragt:</p>
<blockquote><p>&#8220;Gib mir bitte die Ereignisse zurück, die seit dem letzten Treffen mit der fragenden Person passiert sind!&#8221;</p></blockquote>
<h3>Das Model (das Gehirn?): der Zugriff auf semistrukturierte Daten</h3>
<p>Unser Gehirn ist zu etwas fähig, was Informatiker mit relationalen Datenbanken leider noch nicht geschafft haben: es kann genaue und ungenaue Informationen abspeichern. Um beim Beispiel zu bleiben, es kennt Ereignisse, und diese sind vielleicht mit Zeitangaben ausgezeichnet, die teilweise genau sind (gestern um 20:15 Uhr), teilweise ungenau (irgendwann in den letzten Wochen).</p>
<p>Das Gehirn fragt nicht nach einheitlichen Strukturen der Ereignisse oder fehlenden Informationen, sondern trifft eine logische Auswahl. Wenn also ein Ereignis keine Zeitangabe besitzt, so wird es auf die Anfrage einfach nicht ausgegeben.</p>
<p>Es kommt etwas zurück: eine einfache JSON-Datei:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #009900;">&#91;</span>
   <span style="color: #009900;">&#123;</span>
      <span style="color: #3366CC;">&quot;titel&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;wetten dass..?&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;zeit&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;gestern, 20:15 Uhr&quot;</span>
   <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span>
   <span style="color: #009900;">&#123;</span>
      <span style="color: #3366CC;">&quot;titel&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Suppenkochbuch gekauft&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;zeit&quot;</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;letzten Freitag&quot;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#93;</span></pre></div></div>

<h3>Die View (die Kultur?): wir stellen die Daten verständlich dar</h3>
<p>Dass JSON als Format gewählt wurde, ist lediglich eine Entscheidung über das standardisierte Austauschformat, wobei JSON bestimmt schon sehr nah an unser menschliches Denken heran kommt. Aber würde der Befragte in JSON antworten, so könnte es nur eine Maschine verstehen, denn JSON entspricht der Kultur der Maschine. Die Antwort an den Menschen muss also umformuliert werden, am besten sogar durch ein Template mit Markern, was hier aber jetzt zu kompliziert wäre.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"> <span style="color: #000088;">$ereignis</span><span style="color: #009900;">&#41;</span>
   <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$antwort</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$key</span>. &quot;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$ereignis</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'zeit'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;passierte Folgendes: &quot;</span><span style="color: #339933;">.</span> <span style="color: #000088;">$ereignis</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'titel'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;. &quot;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$antwort</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;Nix Neues. Und bei Dir?&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$Kultur</span><span style="color: #339933;">-&amp;</span>gt<span style="color: #339933;">;</span>sprich<span style="color: #009900;">&#40;</span><span style="color: #000088;">$antwort</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
?<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span></pre></div></div>

<p>So oder so ähnlich müsste es jedenfalls ablaufen. Hilfreich ist hier auch der Text <a title="Öffnet externen Link in neuem Fenster" href="http://www.all-lyrics.de/otto-waalkes-songtexte/der-menschliche-koerper-songtext" target="_blank">&#8220;Der Menschliche Körper&#8221;</a> von Otto Waalkes (nach Gerdhardt soweit mir bekannt).</p>
<h1>Das Gehirn heißt couchDB</h1>
<p>Ich hatte bereits fleißig angefangen, meine &#8220;Brain&#8221;-Klasse zu programmieren, als ich gestern Abend auf diesen Artikel stieß: <a href="http://www.phphatesme.com/blog/webentwicklung/gibt-es-ein-leben-nach-sql/">Gibt es ein Leben nach SQL? | PHP hates me &#8211; Der PHP Blog</a>.</p>
<p>Und hier findet sich der Hinweis auf die Lösung des Problems: <a title="Öffnet externen Link in neuem Fenster" href="http://de.wikipedia.org/wiki/CouchDB" target="_blank">couchDB</a>. Man stellt also in Zukunft die Anfragen nicht mehr an den Webservice Brain, sondern einfach über HTTP-Request an http://127.0.0.1:5984/ und erhält ein Ergebnis im Austauschformat JSON.</p>
<h2>Und das Geheimnis der Suppe?</h2>
<p>Curry.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.digitallifedesign.net/2010/02/die-geheime-zutat-in-der-suppe-und-daten-auf-der-couch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Braucht der Mensch heute ein CMS?</title>
		<link>http://blog.digitallifedesign.net/2009/08/braucht-der-mensch-heute-ein-cms/</link>
		<comments>http://blog.digitallifedesign.net/2009/08/braucht-der-mensch-heute-ein-cms/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 12:27:37 +0000</pubDate>
		<dc:creator>drcho</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Web-Entwicklung]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Usability]]></category>
		<category><![CDATA[WIBS]]></category>

		<guid isPermaLink="false">http://blog.digitallifedesign.net/?p=185</guid>
		<description><![CDATA[Und wenn ja, was braucht dann ein CMS? Zugegeben, die Frage klingt etwas provokant. Der Mensch braucht gewiss kein CMS, aber in gewisser Weise hat die Internetnutzung zugenommen und zunehmend stellen Menschen Content ins Netz ein. Daher lässt sich fragen, wie der Mensch eigentlich diesen Content einstellt, ober er dazu neue Werkzeuge und was überhaupt [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_187" class="wp-caption alignleft" style="width: 310px"><a class="thickbox" title="&quot;WIBS&quot; ist ein neuer Versuch eines modernen CMS. Es soll nicht alles können, was andere Programme sowieso schon können. WIBS dient der Unterstützung zur Pflege einer Webseite: HTML-Quelltext muss bearbeitet werden, die Seitenstruktur muss erweitert und verändert werden, Medien sind hochzuladen und zu verlinken. So wird WIBS eine einfache Ansammlung von Tools zur Bearbeitung der standardisierten Inhalte einer Homepage statt eines überkomplexen CMS mit wieder neuen und eigenen Standards." href="http://blog.digitallifedesign.net/wp-content/uploads/2009/08/wibs_be.jpg"><img class="size-medium wp-image-187" title="wibs_be" src="http://blog.digitallifedesign.net/wp-content/uploads/2009/08/wibs_be-300x157.jpg" alt="WebdixX Nachfolger WIBS" width="300" height="157" /></a><p class="wp-caption-text">WebdixX Nachfolger WIBS</p></div>
<p><strong>Und wenn ja, was braucht dann ein CMS?</strong> Zugegeben, die Frage klingt etwas provokant. Der Mensch braucht gewiss kein CMS, aber in gewisser Weise hat die Internetnutzung zugenommen und zunehmend stellen Menschen Content ins Netz ein. Daher lässt sich fragen, wie der Mensch eigentlich diesen Content einstellt, ober er dazu neue Werkzeuge und was überhaupt er dazu benötigt.</p>
<p>Ich habe versucht, dieser Frage nachzugehen. Ausschlag für diese Überlegungen waren zwei Dinge. Zum einen ein Blick auf eine neue Datenbank-Software für den Mac. Diese leider nicht freie Software ist wirklich intuitiv zu bedienen, das ganze sieht aus wie eine Mischung aus einer Tabelle und den Suchfiltern von Mozilla Thunderbird. Andere Inspirationsquelle war das Buch <strong>Getting Real </strong>von <strong>37signals</strong>, das man übrigens auch kostenlos im Netz lesen kann unter <a title="Öffnet externen Link in neuem Fenster" href="http://gettingreal.37signals.com/" target="_blank">http://gettingreal.37signals.com/</a>. In diesem Buch geht es im Prinzip um die Vereinfachung unseres Denkens, um eine optimale Software für bestimmte Zwecke zu entwickeln.</p>
<p>Denkt man darüber nach, was ein CMS eigentlich ist, so kommt man auf den Schluss, dass es das Gegenteil von zielorientierter, praktischer Software ist, denn das CMS weiß ja nicht was man letztlich mit ihm vorhat. Also muss es alle Möglichkeiten einplanen. Ist das wirklich der Zweck eines CMS? Oder sollte das CMS eher eine Ansammlung von Tools sein?</p>
<p>Dieser Essay ist bestimmt nicht zu Ende gedacht, aber er spiegelt meine Überlegungen von vor 2 Woche wider. Inzwischen steht die Basisversion eines neuen, einfachen CMS &#8220;WIBS&#8221; (Arbeitstitel <img src='http://blog.digitallifedesign.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> , die auf jQuery und PHP basiert. Natürlich mal wieder zu komplex. Aber der Anfang ist gemacht.<span id="more-185"></span></p>
<h2>CMS, CMS, CMS und die besten Seiten sind einfach</h2>
<p>Inzwischen gibt es so zahlreiche CMS im Umlauf, die meisten davon kostenlos, sogar Open Source. Jeder hat so seine Erfahrungen mit dem einen oder anderen davon gemacht. Doch was man heute im Internet findet sind zunehmend funktionale Seiten. Was macht eine solche Seite aus? Und was braucht eine solche Website? Dieser Beitrag versucht Anforderungen moderner Websites einzugrenzen und anschließend ein Konzept für ein CMS zu erstellen, das diesen Anforderungen genügt.</p>
<h2>User Interface Design: Navigation und Zugang zum Content</h2>
<p>Moderne Webseiten verwalten mindestens ebensoviel Content wie ihre Vorgänger, doch fällt es dem User erst einmal nicht mehr auf. Auf Youtube zum Beispiel werden laut Wikipedia täglich rund 65000 Filme hochgeladen. Doch wer einen Film sucht, findet ihn meist mit weniger als drei Suchbegriffen. Entwickler überall auf der Welt haben erkannt, dass es wahrlich schnellere Möglichkeiten gibt, durch eine Website zu navigieren als über eine Sitemap oder ein dreifach geschachteltes Menü.</p>
<p>Für einen schnellen Zugang zu Seiteninhalten gibt es kein Patentrezept. Vielmehr sind hier innovative Lösungen gefragt. Je nach Inhalten einer Seite kann eine Stichwortsuche hilfreich sein. Die Möglichkeit, Inhalte nach Datum, nach Kategorien oder nach Tags (Stichwörter) zu sortieren, ist ein weitere Möglichkeit, die den Zugang vereinfachen kann. Es gibt nahezu unbegrenzte Möglichkeiten, die jedoch bei der Planung einer Website nicht willkürlich sondern geplant eingesetzt und ggf. entwickelt werden müssen.</p>
<h2>Variable Darstellung und Ausgabeformate</h2>
<p>In dem Moment, wo der Mensch den Unterschied zwischen Content und Darstellung, oder noch präziser zwischen Content und Ausgabeformat erkennt, verändert sich sein Denken. Diese Überlegung ist insofern philosophisch, als dass es um die Grenze zwischen Inhalt (Content) und Form (Ausgabe) geht. Die Form ist das, was wirkt, was echt oder unecht erscheint. Der Mensch sieht die Form, aber er behält den Inhalt. Unser Gehirn produziert reinen Inhalt. Gedanken sind Content, eine Idee ist Content, eine Information ist Content. Versucht man eine Information an andere zu übermitteln, so bedarf es der Darstellung. Selbst wenn ich meine Idee in eine Datenbank eintragen möchte, so verändere ich sie bereits. Die Idee wird geschrieben zur Zeichenkette (string), oder theoretisch umgesetzt als Methode (function) oder zu einer Gruppe von Methoden (class) in ein übergeordnetes Konzept (parent class) eingeordnet. Vielleicht denke ich auch ein Objekt (object), das wiederum eigene Methoden enthält.</p>
<p>Doch was kann man daraus für einen abstrakten Entwurf moderner Websites schließen? Der Inhalt muss so formlos wie möglich gespeichert werden, so dass es einfach ist, ihn in unterschiedlichen Formen auszugeben. Eine Information muss sowohl auf der Seite selbst (HTML) als auch per RSS-Feed (XML) oder als Druckvorlage (PDF) abgerufen werden können. Welche der Formate man letztlich zur Verfügung stellt, wird je nach Anwendungsfall entschieden.</p>
<h2>Unvorhersehbar: offen sein für alles</h2>
<p>Erfindungen fallen dadurch auf, dass sie gemacht werden, nicht dass sie jemand voraussagt. Und dann sind sie da und niemand will mehr auf sie verzichten. In großen Firmen gibt Forschungs- und Entwicklungsabteilungen, doch welche dieser Abteilungen hat schon mal eine wirkliche Innovationen hervorgebracht? Der Vorteil von Innovationen ist gleichzeitig ihr Nachteil: die Unvorhersehbarkeit.</p>
<h2>Flexibilität macht unflexibel</h2>
<p>Fast alle CMS der Vergangenheit haben versucht, Unvorhersehbares zu integrieren und so möglichst flexibel zu sein. Man denke dabei beispielsweise an TYPO3: Jedes HTML-Element wird mit zig CSS-Klassen versehen und in diverse DIVs <img src='http://blog.digitallifedesign.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  verschachtelt, damit man auch ja jedes davon direkt ansprechen kann. Erweiterungen werden in ihrer Basis-Version mit diversen Eigenschaften ausgestattet, die es erlauben sollen, all das zu machen, was der Entwickler des CMS noch gar nicht weiß. Innovationen sollen eben einfach in das System aufgenommen werden. Und kaum kommt einer an und erfindet AJAX und JSON, und schon ist alles für&#8217;n A****.</p>
<p>Aus schlanken Systemen sind eigene, schwerfällige und träge PHP-Welten gewachsen, die nun daran scheitern, dass es ihnen an Schlichtheit fehlt. Sie haben fast alles vorhergesehen ausser das Unvorhersehbare selbst, die wirklichen Innovationen eben.</p>
<h2>Die Zukunft: back to the roots?</h2>
<p>Es fing einfach an und es wird noch einfacher enden. Die Anforderungen für die Zukunft:</p>
<h3>Datenstrukturen sollen lesbar sein.</h3>
<p>JSON ist beispielsweise ein solches für Mensch und Maschine gut lesbares Format für kleine Datenstrukturen.</p>
<h3>Eine Seite braucht dynamische Bereiche.</h3>
<p>Hier ist Javascript und AJAX unverzichtbar. Das Javascript-Framework jQuery erlaubt schnelle Eingriffe in nahezu alles, was HTML darstellen kann.</p>
<h3>Ein Template soll lesbar und veränderbar sein.</h3>
<p>Die Seitenaufteilung muss sich zwar nicht stets ändern, aber die Möglichkeit muss geboten sein.</p>
<h3>Inhalte sollen lesbar sein.</h3>
<p>Wie die einzelnen Inhalte in das CMS kommen, muss dem Programmierer selbst überlassen bleiben. Für eine reine HTML-Seite reicht HTML aus. Bei anderen Ausgaben wäre allerdings ein reines Datenformat wichtig.</p>
<h3>Nichts darf fertig sein.</h3>
<p>Der Programmierer muss das CMS selbst erstellen. Seine Idee muss die Idee des CMS werden, nicht umgekehrt. Wenn das CMS vorher schon fertig ist, dann ist es nicht sein CMS und zudem ist es starr. Und Starrheit ist das Gegenteil von Flexibilität, und das wollen wir doch alle, oder?</p>
<h2>Fazit: alles wird einfacher</h2>
<p>Hier ein Fazit zu bringen, ist gefährlich, denn der Gedanke ist noch nicht zu Ende gedacht, und was ich hier heute schreibe, denke ich morgen schon wieder anders. Vielleicht kommt die Komplexität wieder in Mode. Eigene Standards und Systeme, die gelernt werden müssen, nicht weil es keine Alternativen gibt, sondern weil der Programmierer Neues erfinden will. Er braucht diese Erfahrung, sie gibt ihm ein gutes Gefühl. Die Welt verstehen und beherrschen, alles kontrollieren, selbst das Risiko. Ich persönlich glaube nicht daran und buildLess von 37signals bleibt für mich eine wichtige Lektion, da ich selbst zuvor immer glaubte, man müsse alles dynamisieren und flexibel sein in der Form, dass jede Laune des Nutzers vorhersehbar gemacht wird. Stattdessen sollte der Nutzer aber vorher sagen, was er will, dann kann der Programmierer es genau auf diesen Fall angepasst bauen. Das spart neben Nerven auch noch Kosten. Es bleibt uns also nur die eine Hoffnung: <strong>Alles wird gut.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.digitallifedesign.net/2009/08/braucht-der-mensch-heute-ein-cms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
