<?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>webmatze.de &#187; Programmierung</title>
	<atom:link href="http://webmatze.de/category/uncategorized/programmierung/feed/" rel="self" type="application/rss+xml" />
	<link>http://webmatze.de</link>
	<description>Profi Tipps für einen erfolgreichen Internetauftritt</description>
	<lastBuildDate>Mon, 02 Apr 2012 22:33:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Ruby on Rails auf Ubuntu 11.10 installieren</title>
		<link>http://webmatze.de/ruby-on-rails-auf-ubuntu-11-10-installieren/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ruby-on-rails-auf-ubuntu-11-10-installieren</link>
		<comments>http://webmatze.de/ruby-on-rails-auf-ubuntu-11-10-installieren/#comments</comments>
		<pubDate>Sat, 15 Oct 2011 14:17:06 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=689</guid>
		<description><![CDATA[Seit einigen Tagen (Oktober 2011) ist die neuste Version von Ubuntu zum Download freigegeben. Ubuntu 11.10 oder auch Oneiric Ocelot genannt, ist ein wirklich ausgereiftes und leicht zu bedienendes Linux Betriebssystem, welches kostenlos zum Download bereit steht. Da Linux schon &#8230; <a href="http://webmatze.de/ruby-on-rails-auf-ubuntu-11-10-installieren/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Seit einigen Tagen (Oktober 2011) ist die neuste Version von <a title="Ubuntu Linux" href="http://www.ubuntu.com/">Ubuntu</a> zum <a title="Download Ubuntu hier" href="http://www.ubuntu.com/download">Download</a> freigegeben. <strong>Ubuntu 11.10</strong> oder auch <strong>Oneiric Ocelot</strong> genannt, ist ein wirklich ausgereiftes und leicht zu bedienendes Linux Betriebssystem, welches kostenlos zum Download bereit steht. Da Linux schon von Natur aus viele Funktionen und Helfer für Programmierer bereit hält, eignet es sich auch hervorragend zur Entwicklung von <strong>Ruby on Rails</strong> Anwendungen.</p>
<p><a title="Ruby on Rails" href="http://rubyonrails.org/">Ruby on Rails</a> hingegen ist derzeit eines der populärsten und produktivsten OpenSource Frameworks, mit dem sich sehr schnell umfangreiche Webanwendungen erstellen lassen. Wer schon damit gearbeitet hat, weiß wieviel Spaß es machen kann.</p>
<p><a title="Ruby Homepage" href="http://www.ruby-lang.org">Ruby</a> selbst ist eine Scriptsprache, wie z.B. auch PHP eine Scriptsprache ist. Ruby wurde jedoch von Grund auf mit dem Ziel entwickelt, leicht verständlich zu sein und eine schnelle Entwicklung damit zu ermöglichen.</p>
<h3>Ubuntu für Rails vorbereiten</h3>
<p>Damit wir das Rails Framework unter <strong>Ubuntu 11.10</strong> verwenden können, müssen wir zuerst <strong>Ruby</strong> installieren. Von Haus aus ist Ubuntu noch nicht mit Ruby ausgestattet, jedoch läßt sich dieses (und auch andere Programmiersprachen) sehr leicht nachträglich installieren.</p>
<p>Hierzu muss man wissen, dass es verschiedene Versionen von Ruby gibt. Ältere Versionen von Ruby on Rails haben hauptsächlich auf die <strong>Ruby Version 1.8.7</strong> gesetzt. Die neusten <strong>Ruby on Rails Versionen ab 3.0</strong> verwenden jedoch bevorzugt <strong>Ruby Version 1.9.2</strong>. Um unser System also für die Zukunft vorzubereiten, werden wir auf den <a title="Ruby Version Manager Homepage" href="http://beginrescueend.com/">Ruby Versions Manager</a> (RVM) setzen, mit dem es möglich ist jede beliebige Ruby Version zu installieren und auch bequem zwischen diesen zu wechseln.</p>
<p><span id="more-689"></span>Damit wir <strong>RVM</strong> installieren können, müssen wir zuerst ein paar Abhängigkeiten installieren:</p>
<pre>sudo apt-get install git
sudo apt-get install curl</pre>
<p>Git benötigen wir, weil die meisten <strong>Ruby on Rails</strong> Projekte und Erweiterungen ihre Sourcen mit <a title="Git SCM Homepage" href="http://git-scm.com/">Git</a> verwalten. Und curl brauchen wir, um mit dem folgenden Befehl <strong>RVM</strong> zu installieren:</p>
<pre>bash &lt; &lt;(curl -s https://rvm.beginrescueend.com/install/rvm)</pre>
<p>Nachdem dies ausgeführt wurde, bekommen wir noch ein paar Hinweise vom <strong>RVM</strong> Entwickler, wie wir damit umgehen können. Unter anderem wird auch noch darauf hingewiesen, dass folgende Abhängigkeiten installiert werden sollten, bevor man damit beginnen kann, ein oder mehrere Ruby Versionen zu installieren:</p>
<pre>sudo apt-get install build-essential openssl libreadline6 libreadline6-dev curl git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison subversion</pre>
<p>Nun sollte man das Terminal einmal schließen und wieder ein neues Terminal öffnen und mit folgenden Befehl überprüfen, ob <strong>RVM</strong> richtig installiert wurde:</p>
<pre>type rvm | head -1</pre>
<p>Wird hier jetzt '<strong>rvm is a function</strong>' zurückgegeben, ist alles in Ordnung und wir können damit beginnen, unsere benötigte Ruby Version zu installieren.</p>
<h3>Ruby 1.9.2 auf Ubuntu installieren</h3>
<p>Abhängig davon, welche Ruby on Rails Version wir nutzen wollen, können wir nun die entsprechende Ruby Version installieren. Dies ist mit dem <strong>RVM</strong> Befehlt mehr als einfach. Gehen wir davon aus, dass wir <strong>Ruby on Rails 3.1</strong> (also die aktuelle Version) installieren wollen, können wir so <strong>Ruby 1.9.2</strong> installieren:</p>
<pre>rvm install 1.9.2</pre>
<p>Nach ein paar Minuten ist dann Ruby installieret. Beachten sollte man hierbei jedoch unbedingt, dass alles was man mit <strong>RVM</strong> macht ohne den <strong>sudo</strong> Befehlt ausgefürt werden muss! Warum dies so ist und weitere wichtige Nutzungshinweise erhaltet ihr in der <a title="RVM Dokumentation" href="http://beginrescueend.com/rvm/basics/"><strong>RVM</strong> Dokumentation</a>.</p>
<p>Um nun die installierte Ruby Version nutzen zu können, muss man sie mit dem folgenden Befehl aktivieren:</p>
<pre>rvm use 1.9.2</pre>
<p>Jetzt kann man überprüfen, welche Ruby Version installiert ist:</p>
<pre>ruby -v</pre>
<h3>Ruby on Rails auf Ubuntu installieren</h3>
<p>Nachdem nun alle notwendigen Vorbereitungen abgeschlossen sind, können wir damit beginnen die aktuelle Rails Version zu installieren. Rails und andere benötigte Packete werden mit dem <a title="RubyGems Package Manager" href="http://en.wikipedia.org/wiki/RubyGems">RubyGems Package Manager</a> installiert. Dieser wurde zum Glück auch schon automatisch von <strong>RVM</strong> mit installiert. Wir brauchen also nur noch folgendes auszuführen:</p>
<pre>gem install rails</pre>
<p>und schon wurde <strong>Ruby on Rails</strong> erfolgreich installiert. Auch hier ist wieder zu beachten, dass alle <strong>RubyGems</strong> ohne den <strong>sudo</strong> Befehl installiert werden.</p>
<h3>JavaScript Runtime installieren</h3>
<p>In der aktuellen <strong>Rails Version 3.1.1</strong> gibt es noch eine weitere Abhängigkeit, welche man beachten muss. Rails benötigt hier nämlich eine im System installierte <strong>JavaScript Runtime</strong> um bestimmte Funktionen ausführen zu können. Am einfachsten und problemlosesten konnte ich dieses Problem bei mir beheben, indem ich <a title="Node.js Homepage" href="http://nodejs.org/">Node.js</a> installiert habe:</p>
<pre>sudo apt-get install nodejs</pre>
<h3>Ruby on Rails testen</h3>
<p>Jetzt wo alles installiert ist, können wir schnell noch ein Testprojekt mit Rails erstellen:</p>
<pre>rails new test_app
cd test_app
rails server</pre>
<p>und uns dies im Browser aufrufen:</p>
<pre>http://localhost:3000</pre>
<p>Fertig ist unsere <strong>Ruby on Rails installation auf Ubuntu</strong>.</p>
<p>Die hier genannten Installationsschritte mögen sich mit denen auf anderen Ubuntu Versionen oder anderen Linux System unterscheiden.</p>
Similar Posts:<ul><li><a href="http://webmatze.de/ie-6-fur-mac-os-x/" rel="bookmark" title="6. 02. 2009">IE 6 für Mac OS X</a></li>

<li><a href="http://webmatze.de/google-sitemaps-mit-ruby-on-rails-erstellen/" rel="bookmark" title="24. 11. 2008">Google Sitemaps mit Ruby on Rails erstellen</a></li>

<li><a href="http://webmatze.de/firefox-15-beta-review/" rel="bookmark" title="12. 09. 2005">Firefox 1.5 Beta Review</a></li>

<li><a href="http://webmatze.de/firefox-download-day/" rel="bookmark" title="17. 06. 2008">Firefox Download Day</a></li>

<li><a href="http://webmatze.de/ein_rabenschwarzer_tag/" rel="bookmark" title="20. 10. 2002">Ein rabenschwarzer Tag</a></li>
</ul><!-- Similar Posts took 4.911 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/ruby-on-rails-auf-ubuntu-11-10-installieren/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kittyfier Bookmarklet &#8211; Süße Kätzchen überall</title>
		<link>http://webmatze.de/kittyfier-bookmarklet-suse-katzchen-uberall/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=kittyfier-bookmarklet-suse-katzchen-uberall</link>
		<comments>http://webmatze.de/kittyfier-bookmarklet-suse-katzchen-uberall/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 17:10:34 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=652</guid>
		<description><![CDATA[Was passiert, wenn man sich als Programmierer mal etwas vom normalen Arbeitsstress ablenken will? Man programmiert etwas, dass Spaß macht. Auf genau diese Weise ist auch dieses Bookmarklet entstanden. Es wandelt einfach alle per IMG HTML-Tag eingebundene Bilder einer Seite &#8230; <a href="http://webmatze.de/kittyfier-bookmarklet-suse-katzchen-uberall/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Was passiert, wenn man sich als Programmierer mal etwas vom normalen Arbeitsstress ablenken will? Man programmiert etwas, dass Spaß macht.</strong></p>
<p>Auf genau diese Weise ist auch dieses <a href="http://en.wikipedia.org/wiki/Bookmarklet">Bookmarklet</a> entstanden. Es wandelt einfach alle per <strong>IMG</strong> HTML-Tag eingebundene Bilder einer Seite in Bilder mit niedlichen kleinen Katzen um. Um zu sehen, was es macht, einfach den folgenden Link in die Bookmark-Leiste eures Browsers ziehen und auf einer beliebigen Seite mit Bildern ausprobieren!</p>
<div style="text-align: center;margin-bottom:10px;"><a style="border: 1px solid #666666; background-color: #e4e4e4; padding: 10px; line-height: 30px;font-weight:bold;" href="javascript:(function(){var%20images=document.images;var%20icount=0;for(var%20i=0;i%20%3C%20images.length;i++){var%20img=images.item(i);if(img.width%20%3E%2020%20%26%26%20img.height%20%3E%2020){img.src=%22http://placekitten.com/%22+img.width+%22/%22+img.height+%22%3Fimage=%22+icount;icount++;if(icount%20%3E%2016){icount=0;}}}})();">Kittyfier Bookmarklet</a></div>
<p>Wer es gleich hier auf dieser Seite testen möchte, kann auch einfach nur den Link anklicken.</p>
<p>Hier sind ein paar zufällige Bilder zum Testen.</p>
<p><img style="float: left; margin-right: 10px; margin-bottom: 10px;" src="http://farm5.static.flickr.com/4090/5006132868_50980e8b91_m.jpg" alt="Flowers" width="200" /><img style="float: left; margin-right: 10px; margin-bottom: 10px;" src="http://farm5.static.flickr.com/4087/5101125270_77244f7c0f_m.jpg" alt="flowers and bokeh" width="200" /><img style="float: left; margin-right: 10px; margin-bottom: 10px;" src="http://farm3.static.flickr.com/2504/3757385629_b58653d59b_m.jpg" alt="Macro flower experiment" width="200" /><img style="float: left; margin-right: 10px; margin-bottom: 10px;" src="http://farm4.static.flickr.com/3047/3319679433_b4771513a3_m.jpg" width="200" alt="Fire-tree flower oppening, Tulipa africana, bisnagueira (Spathodea campanulata). Ceret park São Paulo Brasil. African native"></p>
<p style="clear: both; margin-top: 10px;">Wer wissen möchte, wie das Kittyfier Bookmarklet funktioniert, kann sich den kompletten Code hier ansehen. Eigentlich nichts besonderes:</p>
<pre class="javascript"><span style="color: #003366; font-weight: bold;">var</span> images = document.<span style="color: #006600;">images</span>;
<span style="color: #003366; font-weight: bold;">var</span> icount = <span style="color: #CC0000;">0</span>;
<span style="color: #000066; font-weight: bold;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i = <span style="color: #CC0000;">0</span>; i &lt; images.<span style="color: #006600;">length</span>; i++<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
<span style="color: #003366; font-weight: bold;">var</span> img = images.<span style="color: #000066; font-weight: bold;">item</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>img.<span style="color: #006600;">width</span> &gt; <span style="color: #CC0000;">20</span> &amp;&amp; img.<span style="color: #006600;">height</span> &gt; <span style="color: #CC0000;">20</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
img.<span style="color: #006600;">src</span> = <span style="color: #3366CC;">&quot;http://placekitten.com/&quot;</span>+img.<span style="color: #006600;">width</span>+<span style="color: #3366CC;">&quot;/&quot;</span>+img.<span style="color: #006600;">height</span>+<span style="color: #3366CC;">&quot;?image=&quot;</span>+icount;
icount++;if<span style="color: #66cc66;">&#40;</span>icount &gt; <span style="color: #CC0000;">16</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>icount=<span style="color: #CC0000;">0</span>;<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
<p>Wie man sehen kann, verwende ich den <a href="http://placekitten.com">Placekitten</a> Service, welcher es einem erlaubt durch Angabe von Höhe und Breite beliebig große Katzenbilder zu generieren um diese als Platzhalter in die eigenen Entwürfe einzubauen. Dies ist vor allem dann praktisch, wenn man nur mal schnell ein HTML Layout testen möchte, aber noch keine passenden Bilder hat.</p>
<p>Ich hoffe ihr habt Spaß an diesem kleinen Script und ich freue mich über eure Kommentare.</p>
Similar Posts:<ul><li><a href="http://webmatze.de/css-button-tricks/" rel="bookmark" title="23. 01. 2003">CSS Button Tricks</a></li>

<li><a href="http://webmatze.de/schatten-mit-css-pseudo-elementen-hinzufugen/" rel="bookmark" title="2. 08. 2011">Schatten mit CSS Pseudo-Elementen hinzufügen</a></li>

<li><a href="http://webmatze.de/mein-flickr-foto-stream/" rel="bookmark" title="22. 11. 2005">Mein Flickr Foto Stream</a></li>

<li><a href="http://webmatze.de/hierarchische-menus-mit-css-erstellen/" rel="bookmark" title="4. 09. 2008">Hierarchische Menüs mit CSS erstellen</a></li>

<li><a href="http://webmatze.de/die-sprache-eines-links-kennzeichnen/" rel="bookmark" title="4. 09. 2007">Die Sprache eines Links kennzeichnen</a></li>
</ul><!-- Similar Posts took 4.532 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/kittyfier-bookmarklet-suse-katzchen-uberall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A small update to my CSS3 Rotating Image Gallery</title>
		<link>http://webmatze.de/a-small-update-to-my-css3-rotating-image-gallery/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=a-small-update-to-my-css3-rotating-image-gallery</link>
		<comments>http://webmatze.de/a-small-update-to-my-css3-rotating-image-gallery/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 16:04:57 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=642</guid>
		<description><![CDATA[A couple of months ago I wrote a small image gallery script using some of the new CSS3 functions like transitions and transforms of the Webkit Nightly Browser. It is a simple gallery with only four pictures in it which &#8230; <a href="http://webmatze.de/a-small-update-to-my-css3-rotating-image-gallery/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>A couple of months ago I wrote <a href="http://webmatze.de/css-3-rotating-image-gallery/">a small image gallery script using some of the new CSS3 functions</a> like transitions and transforms of the <strong>Webkit Nightly Browser</strong>. It is a simple gallery with only four pictures in it which rotates on mouse click to show the next picture.</p>
<p>That thing <strong>became a little famous </strong>and was shown on many other websites as an example to what can be done with <strong>CSS3</strong> and <strong>a modern browser</strong>.</p>
<p>Now, a year later, I updated this script so it works now in many other modern browsers such as Firefox, Chrome, Opera and Internet Explorer.</p>
<p>Just <a href="http://samples.webmatze.de/rotating_image_gallery.htm">browse to the example page</a> and see it for yourself.</p>
<p>And if you have an older browser you can watch this little screen capture:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="src" value="http://www.youtube.com/v/rPH1G41Nu2U&amp;hl=de&amp;fs=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/rPH1G41Nu2U&amp;hl=de&amp;fs=1" allowfullscreen="true"></embed></object></p>
<p>I hope you like it and I am eager to see what you can come up with using those CSS3 transitions and transforms.</p>
Similar Posts:<ul><li><a href="http://webmatze.de/css-3-rotating-image-gallery/" rel="bookmark" title="19. 08. 2008">CSS 3: Rotating Image Gallery</a></li>

<li><a href="http://webmatze.de/opera-browser-kostenlos-freischalten/" rel="bookmark" title="31. 08. 2005">Opera Browser kostenlos freischalten</a></li>

<li><a href="http://webmatze.de/browser-statistiken/" rel="bookmark" title="23. 09. 2004">Browser Statistiken</a></li>

<li><a href="http://webmatze.de/opera-ist-nun-kostenlos/" rel="bookmark" title="20. 09. 2005">Opera ist nun kostenlos!</a></li>

<li><a href="http://webmatze.de/google-chrome-frame-ein-plugin-fur-den-internet-explorer/" rel="bookmark" title="23. 09. 2009">Google Chrome Frame &#8211; Ein Plugin für den Internet Explorer</a></li>
</ul><!-- Similar Posts took 3.958 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/a-small-update-to-my-css3-rotating-image-gallery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>5 extrem nützliche Tools für JavaScript Entwickler</title>
		<link>http://webmatze.de/5-extrem-nutzliche-tools-fur-javascript-entwickler/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=5-extrem-nutzliche-tools-fur-javascript-entwickler</link>
		<comments>http://webmatze.de/5-extrem-nutzliche-tools-fur-javascript-entwickler/#comments</comments>
		<pubDate>Thu, 21 Oct 2010 20:28:47 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=624</guid>
		<description><![CDATA[Wenn es eine Programmiersprache gibt, die ich wirklich liebe, dann ist dies auf jeden Fall JavaScript. Früher von vielen belächelt, hat sich JavaScript heute zu einem wirklich mächtigen Tool unter Webentwicklern gemausert. Viele hilfreiche Seiten wie z.B. Google Maps wären &#8230; <a href="http://webmatze.de/5-extrem-nutzliche-tools-fur-javascript-entwickler/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Wenn es eine Programmiersprache gibt, die ich wirklich liebe, dann ist dies auf jeden Fall <a href="http://webmatze.de/category/webseiten-erstellen/javascript/">JavaScript</a>. Früher von vielen belächelt, hat sich JavaScript heute zu einem wirklich mächtigen Tool unter Webentwicklern gemausert. Viele hilfreiche Seiten wie z.B. <a href="http://maps.google.de/">Google Maps</a> wären ohne JavaScript überhaupt nicht möglich gewesen und selbst auf der Serverseite findet es in letzter Zeit immer mehr Verwendung - siehe <a href="http://nodejs.org/">node.js</a>. Heute möchte ich euch fünf interessante und nützliche Tools vorstellen, die einem das Arbeiten mit JavaScript sehr erleichtern können.</strong></p>
<h3>JSFIDDLE - JavaScript direkt im Browser entwickeln</h3>
<p>Dieses Tool ist noch relativ jung, hat sich aber für mich bereits jetzt zu einem der wichtigsten Tools beim Entwickeln und Testen von JavaScript Scripten entwickelt. Das Besondere an <strong>JSFIDDLE</strong> ist, dass man vier verschiedene Felder zur Verfügung gestellt bekommt. Im Ersten schreibt man seinen HTML Code, im Zweiten den benötigten CSS Code und im Dritten schließlich das JavaScript.</p>
<p>Wenn man möchte lassen sich externe JavaScript Bibliotheken wie <a href="http://www.prototypejs.org/">Prototype</a>, <a href="http://jquery.com/">jQuery</a>, <a href="http://mootools.net/">Mootools</a> und viele weitere per Klick einbinden.</p>
<p>Ein Klick auf 'Run' und das fertige Script wird ausgeführt und das Ergebnis im vierten Feld angezeigt. Diese so geschriebenen Scripte können gespeichert werden und sind über eine feste URL jederzeit wieder aufrufbar. Bei jedem Speichern bleibt übrigens die vorherige Version erhalten und kann über die alte URL aufgerufen werden.<br />
<span id="more-624"></span><br />
Die mit <strong>JSFIDDLE</strong> erstellten Scripte lassen sich übrigens über eine 'Share' Funktion in jede beliebige Seite einbinden. Das könnte dann z.B. wie folgt aussehen:</p>
<p><iframe style="width: 100%; height: 300px" src="http://jsfiddle.net/katBX/embedded/"></iframe></p>
<p>Wie ich finde ein wirklich geniales und nützliches Tool.</p>
<p><a href="http://jsfiddle.net">http://jsfiddle.net</a></p>
<h3>JavaScript Obfuscator - Den Code unkenntlich machen</h3>
<p>Ein Problem mit dem man bei der Entwicklung von JavaScript leben muss ist, dass sich der Code jederzeit im Browser betrachten lässt. Häufig stecken in dem Code jedoch viele Stunden Arbeit und geistige Schaffenskraft, wo man natürlich nicht möchte, dass sich jeder gleich an der eigenen Arbeit bedienen kann, indem er den Code einfach kopiert.</p>
<p>Hier springt der <strong>Free Javascript Obfuscator</strong> in die Presche, denn mit diesem Tool lässt sich der Code auf einfache Weise unleserlich machen, indem es den Code unkenntlich macht und es so fast unmöglich wird, den so bearbeiteten Code zu analysieren. Dabei bleibt das Script natürlich weiterhin funktionsfähig.</p>
<p><a href="http://javascriptobfuscator.com/">http://javascriptobfuscator.com/</a></p>
<h3>Packer - Große Scripte verkleinern und Bandbreite sparen</h3>
<p>Wer komplette JavaScript Bibliotheken wie Prototype kennt der weiß, dass diese schon mal ziemlich groß werden können. Doch im Web kommt es oft auf schnelle Ladezeiten und damit auf geringe Dateigrößen an. Jedes Kilobyte kann dabei entscheidend sein. Und genau hier kommt <strong>Packer</strong> von <a href="http://dean.edwards.name/">Dean Edwards</a> in Spiel.</p>
<p>Mit diesem Tool lassen sich große Script schnell auf kleinere Größen schrumpfen, indem überflüssige Zeichen entfernt und Variablennamen gegen Kürzere ausgetauscht werden. Außerdem lässt sich alles noch per <strong>Base62</strong> kodieren, was den so entstandenen Code gleichzeitig unleserlich macht.</p>
<p><a href="http://dean.edwards.name/packer/">http://dean.edwards.name/packer/</a></p>
<h3>Bananascript - Effizientes JavaScript Koprimierungstool</h3>
<p>Wem Packer noch nicht ausreicht, oder wer damit Probleme hat - Packer benötigt 100% richtig geschriebenen Code - der sollte sich zusätzlich auch <strong>Bananascript</strong> ansehen. Dieses Komprimierungstool verspricht noch bessere Kompressionsraten und funktioniert auch mit Bibliotheken wie Prototype.</p>
<p>Einfach die entsprechende JavaScript Datei auswählen, hochladen und schon bekommt man die komprimierte Version zum Download angeboten. Die Komprimierung tendiert dabei meistens bei 73%, kann aber auch mal 99% erreichen, wenn man den Statistiken von <strong>Bananascript</strong> trauen darf.</p>
<p><a href="http://www.bananascript.com/">http://www.bananascript.com/</a></p>
<h3>JSBeautifier - JavaScript Code verschönern</h3>
<p>Als letztes Tool möchte ich euch den <strong>JavaScript Beautifier</strong> vorstellen. Mit diesem Tool lassen sich gleich zwei Fliegen mit einer Klappe schlagen. Zum einen kann man damit den eigenen JavaScript Code verschönern lassen, indem dieser richtig eingerückt und umgebrochen wird. Bei JavaScript ist es eigentlich egal, ob das komplette Script in einer Zeile geschrieben wird, aber es lässt sich nun mal viel besser lesen, wenn es ordentlich eingerückt und über mehrere Zeilen geschrieben wird.</p>
<p>Aber der <strong>JSBeautifier</strong> bietet noch mehr, denn damit lassen sich außerdem z.B. mit <strong>Packer</strong> oder <strong>JavaScript Obfuscator</strong> gepackte und unkenntlich gemachte Scripte wieder lesbar machen. Zwar lassen sich Variablennamen nicht immer wieder herstellen, aber der verschönerte und entpackte Code lässt sich auf jeden Fall wieder besser lesen und analysieren. (Aber pssst nicht weitersagen!!!!)</p>
<p><a href="http://jsbeautifier.org/">http://jsbeautifier.org/</a></p>
<h3>Fazit</h3>
<p>Wie ihr sehen könnt, gibt es einige Tools, die einem die Arbeit mit JavaScript erleichtern können. Viele von den oben genannten verwende ich selbst auch regelmäßig und möchte sie heute nicht mehr missen. Ich hoffe auch für euch war etwas Interessantes dabei, aber vielleicht kennt ihr ja selbst auch noch ein paar nützliche Tools. Wenn ja, dann berichtet doch einfach in den Kommentaren davon.</p>
Similar Posts:<ul><li><a href="http://webmatze.de/firebug-04-der-ultimative-web-debugger/" rel="bookmark" title="24. 05. 2006">FireBug 0.4 &#8211; Der ultimative Web Debugger</a></li>

<li><a href="http://webmatze.de/sortiertbare-listen-mit-javascript-per-drag-and-drop/" rel="bookmark" title="12. 01. 2005">Sortiertbare Listen mit Javascript per Drag and Drop</a></li>

<li><a href="http://webmatze.de/wirklich-einfache-javascript-tooltips/" rel="bookmark" title="12. 01. 2006">Wirklich einfache JavaScript Tooltips</a></li>

<li><a href="http://webmatze.de/unsicher-objekte-unter-ssl-in-ie/" rel="bookmark" title="19. 10. 2005">Unsicher Objekte unter SSL in IE</a></li>

<li><a href="http://webmatze.de/kittyfier-bookmarklet-suse-katzchen-uberall/" rel="bookmark" title="21. 04. 2011">Kittyfier Bookmarklet &#8211; Süße Kätzchen überall</a></li>
</ul><!-- Similar Posts took 5.466 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/5-extrem-nutzliche-tools-fur-javascript-entwickler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein einfacher Cross-Browser Tooltip mit Javascript und CSS</title>
		<link>http://webmatze.de/ein-einfacher-cross-browser-tooltip-mit-javascript-und-css/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ein-einfacher-cross-browser-tooltip-mit-javascript-und-css</link>
		<comments>http://webmatze.de/ein-einfacher-cross-browser-tooltip-mit-javascript-und-css/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 17:00:43 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=555</guid>
		<description><![CDATA[Vor einiger Zeit habe ich hier auf webmatze.de einen einfachen auf JavaScript und CSS basierenden Tooltip vorgestellt, mit dem sich schnell und einfach Tooltips in die eigenen Seiten integrieren ließen. Dieser funktionierte soweit auch ganz gut in vielen Browsern, doch &#8230; <a href="http://webmatze.de/ein-einfacher-cross-browser-tooltip-mit-javascript-und-css/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vor einiger Zeit habe ich hier auf webmatze.de einen <a href="http://webmatze.de/wirklich-einfache-javascript-tooltips/">einfachen auf JavaScript und CSS basierenden Tooltip</a> vorgestellt, mit dem sich schnell und einfach Tooltips in die eigenen Seiten integrieren ließen. Dieser funktionierte soweit auch ganz gut in vielen Browsern, doch die Zeit ist nicht stillgestanden und seit der Veröffentlichung hat es einige neue Browserversionen und sogar <a href="http://webmatze.de/google-chrome-der-neue-browser/">ganz neue Browser</a> gegeben.</p>
<p>Leider führte dies auch dazu, dass das alte Tooltip Script nun leider nicht mehr in allen wichtigen Browsern funktioniert. Aber auch in den Browsern, wo es funktionierte, ist es unter Umständen zu Fehlern gekommen.</p>
<p>Dies will ich nun zum Anlass nehmen und euch ein komplett neues Tooltip Script zur Verfügung stellen.</p>
<h2>XBT - Der Cross-Browser Tooltip</h2>
<p>Okay, über Namen lässt sich bestimmt streiten, aber irgendwie muss das Kind ja heißen. Das neue Script basiert auf ein paar Zeilen JavaScript und ist nur geringfügig größer als das alte Script. Dafür ist es jedoch viel flexibler zu konfigurieren, kollidiert nicht mit anderen Scripten und lässt sich leicht über CSS beliebig anpassen. Und wer möchte, kann das Script auch ohne Probleme um neue Funktionen erweitern.</p>
<p>Hier könnt ihr den Code sehen:<br />
<span id="more-555"></span></p>
<pre class="javascript">&lt;script type=<span style="color: #3366CC;">&quot;text/javascript&quot;</span>&gt;
  <span style="color: #66cc66;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>window, document, undefined<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> XBTooltip = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span> element, userConf, tooltip<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
      <span style="color: #003366; font-weight: bold;">var</span> config = <span style="color: #66cc66;">&#123;</span>
        id: userConf.<span style="color: #006600;">id</span>|| undefined,
        className: userConf.<span style="color: #006600;">className</span> || undefined,
        x: userConf.<span style="color: #006600;">x</span> || <span style="color: #CC0000;">20</span>,
        y: userConf.<span style="color: #006600;">y</span> || <span style="color: #CC0000;">20</span>,
        text: userConf.<span style="color: #006600;">text</span> || undefined
      <span style="color: #66cc66;">&#125;</span>;
      <span style="color: #003366; font-weight: bold;">var</span> over = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        tooltip.<span style="color: #006600;">style</span>.<span style="color: #006600;">display</span> = <span style="color: #3366CC;">&quot;block&quot;</span>;
      <span style="color: #66cc66;">&#125;</span>,
      out = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        tooltip.<span style="color: #006600;">style</span>.<span style="color: #006600;">display</span> = <span style="color: #3366CC;">&quot;none&quot;</span>;
      <span style="color: #66cc66;">&#125;</span>,
      move = <span style="color: #003366; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>event<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        event = event ? event : window.<span style="color: #006600;">event</span>;
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span> event.<span style="color: #006600;">pageX</span> == <span style="color: #003366; font-weight: bold;">null</span> &amp;&amp; event.<span style="color: #006600;">clientX</span> != <span style="color: #003366; font-weight: bold;">null</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
          <span style="color: #003366; font-weight: bold;">var</span> doc = document.<span style="color: #006600;">documentElement</span>, body = document.<span style="color: #006600;">body</span>;
          event.<span style="color: #006600;">pageX</span> = event.<span style="color: #006600;">clientX</span> + <span style="color: #66cc66;">&#40;</span>doc &amp;&amp; doc.<span style="color: #006600;">scrollLeft</span> || body &amp;&amp; body.<span style="color: #006600;">scrollLeft</span> || <span style="color: #CC0000;">0</span><span style="color: #66cc66;">&#41;</span> - <span style="color: #66cc66;">&#40;</span>doc &amp;&amp; doc.<span style="color: #006600;">clientLeft</span> || body &amp;&amp; body.<span style="color: #006600;">clientLeft</span> || <span style="color: #CC0000;">0</span><span style="color: #66cc66;">&#41;</span>;
          event.<span style="color: #006600;">pageY</span> = event.<span style="color: #006600;">clientY</span> + <span style="color: #66cc66;">&#40;</span>doc &amp;&amp; doc.<span style="color: #006600;">scrollTop</span>  || body &amp;&amp; body.<span style="color: #006600;">scrollTop</span>  || <span style="color: #CC0000;">0</span><span style="color: #66cc66;">&#41;</span> - <span style="color: #66cc66;">&#40;</span>doc &amp;&amp; doc.<span style="color: #006600;">clientTop</span>  || body &amp;&amp; body.<span style="color: #006600;">clientTop</span>  || <span style="color: #CC0000;">0</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>
        tooltip.<span style="color: #006600;">style</span>.<span style="color: #006600;">top</span> = <span style="color: #66cc66;">&#40;</span>event.<span style="color: #006600;">pageY</span>+config.<span style="color: #006600;">y</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">&quot;px&quot;</span>;
        tooltip.<span style="color: #006600;">style</span>.<span style="color: #006600;">left</span> = <span style="color: #66cc66;">&#40;</span>event.<span style="color: #006600;">pageX</span>+config.<span style="color: #006600;">x</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #3366CC;">&quot;px&quot;</span>;
      <span style="color: #66cc66;">&#125;</span>
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>tooltip === undefined &amp;&amp; config.<span style="color: #006600;">id</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        tooltip = document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span>config.<span style="color: #006600;">id</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>tooltip<span style="color: #66cc66;">&#41;</span> tooltip = tooltip.<span style="color: #006600;">parentNode</span>.<span style="color: #006600;">removeChild</span><span style="color: #66cc66;">&#40;</span>tooltip<span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#125;</span>
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>tooltip === undefined &amp;&amp; config.<span style="color: #006600;">text</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        tooltip = document.<span style="color: #006600;">createElement</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">&quot;div&quot;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>config.<span style="color: #006600;">id</span><span style="color: #66cc66;">&#41;</span> tooltip.<span style="color: #006600;">id</span>= config.<span style="color: #006600;">id</span>;
        tooltip.<span style="color: #006600;">innerHTML</span> = config.<span style="color: #006600;">text</span>;
      <span style="color: #66cc66;">&#125;</span>
      <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #66cc66;">&#40;</span>config.<span style="color: #006600;">className</span><span style="color: #66cc66;">&#41;</span> tooltip.<span style="color: #006600;">className</span> = config.<span style="color: #006600;">className</span>;
      tooltip = document.<span style="color: #006600;">body</span>.<span style="color: #006600;">appendChild</span><span style="color: #66cc66;">&#40;</span>tooltip<span style="color: #66cc66;">&#41;</span>;
      tooltip.<span style="color: #006600;">style</span>.<span style="color: #006600;">position</span> = <span style="color: #3366CC;">&quot;absolute&quot;</span>;
      element.<span style="color: #006600;">onmouseover</span> = over;
      element.<span style="color: #006600;">onmouseout</span> = out;
      element.<span style="color: #006600;">onmousemove</span> = move;
      over<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>;
    window.<span style="color: #006600;">XBTooltip</span> = window.<span style="color: #006600;">XBT</span> = XBTooltip;
  <span style="color: #66cc66;">&#125;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>, <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #006600;">document</span><span style="color: #66cc66;">&#41;</span>;
  &lt;/script&gt;</pre>
<p>Das einzig wirklich benötigte CSS für den Tooltip sieht so aus:</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;style</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;text/css&quot;</span> <span style="color: #000066;">media</span>=<span style="color: #ff0000;">&quot;screen&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    .xbtooltip {
      display: none;
      position: absolute;
      background-color: #fff;
    }
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/style&gt;</span></span>
&nbsp;</pre>
<p>Dieser kann aber für jeden einzelnen Tooltip noch einmal separat überschrieben werden. Doch dazu später mehr.</p>
<h2>Tooltip Beispiele</h2>
<p>Kommen wir also zu ein paar einfachen Beispielen, wie man das XBT Tooltip Script einsetzen kann.</p>
<h3>Einfacher Tooltip</h3>
<p>Der einfachste mögliche Tooltip benötigt einen Link und ein DIV Element mit dem anzuzeigenden Inhalt für den Tooltip.</p>
<pre class="html4strict"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://webmatze.de&quot;</span> <span style="color: #000066;">onmouseover</span>=<span style="color: #ff0000;">&quot;XBT(this, {id:'tt1'})&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Ein normaler Tooltip...<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;tt1&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;xbtooltip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    ...mit bereits vorhandenem Inhalt.
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
&nbsp;</pre>
<p>Dem Tooltip Script wird also über eine Konfiguration welche in geschweiften Klammern steht, die <strong>id</strong> des Elementes übergeben, welches den Inhalt für den Tooltip enthält. Mehr ist hier nicht notwendig.</p>
<p>Das entsprechende CSS dazu kann z.B. so aussehen:</p>
<pre class="html4strict">#tt1 {
      background-color: #00FFFF;
      color: green;
      padding: 3px;
      width: 120px;
    }
&nbsp;</pre>
<p>Und so sieht dann der Link mit dem Tooltip aus:</p>
<p>  <a href="http://webmatze.de" onmouseover="XBT(this, {id:'tt1'})">Ein normaler Tooltip...</a></p>
<div id="tt1" class="xbtooltip">
    ...mit bereits vorhandenem Inhalt.
  </div>
<h3>Inhalt als Konfiguration übergeben</h3>
<p>Wer nicht extra für jeden Tooltip ein extra DIV Element erstellen möchte, kann den gewünschten Inhalt für den Tooltip auch gleich als <strong>text</strong> übergeben. Das kann dann z.B. so aussehen:</p>
<pre class="html4strict"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://webmatze.de&quot;</span>
    <span style="color: #000066;">onmouseover</span>=<span style="color: #ff0000;">&quot;XBT(this, {text: '...indem man ihn &amp;lt;strong&amp;gt;als Text&amp;lt;/strong&amp;gt; übergibt', className: 'xbtooltip'})&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
Man kann den Inhalt des Tooltips auch dynamisch erstellen lassen...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span></pre>
<p>Als Konfiguration wird also nicht mehr eine <strong>id</strong> übergeben, sondern ein beliebiger Text, der auch HTML Elemente enthalten kann. Über den Parameter <strong>className</strong> kann man dem Tooltip dann einen beliebigen Style zuordnen.</p>
<p>Und so sieht das Ganze dann aus:</p>
<p><a href="http://webmatze.de" onmouseover="XBT(this, {text: '...indem man ihn &lt;strong&gt;als Text&lt;/strong&gt; übergibt', className: 'xbtooltip'})">Man kann den Inhalt des Tooltips auch dynamisch erstellen lassen...</a></p>
<h3>Den Abstand des Tooltips anpassen</h3>
<p>Wenn man möchte, dass der Tooltip nicht direkt neben dem Mauszeiger, sondern weiter entfernt angezeigt wird, kann man dies über die Konfiguration anpassen. Dazu gibt es die beiden Parameter <strong>x</strong> und <strong>y</strong>.</p>
<pre class="html4strict"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://webmatze.de&quot;</span> <span style="color: #000066;">onmouseover</span>=<span style="color: #ff0000;">&quot;XBT(this, {id: 'tt4', x: 50, y: 50})&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Man kann den Abstand des Tooltips anpassen...<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;tt4&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;xbtooltip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
...indem man eine Konfiguration übergibt.
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
&nbsp;</pre>
<p>Somit wird der Tooltip nun jeweils 50 Pixel nach rechts und unten verschoben angezeigt.</p>
<p><a href="http://webmatze.de" onmouseover="XBT(this, {id: 'tt4', x: 50, y: 50})">Man kann den Abstand des Tooltips anpassen...</a></p>
<div id="tt4" class="xbtooltip">
    ...indem man eine Konfiguration übergibt.
  </div>
<h3>Funktioniert nicht nur bei Links</h3>
<p>Natürlich kann man den Tooltip auch an andere HTML Elemente hängen. Es muss nicht immer ein Link sein.</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;position: relative; top: 0px; left: 150px; width: 100px; height: 100px; background-color: #e4e4e4;&quot;</span> <span style="color: #000066;">onmouseover</span>=<span style="color: #ff0000;">&quot;XBT(this, {id:'tt2'})&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    Das funktioniert auch mit DIVs statt mit Links...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;tt2&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;xbtooltip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      ...soweit der Browser onmouseover auf DIV Elementen unterstützt!
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
&nbsp;</pre>
<p>Dies würde dann so aussehen:</p>
<div style="position: relative; top: 0px; left: 150px; width: 100px; height: 100px; background-color: #e4e4e4;" onmouseover="XBT(this, {id:'tt2'})">
    Das funktioniert auch mit DIVs statt mit Links...</p>
<div id="tt2" class="xbtooltip">
      ...soweit der Browser onmouseover auf DIV Elementen unterstützt!
    </div>
</p></div>
<h3>In absolut positionierten Elementen funktioniert es auch</h3>
<p>Mit dem alten Tooltip Script gab es immer Probleme mit Tooltips, die sich in anderen absolut prositionierten Elementen befanden. Hier wurden die Tooltips immer an einer falschen Position angezeigt.</p>
<p>Mit dem neuen Script ist dies nun auch kein Problem mehr:</p>
<pre class="html4strict">&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;position: absolute; top: 0px; left: 300px ;width: 100px; height: 100px; background-color: #e4e4e4;&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;a</span> <span style="color: #000066;">href</span>=<span style="color: #ff0000;">&quot;http://eventicus.de&quot;</span> <span style="color: #000066;">onmouseover</span>=<span style="color: #ff0000;">&quot;XBT(this, {id:'tt3'})&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>Genauso auch mit Tooltips...<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/a&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;div</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;tt3&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;xbtooltip&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      ...die sich in absolut positionierten Elementen befinden.
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/div&gt;</span></span>
&nbsp;</pre>
<p>Und so sieht's dann aus:</p>
<div style="position:relative; height: 130px;">
<div style="position: absolute; top: 0px; left: 300px ;width: 100px; height: 100px; background-color: #e4e4e4;">
    <a href="http://eventicus.de" onmouseover="XBT(this, {id:'tt3'})">Genauso auch mit Tooltips...</a></p>
<div id="tt3" class="xbtooltip">
      ...die sich in absolut positionierten Elementen befinden.
    </div>
</p></div>
</div>
<h2>Fazit</h2>
<p>Ich hoffe ihr könnt mit diesem neuen Script etwas anfangen und wünsche euch viel Spaß damit. Sollten euch doch noch Probleme auffallen, oder sollte es in einem Browser nicht richtig funktionieren, so könnt ihr mir dies wie immer in den Kommentaren mitteilen.</p>
<p>Ich denke auch das neue Script ist immer noch sehr kompakt und einfach zu verwenden. Vielleicht werde ich in Zukunft noch ein paar Funktionen nachrüsten, sofern ihr noch Wünsche habt, die unbedingt enthalten sein sollten.</p>
Similar Posts:<ul><li><a href="http://webmatze.de/wirklich-einfache-javascript-tooltips/" rel="bookmark" title="12. 01. 2006">Wirklich einfache JavaScript Tooltips</a></li>

<li><a href="http://webmatze.de/die-sprache-eines-links-kennzeichnen/" rel="bookmark" title="4. 09. 2007">Die Sprache eines Links kennzeichnen</a></li>

<li><a href="http://webmatze.de/schatten-mit-css-pseudo-elementen-hinzufugen/" rel="bookmark" title="2. 08. 2011">Schatten mit CSS Pseudo-Elementen hinzufügen</a></li>

<li><a href="http://webmatze.de/die-desktop-farben-nutzen/" rel="bookmark" title="2. 05. 2002">Die Desktop-Farben nutzen</a></li>

<li><a href="http://webmatze.de/der-kleine-pfeil-mal-anders/" rel="bookmark" title="23. 08. 2002">Der kleine Pfeil mal anders</a></li>
</ul><!-- Similar Posts took 5.790 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/ein-einfacher-cross-browser-tooltip-mit-javascript-und-css/feed/</wfw:commentRss>
		<slash:comments>81</slash:comments>
		</item>
		<item>
		<title>Wie erstelle ich eine Webseite?</title>
		<link>http://webmatze.de/wie-erstelle-ich-eine-webseite/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wie-erstelle-ich-eine-webseite</link>
		<comments>http://webmatze.de/wie-erstelle-ich-eine-webseite/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 12:28:56 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[Planung]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Webseiten erstellen]]></category>
		<category><![CDATA[homepage]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[webhoster]]></category>
		<category><![CDATA[webspace]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=478</guid>
		<description><![CDATA[An diesem Punkt hat jeder schon einmal gestanden. Man hat so viele verschiedene gute oder auch weniger gute Webseiten im Internet besucht und die eine oder andere gute Information für sich aus diesen Seiten gezogen. Doch wenn man Anderen sein &#8230; <a href="http://webmatze.de/wie-erstelle-ich-eine-webseite/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>An diesem Punkt hat jeder schon einmal gestanden. Man hat so viele verschiedene gute oder auch weniger gute Webseiten im Internet besucht und die eine oder andere gute Information für sich aus diesen Seiten gezogen. Doch wenn man Anderen sein eigenes Wissen oder die eigenen Ansichten und Gedanken mitteilen möchte, wird man nicht drum herum kommen, sich eine eigene Homepage zu erstellen.</p>
<p>Doch wie genau funktioniert das? Und welche Tools brauche ich dafür? Genau diesen Fragen möchte ich in diesem und in kommenden Artikeln auf den Grund gehen.<br />
<span id="more-478"></span></p>
<h3>Was brauche ich für meine eigene Webseite?</h3>
<p>Um zu starten braucht es eigentlich nicht viel. Die wenigen Dinge, die man wirklich benötigt, habe ich hier mal in einer Liste näher beschrieben.</p>
<ul>
<li><strong>Etwas Zeit</strong><br />
Eine gute Homepage lässt sich nicht einfach in wenigen Minuten erstellen, darum sollte man sich auch die entsprechende Zeit nehmen.</li>
<li><strong>Einen Plan</strong><br />
Man kann keine eigene Webseite erstellen, ohne vorher zu wissen, welches Ziel man eigentlich mit dieser Seite verfolgen will. Möchte man ein Tagebuch schreiben? Will man Informationen zu einem bestimmten Thema zusammentragen und aufbereiten? Will man sich selbst und die eigenen Projekte vorstellen? Oder möchte man eine Plattform für sich und seine Freunde schaffen? Die Möglichkeiten sind grenzenlos, aber man sollte zumindest grob das Thema der Webseite festlegen.</li>
<li><strong>Kenntnisse im Umgang mit HTML, CSS und JavaScript</strong><br />
Man kann keine Homepage erstellen, ohne nicht zumindest die grundlegendsten Bausteine einer Webseite zu kennen. Mit <a href="http://webmatze.de/category/webseiten-erstellen/html-xhtml/">HTML</a> legt man die Struktur und den Inhalt einer Webseite fest. Mit <a href="http://webmatze.de/category/webseiten-erstellen/css/">CSS</a> kann man das Aussehen der einzelnen Elemente einer Webseite kontrollieren und mit <a href="http://webmatze.de/category/webseiten-erstellen/javascript/">JavaScript</a> kann man die Funktionalität der eigenen Seite erweitern. Aber erst die Kombination aus allen Zutaten ergibt eine gute Webseite.</li>
<li><strong>Eine eigene Internetadresse</strong><br />
Ohne eine eigene Domain kann niemand auf die liebevoll erstellten Inhalte zugreifen. Der Domainname ist die Adresse einer Seite im Internet. Daher sollte man sich einen sprechenden Namen für die eigene Homepage ausdenken. Ob nun <em>www.willies-kochrezepte.de</em> oder <em>www.webmatze.de</em> - solange der Name noch nicht vergeben ist, kann man fast jeden Domainnamen registrieren lassen.</li>
<li><strong>Webspeicherplatz</strong><br />
Damit man die erstellen HTML Seiten auch für Jeden zugänglich im Internet ablegen kann, benötigt man etwas Speicherplatz. Diesen Webspeicherplatz oder auch Webspace genannt, wird man sich meistens bei professionellen Webhostern anmieten. Die Kosten dafür sind überwiegend sehr niedrig. Es ist auch möglich, eigene Webserver zu verwenden, doch für eine kleine Homepage reicht meistens weniger aus.</li>
</ul>
<p>Das waren auch schon die wichtigsten Zutaten für die eigene Homepage. Wie man sehen kann, braucht es nicht wirklich viel, um eine eigenen Webseite zu erstellen. Doch für jemanden, der bisher noch nie eine Homepage erstellt hat, können einige der Punkte trotzdem eine Hürde darstellen.</p>
<h3>Schritt für Schritt zur eigenen Webseite</h3>
<p>Gerade für diese Anfänger - und dass meine ich nicht abwertend, denn jeder hat einmal an diesem Punkt begonnen - werde ich in den nächsten Tagen und Wochen in verschiedenen Beiträgen auf die einzelnen oben angesprochenen Punkte näher eingehen. Am Ende wird dann jeder eine Schritt für Schritt Anleitung für die erste eigene Homepage zur freien Verfügung haben.</p>
<p>Auf folgende Punkte werde ich dabei detaillierter eingeben:</p>
<ul>
<li>Wie man das richtige Thema für die eigene Homepage wählt</li>
<li>HTML, CSS und JavaScript - Das Grundgerüst einer Webseite beherrschen</li>
<li>So findet man den passenden Domainnamen für die eigene Webseite</li>
<li>Wie wähle ich den richtigen Webhoster für meine Homepage aus?</li>
<li>Wie bekomme ich mehr Besucher für meine eigenen Webseite?</li>
</ul>
<p>Ich freue mich schon darauf und hoffe, dass der Eine oder Andere von Euch mit Hilfe dieser Anleitungen seine erste eigene Homepage erstellen können wird.</p>
Similar Posts:<ul><li><a href="http://webmatze.de/schritt-fur-schritt-zum-eigenen-blog/" rel="bookmark" title="16. 04. 2008">Schritt für Schritt zum eigenen Blog</a></li>

<li><a href="http://webmatze.de/surfino-bietet-exklusiv-paket/" rel="bookmark" title="18. 06. 2008">Surfino bietet Exklusiv-Paket</a></li>

<li><a href="http://webmatze.de/genial/" rel="bookmark" title="15. 06. 2002">Genial</a></li>

<li><a href="http://webmatze.de/google-gadgets-auf-der-eigenen-homepage/" rel="bookmark" title="4. 10. 2006">Google Gadgets auf der eigenen Homepage</a></li>

<li><a href="http://webmatze.de/fallstudie-von-0-auf-100-euro-in-12-monaten/" rel="bookmark" title="24. 04. 2008">Fallstudie: Von 0 auf 100 Euro in 12 Monaten</a></li>
</ul><!-- Similar Posts took 7.360 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/wie-erstelle-ich-eine-webseite/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>IE 6 für Mac OS X</title>
		<link>http://webmatze.de/ie-6-fur-mac-os-x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ie-6-fur-mac-os-x</link>
		<comments>http://webmatze.de/ie-6-fur-mac-os-x/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 20:41:48 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=382</guid>
		<description><![CDATA[Wenn man wie ich als Ruby on Rails Entwickler unter Mac OS X arbeitet, dann kommt man früher oder später an den Punkt, wo man die Seite an der man arbeitet auch auf dem Internet Explorer testen möchte. Leider hat &#8230; <a href="http://webmatze.de/ie-6-fur-mac-os-x/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wenn man wie ich als <strong>Ruby on Rails</strong> Entwickler unter <strong>Mac OS X</strong> arbeitet, dann kommt man früher oder später an den Punkt, wo man die Seite an der man arbeitet auch auf dem <strong>Internet Explorer</strong> testen möchte.</p>
<p>Leider hat sich Microsoft nicht dazu hinreißen lassen, seine neusten Browser auch für Mac OS X zu veröffentlichen, so dass man auf andere Wege und Mittel zurückgreifen muss.</p>
<h3>Dual Boot mit BootCamp oder Virtual Machine?</h3>
<p>Sicher, <strong>Apple</strong> bietet uns über <a href="http://www.apple.com/de/macosx/features/bootcamp.html">BootCamp</a> an, ein anderes Betriebsystem wie <strong>Windows XP</strong> auf einer zweiten Partition zu installieren. Hat man dies getan, kann man natürlich auch den Internet Explorer unter Windows verwenden.</p>
<p>Allerdings haben wir dadurch auch einige Nachteile, die natürlich nicht verschwiegen werden können. Zum einen müssen wir extra Festplattenplatz für die zweite Partition bereitstellen - Windows ist hier natürlich nicht besonders sparsam -, zum anderen können wir so immer nur ein Betriebssystem gleichzeitig laufen lassen. Was natürlich unpraktisch ist, wenn unsere Entwicklungsumgebung auf Mac OS X läuft.</p>
<p>Bleibt als weitere Möglichkeit noch, Windows in einer <a href="http://de.wikipedia.org/wiki/Virtuelle_Maschine">virtuellen Maschine</a> zu installieren. Mit <a href="http://www.parallels.com/de/">Parallels</a> oder <a href="http://www.vmware.com/products/fusion/">VMWare Fusion</a> gibt es hier sehr gute Programme, die es uns sehr leicht machen, ein oder mehrere Betriebssysteme zu installieren und gleichzeitig mit Mac OS X laufen zu lassen.</p>
<p>Doch auch diese Möglichkeit fällt ins Wasser, wenn wir gar keine eigene (offizielle) Installations CD von Windows besitzen und uns auch nicht extra eine zulegen wollen, nur um etwas im Internet Explorer zu testen. Doch was bleibt uns nun noch übrig?</p>
<h3>ies4osx - Der Internet Explorer für OS X</h3>
<p>Ich weiß, ich weiß. Warum bin habe ich nicht gleich am Anfang erwähnt, das es doch einen <strong>Internet Explorer für Mac OS X</strong> gibt? Aber ich liebe es, ein wenig Spannung aufzubauen - und seien wir doch mal ehrlich, die Ungeduldigen unter euch haben die vorhergehenden Abschnitte sowieso übersprungen. (Was? Das stimmt wirklich? Dann schnell zurück und noch einmal von vorne lesen!)</p>
<p><a href="http://mike.kronenberg.org/">Mike Kronenberg</a> schien sich mal die gleichen Fragen gestellt zu haben. Warum kann ich keine Windows Anwendungen unter OS X laufen lassen? Also hat er sich hingesetzt und das Linux <a href="http://www.winehq.org/">Wine</a> Projekt - mit dem viele <strong>Windows Anwendungen unter Linux</strong> laufen können - auf Mac OS X portiert und als <a href="http://www.kronenberg.org/darwine/">Darwine</a> zur Verfügung gestellt. Dann ist er anscheinend auf das <a href="http://www.tatanka.com.br/ies4linux">ies4linux</a> Projekt gestoßen, mit dem es möglich war den <strong>Internet Explorer 6</strong> mit Hilfe von Wine auf Linux zum Laufen zu bekommen. Dies hat er ebenfalls portiert und herausgekommen ist <a href="http://www.kronenberg.org/ies4osx/">ies4osx</a>! &lt;tröte&gt;TATAAA!&lt;/tröte&gt;</p>
<p>Die Installation von <strong>ies4osx</strong> ist wirklich sehr einfach. Zuerst die aktuellen Versionen von <strong>Darwine</strong> und <strong>ies4osx</strong> herunterladen, <strong>Darwine</strong> in den Applications Ordner von OS X verschieben, den Installer von <strong>ies4osx</strong> ausführen und fertig. Der Installer lädt sich die benötigten Dateien herunter und legt eine lauffähige Version vom "Internet Explorer 6" auf dem Desktop ab.</p>
<p>Es ist sogar möglich, <strong>Flash</strong>, <strong>Java</strong> und den <strong>Mediaplayer 6.4</strong> von Microsoft auf diesem IE 6 zu installieren.</p>
<h3>Mein Fazit</h3>
<p>Seit ich vom <strong>ies4osx</strong> Projekt erfahren habe, habe ich immer einen Internet Explorer bei mir auf meinem <strong>MacBook</strong> laufen und kann so jederzeit meine Seiten auch dort überprüfen. Sicherlich, der Internet Explorer für Mac OS X reagiert oft etwas träge und vor allem wenn Flash im Spiel ist, wird es richtig langsam, aber für den Zweck, meine Seiten im IE 6 zu testen, ist dies vollkommen ausreichend.</p>
<p>Leider gibt es momentan noch keine Version vom <strong>IE 7</strong> oder <strong>IE 8</strong> für Mac OS X, aber schauen wir mal, was die Zukunft so bringt.</p>
<p><em>Wie läuft es bei euch? Entwickelt ihr auch unter Mac OS X? Wenn ja, welche Lösungen habt ihr gefunden, um eure Seiten auch auf dem Internet Explorer zu testen?</em></p>
Similar Posts:<ul><li><a href="http://webmatze.de/ein_rabenschwarzer_tag/" rel="bookmark" title="20. 10. 2002">Ein rabenschwarzer Tag</a></li>

<li><a href="http://webmatze.de/google-chrome-frame-ein-plugin-fur-den-internet-explorer/" rel="bookmark" title="23. 09. 2009">Google Chrome Frame &#8211; Ein Plugin für den Internet Explorer</a></li>

<li><a href="http://webmatze.de/unsicher-objekte-unter-ssl-in-ie/" rel="bookmark" title="19. 10. 2005">Unsicher Objekte unter SSL in IE</a></li>

<li><a href="http://webmatze.de/webmatzede-und-ie7/" rel="bookmark" title="30. 08. 2007">webmatze.de und IE7</a></li>

<li><a href="http://webmatze.de/wozu_noch_windows/" rel="bookmark" title="11. 10. 2002">Wozu noch Windows</a></li>
</ul><!-- Similar Posts took 5.543 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/ie-6-fur-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google Sitemaps mit Ruby on Rails erstellen</title>
		<link>http://webmatze.de/google-sitemaps-mit-ruby-on-rails-erstellen/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=google-sitemaps-mit-ruby-on-rails-erstellen</link>
		<comments>http://webmatze.de/google-sitemaps-mit-ruby-on-rails-erstellen/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 10:09:26 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[google]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Webseiten erstellen]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=380</guid>
		<description><![CDATA[Wer sich bereits eingehender mit Ruby on Rails beschäftigt hat, der weiß dass dieses beliebte Framework einem viele Aufgaben von Haus aus abnimmt und diese vereinfacht. In den Tagen des Social Webs gehört es unter anderem zu den häufigen Aufgaben &#8230; <a href="http://webmatze.de/google-sitemaps-mit-ruby-on-rails-erstellen/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Wer sich bereits eingehender mit <a href="http://webmatze.de/rubyonrails-framework-auf-schienen/">Ruby on Rails</a> beschäftigt hat, der weiß dass dieses beliebte Framework einem viele Aufgaben von Haus aus abnimmt und diese vereinfacht.</p>
<p>In den Tagen des Social Webs gehört es unter anderem zu den häufigen Aufgaben eines Entwicklers, <abbr>XML</abbr> Dokumente zu generieren, oder <abbr title="Application Programing Interface">API</abbr>s auf Basis von <abbr>XML</abbr> bereitzustellen. News wollen in Form von <abbr title="Really Simple Syndication">RSS</abbr> oder <abbr title="Atom Syndication Format">Atom</abbr> abonniert werden, Inhalte aus anderen Webangeboten über <abbr>XML</abbr> in die eigenen Seiten integriert werden.</p>
<p><abbr>XML</abbr> ist also ziemlich wichtig und daher sollte das Erstellen und die Verarbeitung von <abbr>XML</abbr> mit einem Framework wie <a href="http://www.rubyonrails.org/">Ruby on Rails</a> auch so einfach und unkompliziert wie möglich erfolgen.</p>
<h3>Was ist Google Sitemaps?</h3>
<p>Wie dies funktioniert und welche Schritte dafür notwendig sind, werde ich am Beispiel einer Google Sitemap für ein Blog zeigen. Google stellt mit <a href="https://www.google.de/webmasters/sitemaps">Google Sitemaps</a> eine Methode zur Verfügung, um neue Inhalte aus dynamischen Webseiten noch schneller in den Google Suchindex aufnehmen zu lassen. Dazu können Webseiten eine <strong>sitemap.xml</strong> Datei zur Verfügung stellen, welche in Form von <abbr>XML</abbr> Daten wie URL, Erstell- bzw. Updatedatum und eine Indizierungspriorität zu allen verfügbaren Seiten - in unserem Fall sind dies die Blogeinträge - enthalten kann.</p>
<h3>Rails Generator hilft uns</h3>
<p>Bei großen dynamischen Seiten ist es natürlich aufwendig, diese <abbr>XML</abbr> Datei immer von Hand zu pflegen, darum wollen wir diese mit den Mitteln von Ruby on Rails automatisch generieren lassen.<br />
Überlegen wir doch erstmal, was wir alles für die geforderte Aufgabe benötigen. Wir brauchen einen Sitemap Controller mit einer <strong>index</strong> Action, welche wir aufrufen können und die dann schließlich das <abbr>XML</abbr> generiert. Also sollten wir zuerst diesen neuen Controller generieren lassen. Dies ist in Ruby on Rails mehr als einfach:</p>
<pre>ruby script/generate controller Sitemap index</pre>
<p>Dieser Komandozeilenaufruf nimmt uns diese Aufgabe ab. Der Rails Generator legt daraufhin mehrere Dateien an. Unter anderem den Controller <strong>sitemap_controller.rb</strong> mit der Action <strong>index</strong> und den View <strong>index.html.erb</strong>.</p>
<pre>     exists  app/controllers/
exists  app/helpers/
create  app/views/sitemap
exists  test/functional/
create  app/controllers/sitemap_controller.rb
create  test/functional/sitemap_controller_test.rb
create  app/helpers/sitemap_helper.rb
create  app/views/sitemap/index.html.erb</pre>
<p><span id="more-380"></span></p>
<h3>Der Controller</h3>
<p>Im nächsten Schritt holen wir uns in der bereits für uns angelegten <strong>index</strong> Action eine Liste mit allen vorhandenen Blogeinträgen und sagen Rails, dass das Ergebnis als XML gerendert werden soll.</p>
<pre class="rails"><span style="color:#9966CC; font-weight:bold;">class</span> SitemapController &amp;lt; ApplicationController
&nbsp;
<span style="color:#9966CC; font-weight:bold;">def</span> index
<span style="color:#0066ff; font-weight:bold;">@articles</span> = BlogArticle.<span style="color:#9900CC;">find</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:all</span>, <span style="color:#ff3333; font-weight:bold;">:order</span> =&amp;gt; <span style="color:#996600;">'created_on DESC, updated_on DESC'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#5A0A0A; font-weight:bold;">respond_to</span> <span style="color:#9966CC; font-weight:bold;">do</span> |format|
<span style="color:#CC0066; font-weight:bold;">format</span>.<span style="color:#9900CC;">xml</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">end</span></pre>
<p>Wie man sehen kann, sortieren wir die gefundenen Blogeinträge absteigend nach Erstellungs- und Bearbeitungsdatum. So ist sichergestellt, dass die aktuellsten Einträge in der <abbr>XML</abbr> Datei später immer am Anfang stehen.</p>
<h3>Mit Rails XMLBuilder ist XML so einfach wie noch nie</h3>
<p>Wie im ersten Schritt zu sehen, hat Rails für uns mit der <strong>index.hmtl.erb</strong> auch schon die Viewdatei für die <strong>index</strong> Action erstellt. Da wir jedoch kein <abbr title="Hypertext Markup Language">HTML</abbr> sondern <abbr>XML</abbr> ausgeben wollen, benennen wir diese Datei in <strong>index.xml.builder</strong> um.</p>
<p>Diese Umbenennung hat zwei Effekte. Rails wird auf diese Datei automatisch zurückgreifen, wenn <abbr>XML</abbr> gerendert werden soll und die Endung <strong>.builder</strong> teilt Rails mit, dass der Inhalt dieser Datei Anweisungen für den Rails eigenen <abbr>XML</abbr> Builder enthält. Mit diesem Builder lassen sich schnell komplexe <abbr>XML</abbr> Dateien erstellen, wie wir am folgenden Beispiel sehen werden.</p>
<pre class="rails">xml.<span style="color:#9900CC;">instruct</span>!
&nbsp;
xml.<span style="color:#9900CC;">urlset</span> <span style="color:#996600;">&quot;xmlns&quot;</span> =&amp;gt; <span style="color:#996600;">&quot;http://www.google.com/schemas/sitemap/0.84&quot;</span> <span style="color:#9966CC; font-weight:bold;">do</span>
xml.<span style="color:#9900CC;">url</span> <span style="color:#9966CC; font-weight:bold;">do</span>
xml.<span style="color:#9900CC;">loc</span>         <span style="color:#996600;">&quot;http://www.name-der-seite.de/&quot;</span>
xml.<span style="color:#9900CC;">lastmod</span>     w3c_date<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC00FF; font-weight:bold;">Time</span>.<span style="color:#9900CC;">now</span><span style="color:#006600; font-weight:bold;">&#41;</span>
xml.<span style="color:#9900CC;">changefreq</span>  <span style="color:#996600;">&quot;always&quot;</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#0066ff; font-weight:bold;">@articles</span>.<span style="color:#5A0A0A; font-weight:bold;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> |article|
xml.<span style="color:#9900CC;">url</span> <span style="color:#9966CC; font-weight:bold;">do</span>
xml.<span style="color:#9900CC;">loc</span>         <span style="color:#5A0A0A; font-weight:bold;">url_for</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:only_path</span> =&amp;gt; <span style="color:#0000FF; font-weight:bold;">false</span>, <span style="color:#ff3333; font-weight:bold;">:controller</span> =&amp;gt; <span style="color:#996600;">'blog'</span>, <span style="color:#ff3333; font-weight:bold;">:action</span> =&amp;gt; <span style="color:#996600;">'show'</span>, <span style="color:#ff3333; font-weight:bold;">:id</span> =&amp;gt; article<span style="color:#006600; font-weight:bold;">&#41;</span>
xml.<span style="color:#9900CC;">lastmod</span>     w3c_date<span style="color:#006600; font-weight:bold;">&#40;</span>article.<span style="color:#9900CC;">created_on</span><span style="color:#006600; font-weight:bold;">&#41;</span>
xml.<span style="color:#9900CC;">changefreq</span>  <span style="color:#996600;">&quot;weekly&quot;</span>
xml.<span style="color:#9900CC;">priority</span>    <span style="color:#006666;">0.8</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">end</span></pre>
<p>Dieser Code ist so ziemlich selbsterklärend. Es wird über verschiedene <strong>xml</strong> Anweisungen die Struktur der <strong>sitemap.xml</strong> erzeugt und über alle BlogArticles iteriert.</p>
<h3>Eine Hilfe für das Datumsformat</h3>
<p>Zur Ausgabe des Datums im richtigen Format haben wir die Methode <strong>w3c_date()</strong> im <strong>sitemap_helper.rb</strong> definiert.</p>
<pre class="rails"><span style="color:#9966CC; font-weight:bold;">module</span> SitemapHelper
&nbsp;
<span style="color:#9966CC; font-weight:bold;">def</span> w3c_date<span style="color:#006600; font-weight:bold;">&#40;</span>date<span style="color:#006600; font-weight:bold;">&#41;</span>
date.<span style="color:#9900CC;">utc</span>.<span style="color:#9900CC;">strftime</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;%Y-%m-%dT%H:%M:%S+00:00&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">end</span></pre>
<h3>Fast fertig</h3>
<p>Damit wir diese Action nun auch über die <abbr title="Uniform Resource Locator">URL</abbr> http://www.name-der-seite.de/sitemap.xml aufrufen können, werden wir in der Datei <strong>routes.rb</strong> noch ein entsprechendes Mapping anlegen.</p>
<pre class="rails">map.<span style="color:#9900CC;">connect</span> <span style="color:#996600;">&quot;sitemap.xml&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:controller</span> =&amp;gt; <span style="color:#996600;">&quot;sitemap&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:action</span> =&amp;gt; <span style="color:#996600;">&quot;index&quot;</span></pre>
<p>Nun steht dem Aufruf durch Google und der anschließenden erfolgreichen Indizierung unserer gesamten Blogbeiträge nichts mehr im Weg.</p>
<p>Abschließend kann man sagen, dass <abbr>XML</abbr> mit Ruby on Rails wirklich nicht schwer ist. Wenn man den gesamten Aufwand betrachtet, so konnten wir die geforderte Funktionalität in 5 bis 10 Minuten umsetzen. Wenn das nicht effektiv ist, was denn dann? :o)</p>
Similar Posts:<ul><li><a href="http://webmatze.de/google-sitemaps/" rel="bookmark" title="6. 06. 2005">Google Sitemaps</a></li>

<li><a href="http://webmatze.de/ruby-on-rails-auf-ubuntu-11-10-installieren/" rel="bookmark" title="15. 10. 2011">Ruby on Rails auf Ubuntu 11.10 installieren</a></li>

<li><a href="http://webmatze.de/eigene-fehlerseiten-erstellen/" rel="bookmark" title="13. 06. 2006">Eigene Fehlerseiten erstellen</a></li>

<li><a href="http://webmatze.de/google-notebook/" rel="bookmark" title="16. 05. 2006">Google Notebook</a></li>

<li><a href="http://webmatze.de/was-ist-robotstxt/" rel="bookmark" title="20. 01. 2006">Was ist robots.txt?</a></li>
</ul><!-- Similar Posts took 5.735 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/google-sitemaps-mit-ruby-on-rails-erstellen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ist display=&#8221;none&#8221; jetzt irrelevant?</title>
		<link>http://webmatze.de/ist-display-none-jetzt-irrelevant/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=ist-display-none-jetzt-irrelevant</link>
		<comments>http://webmatze.de/ist-display-none-jetzt-irrelevant/#comments</comments>
		<pubDate>Tue, 12 Aug 2008 10:36:41 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[Browser]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML / XHTML]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=370</guid>
		<description><![CDATA[Beim Studieren der aktuellen HTML5 Spezifikation, ist mir ein neues Attribut aufgefallen, welches möglicherweise bald eine große Bedeutung bekommen könnte. Ich spreche hier vom Attribut irrelevant, welches allen HTML Elementen zugewiesen werden darf. Wofür steht irrelevant? Das Attribut irrelevant darf &#8230; <a href="http://webmatze.de/ist-display-none-jetzt-irrelevant/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Beim Studieren der aktuellen <abbr title="Hypertext Markup Language Version 5">HTML5</abbr> Spezifikation, ist mir ein neues Attribut aufgefallen, welches möglicherweise bald eine große Bedeutung bekommen könnte. Ich spreche hier vom Attribut <code><a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/editing.html#irrelevant">irrelevant</a></code>, welches allen <abbr>HTML</abbr> Elementen zugewiesen werden darf.</p>
<h3>Wofür steht irrelevant?</h3>
<p>Das Attribut <code>irrelevant</code> darf die Werte <strong>"true"</strong> oder <strong>"false"</strong> enthalten und gibt an, ob ein so ausgezeichnetes <abbr>HTML</abbr> Element im aktuellen Kontext noch nicht oder nicht mehr relevant ist. So gekennzeichnete Elemente werden vom Browser weder gerendert, noch angezeigt. Das heißt, man kann damit beliebige Elemente ein- und ausblenden.</p>
<p style="text-align:center"><img src="http://webmatze.de/wp-content/uploads/2008/08/html5.png" alt="HTML 5 Draft Recommendation Screenshot" title="HTML 5 Draft Recommendation" width="500" height="240" class="alignnone size-full wp-image-371" /></p>
<p>Bisher konnte man diese Funktionalität nur durch das Setzen der <abbr title="Cascading Style Sheets">CSS</abbr> Eigenschaft <code><a href="http://www.w3.org/TR/REC-CSS2/visuren.html#display-prop">display</a></code> auf <strong>display: none</strong> erreichen. Damit werden die entsprechenden Elemente ebenfalls nicht gerendert und angezeigt.</p>
<p>Der Nachteil hier wäre allerdings, dass ein Gerät oder Browser, welcher keine Stylesheets versteht, solche Elemente dann trotzdem darstellen würde. Bei Verwendung von <code>irrelevant</code> würde der entsprechende Teil auch in diesem Fall nicht angezeigt werden. <em>(Vorausgesetzt das Gerät versteht HTML5.)</em><br />
<span id="more-370"></span></p>
<h3>irrelevant schon heute verwenden</h3>
<p>Damit man das neue Attribut in <abbr>HTML</abbr> Seiten verwenden kann, müsste man darauf warten, dass die aktuellen Browser <abbr>HTML 5</abbr> unterstützen. Doch bis es soweit ist, kann es noch eine Weile dauern, zumal <a href="http://www.whatwg.org/specs/web-apps/current-work/">die Spezifikation</a> noch nicht in der finalen Version vorliegt.</p>
<p>Um das Warten aber ein wenig zu verkürzen, kann man die entsprechende Funktionalität in allen aktuellen Browsern auch auf anderem Weg erreichen. Dazu muss man nur zwei einfache <abbr>CSS</abbr> Definitionen in das <abbr>HTML</abbr> Dokument einbinden, und schon wird das Attribut <code>irrelevant</code> richtig ausgewertet.</p>
<pre class="css">&nbsp;
&lt;style type=<span style="color: #ff0000;">&quot;text/css&quot;</span>&gt;
  *<span style="color: #66cc66;">&#91;</span>irrelevant<span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">none</span>;
  <span style="color: #66cc66;">&#125;</span>
  *<span style="color: #66cc66;">&#91;</span>irrelevant=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #66cc66;">&#93;</span> <span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">display</span>: <span style="color: #993333;">inherit</span>;
  <span style="color: #66cc66;">&#125;</span>
&lt;/style&gt;
&nbsp;</pre>
<p><em>(Man sollte jedoch versuchen möglichst nicht <strong>irrelevant="false"</strong> zu verwenden, sondern statt dessen das Attribut ganz entfernen, da es unter Umständen bei einigen <abbr>HTML</abbr> Elementen zu Problemen in der Darstellung kommen kann.)</em></p>
<p>So kann man nun beliebige Elemente ausblenden lassen:</p>
<pre class="html">&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;p&gt;</span></span>Laut HTML 5  können nicht relevante Elemente
 ausgeblendet werden, indem ihnen das Attribut irrelevant
 zugewiesen wird. <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;span</span> irrelevant=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>HTML 5 wird noch
 nicht von allen aktuellen Browsern unterstützt.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/span&gt;</span></span>
 Irrelevante Elemente sind solche, die noch nicht, oder nicht
 mehr relevant sind. Das Attribut sollte auf solche Abschnitte
 angewendet werden, die im aktuellen Kontext nicht relevant
 sind, es aber später durchaus wieder werden können.<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/p&gt;</span></span>
&nbsp;</pre>
<p>Wenn man dies mit einem aktuellen Browser wie Firefox 3, Safari 3 oder <abbr title="Internet Explorer">IE</abbr> 8 betrachtet, sollte der zweite Satz nicht mehr angezeigt werden:</p>
<p><em></p>
<p>Laut HTML 5 können nicht relevante Elemente<br />
 ausgeblendet werden, indem ihnen das Attribut irrelevant<br />
 zugewiesen wird. <span irrelevant="true">HTML 5 wird noch<br />
 nicht von allen aktuellen Browsern unterstützt.</span><br />
 Irrelevante Elemente sind solche, die noch nicht, oder nicht<br />
 mehr relevant sind. Das Attribut sollte auf solche Abschnitte<br />
 angewendet werden, die im aktuellen Kontext nicht relevant<br />
 sind, es aber später durchaus wieder werden können.</p>
<p></em></p>
<h3>Elemente per <abbr title="Document Object Model">DOM</abbr> ein- und ausblenden</h3>
<p>Jetzt, da wir mit <code>irrelevant</code> gekennzeichnete Elemente vom Browser ausblenden lassen können, fehlt nur noch der entsprechende JavaScript Code, um dies auch dynamisch per Mausklick durchführen zu können:</p>
<pre class="javascript">&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> hide<span style="color: #66cc66;">&#40;</span>elementId<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> el = document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span>elementId<span style="color: #66cc66;">&#41;</span>;
  el.<span style="color: #006600;">setAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'irrelevant'</span>,<span style="color: #003366; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
<span style="color: #003366; font-weight: bold;">function</span> show<span style="color: #66cc66;">&#40;</span>elementId<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
  <span style="color: #003366; font-weight: bold;">var</span> el = document.<span style="color: #006600;">getElementById</span><span style="color: #66cc66;">&#40;</span>elementId<span style="color: #66cc66;">&#41;</span>;
  el.<span style="color: #006600;">removeAttribute</span><span style="color: #66cc66;">&#40;</span><span style="color: #3366CC;">'irrelevant'</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span>
&nbsp;</pre>
<h3>Fazit</h3>
<p>Wie man sieht, kann man schon heute bestimmte <a href="http://xhtml.com/de/future/x-html-5-versus-xhtml-2/">HTML5 Features</a> verwenden und so die eigenen Seiten für die Zukunft vorbereiten. Ob man das auch tun sollte, sei jedem selbst überlassen. Da ältere Browser möglicherweise mit den hier gezeigten Beispielen nicht zurecht kommen, ist dies nicht unter allen Umständen die beste Wahl. Aber da in den entsprechenden Browsern in dem Fall die zu versteckenden Inhalte einfach angezeigt werden würden, wäre auch kein größerer Schaden entstanden.</p>
Similar Posts:<ul><li><a href="http://webmatze.de/css-formular-design-textfelder/" rel="bookmark" title="11. 08. 2001">CSS Formular Design &#8211; Textfelder</a></li>

<li><a href="http://webmatze.de/die-sprache-eines-links-kennzeichnen/" rel="bookmark" title="4. 09. 2007">Die Sprache eines Links kennzeichnen</a></li>

<li><a href="http://webmatze.de/wirklich-einfache-javascript-tooltips/" rel="bookmark" title="12. 01. 2006">Wirklich einfache JavaScript Tooltips</a></li>

<li><a href="http://webmatze.de/css-auswahlliste-mit-checkboxen/" rel="bookmark" title="20. 07. 2002">CSS Auswahlliste mit Checkboxen</a></li>

<li><a href="http://webmatze.de/schatten-mit-css-pseudo-elementen-hinzufugen/" rel="bookmark" title="2. 08. 2011">Schatten mit CSS Pseudo-Elementen hinzufügen</a></li>
</ul><!-- Similar Posts took 5.798 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/ist-display-none-jetzt-irrelevant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zanmantou &#8211; Der neue Flash MP3 Player</title>
		<link>http://webmatze.de/zanmantou-der-neue-flash-mp3-player/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zanmantou-der-neue-flash-mp3-player</link>
		<comments>http://webmatze.de/zanmantou-der-neue-flash-mp3-player/#comments</comments>
		<pubDate>Tue, 20 May 2008 09:33:07 +0000</pubDate>
		<dc:creator>webmatze</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://webmatze.de/?p=325</guid>
		<description><![CDATA[Vor ein paar Jahren wollte ich in eine meiner Seiten einen MP3 Song einbinden und habe mich darauf hin auf die Suche nach einem geeigneten Player gemacht. Auf meiner Suche bin ich auf einige mehr oder weniger gute Player gestoßen, &#8230; <a href="http://webmatze.de/zanmantou-der-neue-flash-mp3-player/">Weiterlesen <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Vor ein paar Jahren wollte ich in eine meiner Seiten einen MP3 Song einbinden und habe mich darauf hin auf die Suche nach einem geeigneten Player gemacht.</p>
<p>Auf meiner Suche bin ich auf einige mehr oder weniger gute Player gestoßen, aber keiner konnte es mir wirklich recht machen. Vor allem hat mich an den meisten Playern gestört, dass sich diese vom Design her nicht anpassen ließen - aber so war ich es vom guten, alten <a href="http://www.winamp.com/">Winamp Player</a> gewohnt.</p>
<p>Also begann ich damit, mir einen eigenen MP3 Player in <span style="text-decoration: line-through;">Macromedia</span> Adobe Flash zu programmieren.</p>
<p><strong>Der WMPlayer war geboren</strong></p>
<p>Das Design ließ sich beliebig über eine XML Konfiguration definieren und mit eigenen Grafiken anpassen. Das Ganze ließ sich dann als Skin verwenden. Man konnte durchaus verschiedene Skins erstellen und je nach Anlass verwenden.</p>
<p>Hier sind zwei Beispiele für den Player mit Skin zu sehen:</p>
<p><a href="http://webmatze.de/wp-content/uploads/2008/05/player1.jpg"><img class="alignnone size-full wp-image-326" title="player1" src="http://webmatze.de/wp-content/uploads/2008/05/player1.jpg" alt="" width="200" height="30" /></a> <a href="http://webmatze.de/wp-content/uploads/2008/05/player2.jpg"><img class="alignnone size-full wp-image-327" title="player2" src="http://webmatze.de/wp-content/uploads/2008/05/player2.jpg" alt="" width="150" height="19" /></a></p>
<p>Zusätzlich konnte der Player auch über eine JavaScript API gesteuert werden. Dies war vor allem dann von Vorteil, wenn man den Player unsichtbar in die Seite integrieren wollte.</p>
<p>Nachdem ich den Player auf <a href="http://webmatze.de/webmatze-erstrahlt-im-neuen-glanz/">der alten Version von webmatze.de</a> veröffentlicht hatte, ist er sehr schnell von vielen Besuchern heruntergeladen und auf den verschiedensten Seiten integriert worden. Natürlich gab es auch noch einige Bugs, auf die ich hingewiesen wurde. Mit der Zeit wurden außerdem immer mehr Wünsche für neue Funktionen zusammengetragen, welche ich auch teilweise umgesetzt habe.</p>
<p><strong>Zanmantou tritt die Nachfolge an</strong></p>
<p>Leider hat mir dann zuletzt immer mehr die Zeit gefehlt, um mich mit der Weiterentwicklung des Players zu beschäftigen. Also habe ich den Code veröffentlicht und mich nach Programmierern umgesehen, welche das Projekt weiterführen wollten. Zum Glück konnte ich mit Andi Dittrich, auch bekannt als <strong>XAOS </strong>aus <a href="http://forum.webmatze.de">Webmatze's Webmaster Forum</a>, einen begabten Flash-Programmierer finden, der mir einen Großteil der Supportanfragen abnahm und schließlich auch die Weiterentwicklung des Players übernahm.</p>
<p>Herausgekommen ist dabei eine komplett überarbeitete Version des MP3 Flash Players, welcher von da an auf den Namen <strong>Xanmantou </strong>getauft wurde. In der aktuellen Version kann dieser sogar Videos abspielen und lässt sich ebenfalls über eine umfangreiche JavaScript API steuern.</p>
<p><a href="http://webmatze.de/wp-content/uploads/2008/05/zanmantou.jpg"><img class="alignnone size-full wp-image-328" title="zanmantou" src="http://webmatze.de/wp-content/uploads/2008/05/zanmantou.jpg" alt="" width="326" height="248" /></a></p>
<p>Und da aus dem MP3 Player, welchen ich nur als kleines Spielzeug entwickelt hatte, ein richtig eigenständiges Programm geworden war, musste auch eine eigene Seite für den Player her. Seit März 2007 ist der Player unter <span style="text-decoration: line-through;">http://zanmantou.voodoon.com/</span> <a href="http://zanmantou.a3non.org/">http://zanmantou.a3non.org/</a>zu finden.</p>
<p>Die Seite - ebenfalls von Andi erstellt - bietet alle Informationen und Tutorials zum Zanmantou Player und informiert ständig über neue Versionen und Updates.</p>
<p>Wenn Ihr also auf der Suche nach einem <strong>richtig guten Flash MP3 und Video Player</strong> für eure eigenen Seiten und Projekte seit, dann schaut einfach mal beim<a href="http://zanmantou.a3non.org/"> Zanmantou Player</a> vorbei!</p>
Similar Posts:<ul><li><a href="http://webmatze.de/neue_flashplayerversion_mit_skinfunktionalitaet/" rel="bookmark" title="17. 03. 2005">Neue Flashplayerversion mit Skinfunktionalität</a></li>

<li><a href="http://webmatze.de/prey-von-recoil-powered-by-zanmantou/" rel="bookmark" title="20. 01. 2009">Prey von Recoil powered by Zanmantou</a></li>

<li><a href="http://webmatze.de/flash-mp3-player/" rel="bookmark" title="27. 07. 2009">Flash MP3 Player</a></li>

<li><a href="http://webmatze.de/die_liebe_fuer_flash/" rel="bookmark" title="29. 04. 2003">Die Liebe für Flash</a></li>

<li><a href="http://webmatze.de/download-macromedia-flash-player-8/" rel="bookmark" title="13. 09. 2005">Download Macromedia Flash Player 8!</a></li>
</ul><!-- Similar Posts took 20.184 ms -->]]></content:encoded>
			<wfw:commentRss>http://webmatze.de/zanmantou-der-neue-flash-mp3-player/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
<!-- This Quick Cache file was built for (  webmatze.de/category/uncategorized/programmierung/feed/ ) in 2.37206 seconds, on May 21st, 2012 at 5:27 pm UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on May 22nd, 2012 at 5:27 pm UTC -->
