<?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>materi design – Web Frontend Design &#38; Entwicklung&#187; materi design &mdash; Web Frontend Design &amp; Entwicklung</title>
	<atom:link href="http://materidesign.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://materidesign.de</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Mon, 23 Aug 2010 19:02:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=abc</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Einfaches Website Deployment mit Github und&#160;Pushmaster</title>
		<link>http://materidesign.de/einfaches-website-deployment-mit-github-und-pushmaster/</link>
		<comments>http://materidesign.de/einfaches-website-deployment-mit-github-und-pushmaster/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 12:13:13 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[productivity]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://materidesign.de/?p=659</guid>
		<description><![CDATA[<p>Wer seine Website lokal entwickelt und den Quellcode auf Github verwaltet, ist mit folgendem Ablauf bestens vertraut:</p>
<ul>
<li><strong>Lokale</strong> &#196;nderungen am Quellcode werden &#252;ber <strong>git push</strong> in das Github-Repository eingepflegt und </li>
<li>der Quellcode auf dem <strong>Deployment</strong>-Server &#252;ber eine <strong>SSH-Verbindung</strong> mit einem <strong>git pull</strong> aktualisiert.</li>
</ul>
<p>Dieser Prozess l&#228;sst&#8230;</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Wer seine Website lokal entwickelt und den Quellcode auf Github verwaltet, ist mit folgendem Ablauf bestens vertraut:</p>
<ul>
<li><strong>Lokale</strong> &Auml;nderungen am Quellcode werden &uuml;ber <strong>git push</strong> in das Github-Repository eingepflegt und </li>
<li>der Quellcode auf dem <strong>Deployment</strong>-Server &uuml;ber eine <strong>SSH-Verbindung</strong> mit einem <strong>git pull</strong> aktualisiert.</li>
</ul>
<p>Dieser Prozess l&auml;sst sich mit Deployment-Helfern wie 
<a  href="http://rubyhitsquad.com/Vlad_the_Deployer.html" onclick="javascript:pageTracker._trackPageview('/external/rubyhitsquad.com/Vlad_the_Deployer.html');" >Vlad</a> oder 
<a  href="http://www.capify.org/" onclick="javascript:pageTracker._trackPageview('/external/www.capify.org/');" >Capistrano</a> nat&uuml;rlich automatisieren. Diese Helfer m&uuml;ssen allerdings vorher aufwendig konfiguriert werden und kommen daher nicht f&uuml;r jedes Projekt in Frage.</p>
<p>Wer seinen Quellcode auf dem Server nur schnell aktualisieren lassen m&ouml;chte, kann auf <strong>Pushmaster</strong> zur&uuml;ckgreifen. Die 
<a  href="http://www.sinatrarb.com/" onclick="javascript:pageTracker._trackPageview('/external/www.sinatrarb.com/');" >Sinatra</a>-Anwendung l&auml;uft auf dem eigenen Deployment-Server (z.B. &uuml;ber Apache/Passenger) und wartet auf ein Signal (
<a  href="http://github.com/guides/post-receive-hooks" onclick="javascript:pageTracker._trackPageview('/external/github.com/guides/post-receive-hooks');" >Post-Receive Hook</a>) von Github, um anschlie&szlig;end den <strong>git pull</strong>-Befehl selbst&auml;ndig auszuf&uuml;hren.</p>
<div class="box">
<h3 class="first">Installation</h3>
<h4>Sinatra&nbsp;installieren</h4>
<p>Pushmaster ist eine Sinatra-Anwendung und ben&ouml;tigt daher die Sinatra-Bibliotheken.</p>
<p>Diese installiert man &uuml;ber den Ruby-Paket Manager <strong>gems</strong><br />
 <span class="sidenote">Die aktuelle 
<a title="Ruby Gems Downloads auf RubyForge"  href="http://rubyforge.org/frs/?group_id=126" onclick="javascript:pageTracker._trackPageview('/external/rubyforge.org/frs/');" >Ruby Gems Version</a> kann man von der RubyForge Seite beziehen. Eine 
<a  href="http://rubygems.org/read/chapter/3" onclick="javascript:pageTracker._trackPageview('/external/rubygems.org/read/chapter/3');" >Installationsaleitung</a> findet man im User Guide.</span></p>
<pre class="brush: plain">sudo gem install sinatra</pre>
<h4>Pushmaster auf dem eigenen Server&nbsp;einrichten.</h4>
<p>Den Quellcode von Pushmaster bezieht man von der 
<a title="Pushmaster auf Github"  href="http://github.com/augustl/pushmaster/tree/master" onclick="javascript:pageTracker._trackPageview('/external/github.com/augustl/pushmaster/tree/master');" >Github-Projektseite</a> oder direkt durch:</p>
<pre class="brush: plain">git clone git://github.com/augustl/pushmaster.git</pre>
<p>Anschlie&szlig;end richtet man f&uuml;r den Zugriff auf Pushmaster eine Subdomain ein:</p>
<pre class="brush: plain">pushmaster.meinedomain.de</pre>
<p>und leitet diese auf das Unterverzeichnis &#8220;public&#8221; der Pushmaster-Installation<br />
 :</p>
<pre class="brush: plain">public_html/pushmaster.meinedomain.de/public</pre>
<p>Damit der eigene Webserver Pushmaster ausf&uuml;hren kann, ben&ouml;tigt man einen 
<a title="Ruby Webserver Interface"  href="http://rack.rubyforge.org/" onclick="javascript:pageTracker._trackPageview('/external/rack.rubyforge.org/');" >Rack</a>-kompatiblen Webserver. Wer Apache 2 einsetzt, kann hier auf 
<a  href="http://www.modrails.com/" onclick="javascript:pageTracker._trackPageview('/external/www.modrails.com/');" >Passanger</a> (mod_rails) zur&uuml;ckgreifen. <span class="sidenote">Eine Anleitung um Passanger mit dem Apache 2-Server zu verbinden, findet man in der 
<a  href="http://www.modrails.com/install.html" onclick="javascript:pageTracker._trackPageview('/external/www.modrails.com/install.html');" >Passenger-Installationsanleitung</a>.</span></p>
<p>Damit der Zugriff auf Pushmaster Unbefugten vorenthalten bleibt, erstellt man im Pushmaster-Hauptverzeichnis eine Datei Namens <strong>settings.yml</strong> und tr&auml;gt dort einen <strong>Benutzernamen</strong> und das zugeh&ouml;rige <strong>Passwort</strong> folgenderma&szlig;en ein:</p>
<pre class="brush: plain">username: pushmaster
password: secret
</pre>
<p>Als n&auml;chstes teilt man Pushmaster mit, welches Github-Repository aktualisiert werden soll. Dazu erstellt man im Unterverzeichnis <strong>Listeners</strong> eine <strong>Datei mit dem Namen des Repositories</strong> und der ruby-typischen Dateiendung <strong>.rb</strong>:</p>
<pre class="brush: plain">pushmaster.meinedomain.de/listeners/[name_des_repositories].rb</pre>
<p>Eine typische<strong> Listener-Datei </strong>in Pushmaster sieht folgenderma&szlig;en aus: <span class="sidenote">In der Listener-Datei kann normaler Ruby-Code verwendet werden.</span></p>
<pre class="brush: ruby">Dir.chdir "/public_html/meinedomain.de/public" do
git "pull"
touch "tmp/restart.txt"
end
</pre>
<h4>Funktionsweise von&nbsp;Pushmaster</h4>
<ul>
<li>Zun&auml;chst wird in das Verzeichnis des Website-Projektes gewechselt.</li>
<li>Anschlie&szlig;end aktualisiert Pushmaster durch ein <strong>git pull</strong> den Quellcode des Projektes.</li>
<li>Zum Schluss wird Apache2/Passenger mitgeteilt, dass beim n&auml;chsten Aufruf die Sinatra-Anwendung neugestartet werden soll. Dieser Schritt ist optional.</li>
</ul>
<p>Wer weitere Operationen durchf&uuml;hren lassen m&ouml;chte, kann auf die Ruby-Syntax ( und folgende, durch die Pushmaster-DSL zur Verf&uuml;gung gestellten Funktionen zur&uuml;ckgreifen:</p>
<ul>
<li>git — f&uuml;hrt einen git-Befehl aus</li>
<li>touch — erstellt eine Datei</li>
<li>run — f&uuml;hrt ein System-Kommando aus</li>
<li>log — Erstellt ein Logfile unter log/name_des_repositories.log</li>
</ul>
<h4>Github&nbsp;konfigurieren</h4>
<p>Pushmaster reagiert auf den Post-Receive Service Hook von Github. Diesen richtet man folgenderma&szlig;en ein:</p>
<p>Projekteseite auf Github → Admin → Service Hooks → Post-Receive-URLs → URL:</p>
<pre class="brush: plain">http://username:password@pushmaster.meinedomain.de
</pre>
<p>Nun speichert man die &Auml;nderungen mit <strong>Update Settings</strong></p>
<p>Nach einem erfolgreichen <strong>git push</strong> auf dem lokalen Entwicklungs-Server kontaktiert Github &uuml;ber die Post-Receive-URL Pushmaster und dieser f&uuml;hrt auf dem Deploymentserver ein <strong>git pull</strong> aus.</p>
<p>Damit ist die Installation von Pushmaster abgeschlossen.</p>
<h4>Stolpersteine</h4>
<h5>Schreibrechte</h5>
<p>Damit Pushmaster das Repository auf dem Deployment-Server aktualisieren kann, ben&ouml;tigt der Apache 2-Benutzer die notwendigen Schreibrechte. Sind der Benutzer des Website-Projektes und der Apache 2-Benutzer in der selben Gruppe, ist ein <strong>chmod 755</strong> auf das Repository ausreichend.</p>
<h5>Versionsprobleme mit Passenger</h5>
<p>Pushmaster ben&ouml;tigt mindestens die <strong>Version 2.2.2</strong> von Passenger. <span class="sidenote">Passenger liegt aktuell (26.06.09) in der Version<strong> 2.2.4</strong> vor.</span>Beim Versions-Update sollte man unbedingt darauf achten, dass Apache 2 nicht auf die alte gem-Version zugreift.</p>
<p>Wichtig sind hier folgende Zeilen, die w&auml;hrend der <strong>Passenger-Installation</strong> und <strong>nach einem Update</strong> in die <strong>Apache 2-Konfiguration</strong> eingef&uuml;gt werden m&uuml;ssen:</p>
<pre class="brush: plain">LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2
PassengerRuby /usr/bin/ruby1.8
</pre>
</div>
<!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/einfaches-website-deployment-mit-github-und-pushmaster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drupal 7 Installation im Usability&#160;Test</title>
		<link>http://materidesign.de/drupal-7-installation-im-usability-test/</link>
		<comments>http://materidesign.de/drupal-7-installation-im-usability-test/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 17:19:54 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[drupal7ux]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=359</guid>
		<description><![CDATA[<p>3 interessante Videos auf Youtube (insgesamt  etwa 20 min lang), die den Installationsprozess von Drupal 7 aus der Sicht zweier Drupal-Neulinge zeigen.</p><p>
Die Tester versuchen, die Installation abzuschlie&#223;en und einen Artikel zu ver&#246;ffentlichen. Dabei ist ihnen der Unterschied zwischen einem Artikel (in Drupal "Story" genannt) und einer Seite ("Page") nicht sofort ersichtlich. Sie entscheiden sich f&#252;r eine Seite und sind anschlie&#223;end mit dem Problem konfrontiert, die neue Seite als Startseite einzurichten, bzw. einen Link im Hauptmen&#252; hinzuzuf&#252;gen.</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>3 interessante Videos auf Youtube (insgesamt  etwa 20 min lang), die den Installationsprozess von Drupal 7 aus der Sicht zweier Drupal-Neulinge zeigen.</p>
<p>Die Tester versuchen, die Installation abzuschlie&szlig;en und einen Artikel zu ver&ouml;ffentlichen. Dabei ist ihnen der Unterschied zwischen einem Artikel (in Drupal &#8220;Story&#8221; genannt) und einer Seite (&#8221;Page&#8221;) nicht sofort ersichtlich. Sie entscheiden sich f&uuml;r eine Seite und sind anschlie&szlig;end mit dem Problem konfrontiert, die neue Seite als Startseite einzurichten, bzw. einen Link im Hauptmen&uuml; hinzuzuf&uuml;gen.</p>
<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/7uSsnls16q0&#038;hl=de&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/7uSsnls16q0&#038;hl=de&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>
<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/A-T1GrJ36yU&#038;hl=de&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/A-T1GrJ36yU&#038;hl=de&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object>
<object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/bpYz9y4bhTE&#038;hl=de&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/bpYz9y4bhTE&#038;hl=de&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/drupal-7-installation-im-usability-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programmierbare CSS-Layouts mit CSScaffold und CSS&#160;Cacheer</title>
		<link>http://materidesign.de/programmierbare-css-layouts-mit-csscaffold-und-css-cacheer/</link>
		<comments>http://materidesign.de/programmierbare-css-layouts-mit-csscaffold-und-css-cacheer/#comments</comments>
		<pubDate>Fri, 27 Mar 2009 23:53:35 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[frameworks]]></category>
		<category><![CDATA[grids]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=335</guid>
		<description><![CDATA[<p>Mit <a href="http://anthonyshort.com.au/blog/comments/video-an-introduction-to-csscaffold/">CSScaffold</a> versucht <a href="http://anthonyshort.com.au/">Anthony Short,</a> den <a href="http://macx.de/journal/warum-css-frameworks-fur-mich-keinen-sinn-machen/" title="Warum CSS-Frameworks f&#252;r mich keinen Sinn machen - macx.de">nicht</a> ganz <a href="http://ajaxian.com/archives/should-we-use-css-frameworks" title="Should we use CSS Framworks">unumstrittenen</a> Produktivit&#228;tsgewinn <a href="http://www.yaml.de/" title="YAML">popul&#228;rer <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks</a> mit der dynamischen Programmierbarkeit von <a href="http://www.shauninman.com/archive/2008/05/30/check_out_css_cacheer">CSS Cacheer</a> zu vereinen.</p>
<p>CSScaffold soll <em>flexible</em> und <em>programmierbare</em> CSS Layouts erm&#246;glichen und l&#228;sst sich auf der <a href="http://github.com/anthonyshort/csscaffold/tree/master" title="CSScaffold Github Projektseite">CSScaffold Github Projektseite &#8250;</a> herunterladen.</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Mit 
<a  href="http://anthonyshort.com.au/blog/comments/video-an-introduction-to-csscaffold/" onclick="javascript:pageTracker._trackPageview('/external/anthonyshort.com.au/blog/comments/video-an-introduction-to-csscaffold/');" >CSScaffold</a> versucht 
<a  href="http://anthonyshort.com.au/" onclick="javascript:pageTracker._trackPageview('/external/anthonyshort.com.au/');" >Anthony Short,</a> den 
<a  href="http://macx.de/journal/warum-css-frameworks-fur-mich-keinen-sinn-machen/" title="Warum CSS-Frameworks f&uuml;r mich keinen Sinn machen - macx.de" onclick="javascript:pageTracker._trackPageview('/external/macx.de/journal/warum-css-frameworks-fur-mich-keinen-sinn-machen/');" >nicht</a> ganz 
<a  href="http://ajaxian.com/archives/should-we-use-css-frameworks" title="Should we use CSS Framworks" onclick="javascript:pageTracker._trackPageview('/external/ajaxian.com/archives/should-we-use-css-frameworks');" >unumstrittenen</a> Produktivit&auml;tsgewinn 
<a  href="http://www.yaml.de/" title="YAML" onclick="javascript:pageTracker._trackPageview('/external/www.yaml.de/');" >popul&auml;rer <acronym title="Cascading Style Sheets">CSS</acronym>-Frameworks</a> mit der dynamischen Programmierbarkeit von 
<a  href="http://www.shauninman.com/archive/2008/05/30/check_out_css_cacheer" onclick="javascript:pageTracker._trackPageview('/external/www.shauninman.com/archive/2008/05/30/check_out_css_cacheer');" >CSS Cacheer</a> zu vereinen.</p>
<p>CSScaffold soll <em>flexible</em> und <em>programmierbare</em> CSS Layouts erm&ouml;glichen und l&auml;sst sich auf der 
<a  href="http://github.com/anthonyshort/csscaffold/tree/master" title="CSScaffold Github Projektseite" onclick="javascript:pageTracker._trackPageview('/external/github.com/anthonyshort/csscaffold/tree/master');" >CSScaffold Github Projektseite &rsaquo;</a> herunterladen.</p>
<p>Dabei sollen die Vorteile von CSS-Cacheer (<em>Konstanten</em>, <em>Caching</em>, <em>Server-Imports</em>, <em>Grids</em>, <em>CSS-Formatierung</em> und <em>Erweiterbarkeit durch Plugins</em>)  mit folgenden Funktionen kombiniert werden:</p>
<ul>
<li>Eigenschaften wie Kolumnenraster, Spaltenraster, usw. lassen sich variabel angeben.</li>
<li>Automatisch generiertes Bild des Gestaltungsrasters</li>
<li>Eingebautes 
<a  href="http://csstidy.sourceforge.net/" onclick="javascript:pageTracker._trackPageview('/external/csstidy.sourceforge.net/');" >CSSTidy</a></li>
<li>Optimierung und S&auml;uberung des CSS-Quellcodes</li>
<li>Ausf&uuml;hren einfacher mathematischer Berechnungen</li>
<li>weitere Funktionen lassen sich in der 
<a  href="http://wiki.github.com/anthonyshort/csscaffold" title="CSScaffold Dokumentation" onclick="javascript:pageTracker._trackPageview('/external/wiki.github.com/anthonyshort/csscaffold');" >CSScaffold Dokumentation </a> nachlesen.</a></li>
</ul>
 <p>Wer sich schonmal einen ersten Eindruck &uuml;ber die Funktionsweise verschaffen m&ouml;chte, sollte unbedingt den 8 min&uuml;tigen Screencast anschauen:</p>
<object width="560" height="392"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2866798&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=3054A5&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=2866798&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=3054A5&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="560" height="392"></embed></object><br />
<a  href="http://vimeo.com/2866798" onclick="javascript:pageTracker._trackPageview('/external/vimeo.com/2866798');" >CSScaffold Einf&uuml;hrung</a> von 
<a  href="http://vimeo.com/user1084293" onclick="javascript:pageTracker._trackPageview('/external/vimeo.com/user1084293');" >Anthony Short</a> auf 
<a  href="http://vimeo.com" onclick="javascript:pageTracker._trackPageview('/external/vimeo.com');" >Vimeo</a>.<br /><br />
<p class="info">Die HD Version ist um einiges sch&auml;rfer und l&auml;sst sich nur auf der 
<a  href="http://vimeo.com/2866798?pg=embed&#038;sec=" onclick="javascript:pageTracker._trackPageview('/external/vimeo.com/2866798');" >Vimeo-Seite</a> anschauen</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/programmierbare-css-layouts-mit-csscaffold-und-css-cacheer/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS Cacheer: eine Alternative zu&#160;CSS-Sprites</title>
		<link>http://materidesign.de/css-cacheer-eine-alternative-zu-css-sprites/</link>
		<comments>http://materidesign.de/css-cacheer-eine-alternative-zu-css-sprites/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 19:26:22 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=222</guid>
		<description><![CDATA[<ul class="updates">
<li>
<p><span>26.03.2009</span>Die Base64-Kodierung funktioniert nicht unter Internet Explorer Version 6 und 7.<br />
<strong>Danke an die Moderatoren <a href="http://technikwuerze.de/das-team/#teammod_daj">Daniel</a> und <a href="http://technikwuerze.de/das-team/#teammod_sp">Sascha</a> von <a href="http://technikwuerze.de/podcast/technikwuerze130/">Technikw&#252;rze Folge 130</a> f&#252;r den Hinweis!</strong></p>
</li>
</ul>
<p>Mit CSS Cacheer k&#246;nnen u.a. Bilder durch eine Base64-Kodierung direkt in das Stylesheet eingebunden werden.</p><p>Damit l&#228;sst sich die Anzahl der <em>HTTP-Requests</em> verringern und der Seitenaufruf <em>beschleunigen</em>. Auf CSS-Sprites kann somit verzichtet werden.</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><div class="anchors">
<h3>Sprungmarken</h3>
<ul>
	<li>
<a  href="#csssprites">CSS-Sprites</a></li>
	<li>
<a  href="#base64">Base64-Kodierung</a></li>
	<li>
<a  href="#csscacheer">CSS Cacheer</a>
<ul>
	<li>
<a  href="#installation">Installation</a></li>
</ul>
</li>
	<li>
<a  href="#einsatz">CSS Cacheer im Einsatz</a>
<ul>
	<li>
<a  href="#erstezugriff">Der erste Zugriff durch den Browser</a></li>
	<li>
<a  href="#achtung">Worauf man achten sollte</a></li>
	<li>
<a  href="#plugins">Erweitung durch Plugins</a></li>
</ul>
</li>
</ul>
</div>
<div class="box emphasize updates"><h4>Updates</h4><h5>26.03.2009</h5><p>Die Base64-Kodierung funktioniert nicht unter Internet Explorer Version 6 und 7.
<strong>Danke an die Moderatoren 
<a  href="http://technikwuerze.de/das-team/#teammod_daj" onclick="javascript:pageTracker._trackPageview('/external/technikwuerze.de/das-team/?teammod_daj');" >Daniel</a> und 
<a  href="http://technikwuerze.de/das-team/#teammod_sp" onclick="javascript:pageTracker._trackPageview('/external/technikwuerze.de/das-team/?teammod_sp');" >Sascha</a> von 
<a  href="http://technikwuerze.de/podcast/technikwuerze130/" onclick="javascript:pageTracker._trackPageview('/external/technikwuerze.de/podcast/technikwuerze130/');" >Technikw&uuml;rze Folge 130</a> f&uuml;r den Hinweis!</strong></p></div>
<h3 id="csssprites">CSS-Sprites</h3>
<p>Wer viele Hintergrundbilder &uuml;ber CSS einbindet, muss ohne Optimierung mit ebensovielen HTTP-Requests rechnen. Um dies zu verhindern, greift man auf 
<a  href="http://www.alistapart.com/articles/sprites/" onclick="javascript:pageTracker._trackPageview('/external/www.alistapart.com/articles/sprites/');" >CSS-Sprites</a> zur&uuml;ck.
</p><span id="more-222"></span><p>
Der Aufwand diese zu erstellen, bzw. zu &auml;ndern ist jedoch meist nicht zu untersch&auml;tzen. Zwar gibt es 
<a  href="http://www.csssprites.com/" onclick="javascript:pageTracker._trackPageview('/external/www.csssprites.com/');" >Tools</a>, die einen dabei unterst&uuml;tzen. Der Gesamtaufwand bei &Auml;nderungen (andere Postition, zus&auml;tzlicher Hintergrund usw.) bleibt dennoch hoch.</p>
<h3><a name="base64"></a>Base64-Kodierung als&nbsp;Alternative</h3>
<p>Statt alle Hintergr&uuml;nde in eine gro&szlig;e Bild-Datei zu packen, lassen sich diese auch &uuml;ber eine 
<a title="Wikipedia-Artikel zur Base64-Kodierung"  href="http://de.wikipedia.org/wiki/Base64" onclick="javascript:pageTracker._trackPageview('/external/de.wikipedia.org/wiki/Base64');" >Base64-Kodierung</a> direkt in das Stylesheet integrieren. Das Bild wird dabei in eine 8-Bit Zeichenkette kodiert, die nur aus ASCII-Zeichen besteht. Der urspr&uuml;ngliche URL-Verweis im Stylesheet wird anschlie&szlig;end durch die generierte ASCII-Zeichenkette ersetzt.</p>
<div class="box emphasize">
<h4>Ein&nbsp;Beispiel</h4>
<h5>Ohne Base64-Kodierung</h5>
<pre class="brush: css">#branding h1 {
background: url(../images/branding.png) no-repeat;
}</pre>
<h5>Mit Base64-Kodierung</h5>
<p><small>(ASCII-Zeichenkette zur besseren Darstellung gek&uuml;rzt)</small>:</p>
<pre class="brush: css">#branding h1 {
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEU==)
}</pre>
</div>
<p>
Selbstverst&auml;ndlich ist das manuelle Ersetzen der Bilder durch die Zeichenkette sehr aufwendig. Durch einen Parser l&auml;sst sich der Prozess jedoch automatisieren. Die Hintergrundbilder im Stylesheet werden mithilfe des Parsers automatisch durch kodierte Zeichenketten ersetzt.</p>

<a class="up-link"  href="#main" rel="self">Nach oben &uarr;</a>
<h3 id="csscacheer">CSS Cacheer</h3>
<p>Einen solchen Parser hat 
<a  href="http://www.shauninman.com/" onclick="javascript:pageTracker._trackPageview('/external/www.shauninman.com/');" >Shaun Inman</a> entwickelt. Mit
<a title="Check Out CSS Cacheer"  href="http://www.shauninman.com/archive/2008/05/30/check_out_css_cacheer" onclick="javascript:pageTracker._trackPageview('/external/www.shauninman.com/archive/2008/05/30/check_out_css_cacheer');" > CSS Cacheer </a>stellt er einen m&auml;chtigen server-seitigen CSS Pre-Prozessor zur Verf&uuml;gung, der neben der Base64-Kodierung auch <em>Konstanten, Caching, Server-Import, Grids, CSS-Formatierung</em> und weitere, &uuml;ber Plugins bereitgestellte Erweiterungen, verf&uuml;gt.</p>
<p>
Da die Base64-Kodierung sehr CPU-lastig ist, wird das resultierende Stylesheet gecacht. Der Parser kommt erst bei einer &Auml;nderung des Stylesheets erneut zum Einsatz.</p>
<div class="box emphasize ">
<h4 id="installation">Installation</h4>
<p class="info">Vorausetzung f&uuml;r die Verwendung von CSS Cacheer ist ein lauff&auml;higer Apache 2-Webserver mit aktiviertem 
<a title="SELFHTML: Umleitungen mit mod_rewrite"  href="http://de.selfhtml.org/servercgi/server/rewrite.htm" onclick="javascript:pageTracker._trackPageview('/external/de.selfhtml.org/servercgi/server/rewrite.htm');" >mod_rewrite</a> Modul und Grundkentnisse im Umgang mit der Apache 2-Konfigurationsdatei. Informationen zur Apache 2-Konfiguration finden Sie z.B. bei 
<a  href="http://de.selfhtml.org/" onclick="javascript:pageTracker._trackPageview('/external/de.selfhtml.org/');" >SELFHTML</a> ( 
<a  href="http://aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf12.htm" onclick="javascript:pageTracker._trackPageview('/external/aktuell.de.selfhtml.org/artikel/server/apacheconf/apconf12.htm');" >Die Apache-Konfigurationsdatei: Apache 2 f&uuml;r Linux</a> ).</p>

<p>Zur Installation sind folgende Schritte notwendig:</p>
<ul class="steps">
	<li>
<a  href="#schritt1">Schritt 1:</a> Paket herunterladen und in den CSS-Ordner entpacken</li>
	<li>
<a  href="#schritt2">Schritt 2:</a> die Rewrite-Rules direkt in die Apache-Konfigurationsdatei einf&uuml;gen.</li>
</ul>
<h5><a name="schritt1"></a>Schritt 1</h5>
<p>Das Paket kann von Shaun Inman&#8217;s 
<a title="Check out CSS Cacheer"  href="http://www.shauninman.com/archive/2008/05/30/check_out_css_cacheer" onclick="javascript:pageTracker._trackPageview('/external/www.shauninman.com/archive/2008/05/30/check_out_css_cacheer');" >CSS-Cacheer Blog-Beitrag</a> heruntergeladen werden. Dort lassen sich auch detailierte Installationshinweise finden.</p>
<p>
Anschlie&szlig;end wird das Paket in den CSS-Ordner entpackt.</p>
<p>
Es befinden sich nun 2 Dateien und ein Unterordner zus&auml;tzlich im CSS-Ordner:</p>
<ul class="add">
	<li> .htaccess</li>
	<li> css-cacheer.php</li>
	<li> /css-cacheer</li>
</ul>
<h5><a name="schritt2"></a>Schritt 2: Apache Konfiguration</h5>
<p>Falls man Zugang zur Apache Konfigurationsdatei besitzt, sollte man die Rewrite-Rules aus der <strong>.htaccess</strong> Datei unbedingt dort unterbringen ( 
<a  href="http://httpd.apache.org/docs/2.2/howto/htaccess.html#when" onclick="javascript:pageTracker._trackPageview('/external/httpd.apache.org/docs/2.2/howto/htaccess.html?when');" >Apache Tutorial: .htaccess &#8211; When (not) to use .htaccess files</a> ). Das spart Operationen auf das Dateisystem und erh&ouml;ht die Ladegeschwindigkeit der Site.</p>
<p>
Dazu f&uuml;gt man folgende Zeilen in die Apache 2 Konfigurationsdatei ein:</p>
<pre class="brush: plain">&lt;Directory /var/www/projectname/css&gt;
	RewriteEngine	on
	RewriteCond		%{REQUEST_FILENAME}		-f
	RewriteCond 	%{REQUEST_URI}	     .css$
	RewriteRule 	^(.+)$ 				 /var/www/projectname/css/css-cacheer.php?cssc_request=%{REQUEST_URI}&amp;%{QUERY_STRING}
&lt;/Directory&gt;</pre>
<p class="info">Statt des Pfades <em>/var/www/projectname/css</em> f&uuml;gt man hier den <strong>absoluten Pfad</strong> zum CSS-Ordner ein.</p>
<p>
Nun muss nur noch der Apache-Server neugestartet werden.</p></div>

<a class="up-link"  href="#main" rel="self">Nach oben &uarr;</a>
<h3><a name="einsatz"></a>CSS Cacheer im&nbsp;Einsatz</h3>
<div class="box emphasize ">
<h4><a name="erstezugriff"></a>Der erste Zugriff durch den&nbsp;Browser</h4>
<p>Beim ersten Zugriff auf die CSS-Datei &uuml;ber den Browser werden alle &uuml;ber eine CSS-Datei eingebundenen Hintergrundbilder durch ASCII-Zeichenketten ersetzt und in die CSS-Datei integriert.</p>
<p>
CSS Cacheer cacht anschlie&szlig;end die modifizierte CSS-Datei und sendet sie an den Browser zur&uuml;ck. Bei einem erneuten Aufruf wird lediglich die gecachte CSS-Datei an der Browser geschickt.</p>
<pre class="brush: css">/* Processed and cached by Shaun Inman's CSS Cacheer (with BasedOn, Base64, Constants, NestedSelectors, Grid &amp; Pretty enabled) on Wed, 11 Feb 2009 21:10:33 +0000 &lt;http://shauninman.com/search/?q=cacheer&gt; */
...</pre>
<h4><a name="achtung"></a>Worauf man achten&nbsp;sollte</h4>
<h5>Keine doppelten Anf&uuml;hrungszeichen im Stylesheet verwenden</h5>
<p>Wer doppelte Anf&uuml;hrungszeichen in seinen Stylesheets verwendet, z.B. bei der Angabe von Schriftarten &#8220;Times New Roman&#8221; usw., wird schnell festellen, dass CSS Cacheer mit folgender Fehlermeldung die Arbeit verweigert:</p>
<pre class="brush: xml">XML error: &gt; required at line 1</pre>
<p>Um diese Fehlermeldung zu vermeiden, sollte man alle doppelten Anf&uuml;hrungszeichen durch einfache ersetzen: statt &#8220;Helvetica Neue&#8221; also &#8216;Helvetica Neue&#8217;.</p>
<h5>Auf die Dateigr&ouml;&szlig;e der Hintergrundbilder achten</h5>
<p>Wer seine Hintergrundbilder mit Firefox erstellt und diese im speicherintensiven Fireworks PNG-Format abspeichert, bekommt ebenfalls die oben erw&auml;hnte Fehlermeldung. Man sollte also darauf achten, nur Bilder mit optimierter Dateigr&ouml;&szlig;e zu verwenden.</p>
<h4><a name="plugins"></a>Erweiterung durch&nbsp;Plugins</h4>
<p>CSS Cacheer wird mit einigen Plugins ausgeliefert. Diese erm&ouml;glichen u.a. den Einsatz von Konstanten, eine CSS-Fromatierung, Verschatelte Selektoren und noch einiges mehr. Wer mehr &uuml;ber diese Plugins erfahren m&ouml;chte, sollte sich den 
<a title="Check out CSS Cacheer"  href="http://www.shauninman.com/archive/2008/05/30/check_out_css_cacheer" onclick="javascript:pageTracker._trackPageview('/external/www.shauninman.com/archive/2008/05/30/check_out_css_cacheer');" >original Blog-Beitrag</a> von Shaun Inman durchlesen.</p></div>
<p class="info">
<a  href="http://www.materidesign.de/webdevelopment/css-cacheer-eine-alternative-zu-css-sprites-und-mehr/">CSS Cacheer: eine Alternative zu CSS-Sprites</a> ist der erste Beitrag einer kommenden Serie, die sich internsiver mit CSS Cacheer befassen wird.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/css-cacheer-eine-alternative-zu-css-sprites/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>eBook: Javascript Performance&#160;Rocks!</title>
		<link>http://materidesign.de/ebook-javascript-performance-rocks/</link>
		<comments>http://materidesign.de/ebook-javascript-performance-rocks/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 10:23:47 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[tweaking]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=203</guid>
		<description><![CDATA[<p>Thomas Fuchs, Autor des beliebten Javascript-Frameworks 
<a href="http://script.aculo.us/" onclick="javascript:pageTracker._trackPageview('/external/script.aculo.us/');" >script.aculo.us</a> und Amy Hoy, Autorin von 
<a href="http://www.slash7.com/" onclick="javascript:pageTracker._trackPageview('/external/www.slash7.com/');" >Slash7</a> ver&#246;ffentlichen eine Beta-Version ihres neuen eBooks 
<a href="http://javascriptrocks.com/" onclick="javascript:pageTracker._trackPageview('/external/javascriptrocks.com/');" >Javascript Performance Rocks!</a></p>

<span id="more-203"></span>

<p>Das eBook richtet sich an alle, die Ihren Javascript-Anwendung mehr Performance entlocken wollen.</p>

<p>Wer sich &#252;ber den Themenumfang informieren m&#246;chte, findet auf&#8230;</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Thomas Fuchs, Autor des beliebten Javascript-Frameworks 
<a  href="http://script.aculo.us/" onclick="javascript:pageTracker._trackPageview('/external/script.aculo.us/');" >script.aculo.us</a> und Amy Hoy, Autorin von 
<a  href="http://www.slash7.com/" onclick="javascript:pageTracker._trackPageview('/external/www.slash7.com/');" >Slash7</a> ver&ouml;ffentlichen eine Beta-Version ihres neuen eBooks 
<a  href="http://javascriptrocks.com/" onclick="javascript:pageTracker._trackPageview('/external/javascriptrocks.com/');" >Javascript Performance Rocks!</a></p>

<span id="more-203"></span>

<p>Das eBook richtet sich an alle, die Ihren Javascript-Anwendung mehr Performance entlocken wollen.</p>

<p>Wer sich &uuml;ber den Themenumfang informieren m&ouml;chte, findet auf der 
<a  href="http://javascriptrocks.com/performance/" onclick="javascript:pageTracker._trackPageview('/external/javascriptrocks.com/performance/');" >Website</a> ein vorl&auml;ufiges 
<a  href="http://javascriptrocks.com/performance/javascript_performance_rocks_contents.pdf" onclick="javascript:pageTracker._trackPageview('/external/javascriptrocks.com/performance/javascript_performance_rocks_contents.pdf');" >Inhaltsverzeichnis</a>.</p>

<p>K&auml;ufer der Beta-Version bekommen einen Preisnachlass von $ 5.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/ebook-javascript-performance-rocks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wordpress Admin Theme: Fluency Admin&#160;2.0</title>
		<link>http://materidesign.de/wordpress-admin-theme-fluency-admin-20/</link>
		<comments>http://materidesign.de/wordpress-admin-theme-fluency-admin-20/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 12:40:13 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=189</guid>
		<description><![CDATA[<p>Wer mit der neuen Administrationsoberfl&#228;che von Wordpress 2.7 unzufrieden ist, sollte sich <a href="http://deanjrobinson.com/projects/fluency-admin/">Fluency Admin 2.0</a> von <a href="http://deanjrobinson.com/">Dean J. Robinson</a> anschauen.</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Wer mit der neuen Administrationsoberfl&auml;che von Wordpress 2.7 unzufrieden ist, sollte sich 
<a  href="http://deanjrobinson.com/projects/fluency-admin/" onclick="javascript:pageTracker._trackPageview('/external/deanjrobinson.com/projects/fluency-admin/');" >Fluency Admin 2.0</a> von 
<a  href="http://deanjrobinson.com/" onclick="javascript:pageTracker._trackPageview('/external/deanjrobinson.com/');" >Dean J. Robinson</a> anschauen.</p>
<p>

<a class="image-link"  href="http://deanjrobinson.com/projects/fluency-admin/" onclick="javascript:pageTracker._trackPageview('/external/deanjrobinson.com/projects/fluency-admin/');" ><img src="http://mdesignassets.s3.amazonaws.com/fluency20.jpg" class="s3-img" border="0" alt="fluency20.jpg" alt="Fluency Admin 2.0" title="Fluency Admin 2.9" /> </a>
</p>
<p>
Version 2.0 wurde komplett neugeschrieben und ist nun kompatibel mit Wordpress 2.7.
Besonders hervorzuheben ist die neue Seitennavigation, die neben aufspringenden Untermen&uuml;s eine Tastaturnavigation zul&auml;sst. Jede Administrationsseite (Plugin-Optionen ausgenommen) ist somit maximal einen Mausklick entfernt.</p>
<p>
Weite Informationen zu Fluency 2.0 findet Ihr auf der 
<a title="Fluency Admin 2.0"  href="http://deanjrobinson.com/projects/fluency-admin/" onclick="javascript:pageTracker._trackPageview('/external/deanjrobinson.com/projects/fluency-admin/');" >Seite des Entwicklers</a>.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/wordpress-admin-theme-fluency-admin-20/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>eBook: 5 Simple Steps &#8211; Designing for the&#160;Web</title>
		<link>http://materidesign.de/5-simple-steps-designing-for-the-web/</link>
		<comments>http://materidesign.de/5-simple-steps-designing-for-the-web/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 11:50:26 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[buchtipp]]></category>
		<category><![CDATA[typographie]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=153</guid>
		<description><![CDATA[<p>Seit Jahren ver&#246;ffentlicht <a href="http://www.markboulton.co.uk/">Mark Boulton</a> lesenswerte Artikel &#252;ber Typographie, Layout und Design. Diese sind nun in &#252;berarbeiteter Form neben neuen Inhalten als Buch erh&#228;ltlich.</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Seit Jahren ver&ouml;ffentlicht 
<a  href="http://www.markboulton.co.uk/" onclick="javascript:pageTracker._trackPageview('/external/www.markboulton.co.uk/');" >Mark Boulton</a> lesenswerte Artikel &uuml;ber Typographie, Layout und Design. Diese sind nun in &uuml;berarbeiteter Form neben neuen Inhalten als Buch erh&auml;ltlich.</p>
<span id="more-153"></span>
<p>
<a  href="http://www.fivesimplesteps.co.uk/" onclick="javascript:pageTracker._trackPageview('/external/www.fivesimplesteps.co.uk/');" ><img class="size-medium wp-image-154 alignright" title="Buchcover von Five Simple Steps - Designing for the Web" src="http://assets.materidesign.de/fss_largepromo-210x300.jpg" alt="Buchcover von Five Simple Steps - Designing for the Web" height="120" /></a>
<a  href="http://www.fivesimplesteps.co.uk/" onclick="javascript:pageTracker._trackPageview('/external/www.fivesimplesteps.co.uk/');" >5 Simple Steps: Designing for the Web</a> richtet sich an Web Designer, Grafker, Web Entwickler und Alle, die Inhalte im Web ver&ouml;ffentlichen.</p>
<p>
Das Buch hat 264 Seiten und ist in 5 Bereiche gegliedert:</p>
<ol>
	<li> Getting Started</li>
	<li>Research &amp; Ideas</li>
	<li>Typography</li>
	<li>Colour</li>
	<li>Layout.</li>
</ol><p>
Es ist ausschlie&szlig;lich als PDF-Version erh&auml;ltlich und kostet 12 £.
</p>
<p>Wer noch unentschlossen ist, kann sich auf der 
<a  href="http://www.fivesimplesteps.co.uk/" onclick="javascript:pageTracker._trackPageview('/external/www.fivesimplesteps.co.uk/');" >Produktseite</a> ein Beispielkapitel als PDF herunterladen.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/5-simple-steps-designing-for-the-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppStorm &#8211; The Mac Apps&#160;Blog</title>
		<link>http://materidesign.de/appstorm-the-mac-apps-blog/</link>
		<comments>http://materidesign.de/appstorm-the-mac-apps-blog/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 18:48:47 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Randnotizen]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=134</guid>
		<description><![CDATA[<p>Auf der Suche nach neuen und herausragenden Mac Anwendungen? 
<a  href="http://mac.appstorm.net" onclick="javascript:pageTracker._trackPageview('/external/mac.appstorm.net');" >AppStorm</a>, das neue Blog von 
<a  href="http://envato.com/" onclick="javascript:pageTracker._trackPageview('/external/envato.com/');" >envato</a>, hilft eventuell weiter.</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Auf der Suche nach neuen und herausragenden Mac Anwendungen? 
<a  href="http://mac.appstorm.net" onclick="javascript:pageTracker._trackPageview('/external/mac.appstorm.net');" >AppStorm</a>, das neue Blog von 
<a  href="http://envato.com/" onclick="javascript:pageTracker._trackPageview('/external/envato.com/');" >envato</a>, hilft eventuell weiter.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/appstorm-the-mac-apps-blog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Layers</title>
		<link>http://materidesign.de/layers/</link>
		<comments>http://materidesign.de/layers/#comments</comments>
		<pubDate>Sun, 25 Jan 2009 12:41:53 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Randnotizen]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=123</guid>
		<description><![CDATA[<p>

<a class="external"  href="http://layersapp.com/" onclick="javascript:pageTracker._trackPageview('/external/layersapp.com/');" >Layers</a> &#8211; Desktop Screenhots erstellen und als multilayered Photoshop Dokument speichern.</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>

<a class="external"  href="http://layersapp.com/" onclick="javascript:pageTracker._trackPageview('/external/layersapp.com/');" >Layers</a> &#8211; Desktop Screenhots erstellen und als multilayered Photoshop Dokument speichern.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/layers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery 1.3.1&#160;ver&#246;ffentlicht</title>
		<link>http://materidesign.de/jquery-131-veroeffentlicht/</link>
		<comments>http://materidesign.de/jquery-131-veroeffentlicht/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 16:52:36 +0000</pubDate>
		<dc:creator>jaylib</dc:creator>
				<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.materidesign.de/?p=148</guid>
		<description><![CDATA[<p>Nachdem Version 1.3 bereits am 14. Januar zur Verf&#252;gung gestellt wurde, <a href="http://blog.jquery.com/2009/01/21/jquery-131-released/" title="Releasenotes &#252;ber jQuery 1.3.1">ver&#246;ffentlichen</a> John Resig und das jQuery-Team nun Version 1.3.1 des popul&#228;ren Javascript-Frameworks <a href="http://www.jquery.com">jQuery</a>.</p><p>Als reines Bugfix-Release enth&#228;lt es keine neuen Features.</p>]]></description>
			<content:encoded><![CDATA[<!-- google_ad_section_start --><p>Nachdem Version 1.3 bereits am 14. Januar zur Verf&uuml;gung gestellt wurde, 
<a  href="http://blog.jquery.com/2009/01/21/jquery-131-released/" title="Releasenotes &uuml;ber jQuery 1.3.1" onclick="javascript:pageTracker._trackPageview('/external/blog.jquery.com/2009/01/21/jquery-131-released/');" >ver&ouml;ffentlichen</a> John Resig und das jQuery-Team nun Version 1.3.1 des popul&auml;ren Javascript-Frameworks 
<a  href="http://www.jquery.com" onclick="javascript:pageTracker._trackPageview('/external/www.jquery.com');" >jQuery</a>. Als reines Bugfix-Release enth&auml;lt es keine neuen Features.</p><!-- google_ad_section_end -->]]></content:encoded>
			<wfw:commentRss>http://materidesign.de/jquery-131-veroeffentlicht/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.933 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-09-08 13:55:10 -->
