<?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/"
	>

<channel>
	<title>derWebsider.de - Insidernews und Webtipps</title>
	<atom:link href="http://derwebsider.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://derwebsider.de</link>
	<description>Ein weiteres tolles WordPress-Blog</description>
	<pubDate>Mon, 31 May 2010 17:21:57 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>AdSense immernoch effektivstes Werbemittel</title>
		<link>http://derwebsider.de/2010/01/adsense-immernoch-effektivstes-werbemittel/</link>
		<comments>http://derwebsider.de/2010/01/adsense-immernoch-effektivstes-werbemittel/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 20:19:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1176</guid>
		<description><![CDATA[Ob Zanox, AffiliNet oder adButler. AdSense ist aufgrund seiner enormen Reichweite immernoch das effektivste Werbemittel. In Bezug auf Abhängigkeit gegenüber Google ist es zwar schade, auf die Einnahmen verzichten will man jedoch selbstverständlich nicht. Nicht nur ich merkte das bei streamdrag, sondern hörte auch von vielen anderen Website-Betreibern, dass es, bis auf einige Ausnahmen, auch [...]]]></description>
			<content:encoded><![CDATA[<p>Ob Zanox, AffiliNet oder adButler. AdSense ist aufgrund seiner enormen Reichweite immernoch das effektivste Werbemittel. In Bezug auf Abhängigkeit gegenüber Google ist es zwar schade, auf die Einnahmen verzichten will man jedoch selbstverständlich nicht. Nicht nur ich merkte das bei streamdrag, sondern hörte auch von vielen anderen Website-Betreibern, dass es, bis auf einige Ausnahmen, auch heute immernoch keine Alternative gibt. Tatsächlich effektiver sind Werbemittel, die eine ganz spezielle Zielgruppe haben, bspw. Handyangebote auf einem Prepaid-Blog. Doch selbst bei streamdrag wirkt die Spezialisierung gering, was vermutlich am Layout liegt. AdSense passt sich am besten an und bringt nach wie vor die meisten Klicks - schade eigentlich.</p>
]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2010/01/adsense-immernoch-effektivstes-werbemittel/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CSS Compressor - PHP-Klasse</title>
		<link>http://derwebsider.de/2009/12/css-compressor-php-klasse/</link>
		<comments>http://derwebsider.de/2009/12/css-compressor-php-klasse/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 19:45:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entwicklung]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1172</guid>
		<description><![CDATA[Für momentane Arbeiten an einem Projekt habe ich gerade eine PHP-klasse erstellt, die schnell, einfach und effektiv CSS-Dateien komprimiert. Als kleines Weihnachtsgeschenk stell ich sie hier für alle frei zur Verfügung, ist ja auch kein Hexenwerk. Viel Spaß damit, Nutzung ist uneingeschränkt.

final class CSSCompressor &#123;
	public static function compressFile&#40;$filepath,$removeComments=false&#41;&#123;
		if&#40;file_exists&#40;$filepath&#41;&#41;&#123;
			$fgets = file_get_contents&#40;$filepath&#41;;
			return self::compressContent&#40;$fgets,$removeComments&#41;;
		&#125;
	&#125;
&#160;
	public static function compressContent&#40;$content,$removeComments=false&#41;&#123;
		$fgc = [...]]]></description>
			<content:encoded><![CDATA[<p>Für momentane Arbeiten an einem Projekt habe ich gerade eine PHP-klasse erstellt, die schnell, einfach und effektiv CSS-Dateien komprimiert. Als kleines Weihnachtsgeschenk stell ich sie hier für alle frei zur Verfügung, ist ja auch kein Hexenwerk. Viel Spaß damit, Nutzung ist uneingeschränkt.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">final <span style="color: #000000; font-weight: bold;">class</span> CSSCompressor <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #990000;">static</span> <span style="color: #000000; font-weight: bold;">function</span> compressFile<span style="color: #009900;">&#40;</span><span style="color: #000088;">$filepath</span><span style="color: #339933;">,</span><span style="color: #000088;">$removeComments</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filepath</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$fgets</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$filepath</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000000; font-weight: bold;">self</span><span style="color: #339933;">::</span><span style="color: #004000;">compressContent</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fgets</span><span style="color: #339933;">,</span><span style="color: #000088;">$removeComments</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #990000;">static</span> <span style="color: #000000; font-weight: bold;">function</span> compressContent<span style="color: #009900;">&#40;</span><span style="color: #000088;">$content</span><span style="color: #339933;">,</span><span style="color: #000088;">$removeComments</span><span style="color: #339933;">=</span><span style="color: #000000; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$fgc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'  '</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$content</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$fgc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'; '</span><span style="color: #339933;">,</span><span style="color: #0000ff;">';'</span><span style="color: #339933;">,</span><span style="color: #000088;">$fgc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$fgc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'}'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;}<span style="color: #000099; font-weight: bold;">\r</span><span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$fgc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$removeComments</span><span style="color: #339933;">===</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$fgc</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'/(\/\*.*\*\/)/mi'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span><span style="color: #000088;">$fgc</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$fgc</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/12/css-compressor-php-klasse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>nanum CMS - Screenshots</title>
		<link>http://derwebsider.de/2009/12/nanum-cms-screenshots/</link>
		<comments>http://derwebsider.de/2009/12/nanum-cms-screenshots/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 15:07:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[Entwicklung]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1155</guid>
		<description><![CDATA[Nach den vielen Anfragen wegen des nanum CMS habe ich heute mal ein paar Screenshots gemacht. Es sind nicht alle Funktionen gezeigt, aber die allermeisten. Viel Spaß beim Anschauen.
Die Preise für die Nutzung des CMS variieren, für Schüler gibt es aber Ermäßigungen. Wer sich mal ein Angebot einholen will, kann mir einfach ne Mail schreiben.
Bitte [...]]]></description>
			<content:encoded><![CDATA[<p>Nach den vielen Anfragen wegen des nanum CMS habe ich heute mal ein paar Screenshots gemacht. Es sind nicht alle Funktionen gezeigt, aber die allermeisten. Viel Spaß beim Anschauen.</p>
<p>Die Preise für die Nutzung des CMS variieren, für Schüler gibt es aber Ermäßigungen. Wer sich mal ein Angebot einholen will, kann mir einfach ne Mail schreiben.<br />
Bitte entschuldigt diese doofen Rahmen, die man teilweise sieht, habe es verpennt in Photoshop auszuschalten, aber es sollte ja nun weniger stören ;).</p>
<p>Die Bilder:<br />

<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/benutzerc/' title='Neuen Benutzer erstellen'><img src="http://derwebsider.de/wp-content/uploads/2009/12/benutzerc-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/benutzerv/' title='Benutzerverwaltung'><img src="http://derwebsider.de/wp-content/uploads/2009/12/benutzerv-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/bilder/' title='Bilderverwaltung / Upload'><img src="http://derwebsider.de/wp-content/uploads/2009/12/bilder-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/editor1/' title='Der Editor'><img src="http://derwebsider.de/wp-content/uploads/2009/12/editor1-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/editor2/' title='Der Editor'><img src="http://derwebsider.de/wp-content/uploads/2009/12/editor2-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/editor_word/' title='editor_word'><img src="http://derwebsider.de/wp-content/uploads/2009/12/editor_word-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/inhaltc/' title='Inhalte erstellen'><img src="http://derwebsider.de/wp-content/uploads/2009/12/inhaltc-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/inhaltev/' title='Inhalte / Übersicht'><img src="http://derwebsider.de/wp-content/uploads/2009/12/inhaltev-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/plugins/' title='Pluginverwaltung'><img src="http://derwebsider.de/wp-content/uploads/2009/12/plugins-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/updatesv/' title='Updatesystem'><img src="http://derwebsider.de/wp-content/uploads/2009/12/updatesv-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
<a href='http://derwebsider.de/2009/12/nanum-cms-screenshots/uploads/' title='Dateiuploads'><img src="http://derwebsider.de/wp-content/uploads/2009/12/uploads-150x150.jpg" width="150" height="150" class="attachment-thumbnail" alt="" /></a>
</p>
]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/12/nanum-cms-screenshots/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter Share Button</title>
		<link>http://derwebsider.de/2009/12/twitter-share-button/</link>
		<comments>http://derwebsider.de/2009/12/twitter-share-button/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 10:23:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Design]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1141</guid>
		<description><![CDATA[Für ein geheimes Update, das die nächsten Tage zu StreamDrag kommt (nein, noch kein Komplettupdate) habe ich einen hübschen Twitter Button erstellt, der von Form und Stil sich auch sehr gut dem Facebook-Share-Button anpasst.
Nutzungsbedingung:
Der Button darf sowohl privat, als auch kommerziell frei genutzt werden. Bedingung ist jedoch ein Backlink zu diesem Blog oder diesem Artikel. [...]]]></description>
			<content:encoded><![CDATA[<p>Für ein geheimes Update, das die nächsten Tage zu <a href="http://streamdrag.com/"><strong>StreamDrag </strong></a>kommt (nein, noch kein Komplettupdate) habe ich einen hübschen<strong> Twitter Button</strong> erstellt, der von Form und Stil sich auch sehr gut dem <strong>Facebook-Share</strong>-Button anpasst.</p>
<p>Nutzungsbedingung:</p>
<blockquote><p>Der Button darf sowohl <strong>privat</strong>, als auch <strong>kommerziell </strong>frei genutzt werden. Bedingung ist jedoch ein <strong>Backlink </strong>zu diesem Blog oder diesem Artikel. Diese Nutzungsbedingung gilt sowohl für das Original, als auch die PSD.</p></blockquote>
<p>Hier der Button</p>
<p><img class="alignleft size-full wp-image-1144" title="Twitter Share Button - tweet it!" src="http://derwebsider.de/wp-content/uploads/2009/12/tweet_button.gif" alt="Twitter Share Button - tweet it!" width="83" height="19" /> <br style="clear:both;" /></p>
<p><a href="http://derwebsider.de/wp-content/uploads/2009/12/tweet-button.psd">PSD-Datei Twitter Share Button</a></p>
]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/12/twitter-share-button/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JavaScript im Hintergrund ausführen - Web Worker</title>
		<link>http://derwebsider.de/2009/12/background-javascript-worker/</link>
		<comments>http://derwebsider.de/2009/12/background-javascript-worker/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 22:31:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entwicklung]]></category>

		<category><![CDATA[Insider]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1112</guid>
		<description><![CDATA[Workers, genauer noch Web Workers heißen sie und sind eine neue Technologie in Sachen JavaScript. Eine Implementierung seitens IE ist noch nicht vorhanden, ist aber früher oder später zu erwarten. Der Firefox beherrscht sie ab Version 3.5, der Seamonkey ab Version 2. Doch was ist ein Worker und wie funktioniert er?
Der Worker an sich ist [...]]]></description>
			<content:encoded><![CDATA[<p>Workers, genauer noch Web Workers heißen sie und sind eine neue Technologie in Sachen <strong>JavaScript</strong>. Eine Implementierung seitens IE ist noch nicht vorhanden, ist aber früher oder später zu erwarten. Der Firefox beherrscht sie ab Version 3.5, der Seamonkey ab Version 2. Doch was ist ein <strong>Worker</strong> und wie funktioniert er?</p>
<p>Der <strong>Worker </strong>an sich ist eine JavaScript-Klasse. Der Constructor lädt eine JavaScript-Datei im Hintergrund, wie folgt:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> myWorker <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Worker<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src/javascript-file.js'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Das tolle am <strong>Worker </strong>ist, dass er einfach im Hintergrund geladen werden kann und dort dann ausgeführt wird. Der Sinn eines Workers besteht also darin Hintergrundaktionen zu verarbeiten. Der effektive Sinn bzw. das Ziel von Workern ist aber eine bessere Strukturierung von Code. Während der Worker bspw. Berechnungen durchführt oder andere Algorithmen laufen lässt, bearbeiten die ganz normal implementierten JavaScript-Dateien bspw. den DOM oder Werten Rückgaben des Workers aus.</p>
<p>Wichtig zu wissen: Komplexe mathematische Berechnungen blockieren <strong>nicht</strong> mehr die Website wenn Sie als <strong>Worker </strong>ausgeführt werden.</p>
<p>Zum Verständnis des Prinzips habe ich ein kleines Schema erstellt:<br />
<img src="http://derwebsider.de/wp-content/uploads/2009/12/javascript-worker.png" alt="JavaScript Worker Schema" title="JavaScript Worker Schema" width="471" height="278" class="alignleft size-full wp-image-1125" /></p>
<p><br style="clear:both;" /><br />
Das heißt, das &#8220;Standard-JavaScript&#8221; und die <strong>Worker </strong>kommunizieren untereinander - und zwar mit einer ganz bestimmten Schnittstelle.<br />
Mit <strong>onmessage</strong> definieren wir die Funktion die aufgerufen wird, wenn der Worker mit uns reden will, der Worker also etwas sendet.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> myWorker <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Worker<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'src/javascript-file.js'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
myWorker.<span style="color: #660066;">onmessage</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Worker meldet: '</span><span style="color: #339933;">+</span>event.<span style="color: #660066;">data</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Doch wie reden wir mit dem Worker? Schließlich wollen wir ihm Aufgaben geben. Das geschieht noch einfacher als das Empfangen:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">myWorker.<span style="color: #660066;">postMessage</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Rede mit mir!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Ok, nun kommunizieren wir mit dem Worker. Doch woher weiß der Worker selbst, dass wir mit ihm reden? Die onmessage-Funktion gibt es hierzu zweimal. Einmal im eigentlichen Script (siehe oben) um Daten zu empfangen. Desweiteren aber natürlich auch im Worker (javascript-file.js) selbst:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">onmessage <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">data</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'Rede mit mir!'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    postMessage<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'Hier bin ich, der Worker persönlich!'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Natürlich kann der Worker auch Fehlerbehandlung. Ich persönlich wollte euch das Thema kurz und bündig näher bringen, für mehr Informationen dienen die Links unten. Der Worker ist an sich eine tolle neue Implementierung in JavaScript, funktioniert aber bisher nur in Firefox, Safari und ähnlichen neuen/modernen Browsern (Webkit, Gecko). </p>
<p>Für mehr Informationen über den Worker und seine Möglichkeiten einfach mal folgende Quellen anklicken:<br />
<a href="https://developer.mozilla.org/En/Using_web_workers">https://developer.mozilla.org/En/Using_web_workers</a><br />
<a href="http://ejohn.org/blog/web-workers/">http://ejohn.org/blog/web-workers/</a><br />
<a href="http://www.phphatesme.com/blog/webentwicklung/arbeitstier-browser-web-workers/">http://www.phphatesme.com/blog/webentwicklung/arbeitstier-browser-web-workers/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/12/background-javascript-worker/feed/</wfw:commentRss>
		</item>
		<item>
		<title>ISPEM Verschlüsselung - Aktualisierung, Sicherheitsupdate</title>
		<link>http://derwebsider.de/2009/11/ispem-verschlusselung-aktualisierung-sicherheitsupdate/</link>
		<comments>http://derwebsider.de/2009/11/ispem-verschlusselung-aktualisierung-sicherheitsupdate/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 20:15:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entwicklung]]></category>

		<category><![CDATA[Insider]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1099</guid>
		<description><![CDATA[Ich habe bereits einmal über die ISPEM-Methode zur Verschlüsselung von Passwörtern berichtet. Dank einem aufmerksamen Leser wurde ich auf ein kritisches Leck aufmerksam gemacht. Dies fiel mir nicht auf, da ich in der Zwischenzeit bereits eine verbesserte ISPEM-Verschlüsselung programmiert und in meine Projekte implementiert hatte. 
Wer irgendwo ISPEM implementiert hat muss dringend das Update auf [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe bereits einmal über die ISPEM-Methode zur Verschlüsselung von Passwörtern berichtet. Dank einem aufmerksamen Leser wurde ich auf ein kritisches Leck aufmerksam gemacht. Dies fiel mir nicht auf, da ich in der Zwischenzeit bereits eine verbesserte ISPEM-Verschlüsselung programmiert und in meine Projekte implementiert hatte. </p>
<p><strong>Wer irgendwo ISPEM implementiert hat muss dringend das Update auf das neue ISPEM durchführen (siehe Code-Abschnitt unten)</strong></p>
<p>Was ISPEM ist und wodurch es sich auszeichnet findet ihr im Beitrag <a href="http://derwebsider.de/2009/07/passwort-verschlusselung-ispem/">ISPEM-Verschlüsselung</a>.</p>
<p>Hier das sichere Script:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ISPEM_FCONST_SPL'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'your_unknown_value1'</span><span style="color: #339933;">,</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'ISPEM_SCONST_SPL'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'your_unknown_value2'</span><span style="color: #339933;">,</span><span style="color: #000000; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> ISPEM_encrypt<span style="color: #009900;">&#40;</span><span style="color: #000088;">$clear_password</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
   <span style="color: #000088;">$cr</span>	<span style="color: #339933;">=</span> <span style="color: #990000;">str_rot13</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$clear_password</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$cr</span>  <span style="color: #339933;">=</span> <span style="color: #990000;">base64_encode</span><span style="color: #009900;">&#40;</span>ISPEM_FCONST_SPL<span style="color: #339933;">.</span><span style="color: #0000ff;">'!'</span><span style="color: #339933;">.</span><span style="color: #000088;">$cr</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000088;">$cr</span>  <span style="color: #339933;">=</span> <span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'::/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$clear_password</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/::'</span><span style="color: #339933;">.</span>ISPEM_SCONST_SPL<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">13</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cr</span><span style="color: #339933;">.</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$clear_password</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
   <span style="color: #b1b100;">return</span> <span style="color: #000088;">$cr</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">#liefert 45-Charakter-String, sehr sicher</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/11/ispem-verschlusselung-aktualisierung-sicherheitsupdate/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mozilla Prism - doch kein AIR-Konkurrent</title>
		<link>http://derwebsider.de/2009/11/mozilla-prism-doch-kein-air-konkurrent/</link>
		<comments>http://derwebsider.de/2009/11/mozilla-prism-doch-kein-air-konkurrent/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 16:19:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entwicklung]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1085</guid>
		<description><![CDATA[Die Tage wurde es mal wieder Zeit zu schauen, was Mozilla so arbeitet, schließlich werden sie dafür bezahlt (ja auch Open-Source-Entwickler müssen nicht auf der Straße leben). Viel neues gabs nicht, bis auf eine neuere Version von Prism, das mittlerweile nahtlos in Firefox integriert werden kann, betriebssystemunabhängig. Vor einigen Monaten übte ich Kritik an Prism, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1088" style="margin:0 15px 5px 0;" title="Prism Mozilla Firefox Extension" src="http://derwebsider.de/wp-content/uploads/2009/11/logo_prism.png" alt="Prism Mozilla Firefox Extension" width="187" height="90" />Die Tage wurde es mal wieder Zeit zu schauen, was Mozilla so arbeitet, schließlich werden sie dafür bezahlt (ja auch Open-Source-Entwickler müssen nicht auf der Straße leben). Viel neues gabs nicht, bis auf eine neuere Version von <a title="Mozilla Prism" href="http://prism.mozilla.com/" target="_blank"><strong>Prism</strong></a>, das mittlerweile nahtlos in Firefox integriert werden kann, betriebssystemunabhängig. Vor einigen Monaten übte ich Kritik an Prism, als ein sehr schlechter <strong>AIR</strong>-Abklatsch, doch mittlerweile kristallisiert sich heraus, dass Prism das gar nicht ist und gar nicht sein will.</p>
<p>Das Prinzip ist grundsätzlich dasselbe: <strong>AIR </strong>und <strong>Prism </strong>ermöglichen Webapplikationen direkt vom Desktop aus bzw. im Desktop zu starten. Doch es gibt einen wesentlichen Unterschied bei den beiden Plattformen:  <strong>Adobe&#8217;s AIR</strong> ist sehr sehr mächtig und lässt Entwickler tatsächlich echte, eigenständige Applikationen erstellen, die aufs OS zugreifen kann. Man kann solch eine Applikation dann runterladen und installieren ähnlich wie wenn man unter Windows mit einer .exe oder unter Linux mit einer .deb installiert.</p>
<p>Prism geht jedoch einen anderen Weg: Alles was per Browser zugänglich ist kann zur Applikation gemacht werden. Das Prinzip ist super-simpel: Eine Art superabgespeckter Firefox läuft in Prism. Ist man nun auf einer Seite wie bspw. <strong>Google Mail</strong>, fügt man diese als Applikation einfach in Prism hinzu - nun kann man Google Mail direkt mit einer Verknüpfung auf dem Desktop starten. Dabei wird ein Prism-Fenster geöffnet in dem Google Mail läuft (genau wie im Browser auch). Der Riesenvorteil: Keine Browserabhängigkeit und die erweiterte Schnittstelle für Entwickler in Prism.</p>
<p>Wenn ihr nun Google Mail laufen habt in Prism, gerade surft und den Firefox schließt, ist euer Prism-Fenster trotzdem noch da. Prism ist also eine Art Browser für Dinge die ständig da sein sollen.</p>
<p>Es ist etwas schwer zu erklären, aber umso leichter zu bedienen, wenn man es heruntergeladen hat (am besten als Firefox-Erweiterung). Probiert es doch mal aus. Ich persönlich nutze es bspw. für Streamdrag und kann damit die ganze Zeit per SD Musik hören, auch wenn der Browser zu ist ;).</p>
]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/11/mozilla-prism-doch-kein-air-konkurrent/feed/</wfw:commentRss>
		</item>
		<item>
		<title>nanum Sensory - ein CMS das überzeugt</title>
		<link>http://derwebsider.de/2009/11/nanum-sensory-ein-cms-das-uberzeugt/</link>
		<comments>http://derwebsider.de/2009/11/nanum-sensory-ein-cms-das-uberzeugt/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 10:36:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Entwicklung]]></category>

		<category><![CDATA[Insider]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1070</guid>
		<description><![CDATA[Seit vielen Monaten schon arbeite ich an an einem neuen innovativen CM-System für kleine bis mittlere Websites. Zum Einsatz kommt dabei mein eigenes PHP-Framework Senso (daher auch nanum Sensory).
Das CMS wurde mittlerweile fertiggestellt und gilt nun als final in der Version 1.05.
Folgende Grundfunktionen sind im CMS verankert:

Inhalte einfach verwalten
News- / Blog-System
Bildergalerien erstellen und verwalten

Weitere Funktionen [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-1074" style="margin: 4px;" title="nanum Sensory Loginfenster" src="http://derwebsider.de/wp-content/uploads/2009/11/nanum-login.png" alt="nanum Sensory Loginfenster" width="150" height="117" />Seit vielen Monaten schon arbeite ich an an einem neuen innovativen CM-System für kleine bis mittlere Websites. Zum Einsatz kommt dabei mein eigenes PHP-Framework Senso (daher auch <strong>nanum Sensory</strong>).</p>
<p>Das <strong>CMS </strong>wurde mittlerweile fertiggestellt und gilt nun als <strong>final</strong> in der Version 1.05.</p>
<p>Folgende Grundfunktionen sind im CMS verankert:</p>
<ul>
<li>Inhalte einfach verwalten</li>
<li>News- / Blog-System</li>
<li>Bildergalerien erstellen und verwalten</li>
</ul>
<p>Weitere Funktionen / Eigenschaften des Systems sind:</p>
<ul>
<li>sehr  einfaches, intuitives Interface</li>
<li>stark <strong>AJAX</strong>-orientiertes System</li>
<li><strong>Drag&#8217;n'Drop</strong> - Systeme</li>
<li>Profileinstellungen / Themaauswahl</li>
<li>Benutzerverwaltung (für Admins)</li>
<li><strong>Dateiuploads </strong>mit Typ-Erkennung</li>
<li>selbstauflösendes <strong>Update-System</strong> um das System aktuell zu halten</li>
<li><strong>Pluginsystem</strong> für Entwickler: Filter- und Standalone-Plugins können nathlos integriert werden</li>
</ul>
<p>Das <strong>CMS </strong>baut sehr stark auf Sicherheit auf. Neue Sicherheitssysteme verhindern <strong>Datenklau </strong>(Loginklau) oder <strong>Bruteforce</strong>-Logins. Nach 5 falschen Login-Versuchen gibt es eine Zeit-Sperre für den entsprechenden Nutzer. Das System ist sehr gut geeignet für private Seiten und mittlere Firmenwebsites.</p>
<p>Das <strong>nanum CMS </strong>wird wie auch schon das alte <strong>CM-System</strong> nur intern vertrieben. Bei Interesse reicht eine E-Mail an mich, dann können wir über Möglichkeiten der Nutzung reden. <span style="text-decoration: underline;">Ich würde mich freuen</span>.</p>
]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/11/nanum-sensory-ein-cms-das-uberzeugt/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SchülerVZ Selbstmordskandal - das Dunkel wird zum Spotlight</title>
		<link>http://derwebsider.de/2009/11/schulervz-selbstmordskandal-das-dunkel-wird-zum-spotlight/</link>
		<comments>http://derwebsider.de/2009/11/schulervz-selbstmordskandal-das-dunkel-wird-zum-spotlight/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 11:17:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1063</guid>
		<description><![CDATA[Zum Thema: SchülerVZ - Crawler-Programmierer begeht Selbstmord in der JVA
Endlich. Viele haben meinen Beitrag und meine Meinung und Gedanken zum Thema runtergezogen und als absurd belächelt mit Worten ähnlich: Er hat die Leute dort erpresst und das ist nun mal eine Straftat und dafür gehört er eingesperrt.
Doch nun scheinen sich genau die Dinge zu bestätigen, [...]]]></description>
			<content:encoded><![CDATA[<p>Zum Thema: <a class="h1" rel="bookmark" href="../2009/11/schulervz-crawler-programmierer-begeht-selbstmord-in-der-jva/">SchülerVZ - Crawler-Programmierer begeht Selbstmord in der JVA</a></p>
<p>Endlich. Viele haben meinen Beitrag und meine Meinung und Gedanken zum Thema runtergezogen und als absurd belächelt mit Worten ähnlich: Er hat die Leute dort erpresst und das ist nun mal eine Straftat und dafür gehört er eingesperrt.</p>
<p>Doch nun scheinen sich genau die Dinge zu bestätigen, die ich vermutete. SchülerVZ habe eindeutige, wenn auch zahlenlose Angebote gemacht gegenüber dem vermeintlichen Hacker, der in Wahrheit nur öffentlich zugängliche Daten und eben keine geheimen Daten mithilfe seines Crawlers gesammelt habe.<br />
Liegt hier eine Verschwörung vor? Ich weiß es nicht, ich kann es nicht wissen. Meine persönliche Meinung dazu äußere ich besser nicht weiter, man darf ja heutzutage eh nichts mehr sagen, wie ich bereits schmerzlich erfahren musste.</p>
<p>In jedem Fall sind die VZNetzwerke für mich persönlich das Allerletzte und ich werde alles tun um zu vermeiden jemals wieder mit jenen in Kontakt zu kommen.</p>
<p>Aus Abmahnangst verweise ich weiter nur auf folgende Quelle:  <a href="http://www.heise.de/newsticker/meldung/Strafanzeigen-gegen-SchuelerVZ-Mitarbeiter-859649.html" target="_blank">Strafanzeige gegen SchülerVZ-Mitarbeiter (heise.de)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/11/schulervz-selbstmordskandal-das-dunkel-wird-zum-spotlight/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SchülerVZ - Crawler-Programmierer begeht Selbstmord in der JVA</title>
		<link>http://derwebsider.de/2009/11/schulervz-crawler-programmierer-begeht-selbstmord-in-der-jva/</link>
		<comments>http://derwebsider.de/2009/11/schulervz-crawler-programmierer-begeht-selbstmord-in-der-jva/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 13:04:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Allgemein]]></category>

		<category><![CDATA[Insider]]></category>

		<guid isPermaLink="false">http://derwebsider.de/?p=1049</guid>
		<description><![CDATA[Viele von euch werden es schon wissen, die Nachricht kommt meinerseits so spät, weil ich nicht genau wusste, wie es zu berichten war, ich musste erst Herr über die Lage werden, bevor ich meine Meinung dazu äußere.
Der Programmierer des Crawlers, der Daten sammelte in SchülerVZ (siehe Nachrichten &#8220;Datenskandal bei Schülervz&#8221;) beging in der JVA Selbstmord. [...]]]></description>
			<content:encoded><![CDATA[<p>Viele von euch werden es schon wissen, die Nachricht kommt meinerseits so spät, weil ich nicht genau wusste, wie es zu berichten war, ich musste erst Herr über die Lage werden, bevor ich meine Meinung dazu äußere.</p>
<p>Der Programmierer des Crawlers, der Daten sammelte in <strong>SchülerVZ </strong>(siehe Nachrichten &#8220;Datenskandal bei Schülervz&#8221;) beging in der JVA <strong>Selbstmord</strong>. Vermutlich war er etwas labil und konnte nicht ertragen was ihm gerade widerfährt. Gut, das ist die eine Seite. Aber die Frage ist doch: Wie kann es so weit kommen?</p>
<p>Eine rein objektive Betrachtung stellt die ganze Sache mit subjektivem Empfinden unter ein schlechtes Licht, sowohl für die <strong>Holtzbrinck</strong>-Gruppe (*-VZ) als auch für unseren Rechtsstaat:</p>
<p>Wie es aussieht war als als versierter Programmierer relativ gut möglich Daten bei SchülerVZ auszuspionieren / zu crawlen. Daten, die früher oder später also jeder DAU sammeln konnte (social Hacking, etc.), konnte der verstorbene 20-jährige also etwas schneller sammeln. Normalerweise sind Firmen froh, wenn es dann Hacker gibt, die Lücken herausgeben und zahlen oft bereitwillig dafür, es gibt ja sogar Firmen, die Hacker anstellen und für so etwas bezahlen. War es denn so, dass der Betroffene tatsächlich in die Räume von StudiVZ ging und dort gleich 80.000 Euro gefordert hat? Gab es hier keinen Disput vorher, keine Verhandlungen?. Wie dem auch sei, hat er früher oder später eine Summe von 80.000 Euro gefordert, andernfalls würde er die Daten anderweitig verkaufen. Das ist natürlich kein Kavaliersdelikt, keine Frage, aber dafür gleich in die JVA zu stecken finde ich <span style="text-decoration: underline;">maßlos übertrieben</span>. Der Staat wird immer korrupter, ich fühle mich inklusive Vorratsdatenspeicherung schon die ganze Zeit, als hätte die Stasi ein Revival erlebt.</p>
<p>Wenn Jugendliche jemanden krankenhaus reif schlagen, dann wird das in unserer Gesellschaft als nicht so schlimm wahrgenommen wie wenn jemand ein paar Daten sammelt, die im Internet sowieso für jeden bereitstehen. Das ist doch absurd.</p>
<p>Und: gab es bei dem 20-jährigen etwa Fluchtgefahr oder Ähnliches oder wieso wurde der gleich in die JVA gesteckt? Steht die Holtzbrinck-Gruppe nun in einer Mitschuld am tot? Wenn meine Daten nicht sicher sind, wer ist denn dann dafür verantwortlich? Der Hacker oder Holtzbrinck?</p>
<p><em>Ich boykottiere *-VZ.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://derwebsider.de/2009/11/schulervz-crawler-programmierer-begeht-selbstmord-in-der-jva/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
