<?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>zeroseven labs</title>
	<atom:link href="http://labs.zeroseven.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://labs.zeroseven.de</link>
	<description></description>
	<lastBuildDate>Fri, 27 Aug 2010 14:33:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Wallpaper design tutorial</title>
		<link>http://labs.zeroseven.de/design/wallpaper-design-tutorial/</link>
		<comments>http://labs.zeroseven.de/design/wallpaper-design-tutorial/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 14:27:37 +0000</pubDate>
		<dc:creator>sebastianf</dc:creator>
				<category><![CDATA[DESIGN]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[CS5]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1607</guid>
		<description><![CDATA[In diesem Tutorial werde ich euch verschiedene Techniken in Photoshop  CS5 zeigen die es euch ermöglichen ein kreatives, stylishes Wallpaper zu  erstellen. Das Video besteht aus 3 Teilen und dürfte insgesamt nicht mehr als eine Stunde Zeit in Anspruch nehmen. Solltet Ihr Fragen zu  einem der gezeigten Schritte haben &#8211; zögert nicht und schreibt uns.

Dann starten wir mal mit dem Tutorial &#124; Schwierigkeitsstufe: mittel
Hier für euch das Krabbenbild zum Downloaden (Einfach rechtsklick und Bild kopieren)

Part 1 &#8211; Bildbearbeitung



Part 2 &#8211; Illustration



Part 3 &#8211; Photoshop CS5 3D



Ich hoffe das Tutorial hat euch gefallen und weitergeholfen. Feedback höre ich  [...]]]></description>
			<content:encoded><![CDATA[<p>In diesem Tutorial werde ich euch verschiedene Techniken in Photoshop  CS5 zeigen die es euch ermöglichen ein kreatives, stylishes Wallpaper zu  erstellen. Das Video besteht aus 3 Teilen und dürfte insgesamt nicht mehr als eine Stunde Zeit in Anspruch nehmen. Solltet Ihr Fragen zu  einem der gezeigten Schritte haben &#8211; zögert nicht und schreibt uns.</p>
<p><span id="more-1607"></span></p>
<p>Dann starten wir mal mit dem Tutorial | Schwierigkeitsstufe: mittel</p>
<p><a title="A blue swimmer crab" href="http://labs.zeroseven.de/wp-content/uploads/2010/08/11261143.jpg" rel="lightbox[1607]">Hier für euch das Krabbenbild zum Downloaden</a> (Einfach rechtsklick und Bild kopieren)</p>
<div>
<p><strong>Part 1 &#8211; Bildbearbeitung</strong><br />
<object width="580" height="385"><param name="movie" value="http://www.youtube.com/v/Mx24RWN72iY?fs=1&amp;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Mx24RWN72iY?fs=1&amp;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="385"></embed></object></p>
</div>
<div>
<p><strong>Part 2 &#8211; Illustration</strong><br />
<object width="580" height="385"><param name="movie" value="http://www.youtube.com/v/2y3qG2dd_ww?fs=1&amp;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2y3qG2dd_ww?fs=1&amp;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="385"></embed></object></p>
</div>
<div>
<p><strong>Part 3 &#8211; Photoshop CS5 3D</strong><br />
<object width="580" height="385"><param name="movie" value="http://www.youtube.com/v/LKTBf0X1MkE?fs=1&amp;hl=de_DE"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/LKTBf0X1MkE?fs=1&amp;hl=de_DE" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="580" height="385"></embed></object></p>
</div>
<div>
<p>Ich hoffe das Tutorial hat euch gefallen und weitergeholfen. Feedback höre ich wie immer gerne also zögert nicht ein Kommentar dazulassen. Wenn ihr uns bei facebook noch nicht hinzugefügt habt dann wäre jetzt natürlich ein guter moment das nachzuholen.</p>
<p>Viele Grüße &#8211; Sebastian</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/design/wallpaper-design-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datenschutz</title>
		<link>http://labs.zeroseven.de/recht/datenschutz/</link>
		<comments>http://labs.zeroseven.de/recht/datenschutz/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 07:41:21 +0000</pubDate>
		<dc:creator>thomass</dc:creator>
				<category><![CDATA[RECHT]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1589</guid>
		<description><![CDATA[Das Erheben, Sammeln und Auswerten von personenbezogenen Daten ist grundsätzlich verboten. Ausnahme nur dann, wenn es der User erlaubt und diesem zustimmt. Werden personenbezogene Daten für die Abwicklung einer Bestellung in einem Online-Shop benötigt, so ist es dem Shopbetreiber erlaubt, aufgrund der Abwicklung, zum Beispiel der Versand der Ware, die Daten an beteiligte Dritte weiterzugeben. Sollten Daten erhoben werden, die für die Abwicklung oder für den Kaufprozess nicht notwendig, so ist die Einwilligung des Users erforderlich. Bei der Erfassung der personenbezogenen Daten, muss die Einwilligung sichtbar während des Bestellprozesses eingeholt werden. Der User muss dieser durch eine aktive Handlung zustimmen  [...]]]></description>
			<content:encoded><![CDATA[<div>Das Erheben, Sammeln und Auswerten von personenbezogenen Daten ist grundsätzlich verboten. Ausnahme nur dann, wenn es der User erlaubt und diesem zustimmt. Werden personenbezogene Daten für die Abwicklung einer Bestellung in einem Online-Shop benötigt, so ist es dem Shopbetreiber erlaubt, aufgrund der Abwicklung, zum Beispiel der Versand der Ware, die Daten an beteiligte Dritte weiterzugeben. Sollten Daten erhoben werden, die für die Abwicklung oder für den Kaufprozess nicht notwendig, so ist die Einwilligung des Users erforderlich. Bei der Erfassung der personenbezogenen Daten, muss die Einwilligung sichtbar während des Bestellprozesses eingeholt werden. Der User muss dieser durch eine aktive Handlung zustimmen und über das Widerrufsrecht aufklären. Der User muss auf sein Widerspruchsrecht hingewiesen und umfassend über Art, Zweck und Umfang der Datenverarbeitung hingewiesen werden.</div>
<p><span id="more-1589"></span></p>
<div>Werden Cookies und IP-Adressen anonymisiert, ist das in den meisten Fällen unproblematisch. Werden Langzeit-Cookies, welche auf personenbezogene Daten zurückschließen lassen, in Verbindung mit einer IP-Adresse gespeichert, ist für dies eine Einwilligung des Users notwendig.</div>
<div>Grundsätzlich gilt, dass jede Datensammlung und Datenspeicherung dem der User nicht zustimmt, verboten ist.</div>
<p>Das Erheben, Sammeln und Auswerten von personenbezogenen Daten ist grundsätzlich verboten. Ausnahme nur dann, wenn es der User erlaubt und diesem zustimmt. Werden personenbezogene Daten für die Abwicklung einer Bestellung in einem Online-Shop benötigt, so ist es dem Shopbetreiber erlaubt, aufgrund der Abwicklung, zum Beispiel der Versand der Ware, die Daten an beteiligte Dritte weiterzugeben. Sollten Daten erhoben werden, die für die Abwicklung oder für den Kaufprozess nicht notwendig, so ist die Einwilligung des Users erforderlich. Bei der Erfassung der personenbezogenen Daten, muss die Einwilligung sichtbar während des Bestellprozesses eingeholt werden. Der User muss dieser durch eine aktive Handlung zustimmen und über das Widerrufsrecht aufklären. Der User muss auf sein Widerspruchsrecht hingewiesen und umfassend über Art, Zweck und Umfang der Datenverarbeitung hingewiesen werden.Werden Cookies und IP-Adressen anonymisiert, ist das in den meisten Fällen unproblematisch. Werden Langzeit-Cookies, welche auf personenbezogene Daten zurückschließen lassen, in Verbindung mit einer IP-Adresse gespeichert, ist für dies eine Einwilligung des Users notwendig.Grundsätzlich gilt, dass jede Datensammlung und Datenspeicherung dem der User nicht zustimmt, verboten ist.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/recht/datenschutz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Analytics</title>
		<link>http://labs.zeroseven.de/recht/google-analytics/</link>
		<comments>http://labs.zeroseven.de/recht/google-analytics/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 07:40:55 +0000</pubDate>
		<dc:creator>thomass</dc:creator>
				<category><![CDATA[RECHT]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1587</guid>
		<description><![CDATA[Des einen Freud, des anderen Leid. Google Analytics ist ein heiß diskutiertes Tool. Da Google in fast keinerlei Hinsicht die Datenschutzbestimmungen einzelner Länder achtet. Für Suchmaschinenoptimierer und Website-Betreiber ist Google-Analytics ein sehr nützliches und aufschlussreiches Tool im Zusammenspiel mit Google-Adword und den Maßnahmen der Suchmaschinenoptimierung. Google-Analytics ist strakt ins Visier der Datenschutzbeauftragten der Länder geraten. Mittlerweile haben die Landesdatenschutz-Aufsichtsbehörden einen inoffiziellen Düsseldorfer Kreis zusammengeschlossen. Das Ziel dieses Kreises ist, dass eine einheitliche Auslegung des Datenschutzes gewährleistet wird. Der Düsseldorfer Kreis hat im Beschluss vom 26.11.2009 folgendes beschlossen.

&#8220;Den Betroffenen ist eine Möglichkeit zum Widerspruch gegen die Erstellung von Nutzungsprofilen einzuräumen. Derartige  [...]]]></description>
			<content:encoded><![CDATA[<div>Des einen Freud, des anderen Leid. Google Analytics ist ein heiß diskutiertes Tool. Da Google in fast keinerlei Hinsicht die Datenschutzbestimmungen einzelner Länder achtet. Für Suchmaschinenoptimierer und Website-Betreiber ist Google-Analytics ein sehr nützliches und aufschlussreiches Tool im Zusammenspiel mit Google-Adword und den Maßnahmen der Suchmaschinenoptimierung. Google-Analytics ist strakt ins Visier der Datenschutzbeauftragten der Länder geraten. Mittlerweile haben die Landesdatenschutz-Aufsichtsbehörden einen inoffiziellen Düsseldorfer Kreis zusammengeschlossen. Das Ziel dieses Kreises ist, dass eine einheitliche Auslegung des Datenschutzes gewährleistet wird. Der Düsseldorfer Kreis hat im Beschluss vom 26.11.2009 folgendes beschlossen.</div>
<p><span id="more-1587"></span></p>
<div>&#8220;Den Betroffenen ist eine Möglichkeit zum Widerspruch gegen die Erstellung von Nutzungsprofilen einzuräumen. Derartige Widersprüche sind wirksam umzusetzen ….&#8221;</div>
<div>&#8220;Auf die Erstellung von pseudonymen Nutzungsprofilen und die Möglichkeit zum Widerspruch müssen die Anbieter in deutlicher Form im Rahmen der Datenschutzerklärung auf ihrer Internetseite hinweisen&#8221;.</div>
<div>Darauf hin hat Google nun angekündigt, ein globale Browser-Plug-in einzuführen, welches dem User ermöglicht, dass erfassen seines Besucherverhalten zu unterbinden. Seit Ende Mai 2010 ist diese Plug-in von Google für den Internet Explorer, Firefox und Chrome zur Verfügung.</div>
<div>Reicht dies aus? Für viele User ist es nicht möglich, dass sie ein Plug-in installieren können, ohne Adminrechte. Darüber hinaus ist ein Großteil der User überfordert, solch ein Plug-in zu installieren. Bereits kurz nach Erscheinen des Plug-ins wird schon in diversen Blogs aufgezeigt, wie trotz dem Plug-in die Nutzdaten trotzdem erfasst werden können.</div>
<div>Das Problem bei Google-Analytics ist, dass von Google die IP-Adressen der einzelnen User zur Geolokalisierung abgespeichert werden. Dies ist laut Datenschutzbestimmungen alleine in Deutschland nicht erlaubt. Die Geoglobalisierung bedeutet, dass Google aufgrund der IP-Adresse Rückschlüsse ziehen kann, welche geografische Herkunft der User hat. Hierfür hat sich ebenfalls der Düsseldorfer Kreis geäußert.</div>
<div>&#8220;Die Analyse des Nutzerverhaltens unter Verwendung vollständiger IP-Adressen (einschließlich einer Geolokalisierung) ist aufgrund der Personenbeziehbarkeit dieser Daten daher nur mit bewusster, eindeutiger Einwilligung zulässig. Liegt eine solche Einwilligung nicht vor, ist die IP-Adresse vor jeglicher Auswertung so zu kürzen, dass eine Personenbeziehbarkeit ausgeschlossen ist.&#8221;</div>
<div>Google hat bisher noch keine Lösung hierfür vorgelegt.</div>
<p>Des einen Freud, des anderen Leid. Google Analytics ist ein heiß diskutiertes Tool. Da Google in fast keinerlei Hinsicht die Datenschutzbestimmungen einzelner Länder achtet. Für Suchmaschinenoptimierer und Website-Betreiber ist Google-Analytics ein sehr nützliches und aufschlussreiches Tool im Zusammenspiel mit Google-Adword und den Maßnahmen der Suchmaschinenoptimierung. Google-Analytics ist strakt ins Visier der Datenschutzbeauftragten der Länder geraten. Mittlerweile haben die Landesdatenschutz-Aufsichtsbehörden einen inoffiziellen Düsseldorfer Kreis zusammengeschlossen. Das Ziel dieses Kreises ist, dass eine einheitliche Auslegung des Datenschutzes gewährleistet wird. Der Düsseldorfer Kreis hat im Beschluss vom 26.11.2009 folgendes beschlossen. &#8221;Den Betroffenen ist eine Möglichkeit zum Widerspruch gegen die Erstellung von Nutzungsprofilen einzuräumen. Derartige Widersprüche sind wirksam umzusetzen ….&#8221;"Auf die Erstellung von pseudonymen Nutzungsprofilen und die Möglichkeit zum Widerspruch müssen die Anbieter in deutlicher Form im Rahmen der Datenschutzerklärung auf ihrer Internetseite hinweisen&#8221;.Darauf hin hat Google nun angekündigt, ein globale Browser-Plug-in einzuführen, welches dem User ermöglicht, dass erfassen seines Besucherverhalten zu unterbinden. Seit Ende Mai 2010 ist diese Plug-in von Google für den Internet Explorer, Firefox und Chrome zur Verfügung. Reicht dies aus? Für viele User ist es nicht möglich, dass sie ein Plug-in installieren können, ohne Adminrechte. Darüber hinaus ist ein Großteil der User überfordert, solch ein Plug-in zu installieren. Bereits kurz nach Erscheinen des Plug-ins wird schon in diversen Blogs aufgezeigt, wie trotz dem Plug-in die Nutzdaten trotzdem erfasst werden können. Das Problem bei Google-Analytics ist, dass von Google die IP-Adressen der einzelnen User zur Geolokalisierung abgespeichert werden. Dies ist laut Datenschutzbestimmungen alleine in Deutschland nicht erlaubt. Die Geoglobalisierung bedeutet, dass Google aufgrund der IP-Adresse Rückschlüsse ziehen kann, welche geografische Herkunft der User hat. Hierfür hat sich ebenfalls der Düsseldorfer Kreis geäußert.&#8221;Die Analyse des Nutzerverhaltens unter Verwendung vollständiger IP-Adressen (einschließlich einer Geolokalisierung) ist aufgrund der Personenbeziehbarkeit dieser Daten daher nur mit bewusster, eindeutiger Einwilligung zulässig. Liegt eine solche Einwilligung nicht vor, ist die IP-Adresse vor jeglicher Auswertung so zu kürzen, dass eine Personenbeziehbarkeit ausgeschlossen ist.&#8221;Google hat bisher noch keine Lösung hierfür vorgelegt.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/recht/google-analytics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datei-Upload direkt im RTE</title>
		<link>http://labs.zeroseven.de/development/typo3/datei-upload-direkt-im-rte/</link>
		<comments>http://labs.zeroseven.de/development/typo3/datei-upload-direkt-im-rte/#comments</comments>
		<pubDate>Mon, 19 Jul 2010 12:03:42 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Rich Text Editor]]></category>
		<category><![CDATA[RTE]]></category>
		<category><![CDATA[TSconfig]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1571</guid>
		<description><![CDATA[Der Rich-Text-Editor (RTE) in TYPO3 bietet dem Redakteur die Möglichkeit, Bilder einzubinden und auf Dateien zu verlinken. Dabei kann der Administrator definieren, ob der Redakteur diese Dateien auch gleich im RTE hochladen darf, oder ob er evtl. nur Dateien benutzen darf, die zuvor schon in das fileadmin-Verzeichnis geladen wurden.

Mit folgender Konfigurations-Möglichkeiten im User TSconfig lässt sich der Upload im RTE-aktivieren:
options.uploadFieldsInTopOfEB = 1
Und diese Konfigurations-Option erlaubt es dem Benutzer dann sogar noch, auch direkt Ordner anzulegen, um die Uploads besser strukturieren zu können:
options.createFoldersInEB = 1
Sind beide Optionen gesetzt, erscheinen die Upload-Felder direkt im Dateiauswahl-Dialog des RTEs.
 
]]></description>
			<content:encoded><![CDATA[<p>Der Rich-Text-Editor (RTE) in TYPO3 bietet dem Redakteur die Möglichkeit, Bilder einzubinden und auf Dateien zu verlinken. Dabei kann der Administrator definieren, ob der Redakteur diese Dateien auch gleich im RTE hochladen darf, oder ob er evtl. nur Dateien benutzen darf, die zuvor schon in das <code>fileadmin</code>-Verzeichnis geladen wurden.</p>
<p><span id="more-1571"></span></p>
<p>Mit folgender Konfigurations-Möglichkeiten im <code>User TSconfig</code> lässt sich der Upload im RTE-aktivieren:</p>
<pre>options.uploadFieldsInTopOfEB = 1</pre>
<p>Und diese Konfigurations-Option erlaubt es dem Benutzer dann sogar noch, auch direkt Ordner anzulegen, um die Uploads besser strukturieren zu können:</p>
<pre>options.createFoldersInEB = 1</pre>
<p>Sind beide Optionen gesetzt, erscheinen die Upload-Felder direkt im Dateiauswahl-Dialog des RTEs.</p>
<p><a href="http://labs.zeroseven.de/wp-content/uploads/2010/07/RTE-filelink.png" rel="lightbox[1571]"><img class="alignnone size-thumbnail wp-image-1573" src="http://labs.zeroseven.de/wp-content/uploads/2010/07/RTE-filelink-150x150.png" alt="" width="150" height="150" /></a> <a href="http://labs.zeroseven.de/wp-content/uploads/2010/07/RTE-image.png" rel="lightbox[1571]"><img class="alignnone size-thumbnail wp-image-1574" src="http://labs.zeroseven.de/wp-content/uploads/2010/07/RTE-image-150x150.png" alt="" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/datei-upload-direkt-im-rte/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook Nutzerzahlen im Juni 2010</title>
		<link>http://labs.zeroseven.de/marketing/online-marketing/facebook-nutzerzahlen-im-juni-2010/</link>
		<comments>http://labs.zeroseven.de/marketing/online-marketing/facebook-nutzerzahlen-im-juni-2010/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 12:07:16 +0000</pubDate>
		<dc:creator>thomass</dc:creator>
				<category><![CDATA[Online Marketing]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1562</guid>
		<description><![CDATA[Die Nutzerzahlen der letzten zehn Monate machen es deutlich, wie Facebook alleine in Deutschland zugelegt hat. Waren es im August 2009 noch 3,46 Millionen User, so hat sich die Zahl innerhalb von 10 Monaten fast verdreifacht auf 9,54 Millionen User.

Nach Geschlechter teilen sich die Nutzer wie folgt auf:
Juni 2010:
Männlich 4.626.440
Weiblich 4.734.400

]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">Die Nutzerzahlen der letzten zehn Monate machen es deutlich, wie Facebook alleine in Deutschland zugelegt hat. Waren es im August 2009 noch 3,46 Millionen User, so hat sich die Zahl innerhalb von 10 Monaten fast verdreifacht auf 9,54 Millionen User.</div>
<p><span id="more-1562"></span></p>
<div id="_mcePaste">Nach Geschlechter teilen sich die Nutzer wie folgt auf:</div>
<p>Juni 2010:</p>
<p>Männlich<span style="white-space: pre;"> </span>4.626.440</p>
<p>Weiblich<span style="white-space: pre;"> </span>4.734.400</p>
<p><a href="http://labs.zeroseven.de/wp-content/uploads/2010/07/Facebook_Nutzerzahlen_Juni_2010.001.jpg" rel="lightbox[1562]"><img class="alignleft size-full wp-image-1561" title="Facebook_Nutzerzahlen_Juni_2010.001" src="http://labs.zeroseven.de/wp-content/uploads/2010/07/Facebook_Nutzerzahlen_Juni_2010.001.jpg" alt="" width="604" height="460" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/marketing/online-marketing/facebook-nutzerzahlen-im-juni-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bewegtbilder im Internet</title>
		<link>http://labs.zeroseven.de/marketing/online-marketing/bewegtbilder-im-internet/</link>
		<comments>http://labs.zeroseven.de/marketing/online-marketing/bewegtbilder-im-internet/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 21:36:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Online Marketing]]></category>
		<category><![CDATA[Marktforschung]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1550</guid>
		<description><![CDATA[Die März-Statistik des amerikanischen Marktforschungsinstituts Comscore verdeutlicht den Trend im Bereich Bewegtbilder im Internet. Im März wurden alleine über die Google-Seiten (hierzu zählt auch YouTube) mehr als 13 Milliarden Videos aufgerufen wurden. Das entspricht knapp 42 Prozent der gesamten Videonutzung im Internet.
]]></description>
			<content:encoded><![CDATA[<p>Die März-Statistik des amerikanischen Marktforschungsinstituts Comscore verdeutlicht den Trend im Bereich Bewegtbilder im Internet. Im März wurden alleine über die Google-Seiten (hierzu zählt auch YouTube) mehr als 13 Milliarden Videos aufgerufen wurden. Das entspricht knapp 42 Prozent der gesamten Videonutzung im Internet.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/marketing/online-marketing/bewegtbilder-im-internet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Empfehlung TYPO3-Extension: nc_staticfilecache</title>
		<link>http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-ncstaticfilecache/</link>
		<comments>http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-ncstaticfilecache/#comments</comments>
		<pubDate>Mon, 05 Jul 2010 09:01:23 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod_rewrite]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1526</guid>
		<description><![CDATA[TYPO3 ist ein sehr mächtiges Content-Management-System, woraus sich in Bezug auf Flexibilität und Anpassbarkeit sehr viele Vorteile ergeben. Leider hat diese Mächtigkeit auch einen Nachteil: Beim Aufruf einer TYPO3-Seite muss der komplette TYPO3-Source vom Webserver geladen und geparst werden. Dazu kommen noch etliche Datenbankabfragen, bis die Seite aufgebaut ist und an den Browser gesendet werden kann. Mit einem geschickten Einsatz der Extension nc_staticfilecache lässt sich dieser Umweg abkürzen und der komplette Internetauftritt extrem beschleunigen.

Funktionsweise von nc_staticfilecache
Die Extension generiert aus dynamisch erzeugten TYPO3-Seiten &#8211; vorausgesetzt, sie enthalten ausschließlich cachebare Elemente &#8211; statische HTML-Dokumente als exakte Kopien und legte diese auf dem  [...]]]></description>
			<content:encoded><![CDATA[<p>TYPO3 ist ein sehr mächtiges Content-Management-System, woraus sich in Bezug auf Flexibilität und Anpassbarkeit sehr viele Vorteile ergeben. Leider hat diese Mächtigkeit auch einen Nachteil: Beim Aufruf einer TYPO3-Seite muss der komplette TYPO3-Source vom Webserver geladen und geparst werden. Dazu kommen noch etliche Datenbankabfragen, bis die Seite aufgebaut ist und an den Browser gesendet werden kann. Mit einem geschickten Einsatz der Extension <strong>nc_staticfilecache</strong> lässt sich dieser Umweg abkürzen und der komplette Internetauftritt extrem beschleunigen.</p>
<p><span id="more-1526"></span></p>
<h2 style="font-size: 1em;color: #000;font-weight: bold">Funktionsweise von nc_staticfilecache</h2>
<p>Die Extension generiert aus dynamisch erzeugten TYPO3-Seiten &#8211; vorausgesetzt, sie enthalten ausschließlich cachebare Elemente &#8211; statische HTML-Dokumente als exakte Kopien und legte diese auf dem Webserver ab. Voraussetzung dafür ist die Verwendung einer Extension, die TYPO3 um lesbare Pfade erweitert, wie z.B. <strong><a href="http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-realurl/">realurl</a></strong> oder <strong>simulatestatic</strong>.</p>
<p>Durch eine Anpassung der <code>mod_rewrite</code>-Konfiguration wird dann bei jeden Seitenaufruf vom Webserver selbst geprüft, ob zu dieser Seite eine statische Variante gespeichert ist. Existiert diese statische Variante, wird diese direkt an den Client ausgeliefert, ohne dass TYPO3 ins Spiel kommt. Es muss kein PHP-Parser gestartet werden, kein TYPO3 geladen werden und keine Datenbankabfrage durchgeführt werden. Laut Eigenbeschreibung der Extension sind dazu Beschleunigungen bis zu 23000% möglich.</p>
<p>Um die Auslieferung von veraltetem Content zu verhindern, werden die statischen Dateien beim löschen des Frontend-Caches mit gelöscht. Darüber hinaus sollte auch noch ein Cron-Job eingerichtet werden, wie im Extension-Handbuch beschrieben. Dieser löscht die statischen HTML-Seiten automatisch nach ihrer definierten Lebensdauer. Diese Lebensdauer entspricht der im Backend eingestellten Cache-Dauer, die zu jeder Seite in den Seiteneigenschaften vorgenommen werden können.</p>
<h2 style="font-size: 1em;color: #000;font-weight: bold">TYPO3-Auftritt mit nc_staticfilecache beschleunigen</h2>
<p>Der leichteste Schritt ist die Installation der Extension über den TYPO3-Extension-Manager. Anschließend ist im Modul &#8220;Web &gt; Info&#8221; der neue Punkt &#8220;Statischer HTML Cache&#8221; verfügbar. Hier ist ersichtlich, welche Seiten gecached wurden bzw. warum einzelne Seiten nicht gecached wurden.</p>
<p>Die Meldung <code>config.no_cache is true</code> zeigt an, dass die komplette Seite nicht gecached werden kann. Das kann mehrere Gründe haben:
<ol>
<li>Caching in den Seiteneigenschaften deaktiviert</li>
<li>Caching im TypoScript deaktiviert (<code>config.no_cache = 1</code>)</li>
<li>eine Extension deaktiviert das Caching für diese Seite (<code>$GLOBALS['TSFE']-&gt;set_no_cache()</code>)</li>
</ol>
<p>Die Meldung <code>page has INTincScript</code> zeigt an, dass einzelne Elemente nicht gecached werden können. Das können z.B. Plugins sein, die als <code>USER_INT</code> anstatt als <code>USER</code> geladen werden oder TypoScript-Elemente, die vom Typ <code>COA_INT</code> anstatt vom Typ <code>COA</code> sind. Ein Hilfsmittel, um die <code>INT</code>-Elemente ausfindig machen zu können, ist der &#8220;TypoScript-Objekt-Browser&#8221;, der sich im Modul &#8220;Web &gt; Template&#8221; einsehen lässt, sobald eine Seite im Seitenbaum ausgewählt wurde.<br />
Ist ein <code>INT</code>-Objekt ausfindig gemacht, gilt es zu überlegen, ob sich das Caching für dieses Element nicht evtl. doch erlauben lässt. Ist dies der Fall, kann der Typ via TypoScript geändert werden:</p>
<pre>	# noncacheable INT objects
plugin.user_myextension = USER_INT
lib.mytyposcriptobject = COA_INT

	# cacheable objects
plugin.user_myextension = USER
lib.mytyposcriptobject = COA</pre>
<p>Nachdem die Extension installiert ist, und die Seiten als statische Kopien auf dem Webserver abgelegt werden, muss noch die <code>mod_rewrite</code>-Konfiguration angepasst werden. Eine Beispiel-Konfiguration dazu befindet sich in Extension-Handbuch. Diese muss aber je nach Serverumgebung und <strong><a href="http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-realurl/">realurl</a></strong>- bzw. <strong>simulatestatic</strong>-Konfiguration noch angepasst werden.</p>
<h2 style="font-size: 1em;color: #000;font-weight: bold">Fazit</h2>
<p>Durch einen geschickten Einsatz der Extension &#8220;<strong>nc_staticfilecache</strong>&#8221; lässt sich der TYPO3-Auftritt extrem beschleunigen und die Serverlast deutlich reduzieren. Voraussetzung dafür ist jedoch ein durchdachter Einsatz von nicht-cachebaren <code>INT</code>-Elementen, die es zu vermeiden gilt. Schließlich kann ein einziges Plugin, das nicht gecached werden darf, schon den kompletten Einsatz der Extension verhindern.</p>
<p>Die Extension &#8220;<strong>nc_staticfilecache</strong>&#8221; ist in ihrer aktuellsten Version über das <a href="http://typo3.org/extensions/">Extension Repository</a> erhältlich.</p>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/typo3/empfehlung-typo3-extension-ncstaticfilecache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schnelle Fourier-Transformation (1D + 2D) für ActionScript</title>
		<link>http://labs.zeroseven.de/development/actionscript-development/schnelle-fourier-transformation-1d-2d-fur-actionscript/</link>
		<comments>http://labs.zeroseven.de/development/actionscript-development/schnelle-fourier-transformation-1d-2d-fur-actionscript/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 12:36:43 +0000</pubDate>
		<dc:creator>alexanders</dc:creator>
				<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[computeSpectrum]]></category>
		<category><![CDATA[extract]]></category>
		<category><![CDATA[fourier]]></category>
		<category><![CDATA[schnelle]]></category>
		<category><![CDATA[Sound]]></category>
		<category><![CDATA[Transformation]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1510</guid>
		<description><![CDATA[Wie schon in einem älteren Beitrag (SoundMixer.computeSpectrum() vs. Sound.extract()) von mir beschrieben, gibt es (noch immer) ein Problem mit der computeSpectrum Methode des SoundMixers. Diese Methode zum Auslesen des Spektrums ist an sich eine schöne Funktion, gehört aber dem SoundMixer. Dieser ist eine globale Flash-Klasse, was einige Probleme mit sich bringt. Nutzt man diese Funktion innerhalb eines SWFs und hat andere SWF, welche Sound beinhaltet offen, kommt es unweigerlich zu Sicherheitsfehlern und wirklich unschönen Geräuschen. 

Umgehen lässt sich dies mit Hilfe der der extract() Methode der Sound-Klasse. Hier wird das gesamte Frequenzspektum des Sounds augelesen und kann weiter verwendet werden.  [...]]]></description>
			<content:encoded><![CDATA[<p>Wie schon in einem älteren Beitrag (SoundMixer.computeSpectrum() vs. Sound.extract()) von mir beschrieben, gibt es (noch immer) ein Problem mit der <code>computeSpectrum</code> Methode des SoundMixers. Diese Methode zum Auslesen des Spektrums ist an sich eine schöne Funktion, gehört aber dem SoundMixer. Dieser ist eine globale Flash-Klasse, was einige Probleme mit sich bringt. Nutzt man diese Funktion innerhalb eines SWFs und hat andere SWF, welche Sound beinhaltet offen, kommt es unweigerlich zu Sicherheitsfehlern und wirklich unschönen Geräuschen. </p>
<p><span id="more-1510"></span></p>
<p>Umgehen lässt sich dies mit Hilfe der der <code>extract()</code> Methode der Sound-Klasse. Hier wird das gesamte Frequenzspektum des Sounds augelesen und kann weiter verwendet werden. Aber es gibt einen gravierenden Unterschied bei beiden Mehtoden. Die computeSpectrum liefert von Haus aus eine schnelle Fourier Transformation mit. Hingegen liefert die <code>extract()</code>-Methode nur RAW-Daten zurück. Kurz zusammengefasst bedeutet dies, dass mit Hilfe der <code>computeSpectrum</code> die zurückgelieferten Frequenzen nach Bereich sortiert werden und bei der anderen Funktion eben nicht.</p>
<p>Klar könnte man hingehen und selbst eine einfache Sortierfunktion schreiben. Doch bei der etwas größeren Datenmenge die bewältigt werden muss, wird dies das Script auf jeden Fall verlangsamen. Eine Methode die verwendet werden kann zur Sortierung ist die Schnelle Fourier-Transformation, die auf der Diskreten Fourier-Transformation basiert. Aber leider gab es diese Funktion, wie gesagt, nur innerhalb der <code>computeSepctrum()</code> Methode.</p>
<p>Nun hat Eugene Zatepyakin sich die Mühe gemacht und eine Implementierung der schnellen Fourier-Transformation in ActionScript 3 geschrieben, die frei verfügbar bei Google-Code ist. Mit Hilfe dieser Klassen konnte ich, nach ein paar Tests, den SoundVisualizer mit der Funktionalität zur Sortierung der Sound Daten erweitern, ohne die oben kurz angerissenen Probleme wieder aufzureißen. </p>
<p>Die Implementierung ist, wie Eugene sie auch beschreibt, sehr einfach. Für die Verwendung mit Sound wird die FFT-Klasse verwendet. Des weiteren gibt es noch die FFT2D-Klasse, welche die Möglichkeit eine zweidimensionale Transforation durchzuführen bietet, wie sie etwa bei Bildern Verwendung findet. Bei der Initialisierung der Klasse mit deren init()-Methode sollte man auch nicht über 2048 Bytes gehen, da sonst wiederum die Performance leidet. Besonders ist darauf zu achten, dass die Anzahl der ausgelesenen Bytes über die <code>extract</code>-Methode mit der bei der init Methode übereinstimmt.</p>
<p>Der eingentliche Analyzer ist in der FFTSpectrumAnalyzer-Klasse. Hier wird in der initLogarithmicAverages-Methode zunächst die Mindestbandbreite angegeben und die Anzahl an Bändern, in die eine Oktave unterteilt werden soll.<br />
Sehr wichtig ist auch die Einstellung &#8220;Little Endian&#8221; für den ByteArray, welcher die resultierenden Daten hält. Innerhalb des onSampleDataEvent-Handlers werden die ausgelesenen Bytes dann der fft-Klass mittels <code>setStereoRAWDataByteArray(bytes)</code> mitgegeben, um dann anschließend die <code>forwardFFT()</code> aufzurufen, welche die eigentliche Transformation ausführt. <code>fftHelp.analyzeSpectrum()</code> liefert dann den analysierten ByteArray, welcher dann weiter benutzt werden kann für alle möglichen visuellen Ausgaben, zurück. Noch ist hier der Sound selbst noch nicht ausgegeben. Dafür müssen die Bytes zurück transformiert werden über <code>fft.inverseFFT()</code>. Nach dem Zurücksetzen der Position innerhalb des BytesArrays können nun die SoundBytes an <code>event.data</code> zur Ausgabe übergeben werden. Den genauen Ablauf der Funktionen kann man auch auf Google Code nachlesen. Hier hat Eugene zwei Beispielscripts eingefügt. Und als anschauliches Beispiel für die Verwendung seiner Bibliothek einfach den zeroseven SoundVisualizer anschauen. Hier ist im letzten Reiter eine weitere Checkbox, in der man angeben kann, ob die Daten sortiert (FFT) oder unsortiert (RAW) verwendet werden sollen.</p>
<p>Links:</p>
<ul>
<li>
Vergleich computeSpectrum und extract: <a href="http://labs.zeroseven.de/development/actionscript-development/soundmixer-computespectrum-vs-sound-extract-2/">http://labs.zeroseven.de/development/actionscript-development/soundmixer-computespectrum-vs-sound-extract-2/</a>
</li>
<li>
Wikipediaeintrag zur Schnellen Fourier-Transformation: <a href="http://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation">http://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation</a>
</li>
<li>
Wikipediaeintrag zur Diskreten Fourier-Transformation: <a href="http://de.wikipedia.org/wiki/Diskrete_Fourier-Transformation">http://de.wikipedia.org/wiki/Diskrete_Fourier-Transformation</a>
</li>
<li>
Eugenes Blog zu ASFFT: <a href="http://blog.inspirit.ru/?p=405">http://blog.inspirit.ru/?p=405</a>
</li>
<li>
Eugenes Blog zu Update von ASFFT: <a href="http://blog.inspirit.ru/?p=410">http://blog.inspirit.ru/?p=410</a>
</li>
<li>
Google Code Seite: <a href="http://code.google.com/p/in-spirit/wiki/ASFFT">http://code.google.com/p/in-spirit/wiki/ASFFT</a>
</li>
<li>
Beispiel zur Verwendung von ASFFT: <a href="http://visualizer.zeroseven.de">http://visualizer.zeroseven.de</a>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/actionscript-development/schnelle-fourier-transformation-1d-2d-fur-actionscript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Starten von Systemprozessen in AIR 2.0</title>
		<link>http://labs.zeroseven.de/development/air/starten-von-systemprozessen-in-air-2-0/</link>
		<comments>http://labs.zeroseven.de/development/air/starten-von-systemprozessen-in-air-2-0/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 07:01:26 +0000</pubDate>
		<dc:creator>juergenm</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[ActionScript]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[AIR 2.0]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[NativeProcess]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1504</guid>
		<description><![CDATA[Eine der Neuerungen von AIR 2.0 ist die NativeProcess API, die es ermöglicht mit Systemprozessen zu interagieren und somit Systemanwendungen zu starten und zu beenden. Diese API bietet eine Menge von neuen Möglichkeiten für AIR-Applikationen. In diesem Blogeintrag werde ich zeigen wie aus AIR Firefox gestartet werden kann.

Native Installers
AIR Applikationen können nicht nur als *.air Dateien exportiert und weitergegeben werden, sondern auch als &#8220;Native Installer&#8221; also *.exe für Windows bzw. *.dmg für MacOS. Dies ist die Voraussetzung um mit Systemprozessen kommunizieren zu können. Ein weiterer Vorteil von Native Installers ist, dass die AIR Runtime mit der Applikation installiert wird, falls  [...]]]></description>
			<content:encoded><![CDATA[<p>Eine der Neuerungen von AIR 2.0 ist die NativeProcess API, die es ermöglicht mit Systemprozessen zu interagieren und somit Systemanwendungen zu starten und zu beenden. Diese API bietet eine Menge von neuen Möglichkeiten für AIR-Applikationen. In diesem Blogeintrag werde ich zeigen wie aus AIR Firefox gestartet werden kann.</p>
<p><span id="more-1504"></span></p>
<p><strong>Native Installers</strong><br />
AIR Applikationen können nicht nur als *.air Dateien exportiert und weitergegeben werden, sondern auch als &#8220;Native Installer&#8221; also *.exe für Windows bzw. *.dmg für MacOS. Dies ist die Voraussetzung um mit Systemprozessen kommunizieren zu können. Ein weiterer Vorteil von Native Installers ist, dass die AIR Runtime mit der Applikation installiert wird, falls diese noch nicht auf dem System des Benutzers verfügbar ist und eine Internetverbindung besteht. Falls der Benutzer nicht mir dem Internet verbunden ist, kommt wenigstens eine Meldung man solle sich doch bitte die aktuelle AIR runtime von der Adobe Seite herunterladen. Weiterhin gibt es die Möglichkeit die AIR Runtime zum Beispiel auf einer CD/DVD mitzuliefern, dafür ist allerdings eine <a href="http://www.adobe.com/products/air/runtime_distribution1.html#license">Re-Destributable Lizenz</a> von Adobe nötig, <a href="http://www.mikechambers.com/blog/2008/04/07/redistributing-the-adobe-air-runtime-installer/">siehe Blogeintrag von Mike Chambers</a>.</p>
<p><strong>Erstellen eines Native Installers</strong><br />
Da man aus FlashBuilder standardmäßig nur *.air Files exportieren kann müssen hier auf die Konsole zurückgreifen. Das Packagingprogramm hierfür heißt ADT und befindet sich im bin Ordner des AIR sdks. Es gibt grundsätzlich zwei verschiedene Arten Native Installers zu erstellen: </p>
<ul>
<li>aus dem Sourcecode eines AIR Projekts</li>
<li>aus einer bereits bestehenden AIR Datei</li>
</ul>
<p>Dieser Aufruf erstellt eine Anwendung mit Native Installer für MacOS aus den Quelldaten der Applikation.</p>
<pre>adt -package -storetype pkcs12 -keystore myCert.pfx -target native myApp.dmg main-app.xml main.swf</pre>
<p>Folgender Aufruf erstellt eine Anwendung mit Native Installer für MacOS aus einer AIR Datei</p>
<pre>adt -package -target native myApp.dmg myApp.air</pre>
<p>Um einen Native Installer für Windows zu erstellen wird einfach anstatt myApp.dmg myApp.exe verwendet. Einschränkung: Native Installers können immer nur für das Betriebssystem erstellt werden das gerade genutzt wird. Will mal also ein *.exe für Windows erstellen muss ADT unter Windows aufgerufen werden.</p>
<p>Mehr Infos dazu auf der <a href="http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html">Adobe Hilfe</a>.</p>
<p><strong>NativeProcess API</strong><br />
Die <a href="http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/desktop/NativeProcess.html">NativeProcess</a> Klasse bietet die Möglichkeit mit einem Systemprozess zu interagieren. Über die Funktionen <code>start(info:NativeProcessStartupInfo):void</code> und <code>exit(force:Boolean  = false):void</code> werden Prozesse gestartet und beendet. Über die Eigenschaften <code>running</code>, <code>standardError</code>, <code>standardInput</code> und <code>standardOutput</code> kann der Prozess überwacht werden.</p>
<p>Der Funktion <code>start()</code> wird eine <a href="http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/desktop/NativeProcessStartupInfo.html">NativeProcessStartupInfo</a> Objekt übergeben das Informationen zum Prozess enthält der gestartet werden soll. Die Eigenschaft <code>executable</code> muss eine Referenz auf die Datei enthalten die gestartet werden soll und über <code>arguments</code> kann eine Vector von Strings<br />
mit Parametern angegeben werden.</p>
<pre>var file = new File('/Applications/Firefox.app/Contents/MacOS/firefox-bin');
var nativeProcessStartupInfo:NativeProcessStartupInfo = new NativeProcessStartupInfo();
nativeProcessStartupInfo.executable = file;
var process:NativeProcess = new NativeProcess();
process.start(nativeProcessStartupInfo);</pre>
<p>Dies ist nur ein kleines Beispiel das natürlich beliebig erweiter werden kann. Schön ist auf jeden Fall, dass sich dadurch ganz neue Möglichkeiten für AIR Applikationen auftun. Der große Nachteil von AIR bleibt aber weiterhin, dass die AIR Runtime auf jeden Fall installiert werden muss, es ist also zum Beispiel kein Starten von CD möglich.</p>
<p>Links und weitere Beispiele:</p>
<ul>
<li><a href="http://www.adobe.com/devnet/air/flex/quickstart/interacting_with_native_process.html">Adobe DevNet: Interacting with a native process</a></li>
<li><a href="http://help.adobe.com/en_US/air/build/WS789ea67d3e73a8b22388411123785d839c-8000.html">Adobe Help: Packaging an AIR application in a native installer</a></li>
<li><a href="http://www.mikechambers.com/blog/2008/04/07/redistributing-the-adobe-air-runtime-installer/">Mike Chambers: Redistributing the Adobe AIR Runtime Installer</a></li>
<li><a href="http://www.adobe.com/products/air/runtime_distribution1.html#license">Adobe: Distribute Adobe® AIR® Runtime</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/air/starten-von-systemprozessen-in-air-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VEYTON-Hooks: Shop oder Adminbereich?</title>
		<link>http://labs.zeroseven.de/development/online-shops/veyton-hooks-shop-oder-adminbereich/</link>
		<comments>http://labs.zeroseven.de/development/online-shops/veyton-hooks-shop-oder-adminbereich/#comments</comments>
		<pubDate>Fri, 11 Jun 2010 09:47:09 +0000</pubDate>
		<dc:creator>albrechtk</dc:creator>
				<category><![CDATA[Online-Shops]]></category>

		<guid isPermaLink="false">http://labs.zeroseven.de/?p=1500</guid>
		<description><![CDATA[Der Online-Shop VEYTON lässt sich durch das Hook-Konzept wunderbar erweitern. Doch die Hooks sind nicht sauber in Frontend- und Backend-Hooks getrennt. Einige Hooks werden sowohl vom Shop, als auch vom Adminbereich benutzt. Will man unterschiedliche Funktionen für Shop und Adminbereich realisieren, lässt sich ganz leicht im PHP-Script überprüfen, von wo aus der Hook aufgerufen wird.

Die PHP-Konstante USER_POSITION wird vom Adminbereich auf den Wert admin gesetzt und vom Shop auf den Wert store. Sollen also Aktionen entweder nur im Shop oder nur im Adminbereich ausgeführt werden, lässt sich das mit einer einfachen if-Anweisung regeln.
if(USER_POSITION == 'admin') {
	// do some action
}

if(USER_POSITION ==  [...]]]></description>
			<content:encoded><![CDATA[<p>Der Online-Shop VEYTON lässt sich durch das Hook-Konzept wunderbar erweitern. Doch die Hooks sind nicht sauber in Frontend- und Backend-Hooks getrennt. Einige Hooks werden sowohl vom Shop, als auch vom Adminbereich benutzt. Will man unterschiedliche Funktionen für Shop und Adminbereich realisieren, lässt sich ganz leicht im PHP-Script überprüfen, von wo aus der Hook aufgerufen wird.</p>
<p><span id="more-1500"></span></p>
<p>Die PHP-Konstante <code>USER_POSITION</code> wird vom Adminbereich auf den Wert <code>admin</code> gesetzt und vom Shop auf den Wert <code>store</code>. Sollen also Aktionen entweder nur im Shop oder nur im Adminbereich ausgeführt werden, lässt sich das mit einer einfachen if-Anweisung regeln.</p>
<pre>if(USER_POSITION == 'admin') {
	// do some action
}

if(USER_POSITION == 'store') {
	// do some action
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://labs.zeroseven.de/development/online-shops/veyton-hooks-shop-oder-adminbereich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
