<?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>Dr. Web Magazin</title>
	<atom:link href="http://www.drweb.de/magazin/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.drweb.de/magazin</link>
	<description>Das deutschsprachige Magazin für Seitenbetreiber</description>
	<lastBuildDate>Mon, 21 May 2012 15:57:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Rapid Web-Development mit Django, Teil 2</title>
		<link>http://www.drweb.de/magazin/rapid-web-development-mit-django-teil-2/</link>
		<comments>http://www.drweb.de/magazin/rapid-web-development-mit-django-teil-2/#comments</comments>
		<pubDate>Mon, 21 May 2012 15:56:37 +0000</pubDate>
		<dc:creator>Sven Schannak</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30871</guid>
		<description><![CDATA[Kommen wir nun also zum zweiten Teil unserer Django-Reihe. Sie erinnern sich. Wir wollen eine Anwendung zur Verwaltung von Ferienimmobilien entwickeln. Im ersten Teil hatten wir uns mit Django-Grundlagen beschäftigt. Heute soll es richtig los gehen. Voraussetzung hierfür ist, dass man ein lauffähiges Debian oder besser Ubuntu, zum Beispiel in einer virtuellen Maschine, aufgesetzt hat und dass man weiß, wie man die Shell bzw. das Terminal in Linux bedient. In der VM soll anschließend Django in seiner eigenen Umgebung laufen und die erste Anwendung starten. Als erstes Tool installieren wir &#8220;virtualenv&#8220;. Wie der Name schon verrät, handelt es sich hierbei um eine virtuelle Umgebung (virtual environment). Für unser Projekt wollen wir eine Art &#8220;Container&#8221; schaffen, in dem wir Pakete für Python installieren können, ohne in Konflikt mit anderen Python- bzw. Django-Anwendungen zu kommen. Es ist nicht selten, dass man mehrere Django-Anwendungen auf einem Server laufen hat. Eine vielleicht in der Version 1.2, die andere schon in 1.4, welche die aktuelle Version ist. Da Python auf einfachem Wege aber immer nur eine Version eines Moduls oder einer Bibliothek zur Verfügung stellen kann, benötigen wir hier virtualenv. Installieren und Einrichten einer virtuellen Umgebung für Django Zum Installieren von &#8220;virtualenv&#8221; benötigen wir ein [...]]]></description>
			<content:encoded><![CDATA[<p>Kommen wir nun also zum zweiten Teil unserer Django-Reihe. Sie erinnern sich. Wir wollen eine Anwendung zur Verwaltung von Ferienimmobilien entwickeln. Im ersten Teil hatten wir uns mit Django-Grundlagen beschäftigt. Heute soll es richtig los gehen. Voraussetzung hierfür ist, dass man ein lauffähiges Debian oder besser Ubuntu, zum Beispiel in einer virtuellen Maschine, aufgesetzt hat und dass man weiß, wie man die Shell bzw. das Terminal in Linux bedient. In der VM soll anschließend Django in seiner eigenen Umgebung laufen und die erste Anwendung starten.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/django_teaser1.jpg"><img class="size-full wp-image-30878" src="http://www.drweb.de/magazin/wp-content/uploads/django_teaser1.jpg" alt="django teaser1 foto" width="640" height="400" title="Rapid Web Development mit Django, Teil 2 webdesign python " /></a></p>
<p>Als erstes Tool installieren wir &#8220;<a href="http://www.django-workshop.de/vorbereitung/virtualenv.html">virtualenv</a>&#8220;. Wie der Name schon verrät, handelt es sich hierbei um eine virtuelle Umgebung (virtual environment). Für unser Projekt wollen wir eine Art &#8220;Container&#8221; schaffen, in dem wir Pakete für Python installieren können, ohne in Konflikt mit anderen Python- bzw. Django-Anwendungen zu kommen. Es ist nicht selten, dass man mehrere Django-Anwendungen auf einem Server laufen hat. Eine vielleicht in der Version 1.2, die andere schon in 1.4, welche die aktuelle Version ist. Da Python auf einfachem Wege aber immer nur eine Version eines Moduls oder einer Bibliothek zur Verfügung stellen kann, benötigen wir hier virtualenv.</p>
<h3>Installieren und Einrichten einer virtuellen Umgebung für Django</h3>
<p>Zum Installieren von &#8220;virtualenv&#8221; benötigen wir ein weiteres Paket: &#8220;<a href="http://www.pip-installer.org/en/latest/index.html">pip</a>&#8220;. PIP ist ein Paketverwaltungssystem für Python-Anwendungen. Mit Hilfe von PIP ist möglich, neue Pakete leicht zu installieren, up-to-date zu halten und zu löschen. Dazu braucht man die Shell, auf welcher man folgendes eingibt:</p>
<pre>sudo apt-get install python-pip python-dev build-essential
sudo pip install --upgrade pip</pre>
<p>Damit sollte PIP nun installiert sein. Um &#8220;virtualenv&#8221; zu installieren, verwenden wir folgenden Befehl:</p>
<pre>sudo pip install --upgrade virtualenv</pre>
<p>Nun stehen bereits PIP und virtualenv zur Verfügung. Der nächste Schritt ist das Einrichten der virtuellen Umgebung. Dazu erstellen wir zuerst eine virtuelle Umgebung und installieren anschließend die nötigen Pakete. Zuerst legen wir einen Ordner an, der alle virtuellen Umgebungen erfasst. Das kann zum Beispiel im Homeordner erfolgen. Anschließend wechseln wir in diesen Ordner und führen folgenden Befehl aus:</p>
<pre>virtualenv --distribute fewoverwaltung</pre>
<p>Damit haben wir eine virtuelle Umgebung für die Anwendung geschaffen. Der nächste Schritt besteht in der Einrichtung. Hierzu installieren wir Django, nachdem wir in die virtuelle Umgebung gewechselt sind, mit folgenden Befehlen:</p>
<pre>source /pfad/zum/verzeichnis/fewoverwaltung/activate</pre>
<p>Anschließend kommt noch Yolk hinzu, das einem eine Listenansicht aller installierten Pakete zurückgibt:</p>
<pre>pip install yolk</pre>
<p>Um die Installation von Django abzuschließen, fehlt natürlich noch Django selbst:</p>
<pre>pip install Django</pre>
<p>Wenn man mehr als ein paar Pakete installiert, sollte man regelmäßig eine requirements-Datei erstellen, in der alle genutzten Pakete gelistet sind, zur einfachen Wiederverwendung. Das können Sie mit folgenden Befehlen realisieren:</p>
<pre>pip freeze &gt; /tmp/requirements.txt</pre>
<p>Diese Datei kann man dann z.B. in einem anderen Environment nutzen, um dort alle nötigen Pakete zu installieren:</p>
<pre>pip install -r /tmp/requirements.txt</pre>
<p>Soviel zur Vorbereitung. Nun steht uns Django in einer virtuellen Umgebung auf einem virtuellen Server zur Verfügung.</p>
<h3>Django &#8211; das erste Projekt</h3>
<p>Um die Entwicklung der Anwendung zu beginnen, wechseln wir zunächst in das richtige virtualenv und legen anschließend ein erstes Django-Projekt an:</p>
<pre>django-admin.py startproject fewo</pre>
<p>Damit haben wir unter dem Namen fewo unser erstes Django-Projekt angelegt. Im Verzeichnis sollte nun ein Ordner namens fewo existieren. In diesem Ordner befinden sich alle nötigen Dateien für Django. Die Ordnerstruktur wiederum hat sich mit Version 1.4 geändert. Im Hauptordner befindet sich die manage.py-Datei, eine Datei, von der wir noch oft Gebrauch machen werden. Im Unterordner fewo befinden sich die Dateien für die Einstellungen(settings.py), die Datei für den URL-Dispatcher (urls.py) und eine Datei, die hauptsächlich für das Deployment benötigt wird (wsgi.py).</p>
<div id="attachment_30880" class="wp-caption alignnone" style="width: 681px"><a href="http://www.drweb.de/magazin/wp-content/uploads/django_struktur.png"><img class="size-full wp-image-30880" src="http://www.drweb.de/magazin/wp-content/uploads/django_struktur.png" alt="django struktur foto" width="671" height="185" title="Rapid Web Development mit Django, Teil 2 webdesign python " /></a><p class="wp-caption-text">Django Struktur</p></div>
<p>Eine Anwendung in Django setzt sich wiederum aus mehreren Apps zusammen, eine weitere App wird auch für dieses Projekt benötigt. Nennen wir sie einfach &#8220;buchungen&#8221;. Um sie anzulegen, müssen wir uns im Hauptordner befinden und folgende Befehle ausführen:</p>
<pre>python manage.py startapp buchungen</pre>
<p>Der Befehl legt einen neuen Ordner mit der Bezeichnung buchungen an. In diesem Ordner befinden sich Dateien um die Modelle, Tests und Views anzulegen.</p>
<h3>Admin-Interface von Django nutzen</h3>
<p>Um das integrierte Admin-Tool von Django zu nutzen, öffnen wir die Datei settings.py und entfernen unter <code>INSTALLED_APPS</code> den Kommentar vor <code>django.contrib.admin</code>. Anschließend müssen in der selben Datei noch die nötigen Daten zur DB-Verbindung eingetragen werden. Der folgende Code führt eine Datenmigration der Admin-Daten zur Datenbank aus und legt einen neuen User an:</p>
<pre>python manage.py syncdb</pre>
<p>In der Datei urls.py sollten noch bei folgenden Zeilen die Kommentare entfernt werden:</p>
<pre>from django.contrib import admin
admin.autodiscover()
url(r'^admin/', include(admin.site.urls)),</pre>
<div id="attachment_30879" class="wp-caption alignnone" style="width: 777px"><a href="http://www.drweb.de/magazin/wp-content/uploads/django_admin.png"><img class="size-full wp-image-30879" src="http://www.drweb.de/magazin/wp-content/uploads/django_admin.png" alt="django admin foto" width="767" height="147" title="Rapid Web Development mit Django, Teil 2 webdesign python " /></a><p class="wp-caption-text">Django Admin</p></div>
<p>Jetzt ist unsere Anwendung bereit für den ersten Start. Das geht dank des integrierten Testservers relativ einfach mit:</p>
<pre>python manage.py runserver AKTUELLE_IP:8000</pre>
<p>Natürlich sollte AKTUELLE_IP durch die aktuelle IP des Servers ersetzt werden. Nun läuft auf PORT 8000 unseres Servers unsere Anwendung . Über AKTUELLE_IP:8000/admin erreichen wir das Admin-Interface.</p>
<h3>Fazit</h3>
<p>Ich bin ganz ehrlich und sage, dass das Pensum dieses Beitrags sogar für erfahrene Entwickler durchaus zu viel sein könnte. Und das Einrichten einer virtualenv ist auch nicht Bedingung zum Starten der ersten Anwendung. Ich halte es jedoch für sinnvoll und halte es auch selbst so, gleich von Beginn an sauber und übersichtlich, ohne Weglassungen zu arbeiten. Ich kann aus meiner Erfahrung sagen: Es lohnt sich.</p>
<p>Mittlerweile läuft die erste Anwendung und wir haben Django installiert. Im nächsten Teil legen wir das Model an und ich gehe etwas tiefer auf den <a href="https://docs.djangoproject.com/en/1.4/topics/http/urls/">URL-Dispatcher</a>, Templates und Co. ein.</p>
<p>Den ersten Teil des Django-Workshops finden Sie <a href="http://www.drweb.de/magazin/rapid-web-development-mit-django-teil-1/">hier</a>.</p>
<p><em>(dpe)</em></p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/rapid-web-development-mit-django-teil-1/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/django_teaser.jpg" alt="django teaser foto" title="Rapid Web Development mit Django, Teil 2 webdesign python " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/rapid-web-development-mit-django-teil-1/" rel="bookmark" class="crp_title">Rapid Web-Development mit Django, Teil 1</a></li><li><a href="http://www.drweb.de/magazin/framework-django/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/django.png" alt="django foto" title="Rapid Web Development mit Django, Teil 2 webdesign python " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/framework-django/" rel="bookmark" class="crp_title">Django: Einführung in das Web Framework</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/rapid-web-development-mit-django-teil-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Social jQuery: Einheitliche Social-Buttons statt unterschiedlicher Code-Snippets</title>
		<link>http://www.drweb.de/magazin/social-jquery-einheitliche-social-buttons-statt-unterschiedlicher-code-snippets/</link>
		<comments>http://www.drweb.de/magazin/social-jquery-einheitliche-social-buttons-statt-unterschiedlicher-code-snippets/#comments</comments>
		<pubDate>Mon, 21 May 2012 11:09:45 +0000</pubDate>
		<dc:creator>Denis Potschien</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Social]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30923</guid>
		<description><![CDATA[Wer Seiten oder Profile bei sozialen Netzwerken wie Facebook, Twitter und Google+ pflegt, bindet Links zu eben diesen Netzwerken gerne auf der eigenen Website ein. Statt sich mit den entsprechenden Quelltext-Snippets auseinanderzusetzen oder Buttons selbst zu basteln, können Social-Buttons auch einfach über Koottam Social jQuery eingebunden werden. Beispiele für Social-Buttons mit dem Plugin Mit dem Koottam-Social-jQuery-Plugin sind Buttons zu allen bekannten sozialen Netzwerken sowie RSS-Feeds schnell und einfach in die eigene Website eingebunden und angepasst. Neben dem Link zur jeweiligen Präsenz beim sozialen Netzwerk wird die Anzahl der Fans beziehungsweise Follower angezeigt. Außerdem garantiert das Social-jQuery-Plugin ein einheitliches Aussehen aller dargestellten Buttons. Social jQuery einbinden Wie der Name schon vermuten lässt, ist jQuery Voraussetzung, um das Plugin nutzen zu können. Damit die Social-Buttons auch ihr richtiges Aussehen erhalten, muss die mitgelieferte Stylesheet-Datei ebenfalls mit eingebunden werden: &#60;script type=&#34;text/javascript&#34; src=&#34;http://code.jquery.com/jquery-1.7.2.min.js&#34;&#62;&#60;/script&#62; &#60;script type=&#34;text/javascript&#34; src=&#34;koottam/js/jquery.koottam.js&#34;&#62;&#60;/script&#62; &#60;link href=&#34;koottam/css/koottam.css&#34; rel=&#34;stylesheet&#34; /&#62; Anschließend können die sozialen Netzwerke über einfache A-Elemente ausgezeichnet werden: &#60;a href=&#34;http://www.facebook.com/username&#34; class=&#34;fb&#34;&#62;Facebook&#60;/a&#62; Per JavaScript wird das A-Element aufgrund der vergebenen Klasse nun durch den per jQuery-Plugin bereitgestellten Social-Button ersetzt: 1 2 3 4 5 6 7 8 9 10 11 12 &#60;script type=&#34;text/javascript&#34;&#62; $&#40;document&#41;.ready&#40;function&#40;&#41;&#123; $&#40;&#34;.fb&#34;&#41;.koottam&#40;&#123; &#34;id&#34; : &#34;username&#34;, &#34;method&#34; : &#34;api&#34;, &#34;theme&#34; : [...]]]></description>
			<content:encoded><![CDATA[<p>Wer Seiten oder Profile bei sozialen Netzwerken wie Facebook, Twitter und Google+ pflegt, bindet Links zu eben diesen Netzwerken gerne auf der eigenen Website ein. Statt sich mit den entsprechenden Quelltext-Snippets auseinanderzusetzen oder Buttons selbst zu basteln, können Social-Buttons auch einfach über Koottam Social jQuery eingebunden werden.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/koottam_beispiele.jpg"><img class="size-full wp-image-30926" src="http://www.drweb.de/magazin/wp-content/uploads/koottam_beispiele.jpg" alt="koottam beispiele foto" width="640" height="425" title="Social jQuery: Einheitliche Social Buttons statt unterschiedlicher Code Snippets webdesign social jquery " /></a><br />
<em>Beispiele für Social-Buttons mit dem Plugin</em></p>
<p>Mit dem <a title="Koottam Social jQuery" href="http://jobyj.in/koottam-jquery-plugin/">Koottam-Social-jQuery-Plugin</a> sind Buttons zu allen bekannten sozialen Netzwerken sowie RSS-Feeds schnell und einfach in die eigene Website eingebunden und angepasst. Neben dem Link zur jeweiligen Präsenz beim sozialen Netzwerk wird die Anzahl der Fans beziehungsweise Follower angezeigt. Außerdem garantiert das Social-jQuery-Plugin ein einheitliches Aussehen aller dargestellten Buttons.</p>
<h3>Social jQuery einbinden</h3>
<p>Wie der Name schon vermuten lässt, ist <a title="jQuery" href="http://www.jquery.com/">jQuery</a> Voraussetzung, um das Plugin nutzen zu können. Damit die Social-Buttons auch ihr richtiges Aussehen erhalten, muss die mitgelieferte Stylesheet-Datei ebenfalls mit eingebunden werden:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://code.jquery.com/jquery-1.7.2.min.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;koottam/js/jquery.koottam.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>link href<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;koottam/css/koottam.css&quot;</span> rel<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;stylesheet&quot;</span> <span style="color: #339933;">/&gt;</span></pre></div></div>

<p>Anschließend können die sozialen Netzwerke über einfache A-Elemente ausgezeichnet werden:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>a href<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://www.facebook.com/username&quot;</span> <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;fb&quot;</span><span style="color: #339933;">&gt;</span>Facebook<span style="color: #339933;">&lt;/</span>a<span style="color: #339933;">&gt;</span></pre></div></div>

<p>Per JavaScript wird das A-Element aufgrund der vergebenen Klasse nun durch den per jQuery-Plugin bereitgestellten Social-Button ersetzt:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
  $<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.fb&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">koottam</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #3366CC;">&quot;id&quot;</span>            <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;username&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;method&quot;</span>        <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;api&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;theme&quot;</span>         <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;facebook-blue&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;icon_url&quot;</span>      <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;koottam/img/facebook.png&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;style&quot;</span>         <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;image_count&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;size&quot;</span>          <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;default&quot;</span>
    <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Über den Aufruf koottam() lässt sich der Social-Button konfigurieren. Über id wird der Benutzername beziehungsweise die ID angegeben, die man bei Facebook, Google+ und Co. hat. Und über method wird angegeben, ob man die entsprechende API des sozialen Netzwerkes nutzt.</p>
<p>Nur bei Facebook und Twitter gibt es die Möglichkeit, über die entsprechende API die Anzahl der Fans und Follower automatisch darzustellen. In allen anderen Fällen muss method jeweils auf custom eingestellt sein; eine automatische Darstellung der aktuellen Fans und Follower ist hierbei nicht möglich. Eine manuelle Angaben lässt sich per count darstellen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
  $<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.fb&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">koottam</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
      <span style="color: #3366CC;">&quot;id&quot;</span>            <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;beispielseite&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;method&quot;</span>        <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;custom&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;theme&quot;</span>         <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;facebook-blue&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;icon_url&quot;</span>      <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;koottam/img/facebook.png&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;style&quot;</span>         <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;image_count&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;size&quot;</span>          <span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;default&quot;</span><span style="color: #339933;">,</span>
      <span style="color: #3366CC;">&quot;count&quot;</span>         <span style="color: #339933;">:</span> <span style="color: #CC0000;">465898</span>
     <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<h3>Social-Buttons konfigurieren</h3>
<p>Für jedes unterstützte soziale Netzwerk sowie für RSS-Feeds liefert das Plugin ein eigenes Farbschema (theme) sowie ein eigenes Icon (icon_url). Farbschema und Icon lassen sich unabhängig voneinander anpassen. Außerdem gibt es vier unterschiedliche Darstellungsmöglichkeiten (style). Die Zahl kann zusammen mit dem Bild („image_count“), zusammen mit dem Schriftzug („logo_count“), zusammen mit Bild und Schriftzug („image_logo_count“) sowie zusammen mit Bild und ID/Benutzername angezeigt werden (image_id_count).</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/koottam_styles.jpg"><img class="size-full wp-image-30927" src="http://www.drweb.de/magazin/wp-content/uploads/koottam_styles.jpg" alt="koottam styles foto" width="163" height="151" title="Social jQuery: Einheitliche Social Buttons statt unterschiedlicher Code Snippets webdesign social jquery " /></a><br />
<em>Unterschiedliche Darstellungsmöglichkeiten der Buttons</em></p>
<p>Außerdem lassen sich die Buttons in zwei unterschiedlichen Größen (size) anzeigen. Neben der Standardgröße (default) gibt es die Möglichkeit der Anzeige der Buttons auch in groß (large).</p>
<p><strong>Fazit:</strong> Mit dem <a title="Koottam Social jQuery" href="http://jobyj.in/koottam-jquery-plugin/">Koottam-Social-jQuery-Plugin</a> lassen sich soziale Netzwerke und RSS-Feeds sehr einfach und einheitlich gestaltet in die eigene Website einbinden. Hat ein Besucher JavaScript ausgeschaltet, bekommt er zumindest einen Link zur jeweiligen Profilseite dargestellt.</p>
<p><em>(dpe)</em></p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/bootbox-js-dialogboxen-per-bootstrap-erstellen/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/bootbox.jpg" alt="bootbox foto" title="Social jQuery: Einheitliche Social Buttons statt unterschiedlicher Code Snippets webdesign social jquery " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/bootbox-js-dialogboxen-per-bootstrap-erstellen/" rel="bookmark" class="crp_title">Bootbox.js: Dialogboxen per Bootstrap erstellen</a></li><li><a href="http://www.drweb.de/magazin/jquery-plugin-supersized-autoskalierender-background-mit-slideshow-option/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/supersized.gif" alt="supersized foto" title="Social jQuery: Einheitliche Social Buttons statt unterschiedlicher Code Snippets webdesign social jquery " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/jquery-plugin-supersized-autoskalierender-background-mit-slideshow-option/" rel="bookmark" class="crp_title">jQuery-Plugin &#8220;Supersized&#8221;: Autoskalierender Background mit Slideshow-Option</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/social-jquery-einheitliche-social-buttons-statt-unterschiedlicher-code-snippets/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat</title>
		<link>http://www.drweb.de/magazin/photofunia-kostenloser-photoeditor-der-nicht-nur-witzige-effekte-zu-bieten-hat/</link>
		<comments>http://www.drweb.de/magazin/photofunia-kostenloser-photoeditor-der-nicht-nur-witzige-effekte-zu-bieten-hat/#comments</comments>
		<pubDate>Sun, 20 May 2012 12:51:37 +0000</pubDate>
		<dc:creator>Swetlana Senkevitch</dc:creator>
				<category><![CDATA[Bildbearbeitung]]></category>
		<category><![CDATA[Effekte]]></category>
		<category><![CDATA[Fotografie]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30789</guid>
		<description><![CDATA[Denkt man an Bildbearbeitung mit dem Computer, denkt man an Photoshop. Photoshop ist der unangefochtene Platzhirsch unter den pixelorientierten Grafikprogrammen. Mit seiner Hilfe ist grundsätzlich alles möglich, was einem an Bildbearbeitungswünschen einfallen kann. Allerdings muss es nicht immer Photoshop sein. Um Bildern interessante Filter und Effekte zuzufügen, finden sich Alternativen. Eine Alternative ist der im Grunde für die Spaßbildbearbeitung gedachte Fotoeditor Photofunia. Neben der Möglichkeit, das eigene Konterfei auf eine Zeitung oder David Beckhams Oberkörper zu bringen, bietet Photofunia etliche ernsthafte Filter und Effekte, die Bildern einen professionellen Touch geben können. Was ist Photofunia? Photofunia ist ein kostenloser Photoeditor, welcher zahlreiche Fotoeffekte anbietet. Man kann ihn sowohl für ernsthafte Bildbearbeitung verwenden als auch etwas zum Spaß kreieren. In diesem Post habe ich mich auf einige, nach meinem Empfinden eher ernsthafte Photofunia Labs und Filter beschränkt. Um die von mir ausgesuchten Beispiele vorzuführen, habe ich ein eigenes Bild geschossen und bearbeitet. Dieses Bild wird im heutigen Post kreativ bearbeitet Photofunia Labs Bei Photofunia Labs kann man seine Fotos mit kreativen Effekten ausstatten oder auch eine Fotomontage machen. Manche Ideen sind nur zum Spass gut geeignet, viele sind aber auch für den ernsthaften Gebrauch verwendbar. PopArt Damit erstellen Sie aus Ihrem Foto ein [...]]]></description>
			<content:encoded><![CDATA[<p>Denkt man an Bildbearbeitung mit dem Computer, denkt man an Photoshop. Photoshop ist der unangefochtene Platzhirsch unter den pixelorientierten Grafikprogrammen. Mit seiner Hilfe ist grundsätzlich alles möglich, was einem an Bildbearbeitungswünschen einfallen kann. Allerdings muss es nicht immer Photoshop sein. Um Bildern interessante Filter und Effekte zuzufügen, finden sich Alternativen. Eine Alternative ist der im Grunde für die Spaßbildbearbeitung gedachte Fotoeditor <a href="http://www.photofunia.com/">Photofunia</a>. Neben der Möglichkeit, das eigene Konterfei auf eine Zeitung oder David Beckhams Oberkörper zu bringen, bietet Photofunia etliche ernsthafte Filter und Effekte, die Bildern einen professionellen Touch geben können.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/alien-sky-klein.jpg"><img src="http://www.drweb.de/magazin/wp-content/uploads/alien-sky-klein.jpg" alt="alien sky klein foto" width="700" height="525" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a></p>
<h3>Was ist Photofunia?</h3>
<p><a href="http://www.photofunia.com/">Photofunia</a> ist ein kostenloser Photoeditor, welcher zahlreiche Fotoeffekte anbietet. Man kann ihn sowohl für ernsthafte Bildbearbeitung verwenden als auch etwas zum Spaß kreieren. In diesem Post habe ich mich auf einige, nach meinem Empfinden eher ernsthafte Photofunia <a href="http://www.photofunia.com/lab/">Labs</a> und <a href="http://www.photofunia.com/filters/">Filter</a> beschränkt. Um die von mir ausgesuchten Beispiele vorzuführen, habe ich ein eigenes Bild geschossen und bearbeitet.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/photofunia-003.jpg"><img class="alignnone size-full wp-image-30797" src="http://www.drweb.de/magazin/wp-content/uploads/photofunia-003.jpg" alt="photofunia 003 foto" width="700" height="525" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a><br />
<em>Dieses Bild wird im heutigen Post kreativ bearbeitet</em></p>
<h3>Photofunia Labs</h3>
<p>Bei Photofunia Labs kann man seine Fotos mit kreativen Effekten ausstatten oder auch eine Fotomontage machen. Manche Ideen sind nur zum Spass gut geeignet, viele sind aber auch für den ernsthaften Gebrauch verwendbar.</p>
<h4>PopArt</h4>
<p>Damit erstellen Sie aus Ihrem Foto ein <a href="http://www.photofunia.com/lab/popart/">PopArt-Bild</a>. Einfach auf &#8220;Choose file&#8221; klicken, das gewünschte Foto auswählen und auf &#8220;Go!&#8221; drücken. Das Foto muss als JPEG, GIF, oder PNG vorliegen und darf nicht grösser als 10 MB sein.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/popart.jpg"><img class="alignnone size-full wp-image-30795" src="http://www.drweb.de/magazin/wp-content/uploads/popart.jpg" alt="popart foto" width="700" height="525" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a><br />
<em>Photofunia Labs Beispiel 1: PopArt</em></p>
<h4>Kalender</h4>
<p>So einfach lässt sich ein <a href="http://www.photofunia.com/lab/calendar/">Kalender</a> mit eigenen Fotos machen! Praktisch ist, dass die Möglichkeit besteht, auszusuchen, ob man für bestimmte Monate einen Kalender erstellen lassen möchte oder direkt für das ganze Jahr. Ist doch eine schöne Geschenkidee, oder?</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/kalender-klein.jpg"><img class="alignnone size-large wp-image-30802" src="http://www.drweb.de/magazin/wp-content/uploads/kalender-klein-682x1024.jpg" alt="kalender klein 682x1024 foto" width="659" height="989" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a><br />
<em>Photofunia Labs Beispiel 2: Kalender</em></p>
<h4>Motivator</h4>
<p>Wer kennt nicht diese Fotos mit schlauen (oder blöden) Sprüchen, die sogenannten Motivatoren oder Demotivatoren? Wenn man will, kann man auch ein eigenes Bild in einen <a href="http://www.photofunia.com/lab/motivator/">Motivator</a> verwandeln. Laden Sie das gewünschte Foto hoch (nicht grösser als 10 MB), denken Sie sich einen coolen Spruch aus und los geht&#8217;s!</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/motivator.jpg"><img class="alignnone size-full wp-image-30805" src="http://www.drweb.de/magazin/wp-content/uploads/motivator.jpg" alt="motivator foto" width="700" height="612" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a><br />
<em>Photofunia Labs Beispiel 3: Motivator</em></p>
<h3>Photofunia Filter</h3>
<p>Diese Filter lassen ein Foto originell und etwas ungewöhnlich wirken. Auch hier gilt: Effekt auswählen, Foto aussuchen, hochladen und &#8220;GO!&#8221; Zusätzlich kann man hier zwischen verschiedenen Umrandungen, Lichteffekten und Texturen auswählen. Das erhöht die Anzahl an Möglichkeiten enorm.</p>
<h4>Alien Sky</h4>
<p>Die grünliche Farbe macht ein Foto etwas mystisch, aber irgendwie auch interessant. So ein <a href="http://www.photofunia.com/filters/alien_sky/">Filter</a> würde die Bilder von Schlössern, alten Häusern oder auch Portraits ganz cool aussehen lassen.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/alien-sky-klein.jpg"><img class="alignnone size-full wp-image-30807" src="http://www.drweb.de/magazin/wp-content/uploads/alien-sky-klein.jpg" alt="alien sky klein foto" width="700" height="525" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a><br />
<em>Photofunia Filter Beispiel 1: Alien Sky</em></p>
<h4>Dark Night</h4>
<p><a href="http://www.photofunia.com/filters/dark_night/">Dark Night</a> (Dunkle Nacht) ist ein Filter, welches Ihr Foto so aussehen lässt, als ob es bei Einbruch der Dunkelheit geschossen wurde.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/dark-night-klein.jpg"><img class="alignnone size-full wp-image-30808" src="http://www.drweb.de/magazin/wp-content/uploads/dark-night-klein.jpg" alt="dark night klein foto" width="700" height="525" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a><br />
<em>Photofunia Filter Beispiel 2: Dark Night</em></p>
<h4>Summer Day</h4>
<p>Dieser <a href="http://www.photofunia.com/filters/summer_day/">Filter</a> verleiht einem Foto fröhliche Farben und Lichteffekte, welche üblicherweise mit einem sommerlichen Tag assoziiert werden. Das Beispielbild wurde eigentlich im Februar geschossen, was man nach der Anwendung des Filters meiner Meinung nach überhaupt nicht merkt. Man muss also nicht unbedingt auf den Sommer warten, um Bilder mit einer Sommerstimmung zu schießen!</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/summer-day-klein.jpg"><img class="alignnone size-full wp-image-30810" src="http://www.drweb.de/magazin/wp-content/uploads/summer-day-klein.jpg" alt="summer day klein foto" width="700" height="525" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a><br />
<em>Photofunia Filter Beispiel 3: Summer Day</em></p>
<h4>Black and White</h4>
<p>Schwarz-Weiss-Fotografie liegt heute wieder voll im Trend! Doch macht man die Bilder nicht mehr mit uralten Fotoapparaten, sondern etwa mit Filtern, wie <a href="http://www.photofunia.com/filters/contrast_bw/">diesem</a> hier. Sieht doch aus, als ob es schon vor vielen Jahren geschossen wurde, oder?</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/schwarzweiss-klein.jpg"><img class="alignnone size-full wp-image-30811" src="http://www.drweb.de/magazin/wp-content/uploads/schwarzweiss-klein.jpg" alt="schwarzweiss klein foto" width="700" height="525" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " /></a><br />
<em>Photofunia Filter Beispiel 4: Black and White</em></p>
<h3>Wichtige Einschränkung</h3>
<p>Unbedingt zu beachten ist, dass sich Photofunia in den Nutzungsbedingungen das Recht vorbehält, die hochgeladenen Bilder auch kommerziell nutzen zu dürfen.  Obschon sich viele Dienste, auch Facebook ist damit bereits mehrmals in die Kritik geraten,  diese Berechtigung nur sichern, ohne sie jemals tatsächlich zu verwenden, sollte man doch damit rechnen, dass das jederzeit passieren kann.</p>
<p><em>(dpe)</em></p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/simple-tilt-shift-effekte-mit-dem-neuen-photoshop-cs6/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/cityshrinker-old-new.png" alt="cityshrinker old new foto" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/simple-tilt-shift-effekte-mit-dem-neuen-photoshop-cs6/" rel="bookmark" class="crp_title">Simple Tilt-Shift-Effekte mit dem neuen Photoshop CS6</a></li><li><a href="http://www.drweb.de/magazin/photoshop-tutorial-gruselmaske-weiche-auswahlkante/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/screen_6_vorher_dw.jpg" alt="screen 6 vorher dw foto" title="Photofunia: Kostenloser Photoeditor, der nicht nur witzige Effekte zu bieten hat webdesign fotografie effekte bildbearbeitung " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/photoshop-tutorial-gruselmaske-weiche-auswahlkante/" rel="bookmark" class="crp_title">Photoshop-Tutorial: Lichteffekte erzeugen über die „Weiche Auswahlkante“</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/photofunia-kostenloser-photoeditor-der-nicht-nur-witzige-effekte-zu-bieten-hat/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Border-Image-Generator: Grafische CSS-Rahmen leicht gemacht</title>
		<link>http://www.drweb.de/magazin/border-image-generator-grafische-css-rahmen-leicht-gemacht/</link>
		<comments>http://www.drweb.de/magazin/border-image-generator-grafische-css-rahmen-leicht-gemacht/#comments</comments>
		<pubDate>Sat, 19 May 2012 10:20:54 +0000</pubDate>
		<dc:creator>Denis Potschien</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Generatoren]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30837</guid>
		<description><![CDATA[Mit der CSS3-Eigenschaft border-image lassen sich individuelle und ausgefallene Rahmen erstellen. Die Grundlage für diese Rahmen ist jeweils eine Grafikdatei, die in verschiedene Bereiche eingeteilt wird. Jeder Bereich steht für ein bestimmtes Rahmensegment. Die Web-App Border-Image-Generator erstellt solche grafische Rahmen bequem und einfach. Das Problem vieler CSS3-Eigenschaften – so zum Beispiel auch bei CSS-Verläufen – ist, dass man als Entwickler viel herumprobieren muss, bis das gewünschte Ergebnis erreicht ist. Bei der Eigenschaft border-image ist das nicht anders. Die Grafikdatei für einen grafischen Rahmen muss in neun Bereiche eingeteilt werden. Dazu werden per border-image neben der Grafikdatei bis zu vier Zahlenwerte übergeben, welche die Grafik in die neun Bereiche gliedern. Es wird jeweils der Abstand von oben, unten, rechts und links angegeben. Zusätzlich kann mit ebenfalls vier Werten die Breite der jeweiligen Rahmenseiten definiert  werden. Rahmen per Schieberegler definieren Diese Jonglage mit bis zu acht Werten gleichzeitig erleichtert der Border-Image-Generator. Hier können per Schieberegler die Werte für die Bereiche sowie die Rahmenbreite eingestellt werden. In einer Vorschau gibt es das Ergebnis bereits während des Veränderns der Werte zu sehen. So gelingt es schnell, die richtigen Einstellungen für den Rahmen zu finden. Die Grafikdatei, aus welcher der Rahmen erstellt werden soll, muss natürlich zuvor [...]]]></description>
			<content:encoded><![CDATA[<p>Mit der CSS3-Eigenschaft <code>border-image</code> lassen sich individuelle und ausgefallene Rahmen erstellen. Die Grundlage für diese Rahmen ist jeweils eine Grafikdatei, die in verschiedene Bereiche eingeteilt wird. Jeder Bereich steht für ein bestimmtes Rahmensegment. Die Web-App Border-Image-Generator erstellt solche grafische Rahmen bequem und einfach.</p>
<p>Das Problem vieler CSS3-Eigenschaften – so zum Beispiel auch bei CSS-Verläufen – ist, dass man als Entwickler viel herumprobieren muss, bis das gewünschte Ergebnis erreicht ist. Bei der Eigenschaft <code>border-image</code> ist das nicht anders. Die Grafikdatei für einen grafischen Rahmen muss in neun Bereiche eingeteilt werden. Dazu werden per <code>border-image</code> neben der Grafikdatei bis zu vier Zahlenwerte übergeben, welche die Grafik in die neun Bereiche gliedern. Es wird jeweils der Abstand von oben, unten, rechts und links angegeben. Zusätzlich kann mit ebenfalls vier Werten die Breite der jeweiligen Rahmenseiten definiert  werden.</p>
<h3>Rahmen per Schieberegler definieren</h3>
<p>Diese Jonglage mit bis zu acht Werten gleichzeitig erleichtert der <a title="border-image-generator" href="http://border-image.com/">Border-Image-Generator</a>. Hier können per Schieberegler die Werte für die Bereiche sowie die Rahmenbreite eingestellt werden. In einer Vorschau gibt es das Ergebnis bereits während des Veränderns der Werte zu sehen. So gelingt es schnell, die richtigen Einstellungen für den Rahmen zu finden. Die Grafikdatei, aus welcher der Rahmen erstellt werden soll, muss natürlich zuvor hochgeladen oder per URL angegeben worden sein.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/borderimagegenerator_screenshot.jpg"><img class="size-full wp-image-30840" src="http://www.drweb.de/magazin/wp-content/uploads/borderimagegenerator_screenshot.jpg" alt="borderimagegenerator screenshot foto" width="640" height="385" title="Border Image Generator: Grafische CSS Rahmen leicht gemacht webdesign generatoren css " /></a><br />
<em>Oberfläche des Border-Image-Generator</em></p>
<p>Auch die Einstellungen zur Wiederholung der einzelnen Rahmensegmente können über den Generator vorgenommen werden. So lässt sich für die horizontalen und vertikalen Rahmen jeweils einstellen, ob die Rahmengrafik wiederholt, gerundet oder gedehnt werden soll. Bei der Wiederholung werden die einzelnen Segmente an den Ecken beschnitten. Bei der Rundung wiederholt der Generator die Segmente so angepasst, dass kein Segment beschnitten wird. Beim Dehnen wird das Segment nicht repliziert, sondern auf die Breite beziehungsweise Höhe des Rahmens skaliert.</p>
<h3>CSS nur noch kopieren</h3>
<p>Der <a title="border-image-generator" href="http://border-image.com/">Border-Image-Generator</a> liefert den fertigen CSS-Quelltext mit allen Einstellungen zum Kopieren aus. Auch die entsprechenden Varianten mit Vendor-Präfixen für Mozilla, Opera und Webkit sind bereits gesetzt. Einfacher lassen sich grafische Rahmen mit der Eigenschaft <code>border-image</code> nicht erstellen.</p>
<p><em>(dpe)</em></p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/css-rahmen-nehme-ich-%e2%80%9eoutline-oder-%e2%80%9eborder/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/outline-oder-border.png" alt="outline oder border foto" title="Border Image Generator: Grafische CSS Rahmen leicht gemacht webdesign generatoren css " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/css-rahmen-nehme-ich-%e2%80%9eoutline-oder-%e2%80%9eborder/" rel="bookmark" class="crp_title">CSS-Rahmen: Nehme ich „outline“ oder „border“?</a></li><li><a href="http://www.drweb.de/magazin/css3-verlaufe-so-einfach-wie-in-photoshop-mit-colorzilla/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/colorzilla_gradiengenerator_screenshot.jpg" alt="colorzilla gradiengenerator screenshot foto" title="Border Image Generator: Grafische CSS Rahmen leicht gemacht webdesign generatoren css " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/css3-verlaufe-so-einfach-wie-in-photoshop-mit-colorzilla/" rel="bookmark" class="crp_title">CSS3: Verläufe so einfach wie in Photoshop mit ColorZilla</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/border-image-generator-grafische-css-rahmen-leicht-gemacht/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>.htaccess-Tester prüft Rewrite-Regeln auf ihre Richtigkeit</title>
		<link>http://www.drweb.de/magazin/htaccess-tester-pruft-rewrite-regeln-auf-ihre-richtigkeit/</link>
		<comments>http://www.drweb.de/magazin/htaccess-tester-pruft-rewrite-regeln-auf-ihre-richtigkeit/#comments</comments>
		<pubDate>Fri, 18 May 2012 11:36:45 +0000</pubDate>
		<dc:creator>Denis Potschien</dc:creator>
				<category><![CDATA[htaccess]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30841</guid>
		<description><![CDATA[Das Werkeln an der .htaccess ist nicht jedermanns Sache. Besonders das Umschreiben von URLs mit mod_rewrite bringt oft nicht auf Anhieb das gewünschte Ergebnis. Um die Rewrite-Rules nicht direkt am eigenen Server ausprobieren zu müssen, gibt es den .htaccess-Tester. Über einige wenige Eingabefelder lassen sich Regeln schnell und unkompliziert überprüfen. Umleitung: Eine der Aufgaben der .htaccess (Bildquelle: Hartmut910 / pixelio.de) Schnelles Testen von Regeln über eine simple UI Der spartanischen Oberfläche des .htaccess-Testers reichen drei Eingabefelder. Ins erste Eingabefeld kommt die URL, die getestet werden soll. Ins zweite Feld schreibt man die Regeln, die überprüft werden sollen. Ins dritte Feld gibt man optional einen HTTP-Referer ein. Oberfläche des .htaccess-Testers Als Beispiel soll per Umschreibungsregel die Eingabe von robots.txt an eine PHP-Datei weitergeleitet werden. Ins erste Feld schreibe ich also die zu prüfende URL: http://www.drweb.de/robots.txt Ins zweite Eingabefeld kommt die zu prüfende Regel, erforderlichenfalls auch mehrere. Bis auf wenige Ausnahmen ist der .htaccess-Tester in der Lage, alle Regeln zu überprüfen. Nur mit Eingaben wie „%{REQUEST_FILENAME}“ kann der Tester noch nicht umgehen. Es wird laut Angaben der Entwickler aber daran gearbeitet, auch solche Problemstellungen in Zukunft abarbeiten zu können. Die Regel unseres Beispiels lautet: RewriteEngine On RewriteRule ^robots\.txt$ /robots.php Der Tester gibt nun die [...]]]></description>
			<content:encoded><![CDATA[<p>Das Werkeln an der .htaccess ist nicht jedermanns Sache. Besonders das Umschreiben von URLs mit mod_rewrite bringt oft nicht auf Anhieb das gewünschte Ergebnis. Um die Rewrite-Rules nicht direkt am eigenen Server ausprobieren zu müssen, gibt es den .htaccess-Tester. Über einige wenige Eingabefelder lassen sich Regeln schnell und unkompliziert überprüfen.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/umleitung.png.png"><img src="http://www.drweb.de/magazin/wp-content/uploads/umleitung.png.png" alt="umleitung.png foto" title=".htaccess Tester prüft Rewrite Regeln auf ihre Richtigkeit webdesign htaccess " width="640" height="300" class="alignnone size-full wp-image-30889" /></a><br />
<em><small>Umleitung: Eine der Aufgaben der .htaccess (Bildquelle: Hartmut910  / <a href="http://www.pixelio.de/media/412748">pixelio.de</a>)</small></em></p>
<h3>Schnelles Testen von Regeln über eine simple UI</h3>
<p>Der spartanischen Oberfläche des <a title="htaccess tester" href="http://htaccess.madewithlove.be/">.htaccess-Testers</a> reichen drei Eingabefelder. Ins erste Eingabefeld kommt die URL, die getestet werden soll. Ins zweite Feld schreibt man die Regeln, die überprüft werden sollen. Ins dritte Feld gibt man optional einen HTTP-Referer ein.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/htaccesstester_screenshot.jpg"><img class="size-full wp-image-30843" src="http://www.drweb.de/magazin/wp-content/uploads/htaccesstester_screenshot.jpg" alt="htaccesstester screenshot foto" width="640" height="497" title=".htaccess Tester prüft Rewrite Regeln auf ihre Richtigkeit webdesign htaccess " /></a><br />
<em>Oberfläche des .htaccess-Testers</em></p>
<p>Als Beispiel soll per Umschreibungsregel die Eingabe von robots.txt an eine PHP-Datei weitergeleitet werden. Ins erste Feld schreibe ich also die zu prüfende URL:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">http://www.drweb.de/robots.txt</pre></div></div>

<p>Ins zweite Eingabefeld kommt die zu prüfende Regel, erforderlichenfalls auch mehrere. Bis auf wenige Ausnahmen ist der <a title="htaccess tester" href="http://htaccess.madewithlove.be/">.htaccess-Tester</a> in der Lage, alle Regeln zu überprüfen. Nur mit Eingaben wie „%{REQUEST_FILENAME}“ kann der Tester noch nicht umgehen. Es wird laut Angaben der Entwickler aber daran gearbeitet, auch solche Problemstellungen in Zukunft abarbeiten zu können. Die Regel unseres Beispiels lautet:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span>
<span style="color: #00007f;">RewriteRule</span> ^robots\.txt$ /robots.php</pre></div></div>

<p>Der Tester gibt nun die per mod_rewrite umgeschriebene URL aus. In diesem Fall also:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">http://www.drweb.de/robots.php</pre></div></div>

<p>Zusätzlich zur Ausgabe-URL gibt es eine Debugging-Info, die auf Fehler in den Regeln aufmerksam macht oder Hinweise zum Verhalten des Testers gibt. Setzt man beispielsweise das Flag [L], welches dafür sorgt, dass nach dieser Regel keine weiteren Regeln mehr ausgeführt werden, so gibt der Tester einen entsprechenden Hinweis. Denn auch ein falsch gesetztes Flag kann schon mal der Grund dafür sein, dass eine Umschreibung nicht so läuft, wie sie soll.</p>
<p><strong>Fazit:</strong> Mit dem <a title="htaccess tester" href="http://htaccess.madewithlove.be/">.htaccess-Tester</a> lassen sich Umschreibungsregeln sehr schnell und einfach prüfen. Außerdem hilft die Debugging-Info Fehler zu finden. Kenntnisse im richtigen Umgang mit mod_rewrite sind natürlich vorausgesetzt. Denn eine Hilfe zur Erstellung von Regeln bietet der Tester nicht.</p>
<p><em>(dpe)</em></p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/weiterleitungen-mit-htaccess/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/plugins/contextual-related-posts/default.png" alt="default foto" title=".htaccess Tester prüft Rewrite Regeln auf ihre Richtigkeit webdesign htaccess " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/weiterleitungen-mit-htaccess/" rel="bookmark" class="crp_title">Weiterleitungen mit .htaccess</a></li><li><a href="http://www.drweb.de/magazin/htaccess-blickdicht/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/plugins/contextual-related-posts/default.png" alt="default foto" title=".htaccess Tester prüft Rewrite Regeln auf ihre Richtigkeit webdesign htaccess " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/htaccess-blickdicht/" rel="bookmark" class="crp_title">.htaccess blickdicht</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/htaccess-tester-pruft-rewrite-regeln-auf-ihre-richtigkeit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux Mint 13 RC1: Der Ubuntu-Herausforderer geht in die nächste Runde</title>
		<link>http://www.drweb.de/magazin/linux-mint-13-rc1-der-ubuntu-herausforderer-geht-in-die-nachste-runde/</link>
		<comments>http://www.drweb.de/magazin/linux-mint-13-rc1-der-ubuntu-herausforderer-geht-in-die-nachste-runde/#comments</comments>
		<pubDate>Fri, 18 May 2012 06:00:31 +0000</pubDate>
		<dc:creator>Dieter Petereit</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30853</guid>
		<description><![CDATA[Dieser Tage gab das Mint-Team den RC1 des kommenden Linux Mint 13, Codename Maya, zum Download frei. Linux Mint ist der aufgehende Stern am Himmel der Linux-Desktops und führt seit einigen Monaten das Page-Hit-Ranking auf DistroWatch mit größer werdendem Abstand zu Ubuntu klar an. Dabei basiert Mint auf der jeweils aktuellen Ubuntu-Version. Das Mint-Team verfolgt jedoch einen etwas anderen Ansatz als Canonical mit seinem Ubuntu-OS. Linux Mint 13: Der Kampf um den perfekten Desktop Canonical versucht, Ubuntu zum Linux-System für jedermann zu machen und geht dabei den Weg strikter Vereinfachungen und Standardisierungen. So wurde zuletzt die Einführung der Eigenentwicklung Unity als Standard-UI in Abkehr vom bislang präferierten Gnome-Desktop von Powerusern als so radikal empfunden, dass es zu einer immerhin wahrnehmbaren Abwanderungswelle innerhalb dieser Zielgruppe hin zu Mint gekommen war. Linux Mint greift diese und andere Entwicklungen auf und setzt ihnen Varianten entgegen. So blieb Mint beispielsweise bis zur Version 12, Codename Lisa, bei Gnome als Standarddesktop. In der Version Mint 12 versuchte das Team den Spagat, ein Gnome 3 mit MGSE und via MATE gemeinsam mit Elementen aus Gnome 2 zu verwenden. So wollte Mint Nutzern die Wahl lassen und das nicht nur einmalig während der Installation, sondern auf Dauer [...]]]></description>
			<content:encoded><![CDATA[<p>Dieser Tage gab das Mint-Team den RC1 des kommenden Linux Mint 13, Codename Maya, zum Download frei. Linux Mint ist der aufgehende Stern am Himmel der Linux-Desktops und führt seit einigen Monaten das Page-Hit-Ranking auf DistroWatch mit größer werdendem Abstand zu Ubuntu klar an. Dabei basiert Mint auf der jeweils aktuellen Ubuntu-Version. Das Mint-Team verfolgt jedoch einen etwas anderen Ansatz als Canonical mit seinem Ubuntu-OS.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/cinnamon.png"><img src="http://www.drweb.de/magazin/wp-content/uploads/cinnamon.png" alt="cinnamon foto" title="Linux Mint 13 RC1: Der Ubuntu Herausforderer geht in die nächste Runde linux " width="640" height="467" class="alignnone size-full wp-image-30855" /></a></p>
<h3 id="linuxmint13:derkampfumdenperfektendesktop">Linux Mint 13: Der Kampf um den perfekten Desktop</h3>
<p>Canonical versucht, Ubuntu zum Linux-System für jedermann zu machen und geht dabei den Weg strikter Vereinfachungen und Standardisierungen. So wurde zuletzt die Einführung der Eigenentwicklung Unity als Standard-UI in Abkehr vom bislang präferierten Gnome-Desktop <a href="http://t3n.de/news/ubuntu-poweruser-wechseln-wegen-unity-linux-mint-342426/">von Powerusern als so radikal empfunden</a>, dass es zu einer immerhin wahrnehmbaren Abwanderungswelle innerhalb dieser Zielgruppe hin zu Mint gekommen war.</p>
<p><a href="http://blog.linuxmint.com/?p=2010">Linux Mint</a> greift diese und andere Entwicklungen auf und setzt ihnen Varianten entgegen. So blieb Mint beispielsweise bis zur Version 12, Codename Lisa, bei Gnome als Standarddesktop. In der Version Mint 12 versuchte das Team den Spagat, ein Gnome 3 mit MGSE und via MATE gemeinsam mit Elementen aus Gnome 2 zu verwenden. So wollte Mint Nutzern die Wahl lassen und das nicht nur einmalig während der Installation, sondern auf Dauer während des alltäglichen Gebrauchs des Systems.</p>
<p>Mint konnte und kann weiterhin mit purem Gnome 3.2 als Desktop betrieben werden. Diese Variante dürfte den größten Aufwand an Eingewöhnung für eingefleischte Mint-User sein. Die MGSE (Mint Gnome Shell Extensions) der Version 12 erlaubten es, Gnome 3 so anzupassen, dass es aussah, wie ein Mint-Desktop bislang ausgesehen hat. Insbesondere wurde auf diese Weise wieder eine Taskleiste, sowie ein Startmenü verfügbar gemacht. Dabei musste keine radikale Wahl getroffen werden, vielmehr erlaubten die MGSE eine fast stufenlose Anpassung der Optik zwischen Gnome 3 pur und Mint-Desktop konventionell.</p>
<p>Mit dem zur Version 12 neuen, noch instabilen Produkt MATE sollte es möglich sein, zusätzlich zum Gnome 3 ein Gnome 2 auf demselben Rechner zu betreiben. MATE ist ein Fork des Gnome 2 und soll in der Endausbaustufe die identische Funktionalität bieten. Das Mint-Team sieht in MATE die Zukunft traditioneller Linux-Desktops.</p>
<p>Das Konglomerat aus Gnome 3, MGSE und MATE repräsentierte die größten Änderungen an der 12er Version des Mint Linux. Gleichzeitig handelte es sich um die größten Unterschiede zum zugrundeliegenden Linux Ubuntu.</p>
<p>In der Version 13, Codename Maya, gehen die Mint-Entwickler den eingeschlagenen Weg weiter, entfernen sich dabei aber stärker von Gnome als man das bislang hätte annehmen dürfen. Die Fortführung der Unterstützung der 2er Linie des Gnome übernimmt nun vollständig MATE, dass die Entwickler wenige Monate nach Einführung als stabil und ausgereift sehen. Entsprechend legen sie eine 32bit-, wie auch eine 64bit-Version von Linux Mint 13 MATE vor.</p>
<p>Die Fortführung der Unterstützung der 3er Linie des Gnome-Desktops, die mit dem MGSE-Plugin in Version 12 begonnen hatte, erfolgt jetzt mit einem eigenen Gnome-Fork namens Cinnamon. Zur Begründung heißt es, dass die Architektur des MGSE als Plugin in der Fortentwicklung schnell Grenzen aufgezeigt habe.</p>
<p>Man arbeitet also, Canonical nicht unähnlich, an alternativen Desktop-Lösungen. Ich bin gespannt, ob die Linux-Community, insbesondere deren Kernuser, diesen Weg so mitgehen wollen. Auch Linux Mint 13 Cinnamon kann in einer 32bit-, wie in einer 64bit-Version bezogen werden.</p>
<p>Umsteiger von der Version 12 müssen sich also entscheiden, ob sie künftig auf MATE oder Cinnamon setzen wollen. Natürlich sollte man sich stets vor Augen führen, dass unter Linux die Installation eines alternativen Desktop nur eine Frage der Nutzung entsprechender Repositories ist&#8230;</p>
<p>Seit Version 12 verwendet Mint als Standardsuchmaschine Duck Duck Go. Diese Suchmaschine auf Open Source Basis hält sich strikt an das “No Tracking”-Versprechen und dürfte Nutzern aus dem Tor-Umfeld bekannt vorkommen. Mit Version 13 wird zusätzlich Yahoo! vorinstalliert. Auch hier gilt: Die Wahl der Suchmaschine ist im Wesentlichen von der Eingabe einer URL im Browser zu beeinflussen&#8230;</p>
<p>Mit dem fertigen Release der zwei Versionen von Mint 13 Maya ist Ende Mai zu rechnen. Maya wird eine LTS-Version sein, der der Support bis April 2017 sicher ist. Die wesentlichen Änderungen stehen bereits via RC1 zur Verfügung. Wer auf Mint 13 umsteigen will, kann das im Prinzip jetzt tun. Änderungen zur Releaseversion werden sich in engen Grenzen halten.</p>
<h3 id="zumschlueinwortzumdistrowatch-ranking">Zum Schluß ein Wort zum DistroWatch-Ranking</h3>
<p><a href="http://distrowatch.com/dwres.php?resource=popularity">DistroWatch</a>, immer wieder gern als Referenz zum Popularitäts-Ranking im Linux-Umfeld verwendet, bietet keine zuverlässige Statistik über die Nutzungsanteile der einzelnen Linux-Distributionen. Vielmehr zählt der Dienst lediglich die Zugriffe auf die bei DistroWatch geführten Informationsseiten zur jeweiligen Distribution. Steigt eine Distribution in diesem Ranking, so heißt das, dass mehr Besucher die Informationsseite auf DistroWatch (!) aufgerufen haben. Nicht mehr und nicht weniger kann man aus diesen Daten lesen. </p>
<p>Bedeutsam indes ist die Entwicklung isoliert betrachtet nicht, denn sie enthält weder Informationen zu den tatsächlichen Marktanteilen, noch zu den Downloadzahlen, noch zur Nutzerbasis. Sie sagt einfach gar nichts brauchbares aus.</p>
<p>Man könnte gewagt interpretieren, dass die Zunahme der Besucher auf der Infoseite zu Linux Mint den Schluss zulässt, dass das OS auf dem aufsteigenden Ast ist. Mit gleicher Berechtigung könnte man jedoch sagen, das gesteigerte Interesse an der Mint-Infoseite liegt an der verstärkten Berichterstattung zum Thema in den letzten Wochen und Monaten und sagt dementsprechend nicht einmal etwas über die Popularität aus.</p>
<p>Zudem ist diese Art der Rudimentärstatistik anfällig für jedwede Art der Manipulation und wenn es nur die einfache Form ist, die darin besteht, Fans zu gewinnen, die regelmäßig die DistroWatch-Infosite aufzurufen bereit sind. Canonical hat bislang nicht versucht, Befürworter auf diese Weise zu erlangen. Canonical ist insgesamt sehr eisern, was den Marktauftritt betrifft. Credo des Gründers und Mäzens Shuttleworth: “If you don’t like it, then don’t use it.”</p>
<p>Schauen wir kurz in eine andere Ecke des Web, rüber zu Facebook. Hier kann die <a href="http://www.facebook.com/ubuntulinux">Ubuntu-Fanpage</a> aktuell über 602.000 Fans aufweisen, die <a href="http://www.facebook.com/pages/Linux-Mint/31014917831">Fanpage zu Linux Mint</a> lediglich knappe 22.000, die Fanpage zu <a href="http://www.facebook.com/pages/Linux-Mint/185238108180410">Linux Mint als Organisation</a> keine 15.000.</p>
<p>Aber auch diese Zahlen sind für die Beurteilung der Einsortierung in eine Top 5 der Desktop-Linux-Distributionen ähnlich untauglich wie die DistroWatch-Werte…</p>
<p>Am Ende ist das alles egal: If you like Mint, then use it! If you don´t, don´t&#8230;</p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/einrichten-einer-virtuellen-maschine-zum-sicheren-browsern-und-website-testen/" rel="bookmark"><img src="/screenshots/vmaschine/vmware_024.jpg" alt="vmware 024 foto" title="Linux Mint 13 RC1: Der Ubuntu Herausforderer geht in die nächste Runde linux " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/einrichten-einer-virtuellen-maschine-zum-sicheren-browsern-und-website-testen/" rel="bookmark" class="crp_title">Einrichten einer Virtuellen Maschine unter Windows zum sicheren Browsern und Website-Testen</a></li><li><a href="http://www.drweb.de/magazin/42-frische-elegante-navigationsmenus/" rel="bookmark"><img src="http://www.smashingmagazine.com/wp-content/uploads/2009/10/albumdruck.gif" alt="albumdruck foto" title="Linux Mint 13 RC1: Der Ubuntu Herausforderer geht in die nächste Runde linux " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/42-frische-elegante-navigationsmenus/" rel="bookmark" class="crp_title">42 frische elegante Navigationsmenüs</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/linux-mint-13-rc1-der-ubuntu-herausforderer-geht-in-die-nachste-runde/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>10 x 100 kostenlose Icons nicht nur für Dortmund-Fans</title>
		<link>http://www.drweb.de/magazin/10-x-100-kostenlose-icons-nicht-nur-fur-dortmund-fans/</link>
		<comments>http://www.drweb.de/magazin/10-x-100-kostenlose-icons-nicht-nur-fur-dortmund-fans/#comments</comments>
		<pubDate>Thu, 17 May 2012 14:55:18 +0000</pubDate>
		<dc:creator>Dieter Petereit</dc:creator>
				<category><![CDATA[Icons]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30847</guid>
		<description><![CDATA[Das Team von PC.de bietet seit gut zwei Jahren kostenlos verwendbare Vektor-Iconsets an. Die Sets sind nach großen deutschen Städten benannt. Gestartet ist das Angebot mit vier Symbolsätzen, inzwischen stehen derer 10 zum Download bereit. Die Bildzeichen dürfen sowohl für private, wie auch kommerzielle Projekte frei im Rahmen einer CC-BY-SA-Lizenz genutzt werden. Ein Backlink würde dankend zur Kenntnis genommen. Dortmund: 100 Symbole mit PSD-Datei Ich gebe es zu. Ich bin bei meinem feiertäglichen Surfgang zunächst über das Dortmund-Iconset gestolpert. In den Weiten des Netzes wird es als Riesenset mit über 750 Symbolen angepriesen. Das musste ich schon wegen des Namens sehen. Auf der Iconset-Übersicht bei PC.de angekommen, stellte ich dann fest, dass erstens das Dortmund-Set &#8220;nur&#8221; 100 Symbole vereint und zweitens, dass es noch neun weitere, nicht weniger interessante Bildzeichen-Sammlungen herunterzuladen gibt. Leider ist keines namens Gelsenkirchen dabei&#8230; Die Dortmund-Icons stehen als einzelne PNG in den Auflösungen 16 x 16 und 32 x 32 Pixel bereit. Zusätzlich enthält die 750k große Download-Datei zwei PSD-Dateien, die jeweils die bearbeitbaren Icons in denselben zwei Auflösungen beinhaltet. Die Bildzeichen der neun anderen Sätze bieten übrigens die gleichen Symbole, genauer, solche für den gleichen Zweck. Sie verfügen lediglich über ein anderes Design. Das kann [...]]]></description>
			<content:encoded><![CDATA[<p>Das Team von PC.de bietet seit gut zwei Jahren kostenlos verwendbare Vektor-Iconsets an. Die Sets sind nach großen deutschen Städten benannt. Gestartet ist das Angebot mit vier Symbolsätzen, inzwischen stehen derer 10 zum Download bereit. Die Bildzeichen dürfen sowohl für private, wie auch kommerzielle Projekte frei im Rahmen einer CC-BY-SA-Lizenz genutzt werden. Ein Backlink würde dankend zur Kenntnis genommen.</p>
<h3 id="dortmund:100symbolemitpsd-datei">Dortmund: 100 Symbole mit PSD-Datei</h3>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/preview-dortmund-32x32.png"><img src="http://www.drweb.de/magazin/wp-content/uploads/preview-dortmund-32x32.png" alt="preview dortmund 32x32 foto" title="10 x 100 kostenlose Icons nicht nur für Dortmund Fans icons " width="640" height="448" class="alignnone size-full wp-image-30849" /></a></p>
<p>Ich gebe es zu. Ich bin bei meinem feiertäglichen Surfgang zunächst über das Dortmund-Iconset gestolpert. In den Weiten des Netzes wird es als Riesenset mit über 750 Symbolen angepriesen. Das musste ich schon wegen des Namens sehen. Auf der <a href="http://pc.de/icons/">Iconset-Übersicht bei PC.de</a> angekommen, stellte ich dann fest, dass erstens das Dortmund-Set &#8220;nur&#8221; 100 Symbole vereint und zweitens, dass es noch neun weitere, nicht weniger interessante Bildzeichen-Sammlungen herunterzuladen gibt. Leider ist keines namens Gelsenkirchen dabei&#8230;</p>
<p>Die Dortmund-Icons stehen als einzelne PNG in den Auflösungen 16 x 16 und 32 x 32 Pixel bereit. Zusätzlich enthält die 750k große Download-Datei zwei PSD-Dateien, die jeweils die bearbeitbaren Icons in denselben zwei Auflösungen beinhaltet. </p>
<p>Die Bildzeichen der neun anderen Sätze bieten übrigens die gleichen Symbole, genauer, solche für den gleichen Zweck. Sie verfügen lediglich über ein anderes Design. Das kann ganz simpel, etwa in der Umfärbung auf Orange, wie im Munich-Set, oder auch aufwändiger, in voller Koloration wie bei den Sets Stuttgart, Essen oder Bremen daherkommen.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/pc.de-essen-32.png"><img src="http://www.drweb.de/magazin/wp-content/uploads/pc.de-essen-32.png" alt="pc.de essen 32 foto" title="10 x 100 kostenlose Icons nicht nur für Dortmund Fans icons " width="640" height="448" class="alignnone size-full wp-image-30848" /></a><br />
<em><small>Übersicht zum Iconset Essen</small></em> </p>
<p>Von der Ausrichtung her eignen sich die Symbolsätze eher für professionelle Web-Apps, denn für die private Homepage. So finden sich Bildzeichen für Zeiterfassungen, Warenkörbe, Kundenkonten, Projektmanagement oder Jobbörsen. Andererseits, wer sagt, dass man keine eigenen Deutungen vornehmen kann&#8230;</p>
<p>Wer die PC.de-Icons &#8211; wie ich &#8211; bislang nicht kannte, sollte auf jeden Fall die Übersicht bookmarken. Denn Icons kann man bekanntlich nie genug haben&#8230;</p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/3-elegante-kostenlose-vektor-iconsets-von-matt-gentile/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/iconset-005.jpg" alt="iconset 005 foto" title="10 x 100 kostenlose Icons nicht nur für Dortmund Fans icons " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/3-elegante-kostenlose-vektor-iconsets-von-matt-gentile/" rel="bookmark" class="crp_title">3 elegante, kostenlose Vektor-Iconsets von Matt Gentile</a></li><li><a href="http://www.drweb.de/magazin/modern-und-kostenlos-sweetieplus-freshy-icons-foundation/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/iconset-002.jpg" alt="iconset 002 foto" title="10 x 100 kostenlose Icons nicht nur für Dortmund Fans icons " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/modern-und-kostenlos-sweetieplus-freshy-icons-foundation/" rel="bookmark" class="crp_title">Modern und kostenlos: SweetiePlus, Freshy Icons, Foundation</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/10-x-100-kostenlose-icons-nicht-nur-fur-dortmund-fans/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger</title>
		<link>http://www.drweb.de/magazin/erweiterungen-in-chrome-selbst-erstellen-eine-anleitung-fur-blutige-anfanger/</link>
		<comments>http://www.drweb.de/magazin/erweiterungen-in-chrome-selbst-erstellen-eine-anleitung-fur-blutige-anfanger/#comments</comments>
		<pubDate>Wed, 16 May 2012 13:15:28 +0000</pubDate>
		<dc:creator>Swetlana Senkevitch</dc:creator>
				<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30727</guid>
		<description><![CDATA[Chrome ist nicht zuletzt durch seine schnelle Ladezeit und seine kurzen Updatezyklen, die für ein hohes Innovationstempo sorgen, in den letzten Jahren immer beliebter geworden. Dabei unterstützte Chrome von Beginn an das Konzept der Erweiterungen. Erweiterungen sind kleine Apps, die auch mit Hilfe von HTML, JavaScript und CSS erstellt werden. Doch was ist, wenn man kein Profi in HTML5 ist und dennoch eine Erweiterung basteln möchte? Nicht verzweifeln: Man kann den Einstieg in die Entwicklung eigener Erweiterungen auch ohne tiefgehende HTML,- CSS,- oder JavaScript-Kenntnisse finden. An einem Beispiel erläutert Jef Vlamings in seinem Blog, wie das geht. Und ich habe mich im Selbstversuch mit seiner Anleitung auseinander gesetzt&#8230; &#8220;Hallo Welt&#8221;: Eine einfache Browser-Erweiterung Mit einer Browser-Erweiterung lassen sich neue Funktionen zu einem Browser hinzufügen. In diesem Tutorial geht es darum, eine sehr einfache Browser-Erweiterung zu basteln, welche ein Popup mit der Botschaft &#8220;Hallo Welt&#8221; anzeigen kann. Natürlich handelt es sich um keine sehr nützliche Erweiterung. Sie dient aber hervorragend zur Verdeutlichung der Grundstrukturen und erleichtert die ersten Schritte auf dem Wege zum Chrome-Erweiterungen-Profi. Ich, als völliger Neuling mit den richtigen Voraussetzungen ausgestattet, bin alle Schritte, am Ende sogar erfolgreich, durchgegangen.  Jetzt kann ich mit gutem Gewissen und aus eigener Erfahrung darüber berichten. [...]]]></description>
			<content:encoded><![CDATA[<p>Chrome ist nicht zuletzt durch seine schnelle Ladezeit und seine kurzen Updatezyklen, die für ein hohes Innovationstempo sorgen, in den letzten Jahren immer beliebter geworden. Dabei unterstützte Chrome von Beginn an das Konzept der Erweiterungen. Erweiterungen sind kleine Apps, die auch mit Hilfe von HTML, JavaScript und CSS erstellt werden. Doch was ist, wenn man kein Profi in HTML5 ist und dennoch eine Erweiterung basteln möchte? Nicht verzweifeln: Man kann den Einstieg in die Entwicklung eigener Erweiterungen auch ohne tiefgehende HTML,- CSS,- oder JavaScript-Kenntnisse finden. An einem Beispiel erläutert <a href="http://www.jefvlamings.com/">Jef Vlamings</a> in seinem <a href="http://www.jefvlamings.com/blog/chrome-extensions-for-dummies/">Blog</a>, wie das geht. Und ich habe mich im Selbstversuch mit seiner Anleitung auseinander gesetzt&#8230;</p>
<p><a href="http://www.flickr.com/photos/shankrad/6996250771/"><img class="alignnone size-full wp-image-30731" src="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-007.jpg" alt="chrome extension 007 foto" width="640" height="330" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " /></a></p>
<h3>&#8220;Hallo Welt&#8221;: Eine einfache Browser-Erweiterung</h3>
<p>Mit einer Browser-Erweiterung lassen sich neue Funktionen zu einem Browser hinzufügen. In diesem Tutorial geht es darum, eine sehr einfache Browser-Erweiterung zu basteln, welche ein Popup mit der Botschaft &#8220;Hallo Welt&#8221; anzeigen kann. Natürlich handelt es sich um keine sehr nützliche Erweiterung. Sie dient aber hervorragend zur Verdeutlichung der Grundstrukturen und erleichtert die ersten Schritte auf dem Wege zum Chrome-Erweiterungen-Profi. Ich, als völliger Neuling mit den richtigen Voraussetzungen ausgestattet, bin alle Schritte, am Ende sogar erfolgreich, durchgegangen.  Jetzt kann ich mit gutem Gewissen und aus eigener Erfahrung darüber berichten.</p>
<h4>Schritt 1: Eine Manifestdatei erstellen</h4>
<p>Als Erstes lege ich einen separaten Ordner an, in dem sich später alle Dateien, die für die zukünftige Chrome-Erweiterung benötigt werden, befinden sollen. Danach öffne ich &#8220;Notepad&#8221; (man kann natürlich auch einen anderen Texteditor verwenden), kopiere den aus Bild 1 ersichtlichen Code hinein und speichere die Datei unter dem Namen &#8220;manifest.json&#8221; im Ordner ab. Die Manifestdatei enthält alle Informationen über die Funktionsweise der Erweiterung. Nun kann man die Informationen der Beispieldatei anpassen. Was da genau gemacht wird, beschreibe ich in den weiteren Schritten.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-009.jpg"><img class="alignnone size-full wp-image-30747" src="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-009.jpg" alt="chrome extension 009 foto" width="640" height="200" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " /></a><br />
<em>Bild 1: Anlegen der Manifestdatei</em></p>
<h4>Schritt 2:  Anlegen der Datei popup.html</h4>
<p>Unsere Erweiterung soll beim Klicken auf das Erweiterungsicon ein Fenster mit dem Text &#8220;Hallo Welt&#8221; aufmachen. Dafür öffnet man eine neue Editordatei und kopiert den entsprechenden Code (Bild 2) hin. Die Datei wird unter dem Namen &#8220;popup.html&#8221; abgespeichert. Das Popup zeigt diese HTML-Datei in einem separaten Fenster an.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-010.jpg"><img class="alignnone size-full wp-image-30749" src="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-010.jpg" alt="chrome extension 010 foto" width="640" height="200" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " /></a><br />
<em>Bild 2: Erstellung des Popup</em></p>
<h4>Schritt 3: Weitere Dateien gemäß Manifest-Datei</h4>
<p>Da in der Manifestdatei weitere Dateien deklariert wurden, müssen diese ebenfalls angelegt werden. Jetzt erstelle ich noch zwei neue leere Dateien im Editor auf und nenne sie background.html und inject.js. Ich verwende das vorgefertigte Icon von Jef. Natürlich kann man ein beliebiges, anderes Icon nehmen, beispielsweise aus einem Freebie.</p>
<h4>Los geht&#8217;s!</h4>
<p>Meine Chrome-Erweiterung ist nun fertig. Um sie zu aktivieren, öffne ich den Chrome Browser und klicke auf das Schraubenschlüssel-Symbol. Im Menü wähle ich &#8220;Tools&#8221;, dann &#8220;Erweiterungen&#8221;, setze  ein Häkchen bei &#8220;Entwicklermodus&#8221; und klicke auf &#8220;entpackte Erweiterung laden&#8221;. Dann öffne ich den Ordner mit den zuvor erstellten Dateien, womit diese nun geladen werden. Oben rechts erscheint das ausgewählte Icon. Ich klicke darauf und erblicke mit grosser Freude das Popup mit den Worten &#8220;Hallo Welt&#8221;.</p>
<p><a href="http://www.jefvlamings.com/blog/chrome-extensions-for-dummies/"><img class="alignnone size-full wp-image-30740" src="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-0031.jpg" alt="chrome extension 0031 foto" width="640" height="500" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " /></a><br />
<em>Bild 3: Es funktioniert tatsächlich!</em></p>
<h4>Background.html und inject.js</h4>
<p>Die Erweiterung kann weiter aufgebohrt werden. Im Weiteren habe ich erfahren, welchen Sinn die Dateien &#8220;background.html&#8221; und &#8220;inject.js&#8221; haben. Background-Pages (Hintergrundseiten) sind in HTML5-Code eingebettete JavaScripte, die für den Nutzer nicht sichtbar sind. Sie werden aber ständig im Hintergrund ausgeführt (daher auch der Name) und fungieren als Vermittler zwischen allen Erweiterungen, sowie allen aktuell geöffneten Tabs. Um meine Hintergrundseite auszubauen, habe ich in meine background.html folgenden Code eingefügt:</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-012.jpg"><img class="alignnone size-full wp-image-30753" src="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-012.jpg" alt="chrome extension 012 foto" width="640" height="200" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " /></a><br />
<em>Bild 4: Ausbauen einer Hintergrundseite</em></p>
<p>Um die eigenen Hintergrundseiten zu debuggen, sollte man die eigens zu diesem Zweck verfügbare Debugging-Konsole aktivieren. Zu diesem Zweck gehe ich gemäß Jefs Anleitung auf die Erweiterungsseite, um dort die &#8220;background.html&#8221; zu wählen. Nun wird die Debugging-Konsole aktiviert und folgendes Fenster geöffnet:</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-005.jpg"><img class="alignnone size-full wp-image-30742" src="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-005.jpg" alt="chrome extension 005 foto" width="640" height="500" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " /></a><br />
<em>Bild 5: Aktivieren der Debugging-Konsole</em></p>
<h4>Content-Scripts und Message-Passing</h4>
<p>Weiter geht es um JavaScripte, welche mit Hilfe der Verwendung von DOM Inhalte einer Webseite lesen können. Damit zwischen dem sogenannten Content-Script ein Datenaustausch mit der Hintergrundseite erfolgen kann, muss das sogenannte Message-Passing, also ein Informationsaustausch, erfolgen. Dies ist erforderlich, weil die Content-Scripte zusammenhängend mit verschiedenen Webseiten laufen und nicht mit Hintergrundseiten. Also müsste ich die background.html-Datei nochmal verändern. Nun sieht meine background.html folgendermaßen aus:</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-006.jpg"><img class="alignnone size-full wp-image-30743" src="http://www.drweb.de/magazin/wp-content/uploads/chrome-extension-006.jpg" alt="chrome extension 006 foto" width="640" height="500" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " /></a><br />
<em>Bild 6: Kommunikation zwischen der Hintergrundseite und dem Content-Script mittels Message-Passing</em></p>
<p>Durch das strikte Befolgen sämtlicher Anleitungsschritte habe ich meine erste Erweiterung in Chrome gebaut und zusätzlich einiges an Hintergrundwissen gewonnen. Wenn man keine tiefen Kenntnisse in HTML5, CSS3 und JavaScript hat, aber dennoch eine Erweiterung selber basteln möchte, ist dieses Tutorial für den Einstieg sehr hilfreich.</p>
<h3>Weitere Quellen zur Entwicklung eigener Erweiterungen in Chrome</h3>
<p>Folgend habe ich noch ein paar Links zu weiteren Tutorials hinzugefügt, welche sich ebenfalls mit Erweiterungen für Chrome beschäftigen:</p>
<ul>
<li>Chrome Extensions: Hello World &#8211; <a href="http://ugotit.de/2009/12/28/chrome-extensions-hello-world/">ugotit.de</a></li>
<li>Making your first Google Chrome extension &#8211; <a href="http://tutorialzine.com/2010/06/making-first-chrome-extension/">TutorialZine.com</a></li>
</ul>
<p><em>(dpe)</em></p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/clevere-extension-erweitert-chrome-dev-tools-um-speichermoglichkeit/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/chrome_dev_tools_autosave1.jpg" alt="chrome dev tools autosave1 foto" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/clevere-extension-erweitert-chrome-dev-tools-um-speichermoglichkeit/" rel="bookmark" class="crp_title">Clevere Extension erweitert Chrome-Dev-Tools um Speichermöglichkeit</a></li><li><a href="http://www.drweb.de/magazin/browser-google-chrome-2/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/features_speed.gif" alt="features speed foto" title="Erweiterungen für Chrome selbst erstellen: Eine Anleitung für blutige Anfänger webdesign " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/browser-google-chrome-2/" rel="bookmark" class="crp_title">Browser: Google Chrome</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/erweiterungen-in-chrome-selbst-erstellen-eine-anleitung-fur-blutige-anfanger/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Standortbasierende Dienste mit HTML5-Geolocation und Google Places</title>
		<link>http://www.drweb.de/magazin/standortbasierende-dienste-mit-html5-geolocation-und-google-places/</link>
		<comments>http://www.drweb.de/magazin/standortbasierende-dienste-mit-html5-geolocation-und-google-places/#comments</comments>
		<pubDate>Wed, 16 May 2012 08:34:12 +0000</pubDate>
		<dc:creator>Sven Schannak</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30433</guid>
		<description><![CDATA[Google Places werden die meisten Webentwickler bereits aus SEO-taktischen Gründen kennen. Nicht jedem bewusst sein könnte der Umstand, dass man Google Places zu weit mehr als zur Eintragung seines Unternehmens nutzen kann. Im folgenden kleinen How-To möchte ich zeigen, wie nützlich Google Places in Verbindung mit HTML5-Geolocation ist. Dienste wie Foursquare oder Facebook Places nutzen übrigens einen, unserem Beispiel ähnlichen Ansatz. Das folgende Szenario wollen wir entwickeln. Unsere Seite soll herausfinden, welche Unternehmen welcher Branchen sich in der Nähe des aktuellen Standorts des Nutzers befinden. Zum Beispiel könnte man alle Bars der Branche Gastronomie anzeigen lassen wollen. Zu diesem Zweck eignet sich die Geolocation-API der HTML5-Spezifikation, die das Auslesen des Standorts des Nutzers zulässt. Bevor wir tiefer in die Materie einsteigen, sollten Sie sich zunächst einen API-Key von Google besorgen, den sie unter diesem Link unter Verwendung eines Google-Accounts erhalten. Zu Beginn sollte man versuchen, die aktuellen Standortdaten des Nutzers zu erhalten. Dazu verwendet man das navigator-Objekt, welches verschiedene Informationen über den Nutzer enthält, unter anderem die Positionsdaten. Man erstellt also eine Funktion namens get_location() und ruft darin navigator.geolocation.getCurrentPosition(get_places, errors_action); auf. function get_location() { navigator.geolocation.getCurrentPosition(get_places, catch_errors); } In der Funktion getCurrentPosition ist es nötig, mindestens zwei Parameter anzugeben. Diese stehen jeweils für Funktionen, [...]]]></description>
			<content:encoded><![CDATA[<p>Google Places werden die meisten Webentwickler bereits aus SEO-taktischen Gründen kennen. Nicht jedem bewusst sein könnte der Umstand, dass man Google Places zu weit mehr als zur Eintragung seines Unternehmens nutzen kann. Im folgenden kleinen How-To möchte ich zeigen, wie nützlich Google Places in Verbindung mit HTML5-Geolocation ist. Dienste wie Foursquare oder Facebook Places nutzen übrigens einen, unserem Beispiel ähnlichen Ansatz.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/teaser_geolocation.jpg"><img class="alignnone size-full wp-image-30571" src="http://www.drweb.de/magazin/wp-content/uploads/teaser_geolocation.jpg" alt="teaser geolocation foto" width="640" height="400" title="Standortbasierende Dienste mit HTML5 Geolocation und Google Places webdesign html " /></a></p>
<p>Das folgende Szenario wollen wir entwickeln. Unsere Seite soll herausfinden, welche Unternehmen welcher Branchen sich in der Nähe des aktuellen Standorts des Nutzers befinden. Zum Beispiel könnte man alle Bars der Branche Gastronomie anzeigen lassen wollen. Zu diesem Zweck eignet sich die Geolocation-API der HTML5-Spezifikation, die das Auslesen des Standorts des Nutzers zulässt.</p>
<p>Bevor wir tiefer in die Materie einsteigen, sollten Sie sich zunächst einen API-Key von Google besorgen, den sie unter diesem <a href="https://code.google.com/apis/console/">Link</a> unter Verwendung eines Google-Accounts erhalten.</p>
<p>Zu Beginn sollte man versuchen, die aktuellen Standortdaten des Nutzers zu erhalten. Dazu verwendet man das <code><a href="http://de.selfhtml.org/javascript/objekte/navigator.htm">navigator</a></code>-Objekt, welches verschiedene Informationen über den Nutzer enthält, unter anderem die Positionsdaten. Man erstellt also eine Funktion namens <code>get_location()</code> und ruft darin <code>navigator.geolocation.getCurrentPosition(get_places, errors_action);</code> auf.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">function get_location() {
   navigator.geolocation.getCurrentPosition(get_places, catch_errors);
}</pre></div></div>

<p>In der Funktion <code>getCurrentPosition</code> ist es nötig, mindestens zwei Parameter anzugeben. Diese stehen jeweils für Funktionen, die als Callback für <code>getCurrentPosition</code> dienen. Der erste Parameter wird bei einem erfolgreichen Ermitteln der aktuellen Position aufgerufen, der zweite bei einem entsprechenden Fehler. Da es meiner Ansicht nach eine gute Praxis ist, zuerst mögliche Fehler abzufangen, sollte man dies auch wirklich anfangs tun.</p>
<h3>Geolocation Fehler abfangen</h3>
<p>Abfangen sollte man dabei primär <code>PERMISSION_DENIED</code> (Nutzer weist Anfrage auf Erlaubnis der Standort-Mitteilung ab), <code>POSITION_UNAVAILABLE</code> (Es konnte aus technischen Gründen kein Standort ermittelt werden) und <code>TIMEOUT</code> (Die Anfrage benötigte zu viel Zeit). In unserem Beispiel geben wir, um das Ganze einfach zu halten, die Fehlermeldung lediglich über ein alert-Fenster aus. Dazu erstellt man eine Funktion mit dem Bezeichner <code>catch_errors()</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">function catch_errors(error) {
    switch(error.code){
         case error.PERMISSION_DENIED: alert(&quot;Der Nutzer moechte keine Daten teilen.&quot;);break;
         case error.POSITION_UNAVAILABLE: alert(&quot;Die Geodaten sind nicht erreichbar.&quot;);break;
         case error.TIMEOUT: alert(&quot;Timeout erhalten&quot;);break;
         default: alert (&quot;Unbekannter Error&quot;);break;
    }
}</pre></div></div>

<h3>Google Places API nutzen</h3>
<p>Die eigentliche Logik soll in der Funktion <code>get_places</code> entwickelt werden. Dazu werden die aktuellen Standortdaten aus der <a href="http://dev.w3.org/geo/api/spec-source.html#api_description">Geolocation API</a> verwendet. Folgende Informationen stellt die API zur Verfügung, nachdem der Nutzer dies genehmigt hat:</p>
<ul>
<li>Latitude &amp; Longitude &#8211; Geographische Koordinaten</li>
<li>Altitude &#8211; Höhe des Standortes in Metern</li>
<li>Accuracy &#8211; Genauigkeit der Koordinaten-Angaben in Metern</li>
<li>AltitudeAccuracy &#8211; Genauigkeit der Höhenangabe in Metern</li>
<li>Heading &#8211; Bewegungsrichtung des Nutzers in Grad im Uhrzeigersinn</li>
<li>Speed &#8211; Geschwindigkeit in m/s</li>
</ul>
<p>Ziemlich viele Daten, die der Nutzer dem Entwickler offen legt, verlässlich und nützlich sind sie dabei nicht immer. Um auf die Daten Zugriff zu nehmen, erstellt man anfangs wieder einen Funktionsrumpf:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">get_places(position){
&nbsp;
}</pre></div></div>

<p>Im Funktionsrumpf befindet sich nun bereits der Parameter <code>position</code> und <code>position</code> enthält die nötigen Informationen. Für die Google Places-API braucht man im Grunde nur Latitude und Longitude, sowie die Genauigkeit. Also erweitern wir unsere Funktion <code>get_places</code> um das Übergeben der Daten an folgende Variablen:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">var longitude = position.coords.longitude;
var latitude = position.coords.latitude;
var accuracy = position.coords.accuracy;</pre></div></div>

<p>Als Nächstes muss die Places API-URL vorbereitet werden:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">var places_url = &quot;https://maps.googleapis.com/maps/api/place/search/json?location=&quot;+ latitude +&quot;,&quot;+ longitude +&quot;<span style="color: #ddbb00;">&amp;radius=&quot;+ accuracy +&quot;&amp;types=food&amp;sensor=true&amp;key=EuerEigenerKEY&quot;;</span></pre></div></div>

<p>In die URL sind verschiedene Parameter einzupflegen. Für den Parameter <code>location</code> werden Breiten- und Längengrad, geteilt durch ein Komma angegeben. In <code>Radius</code> muss der Umkreis der Places-Ermittlung angegeben werden. Dieser könnte prinzipiell auch individuell übergeben werden, Google selber empfiehlt aber in der Places-Dokumentation die Verwendung der Genauigkeit der Ortsangabe. Unter <code>Types</code> kann der Typ (also Gastronomie etc.) der zurück gegebenen Informationen eingegrenzt werden. Unter Sensor stellt man mittels <code>true</code> oder <code>false</code> ein, ob die Informationen vom Client manuell oder mittels eines GPS-ähnlichen Moduls angegeben wurden. In den Parameter <code>Key</code> gehört der weiter oben generierte API-Key. Es gibt weitere Parameter, über die die <a href="https://developers.google.com/maps/documentation/places/?hl=de">Places Dokumentation</a> Auskunft erteilt.</p>
<p>Das Ganze an Google zu senden, um eine Antwort zu erhalten, ist im Moment wegen fehlender JSONP-Unterstützung nur schwer möglich, Alternativen finden sich <a href="https://developers.google.com/maps/documentation/javascript/reference?hl=de-DE#PlacesService">hier</a>. Der beste Weg ist die direkte Implementation in die Anwendungslogik, anstatt über JavaScript zu gehen.<br />
<a href="http://www.drweb.de/magazin/wp-content/uploads/bild2_geolocation.jpg"><img class="size-full wp-image-30573" src="http://www.drweb.de/magazin/wp-content/uploads/bild2_geolocation.jpg" alt="bild2 geolocation foto" width="640" height="400" title="Standortbasierende Dienste mit HTML5 Geolocation und Google Places webdesign html " /></a><br />
<em><small>Gastronomie in Rostock mit Hilfe von Google Places finden</small></em></p>
<h3>Google Places antwortet in JSON</h3>
<p>Die Verwendung von XML ist ebenfalls zulässig. Ich zeige hier am Beispiel die Informationen, die man in JSON zurück erhält.</p>
<p>Zuerst erfolgt die Nennung der Quelle der Angaben. In Deutschland sind das oft die &#8220;Gelben Seiten&#8221;:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">&quot;html_attributions&quot; : [
      &quot;Einträge aus \u003ca href=\&quot;http://www.gelbeseiten.de/\&quot;\u003eGelbeSeiten®Verlagen\u003c/a\u003e&quot;
   ]</pre></div></div>

<p>Danach bekommt man in <code>results</code> die eigentlichen Ergebnisse:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="xml" style="font-family:monospace;">{
&quot;geometry&quot; : {
&quot;location&quot; : {
&quot;lat&quot; : 54.086360,
&quot;lng&quot; : 12.0959770
}
},
&quot;icon&quot; : &quot;http://maps.gstatic.com/mapfiles/place_api/icons/stadium-71.png&quot;,
&quot;id&quot; : &quot;271b187642f633794399fcdac286c2a9b12ab3fc&quot;,
&quot;name&quot; : &quot;DKB Arena&quot;,
&quot;rating&quot; : 5.0,
&quot;reference&quot; : &quot;CnRoAAAAwWS51nGZjagN0S...&quot;,
&quot;types&quot; : [ &quot;stadium&quot;, &quot;establishment&quot; ],
&quot;vicinity&quot; : &quot;Kopernikusstraße 17, Rostock&quot;
},</pre></td></tr></table></div>

<p>Dabei gibt <code>geometry</code> den exakten Standort des Ergebnisses aus, <code>icon</code> zeigt ein zum Ergebnis passendes Bild, <code>id</code> einen eindeutigen Bezeichner, <code>reference</code> kann für <a href="https://developers.google.com/maps/documentation/places/?hl=de#PlaceDetailsRequest">detailliertere Informationen</a> über das Ergebnis genutzt werden, <code>vicinity</code> enthält einen umgebenden bekannten Standort und <code>types</code> die Kategorie des Ergebnisses.</p>
<h3>Wie nutze ich Google Places effektiv ?</h3>
<p>Sinn ergibt dieser Einsatz von Google Places zum Beispiel, wenn man ein Unternehmen mit mehreren Filialen betreibt und dem Nutzer automatisch alle Filialen und spezielle Angebote in seinem Umkreis anzeigen lassen möchte. Ein anderer Anwendungsfall kann darin bestehen, alle Geschäfte in der Umgebung anzuzeigen, in denen bestimmte Services, etwa alle Coca-Cola Verkaufsstellen, verfügbar sind. Im Endeffekt ist die Geolocation API relativ einfach zu bedienen und kann in Verbindung mit Google Places zu einem durchaus mächtigen und sinnvollen Tool auch für eigene Geschäftsanwendungen sein, egal ob es um Empfehlungen oder logistische Prozesse geht.</p>
<p><em>(dpe)</em></p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/mehr-performance-fur-javascript/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/plugins/contextual-related-posts/default.png" alt="default foto" title="Standortbasierende Dienste mit HTML5 Geolocation und Google Places webdesign html " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/mehr-performance-fur-javascript/" rel="bookmark" class="crp_title">Mehr Performance für JavaScript</a></li><li><a href="http://www.drweb.de/magazin/fummeleien-am-server-mit-htaccess/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/plugins/contextual-related-posts/default.png" alt="default foto" title="Standortbasierende Dienste mit HTML5 Geolocation und Google Places webdesign html " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/fummeleien-am-server-mit-htaccess/" rel="bookmark" class="crp_title">Fummeleien am Server mit .htaccess</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/standortbasierende-dienste-mit-html5-geolocation-und-google-places/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Native HTML5 Desktop-Apps mit Mozillas WebRT</title>
		<link>http://www.drweb.de/magazin/native-html5-desktop-apps-mit-mozillas-webrt/</link>
		<comments>http://www.drweb.de/magazin/native-html5-desktop-apps-mit-mozillas-webrt/#comments</comments>
		<pubDate>Wed, 16 May 2012 05:00:14 +0000</pubDate>
		<dc:creator>Dieter Petereit</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.drweb.de/magazin/?p=30780</guid>
		<description><![CDATA[Wer sich stets die neueste Nightly-Version des Firefox-Browsers herunterlädt, wird es vielleicht bereits gemerkt haben. Seit vorgestern befindet sich die sogenannte Mozilla Apps Native Install Experience in der Nightly, zumindest derjenigen für Windows und Mac OS. Mittels Apps Native Install ist es möglich, ähnlich der Funktionalität im Chrome-Browser, HTML-Apps im Browser zu installieren. Unter Windows wird sogar ein Desktop-Shortcut erzeugt, so dass der Eindruck einer lokal installierten Software entsteht. So sieht sich der Mozilla Marketplace perspektivisch Mozilla WebRT und Native Install: Chrome lässt grüßen Um Wortschöpfungen ist man im Web seit jeher nicht verlegen. Mozilla spricht gern von der Web Run-Time oder WebRT, meint damit aber im Grunde HTML5 als Sammelbegriff für den Dreiklang aus HTML, CSS und JavaScript. Auf dieser WebRT setzt das Projekt Open Web Apps auf, an dem Mozilla seit geraumer Zeit arbeitet. Open Web Apps beinhaltet das Konzept eines eigenen, von Mozilla betriebenen Marketplace. Nach allem, was bisher besichtigt werden kann, baut Mozilla hier die Funktionalität und Funktionsweise des Chrome Webstore weitgehend nach. Desweiteren gehört zum Projekt Open Web Apps eine extensive Dokumentation, die im Detail erläutert, worauf Developer achten müssen, wenn sie ihre Web-App zu einer installierbaren Anwendung im Rahmen der Apps Native Install machen [...]]]></description>
			<content:encoded><![CDATA[<p>Wer sich stets die neueste Nightly-Version des Firefox-Browsers herunterlädt, wird es vielleicht bereits gemerkt haben. Seit vorgestern befindet sich die sogenannte Mozilla Apps Native Install Experience in der Nightly, zumindest derjenigen für Windows und Mac OS. Mittels Apps Native Install ist es möglich, ähnlich der Funktionalität im Chrome-Browser, HTML-Apps im Browser zu installieren. Unter Windows wird sogar ein Desktop-Shortcut erzeugt, so dass der Eindruck einer lokal installierten Software entsteht.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/open-web-apps.png"><img src="http://www.drweb.de/magazin/wp-content/uploads/open-web-apps.png" alt="open web apps foto" title="Native HTML5 Desktop Apps mit Mozillas WebRT javascript html firefox css " width="640" height="318" class="alignnone size-full wp-image-30782" /></a><br />
<em><small>So sieht sich der Mozilla Marketplace perspektivisch</small></em></p>
<h3>Mozilla WebRT und Native Install: Chrome lässt grüßen</h3>
<p>Um Wortschöpfungen ist man im Web seit jeher nicht verlegen. Mozilla spricht gern von der Web Run-Time oder WebRT, meint damit aber im Grunde HTML5 als Sammelbegriff für den Dreiklang aus HTML, CSS und JavaScript. Auf dieser WebRT setzt das Projekt <a href="https://developer.mozilla.org/en/Apps">Open Web Apps</a> auf, an dem Mozilla seit geraumer Zeit arbeitet. Open Web Apps beinhaltet das Konzept eines eigenen, von Mozilla betriebenen Marketplace. Nach allem, was bisher besichtigt werden kann, baut Mozilla hier die Funktionalität und Funktionsweise des Chrome Webstore weitgehend nach. Desweiteren gehört zum Projekt Open Web Apps eine extensive Dokumentation, die im Detail erläutert, worauf Developer achten müssen, wenn sie ihre Web-App zu einer installierbaren Anwendung im Rahmen der Apps Native Install machen wollen. Nicht zuletzt stellt man eine JavaScript API, sowie Zugang zu Geräte-APIs mobiler Clients bereit.</p>
<p>Jetzt steht der zum Konzept gehörende Marketplace kurz vor dem öffentlichen Start. Zumindest US-amerikanische Developer <a href="https://marketplace.mozilla.org/en-US/ecosystem/">sind bereits jetzt aufgefordert</a>, ihre Apps einzureichen. Die flinke Entwicklerschmiede Evernote gehört auch <a href="https://marketplace.mozilla.org/en-US/app/evernote-web/">hier wieder zu den Pionieren</a> und hat ihre Web-App bereits untergebracht. Derzeit können jedoch nur an der Betaphase beteiligte Account-Inhaber auf den Marketplace zugreifen. Aussagen zur Funktionalität der Evernote-Umsetzung für den Firefox sind mir daher noch nicht möglich.</p>
<p><a href="http://www.drweb.de/magazin/wp-content/uploads/firefox-nightly.png"><img src="http://www.drweb.de/magazin/wp-content/uploads/firefox-nightly.png" alt="firefox nightly foto" title="Native HTML5 Desktop Apps mit Mozillas WebRT javascript html firefox css " width="640" height="246" class="alignnone size-full wp-image-30783" /></a></p>
<h3>Mozillas Native Apps Install Experience: Nicht viel mehr als ein Launcher</h3>
<p>Jede Web-App, die die Mozilla WebRT nebst Marketplace nutzen will, muss &#8211; wie in Chrome Webstore oder Play Store für Android &#8211; mit einer Manifest-Datei ausgestattet sein. Anders als unter Googles Ägide ist es beim Mozilla Marketplace vorgesehen, die Installation auch über Dritt-Websites, etwa die eigene Webpräsenz ermöglichen zu können. So sieht eine einfache Manifest-Datei aus. Unter <code>installs_allowed_from</code> können Sie sehen, welche Websites der Entwickler als Quasi-Repository autorisiert hat:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
</pre></td><td class="code"><pre class="json" style="font-family:monospace;">    {  
      &quot;version&quot;: &quot;1.0&quot;,  
      &quot;name&quot;: &quot;KO Round Timer&quot;,  
      &quot;description&quot;: &quot;A Workout Timer for Fighting Athletes!&quot;,  
      &quot;icons&quot;: {   
        &quot;128&quot;: &quot;/images/icon-128.png&quot;  
      },    
      &quot;developer&quot;: {  
        &quot;name&quot;: &quot;Joe Stagner&quot;,  
        &quot;url&quot;: &quot;http://koscience.com&quot;  
      },  
      &quot;installs_allowed_from&quot;: [  
        &quot;http://timer.koscience.com&quot;, 
	&quot;https://marketplace.mozilla.org&quot;   
      ],    
      &quot;default_locale&quot;: &quot;en&quot;  
    }</pre></td></tr></table></div>

<p>Zu beachten ist allerdings, dass man seinen Web-Apps eine eigene Installationslogik beibringen muss, wenn man sie außerhalb des Marketplace installierbar machen will. Die Distribution über den Marketplace erfordert diesen zusätzlichen Aufwand nicht. In <a href="http://hacks.mozilla.org/2012/05/desktop-apps-with-html5-and-the-mozilla-web-runtime/">diesem Blogpost erklärt Mozillas Joe Stagner</a> ausführlich und anhand von Beispielen, wie man die eigene Installationslogik relativ einfach implementieren kann.</p>
<p>Derzeit unterstützen nur die Nightlies für Windows und Mac das Native Install. Versionen für Linux und Android sollen bald folgen. Unter Windows sorgt der Installationsprozess dafür, dass die Web-App einen Desktop-Shortcut, sowie einen Eintrag ins Startmenü erhält, so dass der Eindruck einer lokal installierten App möglichst originalgetreu nachgebildet wird. Weitergehende Funktionalitäten bedient das Native Install jedoch nicht. So erhält man mit der Installation zwar einen lokalen Launcher, der auch eine passende UI um die App legt, jedoch keine weiteren Offline-Fähigkeiten. Will man seiner App die Möglichkleit zur lokalen Speicherung angedeihen lassen, so erfordert das den eigenhändigen Einsatz anderer Technologien, etwa localStorage, über das <a href="http://www.drweb.de/magazin/storage-js-und-jstorage-inhalte-auf-webseiten-direkt-bearbeiten/">Kollege Sven Schannak hier im Dr. Web Magazin</a> vor kurzem schrieb.</p>
<p><strong>Meine Meinung:</strong> Ich sehe durchaus ein Potenzial in Mozillas Konzept, allerdings nicht unter klassischen Desktop-Betriebssystemen. Schon den Chrome Webstore nutze ich allenfalls als bunte Bookmarksammlung. Von einem Chromebook, das mit überaus mäßigem Erfolg vor sich hindümpelt, aus betrachtet, sieht die Sache natürlich ganz anders aus. Mozilla zielt mit dem Native Install unter anderem auf die Android-Plattform. Hier könnte sich das Konzept zum Erfolg entwickeln, aber eben nur hier. Oder bin ich zu pessimistisch und übersehe das Killerargument?</p>
<div id="crp_related"><h3><span class="different">*</span> Ähnliche Beiträge</h3><ul><li><a href="http://www.drweb.de/magazin/die-bunte-welt-der-firefox-themes/" rel="bookmark"><img src="http://www.drweb.de/img/ffthemes/themes.gif" alt="themes foto" title="Native HTML5 Desktop Apps mit Mozillas WebRT javascript html firefox css " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/die-bunte-welt-der-firefox-themes/" rel="bookmark" class="crp_title">Die bunte Welt der Firefox Themes</a></li><li><a href="http://www.drweb.de/magazin/paperfold-css-html5-kreativ-eingesetzt/" rel="bookmark"><img src="http://www.drweb.de/magazin/wp-content/uploads/paperfold5.jpg" alt="paperfold5 foto" title="Native HTML5 Desktop Apps mit Mozillas WebRT javascript html firefox css " style="max-width:200px;max-height:200px;" border="0" class="crp_thumb" /></a><a href="http://www.drweb.de/magazin/paperfold-css-html5-kreativ-eingesetzt/" rel="bookmark" class="crp_title">Paperfold CSS: HTML5 kreativ eingesetzt</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.drweb.de/magazin/native-html5-desktop-apps-mit-mozillas-webrt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

