<?xml version="1.0" encoding="UTF-8"?>
<rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>SteviesWebsite Webmaster Blog</title>
	
	<link>http://blog.stevieswebsite.de</link>
	<description>Entwicklung. Webanalyse. Seo.</description>
	<lastBuildDate>Sun, 13 May 2012 17:41:22 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/stevieswebsite" /><feedburner:info uri="stevieswebsite" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Werbebanner als Easter Eggs – Mit Canvas</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/0VULk9FSX1M/</link>
		<comments>http://blog.stevieswebsite.de/2012/05/werbebanner-als-easter-eggs/#comments</comments>
		<pubDate>Sun, 13 May 2012 17:40:49 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Vermarktung]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=10092</guid>
		<description><![CDATA[Einen Werbebanner möchte man als Webmaster immer prominent Platzieren. Doch leider bringt das manchmal nicht das gewünschte Ergebnis. Der User ist irgendwann genervt von den Bannern und nimmt sie auch gar nicht mehr richtig wahr (Bannerblindheit). Warum also nicht mal die Werbung verstecken und wenn ein User diese findet zum Beispiel einen Coupon oder Ähnliches [...]]]></description>
			<content:encoded><![CDATA[<p>Einen Werbebanner möchte man als Webmaster immer prominent Platzieren. Doch leider bringt das manchmal nicht das gewünschte Ergebnis. Der User ist irgendwann genervt von den Bannern und nimmt sie auch gar nicht mehr richtig wahr (Bannerblindheit).</p>
<p>Warum also nicht mal die Werbung verstecken und wenn ein User diese findet zum Beispiel einen Coupon oder Ähnliches anzubieten? Dann sehen die Werbung zwar viele nicht, die die sie sehen, wundern sich aber und werden vielleicht schneller darauf klicken.<span id="more-10092"></span></p>
<p>Als kleinen Einstieg, möchte ich heute mal einen Werbebanner erstellen, der erst mal gar nicht zu sehen ist. Fährt der User aber zufällig über die Stelle, wird der Banner nach und nach gemalt.</p>
<p>Als Basis hierzu dient ein Canvas-Element, welches als Hintergrundbild einen Werbebanner bekommt:</p>
<pre style='color:#000000;background:#ffffff;'><span style='color:#004a43; '>&lt;!DOCTYPE html></span>
<span style='color:#a65700; '>&lt;</span><span style='color:#800000; font-weight:bold; '>html</span><span style='color:#a65700; '>></span>
  <span style='color:#a65700; '>&lt;</span><span style='color:#800000; font-weight:bold; '>body</span><span style='color:#a65700; '>></span>
    <span style='color:#a65700; '>&lt;</span><span style='color:#5f5035; '>canvas</span><span style='color:#274796; '> </span><span style='color:#074726; '>id</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"canvas"</span><span style='color:#274796; '> </span><span style='color:#074726; '>width</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"300"</span><span style='color:#274796; '> </span><span style='color:#074726; '>height</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"250"</span><span style='color:#274796; '> </span>
<span style='color:#274796; '>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</span><span style='color:#074726; '>style</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"</span><span style='color:#bb7977; font-weight:bold; '>cursor</span><span style='color:#808030; '>:</span><span style='color:#074726; '>pointer</span><span style='color:#800080; '>;</span><span style='color:#bb7977; font-weight:bold; '>background-image</span><span style='color:#808030; '>:</span><span style='color:#400000; '>url</span><span style='color:#808030; '>(</span><span style='color:#0000e6; '>'</span><span style='color:#40015a; '>banner.gif</span><span style='color:#0000e6; '>'</span><span style='color:#808030; '>)</span><span style='color:#0000e6; '>"</span><span style='color:#a65700; '>></span>
    <span style='color:#a65700; '>&lt;/</span><span style='color:#5f5035; '>canvas</span><span style='color:#a65700; '>></span>
  <span style='color:#a65700; '>&lt;/</span><span style='color:#800000; font-weight:bold; '>body</span><span style='color:#a65700; '>></span>
<span style='color:#a65700; '>&lt;/</span><span style='color:#800000; font-weight:bold; '>html</span><span style='color:#a65700; '>></span>
</pre>
<p>Mittels JavaScript übermalen wir nun den Hintergrund und fügen ein onclick ein, um den Banner auch anklickbar zu machen</p>
<pre style='color:#000000;background:#ffffff;'><span style='color:#004a43; '>&lt;!DOCTYPE html></span>
<span style='color:#a65700; '>&lt;</span><span style='color:#800000; font-weight:bold; '>html</span><span style='color:#a65700; '>></span>
  <span style='color:#a65700; '>&lt;</span><span style='color:#800000; font-weight:bold; '>body</span><span style='color:#a65700; '>></span>
    <span style='color:#a65700; '>&lt;</span><span style='color:#5f5035; '>canvas</span><span style='color:#274796; '> </span><span style='color:#074726; '>id</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"canvas"</span><span style='color:#274796; '> </span><span style='color:#074726; '>width</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"300"</span><span style='color:#274796; '> </span><span style='color:#074726; '>height</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"250"</span><span style='color:#274796; '> </span>
<span style='color:#274796; '>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</span><span style='color:#074726; '>style</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"</span><span style='color:#bb7977; font-weight:bold; '>cursor</span><span style='color:#808030; '>:</span><span style='color:#074726; '>pointer</span><span style='color:#800080; '>;</span><span style='color:#bb7977; font-weight:bold; '>background-image</span><span style='color:#808030; '>:</span><span style='color:#400000; '>url</span><span style='color:#808030; '>(</span><span style='color:#0000e6; '>'</span><span style='color:#40015a; '>banner.gif</span><span style='color:#0000e6; '>'</span><span style='color:#808030; '>)</span><span style='color:#0000e6; '>"</span><span style='color:#a65700; '>></span>
    <span style='color:#a65700; '>&lt;/</span><span style='color:#5f5035; '>canvas</span><span style='color:#a65700; '>></span>
    <span style='color:#a65700; '>&lt;</span><span style='color:#800000; font-weight:bold; '>script</span><span style='color:#a65700; '>></span>
      <span style='color:#800000; font-weight:bold; '>var</span> canvas <span style='color:#808030; '>=</span> document<span style='color:#808030; '>.</span>getElementById<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'canvas'</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
      <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>canvas<span style='color:#808030; '>.</span>getContext<span style='color:#808030; '>)</span><span style='color:#800080; '>{</span>
        <span style='color:#800000; font-weight:bold; '>var</span> ctx <span style='color:#808030; '>=</span> canvas<span style='color:#808030; '>.</span>getContext<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'2d'</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
        ctx<span style='color:#808030; '>.</span>fillStyle <span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>#fff</span><span style='color:#800000; '>"</span>
        ctx<span style='color:#808030; '>.</span>fillRect<span style='color:#808030; '>(</span><span style='color:#008c00; '>0</span><span style='color:#808030; '>,</span><span style='color:#008c00; '>0</span><span style='color:#808030; '>,</span>canvas<span style='color:#808030; '>.</span>width<span style='color:#808030; '>,</span>canvas<span style='color:#808030; '>.</span>height<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
      <span style='color:#800080; '>}</span>
      canvas<span style='color:#808030; '>.</span>onclick <span style='color:#808030; '>=</span> <span style='color:#800000; font-weight:bold; '>function</span><span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>{</span>
        window<span style='color:#808030; '>.</span>location<span style='color:#808030; '>.</span>href <span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>http://www.contentlion.de</span><span style='color:#800000; '>"</span><span style='color:#800080; '>;</span>
      <span style='color:#800080; '>}</span>
    <span style='color:#a65700; '>&lt;/</span><span style='color:#800000; font-weight:bold; '>script</span><span style='color:#a65700; '>></span>
  <span style='color:#a65700; '>&lt;/</span><span style='color:#800000; font-weight:bold; '>body</span><span style='color:#a65700; '>></span>
<span style='color:#a65700; '>&lt;/</span><span style='color:#800000; font-weight:bold; '>html</span><span style='color:#a65700; '>></span>
</pre>
<p>Das einzige, was jetzt noch fehlt, ist das Übermalen. Dies geht einfach über mousemove. Wir löschen dabei den Bereich, über dem die Maus gerade fährt:</p>
<pre style='color:#000000;background:#ffffff;'><span style='color:#004a43; '>&lt;!DOCTYPE html></span>
<span style='color:#a65700; '>&lt;</span><span style='color:#800000; font-weight:bold; '>html</span><span style='color:#a65700; '>></span>
  <span style='color:#a65700; '>&lt;</span><span style='color:#800000; font-weight:bold; '>body</span><span style='color:#a65700; '>></span>
    <span style='color:#a65700; '>&lt;</span><span style='color:#5f5035; '>canvas</span><span style='color:#274796; '> </span><span style='color:#074726; '>id</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"canvas"</span><span style='color:#274796; '> </span><span style='color:#074726; '>width</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"300"</span><span style='color:#274796; '> </span><span style='color:#074726; '>height</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"250"</span><span style='color:#274796; '> </span>
<span style='color:#274796; '>&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;</span><span style='color:#074726; '>style</span><span style='color:#808030; '>=</span><span style='color:#0000e6; '>"</span><span style='color:#bb7977; font-weight:bold; '>cursor</span><span style='color:#808030; '>:</span><span style='color:#074726; '>pointer</span><span style='color:#800080; '>;</span><span style='color:#bb7977; font-weight:bold; '>background-image</span><span style='color:#808030; '>:</span><span style='color:#400000; '>url</span><span style='color:#808030; '>(</span><span style='color:#0000e6; '>'</span><span style='color:#40015a; '>banner.gif</span><span style='color:#0000e6; '>'</span><span style='color:#808030; '>)</span><span style='color:#0000e6; '>"</span><span style='color:#a65700; '>></span>
    <span style='color:#a65700; '>&lt;/</span><span style='color:#5f5035; '>canvas</span><span style='color:#a65700; '>></span>
    <span style='color:#a65700; '>&lt;</span><span style='color:#800000; font-weight:bold; '>script</span><span style='color:#a65700; '>></span>
      <span style='color:#800000; font-weight:bold; '>var</span> canvas <span style='color:#808030; '>=</span> document<span style='color:#808030; '>.</span>getElementById<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'canvas'</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
      <span style='color:#800000; font-weight:bold; '>if</span> <span style='color:#808030; '>(</span>canvas<span style='color:#808030; '>.</span>getContext<span style='color:#808030; '>)</span><span style='color:#800080; '>{</span>
        <span style='color:#800000; font-weight:bold; '>var</span> ctx <span style='color:#808030; '>=</span> canvas<span style='color:#808030; '>.</span>getContext<span style='color:#808030; '>(</span><span style='color:#0000e6; '>'2d'</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
        ctx<span style='color:#808030; '>.</span>fillStyle <span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>#fff</span><span style='color:#800000; '>"</span>
        ctx<span style='color:#808030; '>.</span>fillRect<span style='color:#808030; '>(</span><span style='color:#008c00; '>0</span><span style='color:#808030; '>,</span><span style='color:#008c00; '>0</span><span style='color:#808030; '>,</span>canvas<span style='color:#808030; '>.</span>width<span style='color:#808030; '>,</span>canvas<span style='color:#808030; '>.</span>height<span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
      <span style='color:#800080; '>}</span>
      canvas<span style='color:#808030; '>.</span>onmousemove <span style='color:#808030; '>=</span> <span style='color:#800000; font-weight:bold; '>function</span><span style='color:#808030; '>(</span>e<span style='color:#808030; '>)</span><span style='color:#800080; '>{</span>
        ctx<span style='color:#808030; '>.</span>clearRect<span style='color:#808030; '>(</span>e<span style='color:#808030; '>.</span>x <span style='color:#808030; '>-</span> <span style='color:#008c00; '>5</span><span style='color:#808030; '>,</span>e<span style='color:#808030; '>.</span>y <span style='color:#808030; '>-</span> <span style='color:#008c00; '>5</span><span style='color:#808030; '>,</span><span style='color:#008c00; '>10</span><span style='color:#808030; '>,</span><span style='color:#008c00; '>10</span><span style='color:#808030; '>)</span><span style='color:#800080; '>;</span>
      <span style='color:#800080; '>}</span>
      canvas<span style='color:#808030; '>.</span>onclick <span style='color:#808030; '>=</span> <span style='color:#800000; font-weight:bold; '>function</span><span style='color:#808030; '>(</span><span style='color:#808030; '>)</span><span style='color:#800080; '>{</span>
        window<span style='color:#808030; '>.</span>location<span style='color:#808030; '>.</span>href <span style='color:#808030; '>=</span> <span style='color:#800000; '>"</span><span style='color:#0000e6; '>http://www.contentlion.de</span><span style='color:#800000; '>"</span><span style='color:#800080; '>;</span>
      <span style='color:#800080; '>}</span>
    <span style='color:#a65700; '>&lt;/</span><span style='color:#800000; font-weight:bold; '>script</span><span style='color:#a65700; '>></span>
  <span style='color:#a65700; '>&lt;/</span><span style='color:#800000; font-weight:bold; '>body</span><span style='color:#a65700; '>></span>
<span style='color:#a65700; '>&lt;/</span><span style='color:#800000; font-weight:bold; '>html</span><span style='color:#a65700; '>></span>
</pre>
<p>Und fertig ist unser Werbebanner! Diesen kann man dann zum Beispiel innerhalb eines Textes verstecken, damit die User auch darüberfahren. Mein Ergebnis <s>findet</s> sucht ihr <a href="http://blog.stevieswebsite.de/tests/canvas/banner.html">hier</a></p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/0VULk9FSX1M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/05/werbebanner-als-easter-eggs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/05/werbebanner-als-easter-eggs/</feedburner:origLink></item>
		<item>
		<title>Social Media mit Google Analytics analysieren</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/5ETnOK3LVxI/</link>
		<comments>http://blog.stevieswebsite.de/2012/05/social-media-mit-google-analytics-analysieren/#comments</comments>
		<pubDate>Mon, 07 May 2012 18:05:57 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Google Analytics]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=10069</guid>
		<description><![CDATA[Google Analytics bietet unter Besucherquellen Neuerdings &#8220;Soziale Netzwerke&#8221;. Hiermit ist es noch leichter möglich, seine Social Media Aktivitäten zu tracken. Man kann die sozialen Netzwerke nun leicht miteinander und mit der Gesamtzahl der Besucher vergleichen. Bei mir wurden zurzeit folgende &#8220;soziale Netzwerke&#8221; erkannt: Facebook Twitter (in älteren Daten auch Hootsuite) YouTube Facebook Apps Google+ Stack [...]]]></description>
			<content:encoded><![CDATA[<p>Google Analytics bietet unter Besucherquellen Neuerdings &#8220;Soziale Netzwerke&#8221;. Hiermit ist es noch leichter möglich, seine Social Media Aktivitäten zu tracken.</p>
<p><div class="wp-caption alignnone" style="width: 510px"><a href="http://images.stevieswebsite.de/tools/google/analytics/soziale-netzwerke/interaktion.jpg"><img alt="" src="http://images.stevieswebsite.de/tools/google/analytics/soziale-netzwerke/interaktion-500.jpg" title="Soziale Interaktion" class="alignnone" width="500" height="284" /></a><p class="wp-caption-text">Soziale Interaktion</p></div><span id="more-10069"></span></p>
<p>Man kann die sozialen Netzwerke nun leicht miteinander und mit der Gesamtzahl der Besucher vergleichen. Bei mir wurden zurzeit folgende &#8220;soziale Netzwerke&#8221; erkannt:</p>
<ul>
<li>Facebook</li>
<li>Twitter (in älteren Daten auch Hootsuite)</li>
<li>YouTube</li>
<li>Facebook Apps</li>
<li>Google+</li>
<li>Stack Overflow</li>
<li>Blogger</li>
<li>Delicious</li>
<li>paper.li</li>
<li>Bloglines</li>
<li>Diigo</li>
<li>Instantpaper</li>
<li>Netvibes</li>
<li>Read It Later</li>
<li>LinkedIn</li>
</ul>
<p>Die Anzahl der Zugriffe könnte man auch durch seine bisherigen Zugriffsquellen leicht erfassen. Doch hier kann man innerhalb mancher Netzwerke auch noch ins Detail gehen. So kann ich zum Beispiel sehen, wie sich meine Google+ Besucher zusammensetzen:</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://images.stevieswebsite.de/tools/google/analytics/soziale-netzwerke/google-plus.jpg"><img alt="" src="http://images.stevieswebsite.de/tools/google/analytics/soziale-netzwerke/google-plus-500.jpg" title="Google+ Statistiken" class="alignnone" width="500" height="251" /></a><p class="wp-caption-text">Google+ Statistiken</p></div>
<p>Natürlich kann man auch die geteilten Urls analysieren.</p>
<p>In Sachen Social Media habe ich meistens eine hohe Absprungsrate. Um dies zu optimieren, gibt es auch eine Grafik für den Benutzerfluss. Dabei sieht man, wo die sozialen Besucher überall hergewandert sind:</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://images.stevieswebsite.de/tools/google/analytics/soziale-netzwerke/besucher-fluss.jpg"><img alt="Besucherfluss" src="http://images.stevieswebsite.de/tools/google/analytics/soziale-netzwerke/besucher-fluss-500.jpg" title="Besucherfluss" width="500" height="273" /></a><p class="wp-caption-text">Besucherfluss</p></div>
<p>Ein sehr starker Fokus scheinen mir aber die Conversions zu sein, hier scheinen die Daten aber noch nicht ganz vollständig zu sein. Trotz Conversions habe ist keine Conversion-Rate zu sehen:<br />
<div class="wp-caption alignnone" style="width: 510px"><a href="http://images.stevieswebsite.de/tools/google/analytics/soziale-netzwerke/conversions.jpg"><img alt="Conversions (contentlion.de)" src="http://images.stevieswebsite.de/tools/google/analytics/soziale-netzwerke/conversions-500.jpg" title="Conversions (contentlion.de)" width="500" height="252" /></a><p class="wp-caption-text">Conversions (contentlion.de)</p></div></p>
<p>Ihr solltet euch die neuen Berichte auf jeden Fall einmal ansehen, die Daten sind sehr interessant. Ich denke diese Statistiken sind ein erster Schritt in Richtung Monetisierung von Google+. Wenn man hier erst mal die ersten Schrauben gezogen hat, wird man sich später vielleicht auf einen Versuch mit Google+ Werbung einlassen.</p>
<p>Ich möchte mir die Datensätze mal etwas genauer für euch ansehen, also schön liken, twittern und was es sonst noch so gibt <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h2>Siehe auch</h2>
<ul>
<li><a href="http://blog.stevieswebsite.de/2011/07/social-media-analyse-mit-google-analytics/">Social Media Analyse mit Google Analytics (stevieswebsite.de)</a></li>
<li><a href="http://www.trafficmaxx.de/blog/google/soziale-netzwerke-in-google-analytics">Soziale Netzwerke in Google Analytics (trafficmaxx.de)</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/5ETnOK3LVxI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/05/social-media-mit-google-analytics-analysieren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/05/social-media-mit-google-analytics-analysieren/</feedburner:origLink></item>
		<item>
		<title>Googles Coding-Guidlines für HTML &amp; CSS</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/Q0KRCSMlBz0/</link>
		<comments>http://blog.stevieswebsite.de/2012/05/googles-coding-guidlines-fur-html-css/#comments</comments>
		<pubDate>Sat, 05 May 2012 13:54:34 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=10035</guid>
		<description><![CDATA[Google hat vor kurzen eigene Guidlines für HTML &#38; CSS vorgestellt.  Solche Coding-Guidlines sind gut, damit der Quellcode z.B. in einem Projekt immer gleich aussieht. So ist der Code geordneter und man weiß bei einigen Sachen so ungefähr wo man suchen kann. Coding-Guidlines können auch dafür sorgen, dass performant programmiert wird. So können strukturbasierende Performanceengpässe [...]]]></description>
			<content:encoded><![CDATA[<p>Google hat vor kurzen eigene <a href="http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml">Guidlines für HTML &amp; CSS</a> vorgestellt.  Solche Coding-Guidlines sind gut, damit der Quellcode z.B. in einem Projekt immer gleich aussieht. So ist der Code geordneter und man weiß bei einigen Sachen so ungefähr wo man suchen kann. Coding-Guidlines können auch dafür sorgen, dass performant programmiert wird. So können strukturbasierende Performanceengpässe vermieden werden.<span id="more-10035"></span></p>
<p>Coding-Guidlines für HTML &amp; CSS habe ich bisher nur im kleinen Umfang gesehen. Google hat da schon einiges aufgestellt. Eine Einhaltung der Guidlines wird die Crawlbarkeit erleichtern, die Performance steigern, sowie auch die Vermeidung von browserspezifischen Fehlern.</p>
<p>Im Endeffekt habe ich dort viele Sachen gefunden, die ein guter Entwickler eigentlich schon kennen sollte. Aber neben den &#8220;normalen&#8221; Sachen habe ich auch ein paar Regeln gefunden, die ich bisher so nicht angewendet habe, die aber trotzdem Sinn ergeben.</p>
<h3>Protokoll</h3>
<p>Google schlägt vor das http: und https: bei Scripten, Stylsheets wegzulassen, damit die Seite ohne Probleme mit und ohne https läuft.<br />
Beispiel: <code>//blog.stevieswebsite.de</code> statt <code>http://blog.stevieswebsite.de</code>.</p>
<h3>Todo</h3>
<p>Aufgaben sollen als Kommentar mit <code>&lt;!-- TODO: Kommentar--&gt;</code> gekennzeichnet werden. Hier ist es aber von Vorteil, wenn man PHP-Kommentare oder Ähnliches benutzt, damit diese nicht an den Browser übergeben werden.</p>
<h3>Umlaute sollen Umlaute bleiben</h3>
<p>Google lehnt das Kennzeichnen von Umlauten, wie zum Beispiel dem ü mit &amp;uuml; ab. Dies sollte stattdessen durch die UTF8-Kodierung geschehen.</p>
<h3>Kein <code>&lt;head&gt;</code> kein <code>&lt;body&gt;</code></h3>
<p>Seit HTML5 ist es möglich, den Head- bzw. den Body-Tag auszulassen. Und dies möchte Google auch, um den HTML-Quelltext schmaler zu machen.</p>
<h3>type Attribute auslassen</h3>
<p>Beim Script- oder Style-Tag, gibt man ja häufiger mal den type (z.B. mit text/css) an. Seit HTML5 ist auch dies nicht mehr erforderlich und sollte auch nicht mehr gemacht werden.</p>
<h3>CSS IDs und Klassen so kurz wie möglich</h3>
<p>IDs und Klassen sollten so kurz wie möglich aber so lang wie nötig sein. Als Beispiel wird aus navigation nav gemacht, aus atr aber author.</p>
<h3>Keine CSS-Selection aus Kombination mit id/classe und typ</h3>
<p>Statt input.color sollte man dann nur noch .color benutzten. Für verschiedene Typen kann man sich dann mit neuen Klassen aushelfen. Dies soll sich positiv auf die Performance auswirken.</p>
<h3>Namen, ids und Klassen durch Bindestrich trennen</h3>
<p>Ich persönlich nutze entweder CamelCasing, oder Unterstriche um Wörter in Namen usw. zu trennen. Besser wäre laut Google aber Bindestriche zu nutzen.</p>
<h2>Mehr Regeln</h2>
<p>Das waren nur die Regeln, die ich bisher noch so gar nicht angewand habe. Ein Blick in die <a href="http://google-styleguide.googlecode.com/svn/trunk/htmlcssguide.xml">Guidlines</a> lohnt sich auf jeden Fall! Wenn ihr noch eine Regel findet, die dort noch nicht ist, bzw. eine, der ihr so gar nicht zustimmen könnte, könnt ihr euch gerne in den Kommentaren auslassen <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/Q0KRCSMlBz0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/05/googles-coding-guidlines-fur-html-css/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/05/googles-coding-guidlines-fur-html-css/</feedburner:origLink></item>
		<item>
		<title>Deine E-Mail Adresse verrät mir dein Alter!</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/9oBJa_Q8CNA/</link>
		<comments>http://blog.stevieswebsite.de/2012/04/deine-e-mail-adresse-verrat-mir-dein-alter/#comments</comments>
		<pubDate>Sun, 22 Apr 2012 12:23:21 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=9997</guid>
		<description><![CDATA[Wer diese Woche mal meine Facebook-Timeline gecheckt hat, der wird vielleicht ein Bild von face.com entdeckt haben. Das ist ein Dienst, der Gesichter auf Bildern erkennt und analysiert. Bei mir sah dies zum Beispiel so aus: Das mit dem Alter hat bei mir zwar nicht so gut geklappt, aber ich habe auch schon Bilder gesehen, [...]]]></description>
			<content:encoded><![CDATA[<p>Wer diese Woche mal <a href="http://www.facebook.com/stevieswebsite">meine Facebook-Timeline</a> gecheckt hat, der wird vielleicht ein Bild von <a href="http://face.com">face.com</a> entdeckt haben. Das ist ein Dienst, der Gesichter auf Bildern erkennt und analysiert. Bei mir sah dies zum Beispiel so aus:</p>
<p><a href="http://images.stevieswebsite.de/tools/face/ich.jpg"><img class="alignnone" title="Gesichtserkennung mit Face" src="http://images.stevieswebsite.de/tools/face/ich.jpg" alt="" width="586" height="440" /></a><span id="more-9997"></span></p>
<p>Das mit dem Alter hat bei mir zwar nicht so gut geklappt, aber ich habe auch schon Bilder gesehen, dessen Ergebnis zutraf.</p>
<p>Das Besondere ist, man kann den Dienst über die API selbst benutzten. Man gibt einfach ein Bild an und bekommt die im Bild gezeigten Daten zurück. Diese können dann zum Beispiel für personalisierte Werbung genutzt werden. Frauen bekommen dann zum Beispiel Cola Light Werbung und Männer Coke Zero <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<h2>Verknüpfung mit Gravatar</h2>
<p>Man muss also nur noch an ein Bild des Users kommen. Das geht über den Dienst <a href="http://blog.stevieswebsite.de/2009/09/php-gravatar-api-ansteuern/">Gravatar</a>.  Dort können User ein Bild hochladen, dass dann auf sehr vielen Websites neben den Kommentaren angezeigt wird. Dies geschieht über eine Verknüpfung der E-Mail Adresse.</p>
<p>Also kann man über eine Verknüpfung von Gravatar und face.com an die sozialen Daten eines Nutzer kommen &#8211; Nur mit der E-Mail Adresse!</p>
<h2>Prinzip für fremde Websites</h2>
<p>Man kann sogar noch einen Schritt weiter gehen. Man liest einfach alle Gravatar-Bilder einer Website aus und bestimmt damit die Zielgruppe der Website. Suchmaschinen können sich dies zur Nutze machen und die Personalisierung der Suche auch an Hand sozialer Daten ganz leicht ausbauen.</p>
<h2>Vorsicht bei Fotos</h2>
<p>Wer solch eine Personalisierung nicht möchte, sollte sich bei Diensten wie Gravatar gar nicht erst anmelden, oder aber kein echtes Foto zur Verfügung stellen. Nur seien wir mal ehrlich: Wer von uns ist nicht bei Facebook? Durch die Nutzung dessen Logins und ähnlichen Technologien sind die Daten so oder so schon im Umlauf.</p>
<p>Letztendlich sollte man darauf achten, was man im Internet preisgibt und was nicht. Mir persönlich ist es egal, ob ich personalisierte Werbung angezeigt bekomme. Denn dadurch wird auch weniger Werbung gezeigt, weil die Anzeigen schon so wirken.</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/9oBJa_Q8CNA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/04/deine-e-mail-adresse-verrat-mir-dein-alter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/04/deine-e-mail-adresse-verrat-mir-dein-alter/</feedburner:origLink></item>
		<item>
		<title>Auswertung: Nutzung sozialer Netzwerke</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/Cga_RhSlOzY/</link>
		<comments>http://blog.stevieswebsite.de/2012/04/auswertung-nutzung-sozialer-netzwerke/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 18:20:59 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[SEO / SMO]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=9983</guid>
		<description><![CDATA[Auf Alexa kann man die Nutzungsstatistiken von Websites untersuchen. Neben den Zugriffsquellen ist es bei großen Seiten auch möglich zu sehen, was für eine Art von Menschen diese Website besuchen. Ich habe mal die Statistiken als Infografiken zusammengefasst. Leider konnte ich Google+ nicht aufnehmen, da es nur das komplette google.com gibt. &#160; Ist gilt natürlich [...]]]></description>
			<content:encoded><![CDATA[<p>Auf <a href="http://blog.stevieswebsite.de/2009/08/zugriffsquellen-fremder-websites-auslesen/">Alexa</a> kann man die Nutzungsstatistiken von Websites untersuchen. Neben den Zugriffsquellen ist es bei großen Seiten auch möglich zu sehen, was für eine Art von Menschen diese Website besuchen. Ich habe mal die Statistiken als Infografiken zusammengefasst.<span id="more-9983"></span></p>
<p>Leider konnte ich Google+ nicht aufnehmen, da es nur das komplette google.com gibt.</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://images.stevieswebsite.de/social-media/alexa/altersverteilung.jpg"><img title="Altersverteilung" src="http://images.stevieswebsite.de/social-media/alexa/altersverteilung.jpg" alt="Altersverteilung" width="500" height="400" /></a><p class="wp-caption-text">Altersverteilung</p></div>
<p>&nbsp;</p>
<div class="wp-caption alignnone" style="width: 485px"><a href="http://images.stevieswebsite.de/social-media/alexa/geschlechter.jpg"><img title="Geschlechter" src="http://images.stevieswebsite.de/social-media/alexa/geschlechter.jpg" alt="Geschlechter" width="475" height="349" /></a><p class="wp-caption-text">Geschlechter</p></div>
<div class="wp-caption alignnone" style="width: 485px"><a href="http://images.stevieswebsite.de/social-media/alexa/schule.jpg"><img title="Schulbildung" src="http://images.stevieswebsite.de/social-media/alexa/schule.jpg" alt="Schulbildung" width="475" height="349" /></a><p class="wp-caption-text">Schulbildung</p></div>
<div class="wp-caption alignnone" style="width: 485px"><a href="http://images.stevieswebsite.de/social-media/alexa/kinder.jpg"><img alt="Kinder" src="http://images.stevieswebsite.de/social-media/alexa/kinder.jpg" title="Kinder" width="475" height="349" /></a><p class="wp-caption-text">Kinder</p></div>
<div class="wp-caption alignnone" style="width: 485px"><a href="http://images.stevieswebsite.de/social-media/alexa/ort.jpg"><img alt="Ort der Nutzung" src="http://images.stevieswebsite.de/social-media/alexa/ort.jpg" title="Ort der Nutzung" width="475" height="349" /></a><p class="wp-caption-text">Ort der Nutzung</p></div>
<p>Ist gilt natürlich zu beachten, dass die Werte nich unbedingt genau sein müssen <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/Cga_RhSlOzY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/04/auswertung-nutzung-sozialer-netzwerke/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/04/auswertung-nutzung-sozialer-netzwerke/</feedburner:origLink></item>
		<item>
		<title>ContentLion Beta veröffentlicht!</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/J_s9pvSerPw/</link>
		<comments>http://blog.stevieswebsite.de/2012/04/contentlion-beta-veroffentlicht/#comments</comments>
		<pubDate>Sat, 07 Apr 2012 11:58:41 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[CMS Tutorial]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=9935</guid>
		<description><![CDATA[&#160; Vor knapp über drei Jahren hat in diesem Blog alles angefangen: Ein CMS musste erstellt werden. Es wurde in über 250 Beiträgen zusammen mit den Usern erstellt und hat somit einen ganz besonderen Open Source Stil an sich. Nach und nach hat sich das Ganze entwickelt und heute steht die Beta-Version zum Download bereit. [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption alignnone" style="width: 535px"><a href="http://www.contentlion.de/"><img title="ContentLion Dashboard" src="http://www.contentlion.de/content/uploads/doku/dashboard-525.jpg" alt="ContentLion Dashboard" width="525" height="304" /></a><p class="wp-caption-text">ContentLion Dashboard</p></div>
<p>&nbsp;</p>
<p>Vor knapp über drei Jahren hat in diesem Blog alles angefangen: <a href="http://blog.stevieswebsite.de/eigenes-cms-erstellen/">Ein CMS musste erstellt werden</a>. Es wurde in über 250 Beiträgen zusammen mit den Usern erstellt und hat somit einen ganz besonderen Open Source Stil an sich.</p>
<p>Nach und nach hat sich das Ganze entwickelt und heute steht die <a href="http://www.contentlion.de">Beta-Version zum Download</a> bereit. Diese Version soll erstmals auf eine breitere Masse an Usern ausgeliefert werden. Zuvor gab es bereits eine längere Testphase. Die Entwicklung hat echt lange gedauert (wenn auch nicht täglich daran entwickelt wurde) und ich hoffe, einige von euch als Tester gewinnen zu können.<span id="more-9935"></span></p>
<h2>Grundprinzip</h2>
<p>ContentLion ist ein CMS, welches auf einem Ordnersystem basiert. Man kann innerhalb des Ordners unter anderem Menüs und Artikel erstellen, sowie Bilder hochladen. Aber man kann auch die kompletten Einstellungen ändern. So ist es zum Beispiel möglich für einen Unterordner ein komplett anderes Design anzuzeigen oder auch eine andere Sprache zu nutzen. Und es geht sogar noch weiter: Dies geht auch mit verschiedenen Benutzergruppen. So ist das Backend mit denselben Komponenten gemacht, wie das Frontend.</p>
<h2>Suchmaschinenoptimiert</h2>
<p>Da ich mich selbst mit dem Thema Suchmaschinenoptimierung auseinander setze, habe ich dies natürlich nicht zu kurz kommen lassen. Dazu gehören zum Beispiel folgende Funktionen:</p>
<ul>
<li>Generierung der Sitemap, inkl. Priorisierung und Änderungsfrequenz</li>
<li>Automatische Canonical-Tags, die man aber auf Wunsch von Hand ändern kann</li>
<li>Integrierte Weiterleitungen, die wahlweise als 301 oder 302 fungieren.</li>
<li>Suchmaschinenfreundliche Urls (eigentlich Standard, oder?)</li>
<li>Meta Description, Keywords &amp; Robots können direkt angepasst werden. Wenn das nicht reicht, kann man auch den HTML-Head erweitern.</li>
</ul>
<h2>Erweiterbarkeit</h2>
<p>Wenn ich ein CMS nutze, möchte ich es nach meinen Wünschen anpassen können &#8211; Das ist auch ein Grund, warum ich mich entschieden hab ein CMS zu gründen. In ContentLion kann man verschiedene Seitentypen nutzen. Diese kann man durch ein Plugin erweitern, und somit eine komplett dynamische Seite erstellen.</p>
<p>Es gibt so genannte Datentypen. Diese Stellen beliebige Objekte, wie zum Beispiel Seiten oder auch Benutzer da. Wenn man einen solchen Typ per Plugin erstellt, kann man im CMS ganz leicht ein Formular zur Erfassung basteln, oder aber auch erfasste Datentypen über die API nach außen freigeben.</p>
<p>Es ist auch möglich, eine Liste zu erstellen, die mit einem SQL-Query befüllt wird.</p>
<h2>Mobil nutzbar!</h2>
<p>Das mobile Web hat sich mittlerweile etabliert. Viele Seiten haben bereits eine mobile Version im Angebot. ContentLion erkennt Smartphones automatisch und zeigt für diese ein eigenes Design an. Dies kann natürlich auch frei gewählt werden.</p>
<h2>Tester gesucht</h2>
<p>Wie ihr vielleicht am Anfang schon gemerkt habt, ist ContentLion ein CMS, was durch die Community lebt. Na klar hat nicht jeder Zeit mitzuentwickeln, aber ein wenig testen wäre schon schön <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Wir werden euer Feedback auswerten und so viel wie möglich davon auch verwirklichen.</p>
<p>Also: <a href="http://www.contentlion.de">Jetzt herunterladen!</a></p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/J_s9pvSerPw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/04/contentlion-beta-veroffentlicht/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/04/contentlion-beta-veroffentlicht/</feedburner:origLink></item>
		<item>
		<title>Erster Screenshot der Facebook Suchmaschine</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/d2PTBQ2lKSw/</link>
		<comments>http://blog.stevieswebsite.de/2012/03/facebook-suchmaschine/#comments</comments>
		<pubDate>Sat, 31 Mar 2012 12:22:39 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[SEO / SMO]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=9903</guid>
		<description><![CDATA[Vor ein paar Tagen wurde bekannt, dass Facebook möglicherweise an einer eigenen Suchmaschine arbeitet. Ich habe mir mal die Mühe gemacht, und einen Entwurf der Oberfläche gebastelt, wie ich mir die Suche vorstellen könnte. (Einfach auf das Bild klicken, um mehr zu sehen) Meiner Meinung nach wird Facebook versuchen, so viele eigene Inhalte wie möglich [...]]]></description>
			<content:encoded><![CDATA[<p>Vor ein paar Tagen wurde bekannt, dass Facebook möglicherweise an einer eigenen Suchmaschine arbeitet. Ich habe mir mal die Mühe gemacht, und einen Entwurf der Oberfläche gebastelt, wie ich mir die Suche vorstellen könnte.</p>
<div class="wp-caption alignnone" style="width: 520px"><a href="http://images.stevieswebsite.de/social-media/facebook/suchmaschine.jpg"><img title="Facebook Suchmaschine" src="http://images.stevieswebsite.de/social-media/facebook/suchmaschine-500.jpg" alt="Facebook Suchmaschine" width="510" height="367" /></a><p class="wp-caption-text">Facebook Suchmaschine</p></div>
<p style="font-size: 70%;"><em>(Einfach auf das Bild klicken, um mehr zu sehen)</em></p>
<p><span id="more-9903"></span><br />
Meiner Meinung nach wird Facebook versuchen, so viele eigene Inhalte wie möglich einzubinden. Aus diesem Grund werden vermutlich Gruppen und Seiten an prominenter Position auftauchen. Ich habe sie mal nach ganz oben gesetzt.</p>
<p>Es wird natürlich auch normale Webergebnisse geben. Da Facebook ja schon eine eigene Kommentar-Funktion zum Einbinden in externe Seiten hat, könnte ich mir vorstellen, dass diese auch in der Suche auftaucht. So könnte man jedes Ergebnis kommentieren, ob es der Webmaster will oder nicht. Die Anzahl der Kommentare und Likes wird dann vermutlich auch ein Rankingkriterium sein.</p>
<h2>Facebook und Bing?</h2>
<p>Bei der Suche selbst könnte ich mir vorstellen, dass sich Facebook hierbei mit Bing zusammentut. Das hätte Vorteile für beide Seiten. Bing bietet bereits einiges an Technologie für die Websuche. Sie indexieren bereits fleißig und haben auch Lösungen, um die Ergebnisse so passend wie möglich zu machen. So etwas komplett neu wäre für Facebook ein harter Weg. Aber auch Bing hätte etwas davon. Es kann vom Traffic her noch lange nicht mit Google mithalten. Durch die Integration von Facebook könnten sie ein großes Publikum erreichen. Nicht zuletzt arbeiten Facebook und Microsoft schon seit längeren zusammen, was meine Theorie noch unterstützt.</p>
<h2>Suche mit Fragen</h2>
<p>Ich könnte mir vorstellen, dass auch die Fragen auf Facebook eine große Rolle spielen könnten. Tippt jemand eine Frage ein, werden bereits erstellte Fragen durchsucht und dessen Ergebnis angezeigt. Ist noch keine Frage vorhanden, könnte der User diese auf seiner Pinnwand posten. Auch hier hätte Facebook eine Möglichkeit um eine gigantische Menge an Content zu kommen &#8211; Content, an den Google und Co nicht rankommen.</p>
<h2>Stefan Wienströer sucht &#8220;test&#8221;</h2>
<p>Wenn Facebook den Datenschützern einen kleinen Streich spielen möchte, könnten sie ein Widget machen, in dem die aktuellen Suchanfragen der Freunde angezeigt werden. So könnte man sich gegenseitig Ergebnisse vorschlagen. Sowas gibt es glaub ich auch noch nicht.</p>
<h2>Fazit</h2>
<p>Es wird auf jeden Fall spannend, wenn Facebook mit einer Suchmaschine ankommt. Durch das große Publikum könnte es Google, zumindest ein wenig, vom großen Kuchen der Websuche klauen. Ich bin mal gespannt, ob die Suche ein paar meiner Ideen wirklich eingebaut hat. Vielleicht lassen die sich ja auch von dem Artikel inspirieren <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<ul>
<li><a href="http://www.seo-united.de/blog/internet/facebook-suchmaschine.htm">Arbeitet Facebook an einer Suchmaschine? (seo-united.de)</a></li>
<li><a href="http://t3n.de/news/facebook-macht-sozialer-379099/">Facebook macht mit sozialer Suchfunktion Google Konkurrenz [Bericht] (t3n.de)</a></li>
</ul>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/d2PTBQ2lKSw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/03/facebook-suchmaschine/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/03/facebook-suchmaschine/</feedburner:origLink></item>
		<item>
		<title>Infografik deiner Facebook Nutzung</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/1UudRhIltjI/</link>
		<comments>http://blog.stevieswebsite.de/2012/03/infografik-deiner-facebook-nutzung/#comments</comments>
		<pubDate>Sun, 25 Mar 2012 11:58:11 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Seitenvorstellung]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=9858</guid>
		<description><![CDATA[Inforgrafiken gibt es letzter Zeit in großer Masse. Aber jetzt gibt es einen Dienst, der eine Infografik an Hand deiner Facebook Nutzung: GetAboutMe. Einen Teil der Statistik gibt es so, für einen anderen muss man einen Like ausführen (kann man ja nach der Nutzung wieder rausnehmen ) Das besondere an der Grafik ist, dass die [...]]]></description>
			<content:encoded><![CDATA[<p>Inforgrafiken gibt es letzter Zeit in großer Masse. Aber jetzt gibt es einen Dienst, der eine Infografik an Hand deiner Facebook Nutzung: <a href="http://www.getabout.me">GetAboutMe</a>. Einen Teil der Statistik gibt es so, für einen anderen muss man einen Like ausführen (kann man ja nach der Nutzung wieder rausnehmen <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )</p>
<p><div class="wp-caption alignnone" style="width: 510px"><a href="http://images.stevieswebsite.de/tools/getaboutme/posts.jpg"><img title="Analyse der letzten Posts" src="http://images.stevieswebsite.de/tools/getaboutme/posts-500.jpg" alt="Analyse der letzten Posts" width="500" height="651" /></a><p class="wp-caption-text">Analyse der letzten Posts</p></div><span id="more-9858"></span></p>
<p>Das besondere an der Grafik ist, dass die das &#8220;ö&#8221; in meinem Nachnamen vergessen haben <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' />  Ich habe im Schnitt jeden Tag einen Post geschrieben. Dafür gab es 180 Likes und 134 Kommentare. Am meisten schreibe ich meistens am Freitag und allgemein so um 19 Uhr. Die Uhrzeit kann passen, da ich um die Zeit meistens abends meinen Rechner anschalte <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Gegen 12 hab ich Mittagspause, wo dann vielleicht auch mal ein Post geschrieben wird. Aber so 100%tig genau, sind die andern Uhrzeiten nicht.</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://images.stevieswebsite.de/tools/getaboutme/ueber-mich.jpg"><img title="Über mich" src="http://images.stevieswebsite.de/tools/getaboutme/ueber-mich-500.jpg" alt="Über mich" width="500" /></a><p class="wp-caption-text">Über mich</p></div>
<p>Von mir gibt&#8217;s nicht viele Fotos auf Facebook, dass zeigt auch die Statistik. Die meisten meiner Facebook Freunde sind männlich, was wohl an meinen eher technischen Posts liegt.</p>
<div class="wp-caption alignnone" style="width: 510px"><a href="http://images.stevieswebsite.de/tools/getaboutme/mehr-ueber-mich.jpg"><img title="Mehr über mich" src="http://images.stevieswebsite.de/tools/getaboutme/mehr-ueber-mich-500.jpg" alt="Mehr über mich" width="500" height="702" /></a><p class="wp-caption-text">Mehr über mich</p></div>
<p>Da ich nirgends einchecke, habe ich auch noch keine KM zurückgelegt. Auch Gruppenmitgliedschaften hab ich nicht viele. Meine Freunde sind ungefähr so alt wie ich (21).</p>
<p>Insgesamt ist es ein interessantes Tool. Mich würd mal interessieren, was bei euch so rausgekommen ist.</p>
<p><em>Gefunden auf <a href="http://thenextweb.com/socialmedia/2012/03/19/this-app-generates-gorgeous-and-informative-infographics-about-your-facebook-usage/">TheNextWeb</a>.</em></p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/1UudRhIltjI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/03/infografik-deiner-facebook-nutzung/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/03/infografik-deiner-facebook-nutzung/</feedburner:origLink></item>
		<item>
		<title>Bildbearbeitung mit HTML5</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/pazLFPyUsqg/</link>
		<comments>http://blog.stevieswebsite.de/2012/03/bildbearbeitung-mit-html5/#comments</comments>
		<pubDate>Sun, 18 Mar 2012 15:39:50 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Webentwicklung]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=9822</guid>
		<description><![CDATA[Mit dem Canvas-Element von HTML5 kann man vieles machen. Man kann zum Beispiel aus Bildbearbeitungsprogrammen bekannte Filter-Funktionen, wie zum Beispiel das Negieren eines Bildes nachbauen. Und genau das werde ich heute mit euch machen. Bild in das Canvas laden Als erstes müssen wir ein Bild in das Canvas-Element laden. Dieses muss aus Sicherheitsgründen auf der [...]]]></description>
			<content:encoded><![CDATA[<p>Mit dem Canvas-Element von HTML5 kann man vieles machen. Man kann zum Beispiel aus Bildbearbeitungsprogrammen bekannte Filter-Funktionen, wie zum Beispiel das Negieren eines Bildes nachbauen. Und genau das werde ich heute mit euch machen.<span id="more-9822"></span></p>
<h2>Bild in das Canvas laden</h2>
<p>Als erstes müssen wir ein Bild in das Canvas-Element laden. Dieses muss aus Sicherheitsgründen auf der gleichen Domain liegen. Fangen wir mal an mit der HTML-Datei:</p>
<pre style="color: #fffff0; background-color: #1f3048; font-size: 10pt; font-family: 'MS Shell Dlg 2';"><span style="color: #f0e68c;">&lt;!DOCTYPE</span> html<span style="color: #f0e68c;">&gt;</span>
<span style="color: #f0e68c;">&lt;html&gt;</span>
  <span style="color: #f0e68c;">&lt;head&gt;</span>
    <span style="color: #f0e68c;">&lt;title&gt;</span>HTML <span style="color: #cdb7b5;">5</span> Bildbearbeitung<span style="color: #f0e68c;">&lt;/title&gt;</span>
    <span style="color: #f0e68c;">&lt;script</span> <span style="color: #ffdead;">src</span>=<span style="color: #9ac0cd;">"imageeditor.js"</span> <span style="color: #ffdead;">type</span>=<span style="color: #9ac0cd;">"text/javascript"</span><span style="color: #f0e68c;">&gt;&lt;/script&gt;</span>
  <span style="color: #f0e68c;">&lt;/head&gt;</span>
  <span style="color: #f0e68c;">&lt;body&gt;</span>
    <span style="color: #f0e68c;">&lt;canvas</span> <span style="color: #ffdead;">id</span>=<span style="color: #9ac0cd;">"canvas"</span><span style="color: #f0e68c;">&gt;&lt;/canvas&gt;</span>
  <span style="color: #f0e68c;">&lt;/body&gt;</span>
<span style="color: #f0e68c;">&lt;/html&gt;</span></pre>
<p>Hier wird einfach nur ein Canvas-Element platziert und das Script imageeditor.js geladen. Dieses Script müssen wir jetzt erstellen:</p>
<pre style="color: #fffff0; background-color: #1f3048; font-size: 10pt; font-family: 'MS Shell Dlg 2';"><span style="color: #f0e68c;">function</span> <span style="color: #8bf0e6;">ImageEditor</span><span style="color: #fffff0;">(</span>imageUrl<span style="color: #fffff0;">,</span>canvasId<span style="color: #fffff0;">)</span>
<span style="color: #fffff0;">{</span>
  <span style="color: #708090;">//Den Context brauchen wir um mit den Canvas zu interagieren</span>
  <span style="color: #f0e68c;">var</span> context <span style="color: #fffff0;">=</span> document<span style="color: #fffff0;">.</span><span style="color: #8bf0e6;">getElementById</span><span style="color: #fffff0;">(</span>canvasId<span style="color: #fffff0;">).</span><span style="color: #8bf0e6;">getContext</span><span style="color: #fffff0;">(</span><span style="color: #9ac0cd;">'2d'</span><span style="color: #fffff0;">);</span>

  <span style="color: #708090;">//Ein neues Image-Objekt erstellen</span>
  <span style="color: #f0e68c;">var</span> image <span style="color: #fffff0;">=</span> <span style="color: #f0e68c;">new</span> <span style="color: #8bf0e6;">Image</span><span style="color: #fffff0;">();</span>

  <span style="color: #708090;">//Die im Parameter angegebene Url laden</span>
  image<span style="color: #fffff0;">.</span>src <span style="color: #fffff0;">=</span> imageUrl<span style="color: #fffff0;">;</span>

  <span style="color: #708090;">//Wenn das Bild fertig geladen hat, können wir weiter machen</span>
  image<span style="color: #fffff0;">.</span>onload <span style="color: #fffff0;">=</span> <span style="color: #f0e68c;">function</span><span style="color: #fffff0;">(){</span>
    <span style="color: #708090;">//Das Canvas soll die gleiche Größe haben, </span>
    <span style="color: #708090;">//wie das Bild</span>
    document<span style="color: #fffff0;">.</span><span style="color: #8bf0e6;">getElementById</span><span style="color: #fffff0;">(</span>canvasId<span style="color: #fffff0;">).</span>width <span style="color: #fffff0;">=</span> image<span style="color: #fffff0;">.</span>width<span style="color: #fffff0;">;</span>
    document<span style="color: #fffff0;">.</span><span style="color: #8bf0e6;">getElementById</span><span style="color: #fffff0;">(</span>canvasId<span style="color: #fffff0;">).</span>height <span style="color: #fffff0;">=</span> image<span style="color: #fffff0;">.</span>height<span style="color: #fffff0;">;</span>

    <span style="color: #708090;">//Bild in das Canvas zeichnen</span>
    context<span style="color: #fffff0;">.</span><span style="color: #8bf0e6;">drawImage</span><span style="color: #fffff0;">(</span>image<span style="color: #fffff0;">,</span><span style="color: #cdb7b5;">0</span><span style="color: #fffff0;">,</span><span style="color: #cdb7b5;">0</span><span style="color: #fffff0;">);</span>
  <span style="color: #fffff0;">}</span>

<span style="color: #fffff0;">}</span></pre>
<p>Diese Funktion soll später als Klasse interagieren. Wir benötigen ein context-Objekt, mit welchen gezeichnet werden kann. Dieses Objekt wird über die, als Parameter übergebene, ID des Canvas-Elements erstellt. Hauptverantwortlich für die Bilder ist das Image-Objekt. Dies bietet die Funktion onLoad, die aufgerufen wird, wenn das Bild vollständig heruntergeladen wurde.</p>
<p>Jetzt müssen wir das ganze nur Noch in der HTML-Datei aufrufen:</p>
<pre style="color: #fffff0; background-color: #1f3048; font-size: 10pt; font-family: 'MS Shell Dlg 2';"><span style="color: #f0e68c;">&lt;!DOCTYPE</span> html<span style="color: #f0e68c;">&gt;</span>
<span style="color: #f0e68c;">&lt;html&gt;</span>
  <span style="color: #f0e68c;">&lt;head&gt;</span>
    <span style="color: #f0e68c;">&lt;title&gt;</span>HTML <span style="color: #cdb7b5;">5</span> Bildbearbeitung<span style="color: #f0e68c;">&lt;/title&gt;</span>
    <span style="color: #f0e68c;">&lt;script</span> <span style="color: #ffdead;">src</span>=<span style="color: #9ac0cd;">"imageeditor.js"</span> <span style="color: #ffdead;">type</span>=<span style="color: #9ac0cd;">"text/javascript"</span><span style="color: #f0e68c;">&gt;&lt;/script&gt;</span>
  <span style="color: #f0e68c;">&lt;/head&gt;</span>
  <span style="color: #f0e68c;">&lt;body&gt;</span>
    <span style="color: #f0e68c;">&lt;canvas</span> <span style="color: #ffdead;">id</span>=<span style="color: #9ac0cd;">"canvas"</span><span style="color: #f0e68c;">&gt;&lt;/canvas&gt;</span>

    <span style="color: #f0e68c;">&lt;script</span> <span style="color: #ffdead;">type</span>=<span style="color: #9ac0cd;">"text/javascript"</span><span style="color: #f0e68c;">&gt;</span>
      var editor = new ImageEditor('avatar.jpg','canvas');
    <span style="color: #f0e68c;">&lt;/script&gt;</span>
  <span style="color: #f0e68c;">&lt;/body&gt;</span>
<span style="color: #f0e68c;">&lt;/html&gt;</span></pre>
<p>Wenn jetzt die Datei avatar.jpg im Ordner liegt und der Browser das Canvas schon unterstützt, sollte nun das Bild angezeigt werden. <a href="http://blog.stevieswebsite.de/demo/imageeditor/1/">Beispiel anzeigen</a></p>
<h2>Bild negieren</h2>
<p>Ist das Bild geladen, können wir mit dem Bearbeiten anfangen. Als Beispiel habe ich mir das Negieren des Bildes überlegt. Dafür erweitere ich den ImageEditor um die Funktion invert:</p>
<pre style="color:#fffff0; background-color:#1f3048; font-size:10pt; font-family:'MS Shell Dlg 2';"><span style="color:#f0e68c">function</span> <span style="color:#8bf0e6">ImageEditor</span><span style="color:#fffff0">(</span>imageUrl<span style="color:#fffff0">,</span>canvasId<span style="color:#fffff0">)</span>
<span style="color:#fffff0">{</span>
  <span style="color:#708090">//Den Context brauchen wir um mit den Canvas zu interagieren</span>
  <span style="color:#f0e68c">var</span> context <span style="color:#fffff0">=</span> document<span style="color:#fffff0">.</span><span style="color:#8bf0e6">getElementById</span><span style="color:#fffff0">(</span>canvasId<span style="color:#fffff0">).</span><span style="color:#8bf0e6">getContext</span><span style="color:#fffff0">(</span><span style="color:#9ac0cd">'2d'</span><span style="color:#fffff0">);</span>

  <span style="color:#708090">//Ein neues Image-Objekt erstellen</span>
  <span style="color:#f0e68c">var</span> image <span style="color:#fffff0">=</span> <span style="color:#f0e68c">new</span> <span style="color:#8bf0e6">Image</span><span style="color:#fffff0">();</span>

  <span style="color:#708090">//Bild noch nicht geladen</span>
  <span style="color:#f0e68c">var</span> ready <span style="color:#fffff0">=</span> <span style="color:#f0e68c">false</span><span style="color:#fffff0">;</span>

  <span style="color:#708090">//Die im Parameter angegebene Url laden</span>
  image<span style="color:#fffff0">.</span>src <span style="color:#fffff0">=</span> imageUrl<span style="color:#fffff0">;</span>

  <span style="color:#708090">//Wenn das Bild fertig geladen hat, können wir weiter machen</span>
  image<span style="color:#fffff0">.</span>onload <span style="color:#fffff0">=</span> <span style="color:#f0e68c">function</span><span style="color:#fffff0">(){</span>
    <span style="color:#708090">//Das Canvas soll die gleiche Größe haben, </span>
    <span style="color:#708090">//wie das Bild</span>
    document<span style="color:#fffff0">.</span><span style="color:#8bf0e6">getElementById</span><span style="color:#fffff0">(</span>canvasId<span style="color:#fffff0">).</span>width <span style="color:#fffff0">=</span> image<span style="color:#fffff0">.</span>width<span style="color:#fffff0">;</span>
    document<span style="color:#fffff0">.</span><span style="color:#8bf0e6">getElementById</span><span style="color:#fffff0">(</span>canvasId<span style="color:#fffff0">).</span>height <span style="color:#fffff0">=</span> image<span style="color:#fffff0">.</span>height<span style="color:#fffff0">;</span>

    <span style="color:#708090">//Bild in das Canvas zeichnen</span>
    context<span style="color:#fffff0">.</span><span style="color:#8bf0e6">drawImage</span><span style="color:#fffff0">(</span>image<span style="color:#fffff0">,</span><span style="color:#cdb7b5">0</span><span style="color:#fffff0">,</span><span style="color:#cdb7b5">0</span><span style="color:#fffff0">);</span>

	<span style="color:#708090">//Bild geladen</span>
	ready <span style="color:#fffff0">=</span> <span style="color:#f0e68c">true</span><span style="color:#fffff0">;</span>
  <span style="color:#fffff0">}</span>

  <span style="color:#708090">//Neue Funktion zum Farben-Umdrehen</span>
  <span style="color:#f0e68c">this</span><span style="color:#fffff0">.</span>invert <span style="color:#fffff0">=</span> <span style="color:#f0e68c">function</span> <span style="color:#fffff0">()</span>
  <span style="color:#fffff0">{</span>
    <span style="color:#708090">//wenn das Bild noch nicht geladen hat, können</span>
    <span style="color:#708090">//wir dies noch nicht bearbeiten.</span>
    <span style="color:#f0e68c">if</span><span style="color:#fffff0">(!</span>ready<span style="color:#fffff0">)</span>
    <span style="color:#fffff0">{</span>
      <span style="color:#708090">//Deswegen warten wir einfach 100ms und versuchen es dann erneut.</span>
      <span style="color:#8bf0e6">setTimeout</span><span style="color:#fffff0">(</span><span style="color:#f0e68c">this</span><span style="color:#fffff0">.</span>invert<span style="color:#fffff0">,</span><span style="color:#cdb7b5">100</span><span style="color:#fffff0">);</span>
    <span style="color:#fffff0">}</span>
    <span style="color:#f0e68c">else</span>
    <span style="color:#fffff0">{</span>
      <span style="color:#708090">//Aus dem Context das Bild laden.</span>
      <span style="color:#f0e68c">var</span> image_data <span style="color:#fffff0">=</span> context<span style="color:#fffff0">.</span><span style="color:#8bf0e6">getImageData</span><span style="color:#fffff0">(</span><span style="color:#cdb7b5">0</span><span style="color:#fffff0">,</span> <span style="color:#cdb7b5">0</span><span style="color:#fffff0">,</span> image<span style="color:#fffff0">.</span>width<span style="color:#fffff0">,</span> image<span style="color:#fffff0">.</span>height<span style="color:#fffff0">);</span>

      <span style="color:#708090">//Aus den Bilddaten ein Array von Pixeln holen</span>
      <span style="color:#f0e68c">var</span> pixel <span style="color:#fffff0">=</span> image_data<span style="color:#fffff0">.</span>data<span style="color:#fffff0">;</span>

      <span style="color:#f0e68c">for</span> <span style="color:#fffff0">(</span><span style="color:#f0e68c">var</span> i <span style="color:#fffff0">=</span> <span style="color:#cdb7b5">0</span><span style="color:#fffff0">,</span> n <span style="color:#fffff0">=</span> pixel<span style="color:#fffff0">.</span>length<span style="color:#fffff0">;</span> i <span style="color:#fffff0">&lt;</span> n<span style="color:#fffff0">;</span> i <span style="color:#fffff0">+=</span> <span style="color:#cdb7b5">4</span><span style="color:#fffff0">)</span>
      <span style="color:#fffff0">{</span>
        <span style="color:#708090">//Zum negieren vom max. Farbwert den aktuellen Farbwert</span>
        <span style="color:#708090">//abziehen</span>
        pixel<span style="color:#8bf0b3">[i]</span>   <span style="color:#fffff0">=</span> <span style="color:#cdb7b5">255</span> <span style="color:#fffff0">-</span> pixel<span style="color:#8bf0b3">[i]</span><span style="color:#fffff0">;</span> <span style="color:#708090">//Rot</span>
        pixel<span style="color:#fffff0">[</span>i<span style="color:#fffff0">+</span><span style="color:#cdb7b5">1</span><span style="color:#fffff0">] =</span> <span style="color:#cdb7b5">255</span> <span style="color:#fffff0">-</span> pixel<span style="color:#fffff0">[</span>i<span style="color:#fffff0">+</span><span style="color:#cdb7b5">1</span><span style="color:#fffff0">];</span> <span style="color:#708090">//Grün</span>
        pixel<span style="color:#fffff0">[</span>i<span style="color:#fffff0">+</span><span style="color:#cdb7b5">2</span><span style="color:#fffff0">] =</span> <span style="color:#cdb7b5">255</span> <span style="color:#fffff0">-</span> pixel<span style="color:#fffff0">[</span>i<span style="color:#fffff0">+</span><span style="color:#cdb7b5">2</span><span style="color:#fffff0">];</span> <span style="color:#708090">//Blau</span>

        <span style="color:#708090">//Der vierte Eintrag, ist der Wert für die Transparenz</span>
      <span style="color:#fffff0">}</span>

      <span style="color:#708090">//Das Bild neu zeichnen.</span>
      context<span style="color:#fffff0">.</span><span style="color:#8bf0e6">putImageData</span><span style="color:#fffff0">(</span>image_data<span style="color:#fffff0">,</span> <span style="color:#cdb7b5">0</span><span style="color:#fffff0">,</span> <span style="color:#cdb7b5">0</span><span style="color:#fffff0">);</span>
	<span style="color:#fffff0">}</span>
  <span style="color:#fffff0">}</span>

<span style="color:#fffff0">}</span>
</pre>
<p>Mit der Funktion getImageData bekommt man ein Array mit den Farbwerten des Bildes. Dabei stehen 4 Werte für je ein Pixel. Die Reihenfolge ist dort folgendermaßen:</p>
<ol>
<li>Rot-Wert</li>
<li>Grün-Wert</li>
<li>Blau-Wert</li>
<li>Alpha-Wert</li>
</ol>
<p>Diese Werte können wir nach Belieben ändern und somit das Bild bearbeiten. In unserem Beispiel werden alle Pixel durchlaufen und negiert. Das geht, wenn man den maximalen Wert(255) minus den aktuellen Farbwert nimmt. </p>
<p>Ich habe mit der Variable ready eine Überprüfung eingebaut, ob das Bild geladen wurde. Ist das nicht der Fall, wird noch 100ms gewartet. Ohne ein geladenes Bild wird es nämlich einen Fehler geben.</p>
<p>Jetzt muss die Funktion nur noch in der index.html aufgerufen werden und unser Bild wird negiert:</p>
<pre style="color:#fffff0; background-color:#1f3048; font-size:10pt; font-family:'MS Shell Dlg 2';"><span style="color:#f0e68c">&lt;!DOCTYPE</span> html<span style="color:#f0e68c">&gt;</span>
<span style="color:#f0e68c">&lt;html&gt;</span>
  <span style="color:#f0e68c">&lt;head&gt;</span>
    <span style="color:#f0e68c">&lt;title&gt;</span>HTML <span style="color:#cdb7b5">5</span> Bildbearbeitung<span style="color:#f0e68c">&lt;/title&gt;</span>
    <span style="color:#f0e68c">&lt;script</span> <span style="color:#ffdead">src</span>=<span style="color:#9ac0cd">&quot;imageeditor.js&quot;</span> <span style="color:#ffdead">type</span>=<span style="color:#9ac0cd">&quot;text/javascript&quot;</span><span style="color:#f0e68c">&gt;&lt;/script&gt;</span>
  <span style="color:#f0e68c">&lt;/head&gt;</span>
  <span style="color:#f0e68c">&lt;body&gt;</span>
    <span style="color:#f0e68c">&lt;canvas</span> <span style="color:#ffdead">id</span>=<span style="color:#9ac0cd">&quot;canvas&quot;</span><span style="color:#f0e68c">&gt;&lt;/canvas&gt;</span>

    <span style="color:#f0e68c">&lt;script</span> <span style="color:#ffdead">type</span>=<span style="color:#9ac0cd">&quot;text/javascript&quot;</span><span style="color:#f0e68c">&gt;</span>
      var editor = new ImageEditor('avatar.jpg','canvas');
      editor.invert();
    <span style="color:#f0e68c">&lt;/script&gt;</span>
  <span style="color:#f0e68c">&lt;/body&gt;</span>
<span style="color:#f0e68c">&lt;/html&gt;</span>
</pre>
<p><a href="http://blog.stevieswebsite.de/demo/imageeditor/2/">Beispiel online ansehen</a></p>
<h2>Aufgabe für dich</h2>
<p>Den ImageEditor kannst du nun durch eigene Funktionen erweitern. Eine leichte Übungsaufgabe ist es, das Bild in ein Schwarz-Weiß Bild umzuwandeln. Ich habe dies schon gemacht, wenn du nicht weiterkommst schick ich dir mein Ergebnis <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Ansonsten kannst du aber auch einfach mal ein Bildbearbeitungsprogramm deiner Wahl öffnen und versuchen andere Filter und Funktionen einzubauen. Beispiele:</p>
<ol>
<li>Comic-Filter</li>
<li>Farbfilter</li>
<li>Bilderrahmen erstellen</li>
</ol>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/pazLFPyUsqg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/03/bildbearbeitung-mit-html5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/03/bildbearbeitung-mit-html5/</feedburner:origLink></item>
		<item>
		<title>Windows 8 installieren – Bildergalerie</title>
		<link>http://feedproxy.google.com/~r/stevieswebsite/~3/Abtnn8F2bwM/</link>
		<comments>http://blog.stevieswebsite.de/2012/03/windows-8-installieren-bildergalerie/#comments</comments>
		<pubDate>Sun, 11 Mar 2012 11:56:29 +0000</pubDate>
		<dc:creator>Stefan Wienströer</dc:creator>
				<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://blog.stevieswebsite.de/?p=9792</guid>
		<description><![CDATA[Ich habe mich heute mal an die Windows 8 Consumer Review gewagt und möchte euch heute eine kleine Bildergalerie dessen Installation bieten. Windows 8 verfügt über einen eigenen App-Store, weshalb man sich als Entwickler mal damit beschäftigen kann &#8211; Wer früh einsteigt, kann einen Vorsprung auf spätere Apps aufbauen Bei der Sprache wähle ich überall [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe mich heute mal an die <a href="http://windows.microsoft.com/en-US/windows-8/consumer-preview">Windows 8 Consumer Review</a> gewagt und möchte euch heute eine kleine Bildergalerie dessen Installation bieten. Windows 8 verfügt über einen eigenen App-Store, weshalb man sich als Entwickler mal damit beschäftigen kann &#8211; Wer früh einsteigt, kann einen Vorsprung auf spätere Apps aufbauen <img src='http://blog.stevieswebsite.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> <span id="more-9792"></span></p>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/sprache.jpg"><img title="Sprache auswählen" src="http://images.stevieswebsite.de/tools/windows-8/installation/sprache-520.jpg" alt="Sprache auswählen" width="520" height="390" /></a><p class="wp-caption-text">Sprache auswählen</p></div>
<p>Bei der Sprache wähle ich überall Deutsch aus.</p>
<p>&nbsp;</p>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/installation-starten.jpg"><img class=" " title="Installation starten" src="http://images.stevieswebsite.de/tools/windows-8/installation/installation-starten-520.jpg" alt="Installation starten" width="520" height="390" /></a><p class="wp-caption-text">Installation starten</p></div>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/setup-wird-gestartet.jpg"><img title="Setup wird gestartet" src="http://images.stevieswebsite.de/tools/windows-8/installation/setup-wird-gestartet-520.jpg" alt="Setup wird gestartet" width="520" height="390" /></a><p class="wp-caption-text">Setup wird gestartet</p></div>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/product-key.jpg"><img title="Product Key eingeben" src="http://images.stevieswebsite.de/tools/windows-8/installation/product-key-520.jpg" alt="Product Key eingeben" width="520" height="390" /></a><p class="wp-caption-text">Product Key eingeben</p></div>
<p>Hier habe ich mich erst gefragt, woher ich einen Product-Key bekommen soll, ist doch nur eine Preview. Den gibt es aber <a href="http://www.drwindows.de/windows-8-allgemein/46162-windows-8-developer-preview-build-product-key.html">hier</a>.</p>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/lizenzbedingungen.jpg"><img title="Windows 8 Lizenzbedingungen" src="http://images.stevieswebsite.de/tools/windows-8/installation/lizenzbedingungen-520.jpg" alt="Windows 8 Lizenzbedingungen" width="520" height="390" /></a><p class="wp-caption-text">Windows 8 Lizenzbedingungen</p></div>
<p>Durchlesen und zustimmen (oder Installation abbrechen und auf <a href="http://blog.stevieswebsite.de/2010/08/ubuntu-server-installation-auf-virtualbox/">Ubuntu</a> umsteigen).</p>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/upgrade.jpg"><img title="WIndows 8 Upgrade" src="http://images.stevieswebsite.de/tools/windows-8/installation/upgrade-520.jpg" alt="WIndows 8 Upgrade" width="520" height="390" /></a><p class="wp-caption-text">Windows 8 Upgrade</p></div>
<p>Wer bereits Windows 7 installiert hat, kann diese einfach upgraden. Da ich einen neuen (virtuellen) Rechner aufgesetzt habe, muss ich die zweite Option nehmen.</p>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/festplatte-waehlen.jpg"><img alt="Festplatte wählen" src="http://images.stevieswebsite.de/tools/windows-8/installation/festplatte-waehlen-520.jpg" title="Festplatte wählen" width="520" height="390" /></a><p class="wp-caption-text">Festplatte wählen</p></div>
<p>Man sollte fürs Windows immer seine schnellste Festplatte nehmen, da dies schließlich immer gestartet wird. Wer eine SSD-Festplatte zur Verfügung hat sollte sie auf jeden Fall nutzen.</p>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/windows-wird-installiert.jpg"><img alt="Windows wird installiert..." src="http://images.stevieswebsite.de/tools/windows-8/installation/windows-wird-installiert-520.jpg" title="Windows wird installiert..." width="520" height="390" /></a><p class="wp-caption-text">Windows wird installiert...</p></div>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/neustart.jpg"><img alt="Neustart" src="http://images.stevieswebsite.de/tools/windows-8/installation/neustart-520.jpg" title="Neustart" width="520" height="390" /></a><p class="wp-caption-text">Neustart</p></div>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/registrierungseinstellungen-werden-aktualisiert.jpg"><img alt="Registrierungseinstellungen werden aktualisiert" src="http://images.stevieswebsite.de/tools/windows-8/installation/registrierungseinstellungen-werden-aktualisiert-520.jpg" title="Registrierungseinstellungen werden aktualisiert" width="520" height="390" /></a><p class="wp-caption-text">Registrierungseinstellungen werden aktualisiert</p></div>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/anpassen.jpg"><img alt="Anpassen" src="http://images.stevieswebsite.de/tools/windows-8/installation/anpassen-520.jpg" title="Anpassen" width="520" height="390" /></a><p class="wp-caption-text">Anpassen</p></div>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/einstellungen.jpg"><img alt="Einstellungen" src="http://images.stevieswebsite.de/tools/windows-8/installation/einstellungen-520.jpg" title="Einstellungen" width="520" height="390" /></a><p class="wp-caption-text">Einstellungen</p></div>
<p>Ich habe mich für die Expresseinstellungen entschieden.<br />
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/anmelden.jpg"><img alt="Anmelden" src="http://images.stevieswebsite.de/tools/windows-8/installation/anmelden-520.jpg" title="Anmelden" width="520" height="390" /></a><p class="wp-caption-text">Anmelden</p></div></p>
<p>Um später alle Dienste nutzen zu können, muss man sich mit seiner E-Mail Adresse anmelden. So ähnlich ist es ja zum Beispiel auch bei Android.</p>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/anmelden-kennwort.jpg"><img alt="Angabe der Benutzerdaten" src="http://images.stevieswebsite.de/tools/windows-8/installation/anmelden-kennwort-520.jpg" title="Angabe der Benutzerdaten" width="520" height="390" /></a><p class="wp-caption-text">Angabe der Benutzerdaten</p></div>
<p>Nach der E-Mail kommen dann die klassischen Login-Daten. Mein Rechner war noch nicht online, weshalb ich da so eine schöne Notiz bekommen habe.</p>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/einstellungen-festlegen.jpg"><img alt="Einstellungen festlegen" src="http://images.stevieswebsite.de/tools/windows-8/installation/einstellungen-festlegen-520.jpg" title="Einstellungen festlegen" width="520" height="390" /></a><p class="wp-caption-text">Einstellungen festlegen</p></div>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/willkommen.jpg"><img alt="Willkommen" src="http://images.stevieswebsite.de/tools/windows-8/installation/willkommen-520.jpg" title="Willkommen" width="520" height="390" /></a><p class="wp-caption-text">Willkommen</p></div>
<div class="wp-caption alignnone" style="width: 530px"><a href="http://images.stevieswebsite.de/tools/windows-8/installation/start.jpg"><img alt="Start - Installation vollendet!" src="http://images.stevieswebsite.de/tools/windows-8/installation/start-520.jpg" title="Start - Installation vollendet!" width="520" height="390" /></a><p class="wp-caption-text">Start - Installation vollendet!</p></div>
<p>Damit ist die Installation auch schon beendet. Nicht weiter schwer, oder? Ich werde mich jetzt mal die Tage das Ganze etwas näher ansehen, um euch dann vielleicht noch ein paar weitere Dinge zu zeigen./a</p>
<img src="http://feeds.feedburner.com/~r/stevieswebsite/~4/Abtnn8F2bwM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.stevieswebsite.de/2012/03/windows-8-installieren-bildergalerie/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.stevieswebsite.de/2012/03/windows-8-installieren-bildergalerie/</feedburner:origLink></item>
	</channel>
</rss>

