<?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>F-LOG-GE &#187; YAML</title>
	<atom:link href="http://grochtdreis.de/weblog/category/yaml/feed/" rel="self" type="application/rss+xml" />
	<link>http://grochtdreis.de/weblog</link>
	<description>Weblog über Webstandards, das Internet und vieles mehr.</description>
	<lastBuildDate>Tue, 07 Feb 2012 13:56:29 +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>CSS3-Workshop in Frankfurt</title>
		<link>http://grochtdreis.de/weblog/2012/02/07/css3-workshop-in-frankfurt/</link>
		<comments>http://grochtdreis.de/weblog/2012/02/07/css3-workshop-in-frankfurt/#comments</comments>
		<pubDate>Tue, 07 Feb 2012 13:54:55 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[CSS3]]></category>
		<category><![CDATA[Veranstaltungen]]></category>
		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=1315</guid>
		<description><![CDATA[Am 27. Februar halte ich einen Workshop in Frankfurt. Themen werden CSS3, Arbeit im Team, Codeorganisation und YAML4 sein. Organisiert wird die Schulung vom Team des Smashing Magazines. Wegen der internationalen Ausrichtung von Smashing ist der Workshop als englischsprachige Veranstaltung ausgewiesen. Sollten aber alle Teilnehmer der deutschen Sprache m&#228;chtig sein, werde ich den Workshop logischerweise [...]]]></description>
			<content:encoded><![CDATA[<p>Am 27. Februar halte ich einen <a href="http://www.meetup.com/The-SmashingMagazine-Meetup/events/51371192/">Workshop in Frankfurt</a>. Themen werden CSS3, Arbeit im Team, Codeorganisation und YAML4 sein. Organisiert wird die Schulung vom Team des Smashing Magazines. Wegen der internationalen Ausrichtung von Smashing ist der Workshop als englischsprachige Veranstaltung ausgewiesen. Sollten aber alle Teilnehmer der deutschen Sprache m&#228;chtig sein, werde ich den Workshop logischerweise auf Deutsch halten. Am Abend wird es ein SmashingMeetup geben. Auch da werde ich etwas erz&#228;hlen, lasst Euch &#252;berraschen. </p>
<p>F&#252;r die Schulung stehen 20 Pl&#228;tze bereit, die kostenlos vergeben werden, dank des Sponsors MailChimp. <a href="http://www.meetup.com/The-SmashingMagazine-Meetup/events/51371192/">Auf der Meetup-Seite</a> stehen die Teilnahmevoraussetzungen: nat&#252;rlich sollte man ein Fortgeschrittener Entwickler im Frontend sein. Zum Testen des eigenen Wissens stellen wir eine kleine Testfrage, die beantwortet werden muss. Die Frage befindet sich wie ein &#220;berblick &#252;ber die Inhalte des Workshops auf der Meetup-Seite. Vielleicht sehen wir uns ja.</p>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2012/02/07/css3-workshop-in-frankfurt/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Neue Technikw&#252;rze</title>
		<link>http://grochtdreis.de/weblog/2012/01/26/neue-technikwuerze/</link>
		<comments>http://grochtdreis.de/weblog/2012/01/26/neue-technikwuerze/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 08:16:42 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=1308</guid>
		<description><![CDATA[Am Montag Abend habe ich an einer neuen Technikw&#252;rze-Folge teilgenommen: YAML total. Mit Dirk Jesse, Matthias Mees und David Macijewski sprach ich &#252;ber YAML 4. Wenn ich denn mal die Chance dazu hatte. Denn leider hatte ich an diesem Tag einen sehr st&#246;rungsanf&#228;lligen Zugang zu Telefon und Internet (Danke, 1&#038;1!). Alle paar Minuten wurde meine [...]]]></description>
			<content:encoded><![CDATA[<p>Am Montag Abend habe ich an einer neuen Technikw&#252;rze-Folge teilgenommen: <a href="http://technikwuerze.de/podcast/technikwuerze-184-yaml-total/">YAML total</a>. Mit Dirk Jesse, Matthias Mees und David Macijewski sprach ich &#252;ber YAML 4. Wenn ich denn mal die Chance dazu hatte. Denn leider hatte ich an diesem Tag einen sehr st&#246;rungsanf&#228;lligen Zugang zu Telefon und Internet (Danke, 1&#038;1!). Alle paar Minuten wurde meine Netzverbindung gekappt oder ich hatte starke Qualit&#228;tseinbussen. Auch der Neustart des Routers brachte keine gro&#223;e Verbesserung. So konnte ich leider nur sehr punktuell an der Sendung teilnehmen. Ich denke aber, sie wird f&#252;r alle YAML-Nutzer und -Interessierte sehr lohnend sein. Und obwohl wir uns zu Beginn eine Stunde als Sendungsl&#228;nge zum Ziel vornahmen, landeten wir am Ende bei einer Stunde und 45 Minuten. </p>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2012/01/26/neue-technikwuerze/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>YAML4 ist ver&#246;ffentlicht</title>
		<link>http://grochtdreis.de/weblog/2012/01/18/yaml4-ist-veroeffentlicht/</link>
		<comments>http://grochtdreis.de/weblog/2012/01/18/yaml4-ist-veroeffentlicht/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 14:03:15 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=1301</guid>
		<description><![CDATA[Dirk Jesse hat heute nach langer Vorbereitungszeit endlich YAML4 ver&#246;ffentlicht. Die Versionsnummer deutet an, dass mein bevorzugtes CSS-Framework eine grundlegende Erneuerung erfahren hat. Die beiden augenf&#228;lligsten &#196;nderungen sind sicherlich der eigene Namespace und die neue Doku.

Die Doku finde ich besonders gelungen, weil sie einen knappen &#220;berblick und Zugriff auf alle wichtigen Bestandteile des Frameworks bietet. [...]]]></description>
			<content:encoded><![CDATA[<p>Dirk Jesse hat heute nach langer Vorbereitungszeit endlich <a href="http://yaml.de">YAML4</a> ver&#246;ffentlicht. Die Versionsnummer deutet an, dass mein bevorzugtes CSS-Framework <a href="http://www.highresolution.info/weblog/entry/yaml_4_-_generationswechsel/">eine grundlegende Erneuerung</a> erfahren hat. Die beiden augenf&#228;lligsten &#196;nderungen sind sicherlich der eigene Namespace und die neue Doku.<br />
<span id="more-1301"></span><br />
Die Doku finde ich besonders gelungen, weil sie einen knappen &#220;berblick und Zugriff auf alle wichtigen Bestandteile des Frameworks bietet. Sie ist offensichtlich an Twitters Bootstrap angelehnt und adaptiert so eine gute Idee. &#196;nderungen im Aufbau der CSS-Dateien und in deren Zusammenspiel zueinander sind ausserdem nicht zu verachten. Das freut mich, weil sich meine Sicht auf den Aufbau des Frameworks &#252;ber die Jahre ge&#228;ndert hat.</p>
<p>Das Beste an der neuen Doku ist allerdings, dass sie kompakt und praktisch ist. Die alte Doku wollte noch die technischen Grundprinzipien erkl&#228;ren. Das machen heute B&#252;cher wie &#8220;<a href="http://little-boxes.de">Little Boxes</a>&#8220;. In meinen diversen Schulungen und meinen Uni-Kursen hatte ich den Eindruck, dass die umfangreiche Doku mehr als Belastung denn als Segen gesehen wurde. Die neue Doku l&#228;sst hingegen einen pragmatischen Umgang mit dem Framework zu. Das kommt meiner Interpretation von YAML als &#8220;Baukasten&#8221; auch sehr viel n&#228;her.  </p>
<p>Sch&#246;n sind die neuen Beispiele, die zudem auch nicht mehr allzu starke R&#252;cksicht auf die alten IE nehmen. Die Beispiele funktionieren allerdings selbstverst&#228;ndlich auch im IE6 und 7, so wie das ganze Framework. Es wird nur nicht mehr in den Vordergrund ger&#252;ckt. Die Zeit schreitet schlie&#223;lich voran. </p>
<p>Letztes Jahr im Oktober gab ich schon einen <a href="http://www.slideshare.net/Flocke669/einfhrung-in-yaml4">Ausblick auf YAML4</a>:</p>
<div style="width:425px" id="__ss_9641941"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/Flocke669/einfhrung-in-yaml4" title="Einf&#252;hrung in YAML4" target="_blank">Einf&#252;hrung in YAML4</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/9641941?rel=0" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"><a href="http://www.slideshare.net/Flocke669" target="_blank">Mehr Pr&#228;sentationen von Jens Grochtdreis</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2012/01/18/yaml4-ist-veroeffentlicht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einblick in YAML4</title>
		<link>http://grochtdreis.de/weblog/2011/10/11/einblick-in-yaml4/</link>
		<comments>http://grochtdreis.de/weblog/2011/10/11/einblick-in-yaml4/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 18:00:07 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[CSS und XHTML]]></category>
		<category><![CDATA[Veranstaltungen]]></category>
		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=1086</guid>
		<description><![CDATA[Auf der Webtech 2011 habe ich einen Einblick in die Neuerungen und die Konzepte von YAML4 gegeben. Die neue Version meines bevorzugten CSS-Frameworks wird es demn&#228;chst als &#246;ffentliche Beta-Version geben. Die Slides sind wieder &#252;ber Slideshare zu erhalten.
Einf&#252;hrung in YAML4
Weitere Pr&#228;sentationen von Jens Grochtdreis.

]]></description>
			<content:encoded><![CDATA[<p>Auf der Webtech 2011 habe ich einen Einblick in die Neuerungen und die Konzepte von YAML4 gegeben. Die neue Version meines bevorzugten CSS-Frameworks wird es demn&#228;chst als &#246;ffentliche Beta-Version geben. Die Slides sind wieder &#252;ber Slideshare zu erhalten.</p>
<div style="width:425px" id="__ss_9641941"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/Flocke669/einfhrung-in-yaml4" title="Einf&#252;hrung in YAML4">Einf&#252;hrung in YAML4</a></strong><object id="__sse9641941" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=yaml4-jens-grochtdreis-111011051114-phpapp01&#038;stripped_title=einfhrung-in-yaml4&#038;userName=Flocke669" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse9641941" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=yaml4-jens-grochtdreis-111011051114-phpapp01&#038;stripped_title=einfhrung-in-yaml4&#038;userName=Flocke669" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">Weitere Pr&#228;sentationen von <a href="http://www.slideshare.net/Flocke669">Jens Grochtdreis</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2011/10/11/einblick-in-yaml4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wieder auf der WebTech</title>
		<link>http://grochtdreis.de/weblog/2011/07/19/wieder-auf-der-webtech/</link>
		<comments>http://grochtdreis.de/weblog/2011/07/19/wieder-auf-der-webtech/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 07:00:29 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[Veranstaltungen]]></category>
		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=1014</guid>
		<description><![CDATA[Im Oktober findet die WebTech wieder in Mainz statt. Ich darf diesmal mit zwei Vortr&#228;gen pr&#228;sent sein. Beim Ersten widme ich mich &#8220;Best Practices in der Frontendentwicklung&#8221;. Ausl&#246;ser war ein Gutachten, das ich &#252;ber Codequalit&#228;t beim Relaunch einer recht gro&#223;en Site geschrieben habe. Es ist erschreckend, welchen Code heute selbst grosse Agenturen noch abliefern. Ich [...]]]></description>
			<content:encoded><![CDATA[<p>Im Oktober findet die <a href="http://webtechcon.de/2011/">WebTech</a> wieder in Mainz statt. Ich darf diesmal <a href="http://webtechcon.de/2011/zeitplaner">mit zwei Vortr&#228;gen</a> pr&#228;sent sein. Beim Ersten widme ich mich &#8220;Best Practices in der Frontendentwicklung&#8221;. Ausl&#246;ser war ein Gutachten, das ich &#252;ber Codequalit&#228;t beim Relaunch einer recht gro&#223;en Site geschrieben habe. Es ist erschreckend, welchen Code heute selbst grosse Agenturen noch abliefern. Ich hoffe, ich verfalle nicht so sehr ins kleine Einmaleins, das in diesem Falle leider angebracht war.</p>
<p>In meinem zweiten Vortrag werde ich einen Blick auf YAML4 werfen. Ich bin gespannt, ob Dirk diese Version bis dahin ver&#246;ffentlicht hat. Der Weg der Weiterentwicklung ist jedenfalls klar und ich finde das Ergebnis klasse. Es bleibt bestimmt auch Zeit, Fragen zu kl&#228;ren. </p>
<p>Was sind denn Eure &#8220;best practices&#8221;? Ich lerne gerne dazu.</p>
<p>Vielleicht sehen wir uns ja? Dann wisst ihr auch, warum so manche das letzte Mal ob des leckeren Essens in den Pausen st&#246;hnten und neue Hosen kaufen mussten.</p>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2011/07/19/wieder-auf-der-webtech/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Nochmal Contao und YAML</title>
		<link>http://grochtdreis.de/weblog/2011/02/11/nochmal-contao-und-yaml/</link>
		<comments>http://grochtdreis.de/weblog/2011/02/11/nochmal-contao-und-yaml/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 16:34:22 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=874</guid>
		<description><![CDATA[&#220;ber Twitter habe ich einen Link zu einer umfangreichen Fakten- und Linksammlung zum Thema &#8220;YAML und Contao&#8221; bekommen, die ich meinen Lesern nicht vorenthalten m&#246;chte:  YAML ein (X)HTML/CSS Framework und Contao
]]></description>
			<content:encoded><![CDATA[<p>&#220;ber Twitter habe ich einen Link zu einer umfangreichen Fakten- und Linksammlung zum Thema &#8220;YAML und Contao&#8221; bekommen, die ich meinen Lesern nicht vorenthalten m&#246;chte: <a href="http://www.contao-pool.de/news/items/yaml-ein-xhtmlcss-framework-und-contao.html"> YAML ein (X)HTML/CSS Framework und Contao</a></p>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2011/02/11/nochmal-contao-und-yaml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neuigkeiten in Sachen YAML</title>
		<link>http://grochtdreis.de/weblog/2010/11/08/neuigkeiten-in-sachen-yaml/</link>
		<comments>http://grochtdreis.de/weblog/2010/11/08/neuigkeiten-in-sachen-yaml/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 06:40:47 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=813</guid>
		<description><![CDATA[Das von mir hochgesch&#228;tzte und genutzte XHTML/CSS-Framework YAML ist nach l&#228;ngerer Zeit in der  neuen Version 3.3 herausgekommen. Das Changelog zeigt dabei einige grundlegende &#196;nderungen an, die den Weg zur Version 4 vorbereiten. YAML ist mittlerweile 5 Jahre alt und ist ein sehr reifes, sehr gut nutzbares, in der Praxis vielf&#228;ltig genutztes System. Es [...]]]></description>
			<content:encoded><![CDATA[<p>Das von mir hochgesch&#228;tzte und genutzte XHTML/CSS-Framework <a href="http://yaml.de">YAML</a> ist nach l&#228;ngerer Zeit in der  neuen Version 3.3 herausgekommen. <a href="http://www.yaml.de/de/dokumentation/changelog/version-3x.html">Das Changelog</a> zeigt dabei einige grundlegende &#196;nderungen an, die <a href="http://www.highresolution.info/weblog/entry/yaml_33_boxenstop_zur_version_4/">den Weg zur Version 4</a> vorbereiten. <a href="http://www.highresolution.info/weblog/entry/fuenf_jahre_yaml/">YAML ist mittlerweile 5 Jahre alt</a> und ist ein sehr reifes, sehr gut nutzbares, in der Praxis vielf&#228;ltig genutztes System. Es ist viel mehr als ein paar Styles, mit denen man ein paar Grundlayouts realisieren kann.<br />
<span id="more-813"></span><br />
Mit der f&#252;r kommendes Jahr angek&#252;ndigten Version 4 wird sich wieder etwas am Code &#228;ndern. Dieser &#228;nderte sich in Dirks Kopf durch seine Arbeit am neuen YAML-Builder. Ich bin gespannt, ob er auf dem kommenden Barcamp Darmstadt einen Einblick geben wird. Mein letzter Stand war beeindruckend. Der Builder fungiert als komplette Entwicklungsumgebung, wie ein eigener Editor im Browser. Jeder YAML-Nutzer kann sich auf dieses Tool freuen.</p>
<p>Beim Webkongress Erlangen bin ich f&#252;r einen ausgefallenen Vortragenden spontan mit einer YAML-Session eingesprungen. Meine Slides gibt es wie immer <a href="http://www.slideshare.net/Flocke669/einfuehrung-in-yaml-2010">auf Slideshare</a>.</p>
<div style="width:425px" id="__ss_5410296"><object id="__sse5410296" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=yaml-nuernberg2010-jens-grochtdreis-101011011426-phpapp01&#038;stripped_title=einfuehrung-in-yaml-2010&#038;userName=Flocke669" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse5410296" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=yaml-nuernberg2010-jens-grochtdreis-101011011426-phpapp01&#038;stripped_title=einfuehrung-in-yaml-2010&#038;userName=Flocke669" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<p>Auf dem WordCamp diesen Jahres habe ich einen ersten Einblick in ein spannendes YAML-Projekt bekommen, das vor wenigen Tagen aus der Beta-Phase kam und nun also von jedermann genutzt werden kann: das <a href="http://de.xtreme-theme.com/">XtremeOne</a>-Wordpress-Theme von <a href="http://dynamicinternet.eu/">Michael Preu&#223;</a>. Auf der Projektseite zeigt ein kurzer Film, wie einfach, bequem und schnell man sein eigenes Template auf YAML-Basis modifizieren und pflegen kann. Ein tolles Projekt, das viele Nutzer verdient. Die <a href="http://dynamicinternet.eu/blog/2010-11-03/xtreme-one-wordpress-framework-veroeffentlicht/">Kosten</a> von XtremeOne sind durch schnellere und bequemere Pflege der Seite schnell wieder reingeholt. </p>
<p>Als Abschlu&#223; m&#246;chte ich nicht vers&#228;umen, auf ein tolles Projekt hinzuweisen, das mit YAML umgesetzt wurde: <a href="http://www.wien.gv.at/">wien.at</a>. <a href="http://tomascaspers.de">Tomas Caspers</a> hat hier federf&#252;hrend das Frontend verantwortet und YAML als Basis f&#252;r eine beispielgebende, barrierefreie Seite genutzt. </p>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2010/11/08/neuigkeiten-in-sachen-yaml/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mein R&#252;ckblick auf das WordCamp 2010</title>
		<link>http://grochtdreis.de/weblog/2010/07/10/mein-rueckblick-auf-das-wordcamp-2010/</link>
		<comments>http://grochtdreis.de/weblog/2010/07/10/mein-rueckblick-auf-das-wordcamp-2010/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 12:13:24 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[Barcamp]]></category>
		<category><![CDATA[Veranstaltungen]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=784</guid>
		<description><![CDATA[Am 3. Juli 2010 fand das WordCamp2010 in Berlin statt. Ich war schon beim ersten WordCamp in Hamburg dabei, lie&#223; aber das zweite in Jena aus. Ich m&#246;chte einen inhaltlichen und formalen R&#252;ckblick wagen, auch anhand meiner Erfahrungen mit zahlreichen Barcamps.
Das WordCamp2010 in Berlin war als eint&#228;gige Veranstaltung organisiert. Eine ungew&#246;hnliche Sache, vor allem wenn [...]]]></description>
			<content:encoded><![CDATA[<p>Am 3. Juli 2010 fand das <a href="http://wordcamp.de/">WordCamp2010 in Berlin</a> statt. Ich war schon beim ersten WordCamp in Hamburg dabei, lie&#223; aber das zweite in Jena aus. Ich m&#246;chte einen inhaltlichen und formalen R&#252;ckblick wagen, auch anhand meiner Erfahrungen mit zahlreichen Barcamps.</p>
<p>Das <a href="http://wordcamp.de/">WordCamp2010 in Berlin</a> war als eint&#228;gige Veranstaltung organisiert. Eine ungew&#246;hnliche Sache, vor allem wenn man ber&#252;cksichtigt, da&#223; der Veranstaltungsort Berlin zwar immer zieht, f&#252;r die meisten Besucher aber doch sehr abseits liegt. Eine Anreise am Vortag ist eigentlich immer geboten. Durch ein zwangloses Kennenlernen-Treffen im Brauhaus-Mitte war das f&#252;r jeden auch ein Gewinn. Aber der Sonntag hinterlie&#223; ein seltsames Gef&#252;hl. Es fehlte einfach der zweite Tag.</p>
<p><span id="more-784"></span></p>
<p>Die Organisatoren riefen mehrfach dazu auf, Sessionvorschl&#228;ge schon fr&#252;hzeitig auf der Webseite anzuk&#252;ndigen. Aus den Vorschl&#228;gen wurde dann ein vorl&#228;ufiger Sessionplan gezimmert. Das ist eine prima Sache, um sich inhaltlich einzustimmen und um eventuell den Chef zu &#252;berzeugen, da&#223; ein Besuch eine gute Idee w&#228;re. Denn will man sich eine Konferenz bezahlen lassen kommt es immer besser, mit konkreten Pl&#228;nen zu winken als mit der Idee, da&#223; sich alles schon von selber gut regulieren werde. Die Vorl&#228;ufigkeit dieses Plans hatte aber offenbar nicht jeder verstanden, denn <a href="http://jendryschik.de/">Michael Jendryschik</a> wurde von einem Teilnehmer auf das &#220;belste beschimpft, weil er seine Session um eine Stunde verlegte, um nicht gegen <a href="http://perun.net">Vladimir Simovic</a> anzutreten, dessen Session ihn selber interessierte. Da hatte jemand offenbar die Dynamik eines Barcamps nicht begriffen. </p>
<h3>Die Sessions</h3>
<p>Der Tag begann f&#252;r mich mit einer Session von Vladimir Simovic. Er sprach &#252;ber Performancebremsen bei Wordpress-Blogs. Anfangs dachte ich, ich w&#252;rde zum wiederholten Male die allgemein bekannten Erkenntnisse h&#246;ren. Doch recht schnell schwenkte Vlad von den <a href="http://www.webkrauts.de/2008/12/13/sehr-sehr-schnelle-seiten-website-performance-best-practice/">allgemeinen Regeln</a> zu sehr spezifischen Erkenntnissen um. Immer mit einer Prise Humor gab er viele praxisrelevante Tips. Ich hoffe sehr, da&#223; er die &#220;berarbeitung seiner Folien bald fertig hat, da&#223; er sie &#246;ffentlich zur Verf&#252;gung stellen kann. Bis dahin lohnen sich auch <a href="http://www.perun.net/tag/performance/">seine Blogartikel &#252;ber Performance</a>.</p>
<p>In der n&#228;chsten Session sprach <a href="http://jendryschik.de/weblog/2010/07/05/wordcamp-session-css-media-queries/">Michael Jendryschik &#252;ber media-queries</a>. Ein sehr neues und sehr interessantes Thema, dem wir uns sicherlich in nicht allzu ferner Zukunft h&#228;ufiger widmen werden. Auch wenn die IEs bis inklusive Version 8 mit <a href="http://www.w3.org/TR/css3-mediaqueries/">media-queries</a> nichts anfangen k&#246;nnen, sind sie doch eine prima M&#246;glichkeit, um modernen Browsern und vor allem Browsern auf Smartphones kontextabh&#228;ngige Styles zu liefern. Die gew&#228;hlten Beispiele waren klasse und haben Lust auf eigene Experimente gemacht.</p>
<p>Vor der Mittagspause lie&#223; ich mir von Thomas Boley seine Template-Engine <a href="http://www.wildbits.de/tempela/">TempELA</a> erl&#228;utern. Gedacht ist die Engine nicht f&#252;r ganze Themes, sondern f&#252;r Plugins und Widgets. Sein Bestreben nach sauberem Code kann ich nat&#252;rlich nur unterst&#252;tzen.</p>
<p>Nach dem Mittagessen gab uns Sylvia Eggerts Session eine Analyse des Stands der <a href="http://www.slideshare.net/sprungmarker/wordcamp-2010-twenty-ten-barrierefrei">Barrierefreiheit im aktuellen Wordpress 3.0-Standardtheme</a>. Man kann ihre Erkenntnisse wohl so auf den Punkt bringen: das neue Theme f&#252;hrt die Barrieren des alten fort. Das Theme weist wenige Barrieren auf, aber an den Farbkontrasten wie an der Visualisierung der Tastaturnutzung k&#246;nnte noch gearbeitet werden. Alles in allem finde ich die Ausgangslage aber richtig gut.</p>
<p>Bevor das WordCamp zu Gunsten des WM-Spiels gegen Argentinien unterbrochen wurde, wohnte ich noch der Session von <a href="http://dynamicinternet.eu/">Michael Preu&#223;</a> bei. Michael zeigte sein Theme-Framework, das auf Basis von YAML entstanden ist und ab Wordpress 3.0 laufen wird. Ich bin sehr gespannt darauf, es zu testen. Mit Hilfe dieses Frameworks kann man sich sein YAML-basiertes Layout im Prinzip im Backend zusammenstellen. Selbst wichtige Plugins liefert Michael in eigener Machart mit. Das Framework hat nicht nur mich, sondern auch den neben mir sitzenden YAML-Vater Dirk Jesse so begeistert, da&#223; wir &#252;ber die Diskussion mit Michael den Anstoss des Spiels ignorierten. Das erste Tor konnten wir so nur in der Wiederholung bejubeln.</p>
<h3>Nur ein Tag</h3>
<p>Das WordCamp 2010 war als eint&#228;gige Veranstaltung konzipiert. Das ist sehr schade. Die meisten werden von weither gekommen sein &#8211; Berlin ist schlie&#223;lich am Rande Deutschlands &#8211; und h&#228;tten einen zweiten Tag gut nutzen k&#246;nnen. Denn eine &#220;bernachtung war ja sowieso drin. Aber auch das Thema gibt viel Stoff her und ein zweiter Tag, vielleicht sogar mit Praxisworkshops, w&#228;r sinnvoll und schnell gef&#252;llt gewesen.</p>
<h3>Die Location</h3>
<p>Ich war sehr gespannt, als ich h&#246;rte, wir w&#252;rden in einer Coworking-Area tagen. Das Konzept finde ich klasse und habe auch schon einiges &#252;ber <a href="http://kaiser79.de/">die Frankfurter Coworking-Area</a> geh&#246;rt. Ich hoffe, nicht alle Coworking-Areas sind so, wie <a href="http://betahaus.de/">das Betahaus</a>. Das Geb&#228;ude hatte den Charme eines vor etwa 20 Jahren verlassenen Lagerhauses, das notd&#252;rftig von ein paar Hausbesetzern wieder hergerichtet wurde. F&#252;r die Tagung selber war mir das allerdings herzlich egal.</p>
<p>Allerdings fehlten in den oberen R&#228;umen und im Foyer eindeutig Mikrofone und Lautsprecher. Die Vorstellung der Sessions war bei mieser Akkustik und zu lauten Teilnehmer gr&#246;&#223;tenteils gar nicht zu verstehen. Bei Vlads Session h&#228;tten die doppelte Anzahl St&#252;hle stehen d&#252;rfen. Platz w&#228;re genug gewesen. Der Verzicht auf Tische f&#252;hrte zumindest dazu, da&#223; sich weniger Menschen nebenbei noch am Rechner bet&#228;tigten. </p>
<h3>Verpflegung</h3>
<p>Ein Barcamp und so auch das WordCamp ist eine kostenlose Veranstaltung. Dementsprechend schraube ich meine Erwartungen niedrig. Zwar hatten meine letzten Barcamps alle eine geniale Verpflegung morgens und den ganzen Tag &#252;ber, aber ich erwarte dies nie. Das WordCamp bot kein Fr&#252;hst&#252;ck, also nahm ich das meines Hotels in Anspruch. Allerdings h&#228;tte es etwas Leckeres im Betahaus gegeben. Es wurde leider verabs&#228;umt, dies zu kommunizieren. Ich h&#228;tte lieber dort als in meinem Hotel das Geld gelassen.</p>
<p>Etwas ung&#252;nstig war die Verpflegungssituation in der Mittagszeit. Der Schnell-Vietnamese, den ich mir mit anderen aussuchte war lecker, aber nicht schnell und etwa 5 Minuten Fu&#223;weg entfernt. So kam ich mindestens 10 Minuten zu Sylvias Vortrag zu sp&#228;t. </p>
<h3>WLAN</h3>
<p>Die Versorgung mit Internetzug&#228;ngen ist auf Barcamps immer wieder ein leidiges Thema. Da ich meinen Surfstick im Hotel vergessen hatte, betraf die Unterversorgung auch mich. Es gab einige wenige Gl&#252;ckliche, die von Anfang an Internetzugang hatten. Im Laufe des Tages sollte sich die Lage gebessert haben. Mich interessierte das nicht mehr. Ich stellte fest, da&#223; es viel mehr Spa&#223; macht, den Vortragenden zuzuh&#246;ren und mit ihnen zu sprechen, als dauernd zu twittern.</p>
<h3>Diskussionsfreudigkeit</h3>
<p>Alle von mir besuchten Sessions wurden immer wieder von Fragen und Bemerkungen der Teilnehmer bereichert. So sollte es sein, es sollte ein offener Dialog entstehen. Ich fand diese Offenheit und das Engangement aller Teilnehmer sehr angenehm und bereichernd.</p>
<h3>Sessionplan</h3>
<p>Anfangs wurde der immer aktuell gehaltene Sessionplan auf die Wand im Foyer per Beamer geworfen. Dank des schlechten WLANs war dies f&#252;r die meisten die einzige M&#246;glichkeit, auf den Plan zuzugreifen. Vier von f&#252;nf R&#228;umen befanden sich im vierten Stock. Dort gab es aber leider keinen Plan. Der Aufzug wiederum war sehr langsam und es gab f&#252;r alle 200 Teilnehmer auch nur diesen einen Aufzug. Nach einer Session  herunterzufahren oder zu laufen um danach dann wieder den Weg zur&#252;ck anzutreten ist aber keine tolle Idee.</p>
<p>Nach dem Mittagessen wurden im Foyer die St&#252;hle f&#252;r die Fu&#223;ball&#252;bertragung aufgebaut und der Beamer wurde f&#252;r das Fernsehbild eingerichtet. Dadurch gab es nach dem Mittagessen keinen Sessionplan mehr f&#252;r mich. Das war sehr bedauerlich. </p>
<h3>Fazit</h3>
<p>Ich habe viele Kleinigkeiten gelernt, habe ein paar interessante Menschen kennengelernt oder wiedergetroffen. Deshalb w&#228;re ich bei einem erneuten WordCamp dabei. Egal wo es stattfinden wird, abgeterennte R&#228;ume mit nicht allzu schlechter Akkustik und zus&#228;tzlich Mikrofon/Lautsprecher sollten drin sein. Das WLAN sollte gen&#252;gend Nutzer vertragen und der Sessionplan auch mal in nicht-digital vorliegen, damit man nicht von Strom, Rechner, Internetzugang und Beamer abh&#228;nging ist</p>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2010/07/10/mein-rueckblick-auf-das-wordcamp-2010/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sinn eines CSS-Frameworks</title>
		<link>http://grochtdreis.de/weblog/2010/05/03/sinn-eines-css-frameworks/</link>
		<comments>http://grochtdreis.de/weblog/2010/05/03/sinn-eines-css-frameworks/#comments</comments>
		<pubDate>Mon, 03 May 2010 07:37:10 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[CSS und XHTML]]></category>
		<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=763</guid>
		<description><![CDATA[Ich habe vor Kurzem meinen aktuellen Arbeitsworkflow beschrieben. Dabei habe ich auch erw&#228;hnt, da&#223; ich mich in der Frontendentwicklung auf zwei Frameworks verlasse: YAML f&#252;r HTML und CSS sowie jQuery f&#252;r Javascript. Da meine Arbeit sich auf die Erstellung von Frontendcode konzentriert und ich weder ein CMS direkt befeuere noch die Templates erstelle, muss ich [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe vor Kurzem <a href="http://grochtdreis.de/weblog/2010/04/27/ein-blick-in-meinen-entwicklungsprozess/">meinen aktuellen Arbeitsworkflow</a> beschrieben. Dabei habe ich auch erw&#228;hnt, da&#223; ich mich in der Frontendentwicklung auf zwei Frameworks verlasse: <a href="http://yaml.de">YAML</a> f&#252;r HTML und CSS sowie <a href="http://jquery.com">jQuery</a> f&#252;r Javascript. Da meine Arbeit sich auf die Erstellung von Frontendcode konzentriert und ich weder ein CMS direkt befeuere noch die Templates erstelle, muss ich mir keine Gedanken &#252;ber ein CMS oder ein PHP-Framework machen.</p>
<p>Seit Jahren werbe ich immer wieder f&#252;r die  Nutzung von YAML. Nicht, weil ich daf&#252;r Geld bek&#228;m, sondern weil ich die Nutzung eines Frameworks f&#252;r sinnvoll erachte und YAML f&#252;r das Beste der derzeit existierenden halte. YAML wird dabei immer wieder vorgeworfen, es sei so &#8220;schwer&#8221; und habe einen zu komplexen Code. Abwechselnd wird von DIVitis oder DIV-Wahnsinn gesprochen. Ihre dauernde Wiederholung macht allerdings diese Behauptungen nicht wahrer. Die Kritiken zeugen in meinen Augen davon, da&#223; das Konzept von YAML nicht verstanden wurde.<br />
<span id="more-763"></span><br />
YAML bietet von Anfang an erst einmal alles. Der Trick besteht darin, das Unn&#246;tige wegzunehmen. So gehe ich auch in meinem Entwicklungsframework vor. Ich kann gut verstehen, da&#223; das gew&#246;hnungsbed&#252;rftig ist. Die Alternative w&#228;re, eine ganz grobe Vorlage zu haben, in die man dann die ben&#246;tigten Einzelteile einf&#252;gt. Das liefert mir prinzipiell jeder gute Editor, daf&#252;r brauche ich kein Framework. Zudem ben&#246;tige ich einen Ort und eine Ordnungsmethode, um meine hinzuzuf&#252;gednen Einzelteile zu finden und dann in meine neu entstehende Webseite einzuf&#252;gen. Auch in diesem Falle ben&#246;tige ich eine Art Framework-Grundlage. Ich bevorzuge, alle wichtigen Dateien und Skripte an einem Platz zu haben, so da&#223; ich sie jederzeit anwenden kann, und die unn&#246;tigen am Ende schnell zu l&#246;schen. </p>
<p><a href="http://highresolution.info">Dirk Jesse</a> schachelt bei YAML alle Layoutcontainer doppelt. Ich denke, es ist dieser Umstand, den viele kritisieren. Doch hinter der Verschachtelung steckt Sinn. Dirk entwickelt YAML immer mit dem Gedanken an flexible Layouts im Hinterkopf. Wenn man dementsprechend einem Container eine Breite in Prozent gibt, kann man ihm schwerlich ein Padding in Pixeln oder em geben. Schachtelt man nun einen Container in den &#196;u&#223;eren, dann gibt der &#196;u&#223;ere die Breite vor und der Innere erzeugt &#252;ber Padding oder Margin Abst&#228;nde f&#252;r die dann folgenden Inhalte. Nat&#252;rlich kann ich auch den inneren Inhalten diese Abst&#228;nde zuweisen. Doch das bedeutet mehr Schreibarbeit, schlechtere Wartbarkeit und weniger Flexibilit&#228;t. &#220;ber die Verschachtelung ist sichergestellt, da&#223; die Inhalte auf alle F&#228;lle die korrekten Abst&#228;nde bekommen. Zudem ist es egal, welche Inhalte in den inneren Container geschachtelt werden, sie bekommen immer den richtigen Abstand.</p>
<p>Die meisten Entwickler werden hingegen fixe Layouts mit Pixelbreiten erschaffen. Bei einem fixen Layout wird der innere Container nicht mehr zwangsweise f&#252;r die Abst&#228;nde ben&#246;tigt. In diesem Falle kann man die inneren Container l&#246;schen. Das gilt f&#252;r die Spaltencontainer #col1, #col2 und #col3 genauso wie f&#252;r die diversen Subcolumns, also die Gridbausteine. Ohne die inneren Container kann man nicht mehr ernsthaft von DIVitits sprechen. Eine L&#246;sung hingegen, in der ich Einheiten f&#252;r Breiten und Abst&#228;nde mische, kann ich schwerlich ohne zus&#228;tzliche Container l&#246;sen. Ich begl&#252;ckw&#252;nsche jeden, der es dennoch geschafft hat. Ich w&#252;&#223;te dann aber auch gerne, ob die L&#246;sung allgemein funktioniert, komplexe Layouts zul&#228;&#223;t und wie lange es gedauert hat, bis man auf sie kam.</p>
<p>Man kann also unter bestimmten Umst&#228;nden die Struktur straffen. Andere Umst&#228;nde erfordern hingegen diese verschachtelte Struktur. Denn abseits des Falles eines flexiblen Layouts gibt es gen&#252;gend Gestaltungsideen, die einen zus&#228;tzlichen Container erfordern. Es d&#252;rfte schwerlich m&#246;glich sein, den Kunden zu erkl&#228;ren, man k&#246;nne jetzt bedauerlicherweise sein Wunschlayout nicht erstellen, weil man daf&#252;r einen semantisch unn&#246;tigen Container einf&#252;gen m&#252;sse.  </p>
<p>Ich denke, die Struktur k&#246;nnen wir als nicht zu sehr aufgeblasen abhaken. Wie steht es nun mit dem CSS? YAML ben&#246;tigt zwei Dateien, um zu funktionieren. Jede weitere Datei geh&#246;rt zum individuellen Layout. Die slim_base.css hat 2,34 KB und h&#228;lt damit f&#252;r ziemlich viele Problemf&#228;lle L&#246;sungen parat. Wer will, kann sich die Datei noch um die wenigen Eintr&#228;ge k&#252;rzen, die er definitv nicht ben&#246;tigt wird. Man sollte dabei aber wissen was man tut. Angesichts der geringen Dateigr&#246;&#223;e halte ich eine solche h&#228;ndische Straffung allerdings f&#252;r albern. Alle IE bis einschlie&#223;lich Version 7 m&#252;ssen 5 KB CSS-Dateien laden, da f&#252;r sie ein separates Patchfile hinzukommt. (<a href="http://www.highresolution.info/weblog/entry/yaml_3.2_schaerfung_des_profils/">Siehe Dirks Artikel &#252;ber YAML 3.2</a>.)</p>
<p>Ich kann beim besten Willen an diesen Werten nichts Schlimmes entdecken. Die genannten Dateien sind eine Sammlung von Best Practices, an denen man schwerlich vorbeikommen wird. Es ist nat&#252;rlich etwas Anderes, wenn man solche CSS-Dateien selber zusammensucht. Doch wird dies kaum &#252;ber einen kurzen Zeitraum geschehen. Man wird seine selbst zusammengestellten Best Practices also nicht zwangsweise besser kennen, als man die YAML-Dateien kennen kann, wenn man sich einmal mit ihnen besch&#228;ftigt hat. In meinen Augen unterscheidet sich YAML von den anderen Frameworks dadurch, da&#223; es auf Anwender setzt, die sich mit dem Code auseinandersetzen wollen und k&#246;nnen. Es ist nicht einfach nur zum Anwenden da, wie die diversen Grid-Frameworks. YAML will erkundet, erforscht, erobert werden. </p>
<p>Wer sich also mit dem System besch&#228;ftigt, wird schnell die Vorteile erkennen. Ich habe mein gesamtes bisheriges Berufsleben meinen eigenen Code geschrieben. Bei meinem letzten Gro&#223;projekt f&#252;r SinnerSchrader habe ich sogar ein eigenes kleines CSS-Framework geschrieben, das uns die Arbeit sehr erleichterte. Dieses war allerdings auf den Nutzungskontext zugeschnitten. Ich genie&#223;e es derzeit, da&#223; mir YAML alle Gedanken um das Grundlayout abnimmt und ich mich um die eigentlichen Problemf&#228;lle der Entw&#252;rfe k&#252;mmern kann, von denen es noch gen&#252;gend gibt. </p>
<p>Die Nutzung eines Frameworks hat f&#252;r mich im wesentlichen folgende Vorteile:</p>
<ul>
<li>Ich kann mich auf Designdetails konzentrieren, weil die groben Probleme browser&#252;bergreifend schon gel&#246;st sind.</li>
<li>F&#252;r alle grundlegenden Seitenelemente gibt es eine festgelegte Notation, soda&#223; ich mir pers&#246;nlich weder eine eigene ausdenken muss, noch die Gefahr habe, in ein paar Jahren meinen Code nicht mehr spontan zu verstehen.</li>
<li>Durch die einheitliche Notation k&#246;nnen Fremde meinen Code leichter verstehen und meine Arbeit &#252;bernehmen.</li>
<li>Dadurch wird auch die Arbeit im Team stark erleichtert. </li>
<li>YAML kommt mit einer ausf&#252;hrlichen Dokumentation. Jedes meiner Projekte hat nun also eine Basis-Dokumentation.</li>
<li>&#220;ber allem steht in meinen Augen die Effizienz. Mit einem Framework erstellter Code ist effizient, denn viele Gedanken und Fehlersuchen er&#252;brigen sich. Die Ersparnis ist nicht nur Zeit, sondern bares Geld.</li>
</ul>
<p>Die Sorge um unn&#246;tige DIV-Container finde ich zudem &#252;bertrieben. Ich habe eher den Eindruck, es ist ein vorgeschobenes Argument. Und es wird schwer, solche unn&#246;tigen Container immer und &#252;berall zu identifizieren. Semantisch sind sicherlich sehr viele DIV-Container sinnlos. Sie machen semantisch da Sinn, wo sie eine Webseite in Bereiche unterteilen. Doch leider ist die Frontendentwicklung kein idealer Ort und wir k&#246;nnen Layouts nicht der reinen Lehre nach nur mit CSS-Mitteln bewerkstelligen. Wir ben&#246;tigen immer wieder zus&#228;tzliche DIV-Container, um Layouts zu erreichen. Das kann man kritisieren, outet sich dann aber in meinen Augen als F&#246;rderer schlichter Textw&#252;sten. </p>
<p>Viele Seiten sind zudem keine simplen Bloglayouts oder einfache Seiten, die von einer Person f&#252;r eine andere erstellt werden. Gro&#223;e Seiten werden von einem Redaktionsteam betreut, bekommen Daten von aussen angeliefert, bekommen oft Werbung von aussen eingebunden und sollen vielleicht sogar ein flexibel anpassbares Design haben. Wer all dies bewerkstelligen muss, der ist &#252;ber das eine oder andere zus&#228;tzliche DIV sehr froh, das ihm die Arbeit sehr erleichtert. Die zus&#228;tzlichen 11 Byte tun weder dem Entwickler, noch dem Nutzer weh.</p>
<p>In Deutschland haben immer mehr Auftraggeber den zeit- und geldsparenden Effekt von Frameworks begriffen und fragen konkret nach einer Umsetzung mit YAML nach. Das hat f&#252;r sie den gro&#223;en Vorteil, da&#223; sie den Frontendcode von anderen Entwicklern einfacher warten lassen k&#246;nnen, wenn sie es aus welchen Gr&#252;nden auch immer wollen. Ich sehe derzeit keine Veranlassung, wieder zu meinen alten Methoden zur&#252;ckzukehren und meinen Code komplett selber zu schreiben. </p>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2010/05/03/sinn-eines-css-frameworks/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Ein Blick in meinen Entwicklungsprozess</title>
		<link>http://grochtdreis.de/weblog/2010/04/27/ein-blick-in-meinen-entwicklungsprozess/</link>
		<comments>http://grochtdreis.de/weblog/2010/04/27/ein-blick-in-meinen-entwicklungsprozess/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 08:00:18 +0000</pubDate>
		<dc:creator>Jens Grochtdreis</dc:creator>
				<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[YAML]]></category>

		<guid isPermaLink="false">http://grochtdreis.de/weblog/?p=757</guid>
		<description><![CDATA[&#220;ber die bislang elf Jahre meiner beruflichen T&#228;tigkeit als Frontendentwickler haben sich meine Arbeitsweisen immer wieder ge&#228;ndert. Sie pa&#223;ten sich den technischen Gegebenheiten genauso an, wie ich meine Schl&#252;sse aus meiner eigenen Arbeitsweise zog und sie ver&#228;nderte. In den letzten Monaten habe ich wieder eine &#196;nderung vollzogen, die diesmal wesentlich intensiver und weitreichender ist, als [...]]]></description>
			<content:encoded><![CDATA[<p>&#220;ber die bislang elf Jahre meiner beruflichen T&#228;tigkeit als Frontendentwickler haben sich meine Arbeitsweisen immer wieder ge&#228;ndert. Sie pa&#223;ten sich den technischen Gegebenheiten genauso an, wie ich meine Schl&#252;sse aus meiner eigenen Arbeitsweise zog und sie ver&#228;nderte. In den letzten Monaten habe ich wieder eine &#196;nderung vollzogen, die diesmal wesentlich intensiver und weitreichender ist, als jemals zuvor. Ich m&#246;chte ein paar Aspekte dieser Arbeitsweise vorstellen und zudem in mein kleines Arbeits<span lang="en">Framework</span> einf&#252;hren. Ich behaupte nicht, den Stein der Weisen gefunden zu haben. Aber ich denke, da&#223; meine Ideen eine gute Anregung sein k&#246;nnen und zu eigenen Adaptionen anregen k&#246;nnen.</p>
<p><span id="more-757"></span></p>
<h3>Rahmenbedingungen</h3>
<p>Jeder arbeitet in einem bestimmten Kontext, der wiederum Einfluss auf die Arbeitsweise hat. Ich entwickele als selbst&#228;ndiger Webentwickler vor allem <span lang="en">Templates</span>, die andere in ein CMS integrieren. Ich bin dementsprechend von speziellen Contentmanagementsystemen unabh&#228;ngig. W&#252;rde ich in einem bestimmten CMS arbeiten, w&#252;rde ich m&#246;glicherweise direkt in einer Testinstallation meine <span lang="en">Templates</span> entwickeln. Allerdings konnte ich auch in den Jahren bei <a hef="http://sinnerschrader.de">SinnerSchrader</a>, als ich haupts&#228;chlich f&#252;r das Enterprise CMS RedDot entwickelte, nicht sinnvoll innerhalb des CMS meine <span lang="en">Templates</span> entwickeln. Daf&#252;r ist das CMS zu langsam und zu umst&#228;ndlich in der Bedienung. </p>
<p>Der st&#228;ndige Kontakt mit einem CMS hat mich in den letzten Jahren zum Denken in Modulen getrieben. Ich gehe an ein Layout mit der Frage, welche Inhalte gleich strukturiert und nur anders lackiert sind, damit ich diese m&#246;glichst in ein einziges <span lang="en">Template</span> &#252;berf&#252;hren kann. Auch in meiner aktuellen Arbeitsweise bin ich bem&#252;ht, gleichf&#246;rmige Seitenbestandteile m&#246;glichst auszulagern. Die Auslagerung hat dabei den gro&#223;en Vorteil, da&#223; st&#246;rende Seitenbestandteile weitestgehend ausgeblendet werden, ich mich auf die notwendige Struktur konzentrieren kann und schon fast die sp&#228;teren <span lang="en">Templates</span> schreibe.</p>
<h3>Die Verwendung eines <span lang="en">Frameworks</span></h3>
<p>Ich m&#246;chte aus meiner t&#228;glichen Arbeit den Umgang mit <a href="http://yaml.de">YAML</a> nicht mehr missen. Hierbei z&#228;hlt f&#252;r mich nicht in erster Linie das spezielle <span lang="en">Framework</span>, obwohl ich es das Beste unter den m&#246;glichen Optionen finde. Meine Bewertung ist Geschmackssache. Viel wichtiger finde ich, generell mit einem <span lang="en">Framework</span> zu arbeiten. Es hilft mir, mich auf meine eigentliche Arbeit zu konzentrieren, indem es immer wieder gesuchte L&#246;sungen f&#252;r immer wieder auftretende Probleme liefert. Ich entwickele somit auf einem soliden Fundament, dessen Bestandteile ich mir nicht selber zusammensuchen bzw. zusammenschreiben muss. Ich kann jedem nur raten, sich ein wenig Zeit zu nehmen und sich das auf sich passende <span lang="en">Framework</span> zu suchen. Alternativ kann man sich nat&#252;rlich auch sein eigenes <span lang="en">Framework</span> erstellen. Doch angesichts der guten Auswahl sehe ich keine Notwendigkeit daf&#252;r.</p>
<p>Der Grundgedanke von <a href="http://highresolution.info">Dirk Jesse</a> bei der Schaffung von YAML kommt meiner eigenen Arbeitsweise entgegen: er bietet ein Komplettpaket an, aus dem man sich die notwendigen Elemente herauspickt und den Rest l&#246;scht. Auch ich gehe bei meinem Starterkit so vor, indem ich m&#246;glichst viele L&#246;sungen separat sammele und dann alle bis auf die Notwendigen wieder l&#246;sche.</p>
<h3>Sammlung von L&#246;sungen</h3>
<p>Ein <span lang="en">Framework</span> ist eine verallgemeinerte Sammlung von Probleml&#246;sungen, doch es kann nicht allen Anforderungen begegnen. Deshalb gehe ich dazu &#252;ber, erg&#228;nzend zu YAML eigene L&#246;sungen zu sammeln. Diese werden in separaten Dateien in meinem Starterkit abgelegt und werden vor der Weitergabe an den Kunden um die nichtgenutzten reduziert. Es ist mir wichtig, Standardl&#246;sungen f&#252;r mich zu finden. Die meisten Elemente einer Webseite sind Standardelemente. Es macht wenig Sinn, sie jedesmal von Neuem zu erfinden oder aus alten Projekten zusammenzusuchen. Auch einmal als gut befundene <span lang="en">jQuery-Plugins</span> sammele ich. Ich &#252;berpr&#252;fe allerdings immer wieder, ob es eine neue Version eines genutzten Plugins gibt, damit ich von dessen Weiterentwicklung profitieren kann. </p>
<h3>Versionierung</h3>
<p>Erst in den letzten zwei Jahren hatte ich Kollegen, die von den Vorz&#252;gen eines Versionierungssystems wu&#223;ten und dieses auch nutzen wollten. Zuvor habe ich jahrelang mit durchnummerierten Dateikopien und gezippten Projektkopien gearbeitet. Diese Arbeitsweise ist nicht nur Steinzeit, sie ist auch hemmend. Ein Versionierungssystem nimmt mir die &#196;nderungsverfolgung ab. Ich kann nachvollziehen, welche &#196;nderung ich wann gemacht habe, alte St&#228;nde wiederherstellen. Ich kann jedem nur raten, sich mit <a href="http://delicious.com/Flocke/subversion"><acronym title="Subversion">SVN</acronym></a> oder <a href="http://delicious.com/Flocke/git">git</a> auseinanderzusetzen. Ich selber bevorzuge <acronym title="Subversion">SVN</acronym> aus zweierlei Gr&#252;nden:</p>
<ol>
<li>Ich habe bislang keinen Kunden kennengelernt, der git nutzt, geschweige denn wei&#223;, was das ist. Wenn jemand ein Versionierungssystem nutzt, dann SVN, soda&#223; bei gr&#246;&#223;eren Unternehmen auch eigene SVN-Server existieren. Diese nutze ich dann mit.</li>
<li>Ich mag <a href="http://versionsapp.com">GUIs</a> und kann mit der Kommandozeile nicht viel anfangen. Da es derzeit noch keine vern&#252;nftige Mac-GUI f&#252;r git zu geben scheint, bin ich derzeit zwar von <a href="http://github.com">github</a> fasziniert, beteilige mich aber nicht.</li>
</ol>
<p>Zuerst verwendete ich <a href="http://springloops.com/">einen kostenlosen SVN-Dienst</a> im Netz. Mittlerweile nutze ich den beim Mac mitgelieferten SVN-Server, denn normalerweise arbeite ich f&#252;r mich alleine und ben&#246;tige SVN nur als System, das mir Datei&#228;nderungen nachverfolgbar macht. Das macht die &#220;bertragung nicht zwangsweise schneller, aber ich kann soviele Projekte kostenlos einrichten, wie ich Lust habe und vertraue keiner Fremdfirma meine Daten an. Meine gesamte Festplatte wird sowieso regelm&#228;&#223;ig alle paar Stunden via &#8220;Time Machine&#8221; gesichert.</p>
<p>Mein SVN-<span lang="en">Workflow</span> ist sicherlich stark ausbaubar. Ich habe aber bislang weder die Zeit noch die verst&#228;ndliche Einf&#252;hrung gehabt, mir tiefergehende Gedanken zu machen. F&#252;r Anregungen bin ich dankbar. Vielleicht kann ja der eine oder andere Leser in seinem Blog &#252;ber seine Arbeitsweise berichten. Ich lerne gerne dazu und w&#252;rde gerne meine Arbeitsweise verfeinern.</p>
<h3>Anpassung des Versionierungs-<span lang="en">Workflows</span></h3>
<p>Durch die Nutzung von SVN mu&#223;te ich meinen <span lang="en">Workflow</span> anpassen. Es hat gedauert, bis ich das verstanden habe. Bislang fing ich an, meine Dateien zu schreiben, bis ich nach ein paar Stunden oder Tagen auf die Idee kam, ich k&#246;nnte mal den aktuellen Stand in SVN einchecken (bzw. fr&#252;her als ZIP-Datei sichern) und dann weiterarbeiten. Falsch gedacht! Ich kann meine Dateien in SVN einchecken, muss dann aber eine Arbeitskopie wieder auschecken. Dies muss logischerweise an einem neuen Ort sein. Ich m&#252;&#223;te also meine bewu&#223;t gew&#228;hlte Ordnerstruktur &#252;ber den Haufen werfen und meinen lokalen Webserver wieder neu einrichten. Nachdem ich den Fehler in meinem Vorgehen erkannte war mir klar, da&#223; ein kleines Arbeits-<span lang="en">Framework</span> noch mehr Nutzen als gedacht haben w&#252;rde. Denn nun checke ich bevor ich einen Handschlag mache mein &#8220;Starterkit&#8221; in ein neues SVN-Projekt ein und am gew&#252;nschten Bearbeitungsort wieder als Arbeitskopie aus und kann unmittelbar mit meiner Arbeit beginnen.</p>
<p>Ich habe leider keine Ahnung, wie dies mit git funktionieren w&#252;rde. Ich warte noch auf eine einfach nutzbare Anwendung, die mir git ohne gro&#223;es Lernen erm&#246;glicht. Denn ich m&#246;chte mich nicht &#252;ber Geb&#252;hr mit einem Versionierungssystem besch&#228;ftigen. Dieses System soll meiner Arbeit dienlich sein, es soll mir n&#252;tzen und nicht meine Aufmerksamkeit ablenken.</p>
<h3>Mein kleines <span lang="en">Framework</span> &#8211; die Grundlagen</h3>
<p>In den weiten des Netzes gibt es zahlreiche Vorschl&#228;ge, wie man sich seine Arbeit mit einer Art &#8220;Starterkit&#8221; erleichtern kann. Es handelt sich dabei meist um ein sehr abgespecktes Template mit einer DTD und Verkn&#252;pfungen zu einem leeren Stylesheet und einer leeren Javascriptdatei. Das sind Sachen, die jeder halbwegs gute Editor auch mit sich bringt. Meine Idee ging wesentlich weiter, da ich zu Beginn meiner Selbst&#228;ndigkeit beschlossen hatte, auf YAML als Entwicklungsgrundlage zu bauen, soweit die Kunden einverstanden sind. Zudem schreibe ich Javascript immer mit Hilfe von <span lang="en">jQuery</span> und habe damit eine Festlegung, die ich gleich in mein kleines Starterkit einbringen kann.</p>
<h4>YAML als Basis</h4>
<p>Die Verwendung eines CSS-<span lang="en">Frameworks</span> erm&#246;glicht es mir, mich auf punktuelle Herausforderungen des jeweiligen Designs zu konzentrieren und nicht jedesmal wieder &#252;ber den besten Weg f&#252;r die Umsetzung eines Grundlayouts zu sinnieren. YAML nimmt mir die Suche nach Best Practices und immer wieder gesuchten Probleml&#246;sungen ab, denn Dirk Jesse hat f&#252;r deren Implementierung schon viel Zeit investiert.</p>
<p>Egal welches <span lang="en">Framework</span> man nutzt, ein fremdes oder ein selbstgemachtes, es hilft dabei, sich selber zu disziplinieren und spart dadurch Zeit. Indem ich festgelegte Containernamen habe, wird meine Arbeit effektiver. Ich muss mir kein System ausdenken.</p>
<p>Die Namenskonventionen zu &#252;bernehmen f&#228;llt mir nicht besonders schwer. Probleme habe ich híngegen immer bei der Art, wie Dirk die einzelnen Dateien auf Verzeichnisse verteilt und miteinander verkn&#252;pft. Doch YAML ist kein Fertigtemplate, da&#223; man so nutzen muss, wie es kommt. Es ist vielmehr ein Baukasten, aus dem man sich bedient, wie man es braucht. Ich habe mir also YAML so &#8220;zurechtgeschnitzt&#8221;, wie ich es sinnvoll nutzen kann, habe dabei aber immer im Auge behalten, da&#223; ich das <span lang="en">Framework</span> auch wieder schnell updaten k&#246;nnen m&#246;chte, wenn eine neue Version ver&#246;ffentlicht wird. Da ich mir diese Arbeit der Neuaufteilung nur einmal machen wollte war schnell die Idee eines &#8220;Starterkits&#8221; geboren.</p>
<h4><span lang="en">jQuery</span> als Basiserweiterung</h4>
<p>Ich habe leider nie richtig Javascript gelernt. Als ich begann, mich intensiver mit <span lang="en">DOMScripting</span> zu besch&#228;ftigen, mu&#223;te ich feststellen, da&#223; die Javascript-Implementierungen der <span lang="en">Browser</span> noch kaputter und bescheuerter sind, als ihre CSS-Implementierungen. Man kann hier keinen Hersteller allein an den Pranger stellen, jeder hat auf seine eigene Art Mist gebaut.</p>
<p>Javascript-<span lang="en">Frameworks</span> bieten die Chance, alle <span lang="en">Browser</span> fehlerfrei und mit wenig Code anzusprechen, denn sie normalisieren die Unterschiede. <span lang="en">jQuery</span> hat mir von Anfang an am Besten gefallen, was wohl haupts&#228;chlich an der CSS-&#228;hnlichen Art der Selektion liegt. Ich kann mir allerdings vorstellen, da&#223; jemand, der Javascript richtig gut beherrscht, mit <span lang="en">Prototype</span>, <span lang="en">YUI</span> oder <span lang="en">mootools</span> sehr viel besser bedient ist. Es ist doch klasse, da&#223; wir Auswahl haben und f&#252;r jeden etwas dabei ist.</p>
<h4>PHP als <span lang="en">Templateengine</span></h4>
<p>Wie erw&#228;hnt nutze ich mein kleines <span lang="en">Framework</span> nicht prim&#228;r daf&#252;r, komplette <span lang="en">Sites</span> zu erstellen, obwohl auch das ginge. Es geht mir vielmehr darum, schnell kleine <span lang="en">Testcases</span> bauen zu k&#246;nnen und f&#252;r meine Kunden <span lang="en">Klickdummys</span> zu erstellen, die sie selber dann in CMS-<span lang="en">Templates</span> &#252;berf&#252;hren k&#246;nnen. Meine gefundene L&#246;sung hat den Vorteil, da&#223; sie strukturelle Ebenen voneinander trennt. Ich nutze daf&#252;r PHP als <span lang="en">Templateengine</span>, ganz rudiment&#228;r. Das grobe Ger&#252;st der Seite wird als <span lang="en">Template</span> abgespeichert und pro Einzelseite inkludiert. In dieses globale Template kommt nicht vielmehr als das, was ein Editor auch als <span lang="en">Template</span> vorschlagen w&#252;rde. Mit Variablen kann ich eine <span lang="en">ID</span> oder Klasse dem <span lang="en">Body-Tag</span> hinzuf&#252;gen, kann seitenspezifisches CSS oder Javascript laden, den <span lang="en">Title-Tag</span> und eine Seiten&#252;berschrift bef&#252;llen.</p>
<p>Am Ende bleiben so Dateien &#252;brig, die den eigentlichen Inhalt einer Seite im wesentlichen als HTML aufweisen. Sie k&#246;nnen sogleich als Basis f&#252;r die eigene Umsetzung als <span lang="en">Template</span> dienen.</p>
<h3>Mein Editor als bestimmendes Element</h3>
<p>Als ich mich an den <span lang="en">Mac</span> als mein neues Arbeitsger&#228;t gew&#246;hnte mu&#223;te ich mir einen neuen Editor suchen. In den langen Jahren meiner T&#228;tigkeit als Frontendentwickler habe ich viele unterschiedliche Editoren genutzt und an den meisten ein paar Details sch&#228;tzen gelernt. Es dauerte ein wenig, aber nach meinem ersten Erschrecken &#252;ber die Schlichtheit von <span lang="en">Textmate</span> wu&#223;te ich die St&#228;rken des Editors schnell zu sch&#228;tzen. Da ich nicht der Typ Entwickler bin, der sich gerne stunden- und tagelang mit seinem Editor besch&#228;ftigt, bis er ihn passend zurechtgebogen hat, sind mir alle Erweiterungen und Verbesserungen mehr oder minder zuf&#228;llig und vor allem schnell untergekommen. Ich habe mittlerweile meine eigenen <span lang="en">Snippets</span>, auf die ich schnell zugreifen kann, habe aber sicherlich viele versteckte St&#228;rken noch nicht gehoben.</p>
<p>Dank der Snippets und der Technik &#8220;Zen Coding&#8221; sowie der vielen in <span lang="en">Textmate</span> eingebauten <span lang="en">Features</span> kann ich so schnell wie nie zuvor <span lang="en">Code</span> schreiben. Ich tippe einfach &#8220;fll&#8221; und dr&#252;cke die Tabtaste und schon erscheint <code>float: left</code>. Bei meinen eigenen Snippets tippe ich nur &#8220;y33&#8243; und die Tabtaste und schon erscheint der Code f&#252;r die drei 33% breiten Boxen von YAML.</p>
<h4>Problemfall Mischform</h4>
<p>Ein Problem, das sich mir schnell stellte, war die Vermischung von HTML und PHP. F&#252;r mein Starterkit w&#228;re es ja wichtig, da&#223; ich innerhalb von PHP-Code normales HTML schreibe. Dagegen hat <span lang="en">Textmate</span> zwar nichts, aber es unterst&#252;tzt mich dann nicht mehr wie gewohnt bei der visuellen Codedarstellung. HTML-,und PHP-Highlighting schlie&#223;en sich leider gegenseitig aus. Schlimmer als das fehlende Hightlighting ist aber, da&#223; ich im PHP-Modus auf einmal nicht mehr schnell HTML und CSS mit Codevervollst&#228;ndigung schreiben kann. Das w&#228;re das Gegenteil von Rapid Prototypíng.</p>
<h4>Problem erkannt und umgangen</h4>
<p>Anstatt nun lange im Netz nach einer L&#246;sung zu suchen, habe ich das Problem umgangen. Die gefundene L&#246;sung hat sowohl einen Vor- als auch einen Nachteil f&#252;r mich und meinen <span lang="en">Workflow</span>: ich erzeuge eine neue Seite, in der sich haupts&#228;chlich HTML und ein paar <span lang="en">PHP-Includes</span> befinden. Der Nachteil ist, da&#223; ich eine weitere Seite erzeuge. Der Vorteil ist, da&#223; ich so den <span lang="en">Content</span> komplett in eine eigene Datei auslagern und somit auch schnell in ein anderes Projekt kopieren kann. Ich konzentriere mich am Ende nur auf den <span lang="en">Content</span> und blende alles andere aus.</p>
<h3>Der Aufbau meines Starterkit</h3>
<p>Mein Starterkit hat schon ohne eine einzige Seite einen komplexen Inhalt zu bieten. Als Standard habe ich eine Startseite und eine Testseite mit allen wichtigen semantischen Elementen als Grundausstattung auf der obersten Ebene. Eine solche Testdatei kann man immer gebrauchen, weil man schlie&#223;lich irgendwann die Inhaltselemente einer Seite gestalten muss und sie dann auf einen Blick in einer Seite vor sich hat. Hinzu kommen die Ordner &#8220;css&#8221;, &#8220;images&#8221;, &#8220;inc&#8221;, &#8220;js&#8221; und &#8220;yaml&#8221;. Im Ordner &#8220;yaml&#8221; befinden sich nur die Kerndateien des <span lang="en">Frameworks</span>, verteilt auf die Ordner &#8220;core&#8221; und &#8220;patches&#8221;. Es sind diese Dateien, die ich nie ver&#228;ndere, h&#246;chstens mit einer neuen Version &#252;berschreibe.</p>
<h4>Ein paar Screenshots</h4>
<ul class="imagelist">
<li><a href="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/css-ordner.gif" class="cboxElement" rel="screenshots"><img src="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/icons/css.gif" alt="Hier klicken, um eine vergr&#246;&#223;erte Ansicht des Verzeichnisses 'css' zu bekommen." /></a></li>
<li><a href="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/inc-pages.gif" class="cboxElement" rel="screenshots"><img src="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/icons/inc.gif" alt="Hier klicken, um eine vergr&#246;&#223;erte Ansicht des Verzeichnisses 'inc' zu bekommen." /></a></li>
<li><a href="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/pages-inc-erweitert.gif" class="cboxElement" rel="screenshots"><img src="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/icons/inc2.gif" alt="Hier klicken, um noch eine vergr&#246;&#223;erte Ansicht des Verzeichnisses 'inc' zu bekommen." /></a></li>
<li><a href="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/js-ordner.gif" class="cboxElement" rel="screenshots"><img src="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/icons/js.gif" alt="Hier klicken, um eine vergr&#246;&#223;erte Ansicht des Verzeichnisses 'js' zu bekommen." /></a></li>
<li><a href="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/pages-inc-erweitert2.gif" class="cboxElement" rel="screenshots"><img src="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/icons/pages.gif" alt="Hier klicken, um eine vergr&#246;&#223;erte Ansicht des Verzeichnisses 'pages' zu bekommen." /></a></li>
<li><a href="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/yaml-core.gif" class="cboxElement" rel="screenshots"><img src="http://grochtdreis.de/weblog/wp-content/uploads/starterkit-artikel/icons/yaml.gif" alt="Hier klicken, um eine vergr&#246;&#223;erte Ansicht des Verzeichnisses 'yaml' zu bekommen." /></a></li>
</ul>
<div class="box1 toggle">
<h3>Die grobe Dateiliste</h3>
<ul class="dateistruktur">
<li class="datei">index.php</li>
<li class="datei">testseite.php</li>
<li class="ordner">css
<ul>
<li class="datei">layout.css</li>
<li class="ordner">navigation
<ul>
<li class="datei">nav_horizontal.css</li>
<li class="datei">nav_shinybutton.css</li>
<li class="datei">nav_slidingdoor.css</li>
<li class="datei">nav_vlist.css</li>
<li class="ordner">images</li>
</ul>
</li>
<li class="ordner">patches</li>
<li class="ordner">print</li>
<li class="ordner">screen
<ul>
<li class="datei">basemod.css</li>
<li class="datei">forms.css</li>
<li class="datei">forms-layout.css</li>
<li class="datei">microformats.css</li>
<li class="datei">tabs.css</li>
<li class="ordner">basemods</li>
<li class="ordner">images</li>
</ul>
</li>
</ul>
</li>
<li class="ordner">images
<ul>
<li class="ordner">dummybilder</li>
<li class="ordner">gfxborder</li>
<li class="datei">bg_blue.png</li>
</ul>
</li>
<li class="ordner">inc
<ul>
<li class="datei">footer.inc</li>
<li class="datei">header.inc</li>
<li class="datei">mainnavigation.inc</li>
<li class="datei">skiplinks.inc</li>
<li class="datei">template.inc</li>
<li class="ordner">pages</li>
</ul>
</li>
<li class="ordner">js</li>
<li class="ordner">yaml
<ul>
<li class="ordner">core
<ul>
<li class="datei">base.css</li>
<li class="datei">iehacks.css</li>
<li class="datei">slim_base.css</li>
<li class="datei">slim_iehacks.css</li>
<li class="ordner">js</li>
</ul>
</li>
<li class="ordner">patches
<ul>
<li class="datei">patch_layout_draft.css</li>
<li class="datei">patch_nav_vlist.css</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<h4>Der Ordner &#8220;css&#8221;</h4>
<p>Im Ordner &#8220;css&#8221; befindet sich auf der obersten Ebene die Datei &#8220;layout.css&#8221;. Sie bindet alle YAML- und eigenen CSS-Dateien mittels <code>@import</code> ein. Im Ordner befinden sich noch die Ordner &#8220;navigation&#8221;, &#8220;patches&#8221;, &#8220;print&#8221; und &#8220;screen&#8221;.</p>
<p>In &#8220;navigation&#8221; sammele ich CSS-Dateien, die unterschiedliche horizontale und vertikale Navigationen aus derselben Codebasis erstellen. Indem ich immer wieder neue Beispiele erstelle und sammele bin ich schnell bereit, wenn ich eine bestimmte Form der Navigation ben&#246;tige. Falls f&#252;r diese Navigationen Bilder notwendig sein sollten, werden sie hier im Unterorder &#8220;images&#8221; abgelegt. Im Ordner &#8220;patches&#8221; befinden sich eine oder mehrere IE-spezifische Dateien. In &#8220;print&#8221; befindet sich nat&#252;rlich die Datei f&#252;r die Druckausgabe. Ich habe hier alle Dateien abgelegt, die Dirk Jesse mit seinen Beispielen zur Verf&#252;gung stellt. Sie sind eine prima Ausgangsbasis f&#252;r mich.</p>
<p>In &#8220;screen&#8221; geschieht die meiste Arbeit. Hier wird meine jeweilige &#8220;basemod.css&#8221; (die entwicklungsabh&#228;ngige Modifizierung der &#8220;base&#8221;) abgelegt, also die optische Finalisierung meines jeweiligen Projektes. Hinzu kommt die &#8220;forms.css&#8221;, also die Datei f&#252;r den Formularbaukasten. Dirks Vorschl&#228;ge f&#252;r deren Optik habe ich aus der &#8220;forms.css&#8221; herausgenommen und in eine &#8220;forms-layout.css&#8221; gepackt. Dort kann ich dann gezielt an der Optik schrauben. Die &#8220;forms.css&#8221; lasse ich unver&#228;ndert. Meinem Verst&#228;ndnis nach k&#246;nnte sie sp&#228;ter zu den Core- Dateien von YAML wandern. Bis dies nicht im Projekt so geschieht, werde ich meine Sortierung beibehalten. Auch die bei YAML mitgelieferten CSS-Dateien f&#252;r Mikroformate und die &#8220;<span lang="en">jQuery</span>- Tabs&#8221; stecken genauso in diesem Ordner, wie Dirks erster Gestaltungsvorschlag (&#8220;content.css&#8221;). Sollten in diesen CSS-Dateien Bilder verkn&#252;pft sein, befinden sie sich im Unterordner &#8220;images&#8221;.</p>
<p>Mit YAML kommen viele Anwendungsbeispiele. Dirk Jesse hat f&#252;r jedes eine eigene &#8220;basemod.css&#8221; erstellt, die vor allem f&#252;r das Arrangement der drei Hauptspalten sorgt. Alle diese basemod-Dateien habe ich in einen eigenen Unterordner gepackt. Wenn ich also ein 3-Spalten-Layout mit der Anordnung &#8220;3-2-1&#8243; erstelle 	(mit der Containerabfolge div#content3, div#content2, div#content1), dann binde ich in der &#8220;layout.css&#8221; die Datei &#8220;basemod_3-2-1.css&#8221; im Unterordner &#8220;basemod&#8221; ein und ich habe damit schon die grunds&#228;tzliche Ausrichtung geschafft. Ich erspare mir durch diese Vorarbeit das l&#228;stige Suchen.</p>
<h4>Der Ordner &#8220;images&#8221;</h4>
<p>In den Ordner &#8220;images&#8221; kommen vor allem Bilder, die im Content genutzt werden. Alle &#252;ber CSS-Dateien eingebundenen Bilder sollten &#252;ber den jeweiligen Unterordner bei den CSS-Dateien selber eingebunden werden. Durch eine solche Trennung habe ich vor allem bei den diversen CSS-Dateien einen gro&#223;en Vorteil, weil ich einzelne Elemente schnell zwischen Projekten austauschen kann. Es steigert zudem die &#220;bersichtlichkeit. Sie ist auch der Grund f&#252;r die diversen Unterordner.</p>
<h4>Der Ordner &#8220;js&#8221;</h4>
<p>Im Ordner &#8220;js&#8221; befinden sich neben der aktuellen <span lang="en">jQuery</span>-Datei eine kleine Sammlung von <span lang="en">jQuery-Plugins</span>, deren Nutzung mir sinnvoll erscheint. Sie m&#252;ssen immer wieder aktualisert werden. Da w&#228;hrend meiner Entwicklungszeit <span lang="en">Performance</span>faktoren unwichtig sind, binde ich <span lang="en">jQuery</span> nicht &#252;ber ein <acronym title="Content Delivery Network">CDN</acronym> ein, weshalb ich die relevanten Dateien auch lokal vorhalte.</p>
<h4>Der Ordner &#8220;inc&#8221;</h4>
<p>In diesem Ordner sind auf der obersten Ebene das <span lang="en">Template</span> und alle ausgelagerten Seitenbestandteile, also vor allem der &#8220;<span lang="en">Footer</span>&#8220;, der &#8220;<span lang="en">Header</span>&#8221; und die jeweiligen Navigationen. Wichtig ist der Unterordner &#8220;<span lang="en">pages</span>&#8220;. In ihm befinden sich die eigentlichen Inhalte der Seiten. Im Unterordner &#8220;<span lang="en">pages</span>&#8221; kann sich ein weiterer &#8220;inc&#8221;-Ordner befinden, falls ich Seitenbestandteile auslagern und h&#228;ufiger nutzen m&#246;chte. Das ist besonders bei <span lang="en">Teasercontainern</span> oder kleinen Kalendern u.&#228;. der Fall.</p>
<h3>Benennungsrichtlinie</h3>
<p>Der hier skizzierte Aufbau meines Starterkits funktioniert nur deshalb im Editor reibungslos und ohne Fehler, weil ich die Rahmenseite und die Inhaltsseite &#228;hnlich aber in einem Detail trotzdem unterschiedlich benenne. Eine Datei &#8220;testseite.php&#8221; ist mehr oder minder eine Steuerdatei. Riefe ich sie allein auf, bek&#228;me ich das Rahmen<span lang="en">template</span> und vielleicht die Seiten&#252;berschrift zu sehen. Aber wahrscheinlich nicht einmal die. Die eigentlichen Inhalte befinden sich im Unterordern &#8220;inc/<span lang="en">pages</span>&#8221; in der Datei &#8220;testseite.php.inc&#8221;. Ich habe die Dateiendung &#8220;inc&#8221; aus zweierlei Gr&#252;nden angef&#252;gt: Erstens ist es verbreitete Konvention, eine <span lang="en">Include</span>-Datei mit dieser Endung zu versehen. Und zweitens habe ich so in den Reitern meines Editors eine deutliche Unterscheidung der beiden Dateien, die ich sonst nur &#252;ber Umwege bek&#228;me. Ich m&#246;chte mir ja die Arbeit erleichtern und nicht verkomplizieren.</p>
<p>In der <span lang="en">Template</span>datei ist das eine klitzekleine Abfrage via PHP nach dem Namen der Datei und einer kleinen Stringoperation, mit der ich die Dateiendung &#8220;inc&#8221; anf&#252;ge:</p>
<pre><code>&lt;?php
  $dateiname = basename($_SERVER['PHP_SELF']);
  include_once 'inc/pages/'.$dateiname.'.inc';
?></code></pre>
<h3>Rudiment&#228;res <span lang="en">Template</span></h3>
<p>Das <span lang="en">Template</span> soll m&#246;glichst global f&#252;r alle Projekte und f&#252;r alle Seiten eines Projektes funktionieren. Deshalb definiert es nur einen kleinen Rahmen und definiert keine Inhaltsspalten. Einzig die bei YAML immer genutzten Container &#8220;.<span lang="en">page_margins</span>&#8220;, &#8220;.<span lang="en">page</span>&#8221; und &#8220;#<span lang="en">main</span>&#8221; bleiben erhalten. Was sich innerhalb von &#8220;#<span lang="en">main</span>&#8221; abspielt ist Sache der jeweiligen <span lang="en">Includes</span>. Ich k&#246;nnte das Template f&#252;r die Zukunft auch soweit aufbohren, mit einer <span lang="en">switch-case</span>-Abfrage unterschiedliche Unterstrukturen zuzuweisen. Doch ich habe mich dagegen entschieden, da ich mittels <span lang="en">Textmate-Snippets</span> sehr fix eine Grundstruktur in eine Datei einf&#252;gen kann. Ich halte dadurch alle Strukturierungsgedanken aus dem <span lang="en">Template</span> heraus, das damit ganz global nutzbar bleibt. Mit unterschiedlichen Grundstrukturen in einer Abfrage im Template w&#252;rde es entweder projektspezifisch werden oder so aufgebl&#228;ht, da&#223; ich &#8211; und vor allem mein Kunde &#8211; den Code nicht mehr schell &#252;berblicken kann. </p>
<h3>Das <span lang="en">Template</span></h3>
<p>Nun habe ich schon einiges &#252;ber das knappe <span lang="en">Template</span> geschrieben, da ist es auch recht und billig, den Code zu zeigen. Ich habe bewu&#223;t  <code>meta</code>-<span lang="en">Tags</span> ausgespart, denn da ich im wesentlichen <span lang="en">Templates</span> erstelle, ben&#246;tige ich sie nicht. F&#252;r die eventuelle produktive Nutzung habe ich Kommentare &#252;ber die Nutzung von <span lang="en">jQuery</span> via <acronym title="Content Delivery Network">CDN</acronym> hinzugef&#252;gt.</p>
<pre><code>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
&lt;head>
&lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" />
&lt;title>&lt;?php if (isset($seitentitel)) {echo $seitentitel;} else { echo "Platzhalter f&#252;r einen Seitentitel";} ?>&lt;/title>
&lt;!-- JavaScript Detection -->
&lt;script type="text/javascript">document.documentElement.className += " js";&lt;/script>
&lt;!-- add your meta tags here -->
&lt;link href="./css/layout.css" rel="stylesheet" type="text/css" />
&lt;?php if(isset($additionalCSS)) {echo $additionalCSS;} ?>
&lt;!--[if lte IE 7]>
	&lt;link href="./css/patches/patch_my_layout.css" rel="stylesheet" type="text/css" />
&lt;![endif]-->
&lt;/head>
&lt;body&lt;?php if (isset($bodyid)){ echo ' id="'.$bodyid.'"';} ?>>
 &lt;!-- begin: skip link navigation -->
 &lt;?php include_once $skiplinks ?>
 &lt;!-- end: skip link navigation -->
 &lt;div class="page_margins">
  &lt;div class="page">
   &lt;!--  begin: header -->
   &lt;?php include 'header.inc' ?>
   &lt;!--  end: header-->
   &lt;!-- begin: main navigation #nav -->
   &lt;?php //include 'mainnavigation.inc' ?>
   &lt;!-- end: main navigation -->
   &lt;!-- begin: content area #main -->
   &lt;div id="main">
    &lt;?php
     $dateiname = basename($_SERVER['PHP_SELF']);
     include_once 'inc/pages/'.$dateiname.'.inc';
    ?>
   &lt;/div>
   &lt;!-- end: #main -->
   &lt;!-- begin: #footer -->
   &lt;?php include 'footer.inc' ?>
   &lt;!--  end: #footer -->
  &lt;/div>
 &lt;/div>

&lt;!-- F&#252;r bessere Performance werden die Skripte erst hier unten geladen. -->
&lt;!-- Siehe: http://www.webkrauts.de/2008/12/14/sehr-sehr-schnelle-seiten-website-performance-best-practice-teil-2/ -->

&lt;!-- Sp&#228;ter im Produktionsprozess kann man <span lang="en">jQuery</span> &#252;ber Google-Code nutzen. -->
&lt;!-- &lt;script src="http://ajax.googleapis.com/ajax/libs/<span lang="en">jQuery</span>/1.4.2/<span lang="en">jQuery</span>.min.js" type="text/javascript" charset="utf-8">&lt;/script> -->
&lt;!-- &lt;script src="http://ajax.googleapis.com/ajax/libs/<span lang="en">jQuery</span>ui/1.8.0/<span lang="en">jQuery</span>-ui.min.js" type="text/javascript" charset="utf-8">&lt;/script> -->

&lt;script src="./js/<span lang="en">jQuery</span>-1.4.2.min.js" type="text/javascript">&lt;/script>
&lt;script src="./js/scripts.js" type="text/javascript">&lt;/script> 

&lt;!-- full skiplink functionality in webkit <span lang="en">Browser</span>s -->
&lt;script src="./yaml/core/js/yaml-focusfix.js" type="text/javascript">&lt;/script>
&lt;?php if(isset($additionalJS)) {echo $additionalJS;} ?>
&lt;/body> &lt;!-- end: body -->
&lt;/html>
</code></pre>
<p>Ich habe bewu&#223;t zwei Bereiche integriert, in die ich individuelles CSS und Javascript einf&#252;gen kann. Das kann <span lang="en">inline</span> oder durch die Einbindung einer externen Datei geschehen, denn im Template ist nur Platz reserviert, keine Regeln f&#252;r die Verwendung des Platzes vorgegeben. Das <span lang="en">Template</span> kann man leicht erweitern. Doch vor zuviel Erg&#228;nzungen schrecke ich zur&#252;ck, weil ich die leichte und schnelle Umarbeitung als CMS-<span lang="en">Template</span> im Blick habe. </p>
<h3>Fazit</h3>
<p>Kern meiner Arbeitsweise sind drei Aspekte:</p>
<ol>
<li>Alle als Module identifizierbaren Einheiten werden soweit es geht in eine eigene Datei ausgelagert.</li>
<li>Zus&#228;tzlich werden Inhalte werden in eine eigene Datei.</li>
<li>Einzell&#246;sungen werden m&#246;glichst verallgemeinert und gesammelt, soda&#223; mit der Zeit eine immer gr&#246;&#223;ere Ressource entsteht.</li>
</ol>
<p>Die Auslagerung von Dateien erleichtert die Erstellung von Templates und beschleunigt die Erstellung neuer Seiten.</p>
]]></content:encoded>
			<wfw:commentRss>http://grochtdreis.de/weblog/2010/04/27/ein-blick-in-meinen-entwicklungsprozess/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
	</channel>
</rss>

