<?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>Martin Specht</title>
	<atom:link href="http://www.martin-specht.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.martin-specht.com</link>
	<description>Multimedia-Producer</description>
	<lastBuildDate>Mon, 26 Oct 2009 14:23:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Development: Browserflut</title>
		<link>http://www.martin-specht.com/2009/10/26/development-browserflut/</link>
		<comments>http://www.martin-specht.com/2009/10/26/development-browserflut/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 14:23:44 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=40</guid>
		<description><![CDATA[Webentwickler kennen das Problem: T&#228;glich kommen neue, schnellere, bessere Browser auf den Markt und je nach Anwenderkreis werden diese auch genutzt. Was jedoch des Anwenders Freud, ist des Entwicklers leid, denn nicht jeder nutzt die immer neuen Features neuerer Browserversionen. Mittelst&#228;ndler und Gro&#223;unternehmen rangieren teilweise noch mit dem Internet Explorer 6 im Internet, die Updates sind auch so schnell nicht geplant. Also bleibt Webentwicklern nichts weiter &#252;brig, als seine Systeme abw&#228;rtskompatibel zu produzieren. Doch woher nimmt man altes Softwareequipment, wenn der Standard schon weit fortgeschritten ist?]]></description>
			<content:encoded><![CDATA[<h2>Das Problem</h2>
<p>Webentwickler kennen das Problem: T&#228;glich kommen neue, schnellere, bessere Browser auf den Markt und je nach Anwenderkreis werden diese auch genutzt. Was jedoch des Anwenders Freud, ist des Entwicklers Leid, denn nicht jeder nutzt die immer neuen Features neuerer Browserversionen. Mittelst&#228;ndler und Gro&#223;unternehmen rangieren teilweise noch mit dem Internet Explorer 6 im Internet, die Updates sind auch so schnell nicht geplant. Also bleibt Webentwicklern nichts weiter &#252;brig, als seine Systeme abw&#228;rtskompatibel zu produzieren. Doch woher nimmt man altes Softwareequipment, wenn der Standard schon weit fortgeschritten ist?</p>
<h2>Eine L&#246;sung</h2>
<p>Microsoft hat es hier einmal geschafft, sich durch besonderen Service hervor zu heben, denn der Betriebssystem-Spezialist liefert nicht nur die Virtualisierungssoftware f&#252;r alte Systeme, sondern bringt auch gleich seinen Browser auf verschiedenen Plattformen mit.</p>
<p>Mit Microsoft Virtual PC und den entsprechenden Images stehen einem Internet Explorer 6 &#8211; 8 in den XP und Vista-Umgebungen zur Verf&#252;gung. Sofern der Entwicklungsrechner mit einigerma&#223;en aktueller Hardware ausgestattet ist, l&#228;sst diese Kombination ein doch recht komfortables Entwickeln zu, das Beste: das ganze kostet bis auf die vorhandene Internet-Verbindung keinen Cent!</p>
<p>Unter <a title="Microsoft Virtual PC Homepage" href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx" target="_blank">http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx</a> stellt Microsoft den Virtual PC zur Verf&#252;gung, die entsprechenden Images sind unter <a title="Microsoft Virtual Images" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&amp;displaylang=en#filelist" target="_blank">http://www.microsoft.com/downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&amp;displaylang=en#filelist</a> verf&#252;gbar.</p>
<p>Nat&#252;rlich geht nichts ohne pers&#246;nliche Anpassung und daher sollte man in der virtuellen Umgebung die Region doch auf die eigenen Bed&#252;rfnisse umstellen. &#220;ber Start &gt; Control Panel &gt; Regional and Language Options die Auswahl German (Germany) stellt schon einmal die deutschen Zahlen- und Datumsformate ein. Im gleichen Fenster im Register Languages im Abschnitt  Text services and input languages verbirgt sich unter dem Button Details die M&#246;glichkeit, das deutsche Eingabeschema hinzuzuf&#252;gen. Damit lassen sich dann auch die deutschen Umlaute nutzen.</p>
<p>Aufgrund des englischen Tastaturschemas hat Microsoft die AltGr-Taste als Hosttaste verwendet. Leider ben&#246;tigt man die Taste AltGr im deutshcen Sprachschema recht h&#228;ufig, so dass es doch recht hilfreich ist, eine Umbelegung auf die rechte StrG-taste vorzunehmen. ie l&#228;sst sich im Virtual PC Konsolenfenster &#252;ber Datei &gt; Optionen &gt; Tastatur erledigen. Einfach im Fenster in das Feld &#8220;Aktuelle Hosttaste&#8221; klciken und die rechte Strg-Taste dr&#252;cken. Ein Klick auf Ok best&#228;tigt die neue Einstellung.</p>
<h2>Non-IE-Browser</h2>
<p>Die L&#246;sung f&#252;r Internet Explorer ist nun klar. Allerdings gibt es mehr als nur die Microsoft-Welt und so m&#252;ssen nat&#252;rlich auch Opera und Co dran glauben. Allerdings ist Microsoft auch hier bereits so nett, uns die Basis zu liefern, denn in die virtuellen Umgebungen lassen sich Alternativbrowser installieren und so kann man in eine neue virtuelle Maschine einen Download von Firefox oder Opera installieren und hat ohne M&#252;he die neue Testumgebung parat. Wo bekommt man die alten Browser her? Auch hier gibt es Spezialisten und so hat man unter <a title="Directory of old Browsers" href="http://browsers.evolt.org/" target="_blank">http://browsers.evolt.org/</a> eine ganze Sammlung &#228;lterer und neuerer Browser zusammengestellt, welche sich recht m&#252;helos downloaden und installieren lassen.</p>
<h2>Nachteile</h2>
<p>Nat&#252;rlich gibt es auch hier Kehrseiten und man sollte diese kennen, bevor man zu einem produktiven Einsatz des Systems kommt:</p>
<ol>
<li>Die aktuellen Microsoft-Images arbeiten nur bis zum Januar 2010, dann schalten sich die Betriebssysteme tot. Sofern man hier also viel Konfigurationsaufwand in die Images stecken muss, um seine virtuelle Umgebung zu erhalten, sollte man &#252;berlegen, ob es dann nicht sinnvoller ist, in einer virtuellen Umgebung das System selbst aufzusetzen. Hierbei entstehen dann jedoch auf legalem Wege Kosten f&#252;r die entsprechenden Betriebssysteme.</li>
<li>Die virtuelle Umgebung ben&#246;tigt Festplattenkapazit&#228;t. Pro Installation muss mit circa dreifacher Gr&#246;&#223;e f&#252;r die Installation sowie mit circa doppelter Gr&#246;&#223;e der Original-Images f&#252;r den Betrieb einer virtuellen Umgebung gerechnet werden.</li>
<li>Parallelbetrieb von virtuellen Umgebungen ist m&#246;glich, jedoch ben&#246;tigt jede einzelne Umgebung entsprechenden Arbeitsspreicher sowie CPU-Kapazit&#228;t. Muss man also &#252;ber mehrere Umgebungen gleichzeitig testen, kann es hilfreich sien, trotzdem mehrere Rechner zu nutzen, auf denen dann die einzelnen Umgebungen laufen</li>
</ol>
<p>Fazit</p>
<p>Mit der gezeigten L&#246;sung gibt es einen stabilen Weg, verschiedene Umgebungen abzubilden und mit diesen zu entwickeln. Tests und Verhalten sind mit diesen Mitteln aussagekr&#228;ftiger als m&#246;gliche Hacks f&#252;r Parallelinstallationen, ebenso sind Entwicklungsumgebung und Testsystem voneinander getrennt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2009/10/26/development-browserflut/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone W-LAN und NETGEAR ProSafe-Ger&#228;te</title>
		<link>http://www.martin-specht.com/2009/09/04/iphone-w-lan-netgear/</link>
		<comments>http://www.martin-specht.com/2009/09/04/iphone-w-lan-netgear/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 12:32:21 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Leitartikel]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=86</guid>
		<description><![CDATA[Apples iPhone hat &#8211; wie mittlerweile hoffentlich alle modernen Mobiltelefone &#8211; eine eingebaute W-LAN-Netzwerkschnittstelle. Allerdings hat Apple auch hier auf ein unkompliziertes Benutzerinterface gesetzt, so dass Fehlermeldungen, sofern es welche gibt, doch eher sp&#228;rlich ausfallen.
So ist es nicht verwunderlich, dass es einem Schwei&#223;perlen auf die Stirn treibt, wenn man versucht, verzweifelt eine Verbindung einzurichten und [...]]]></description>
			<content:encoded><![CDATA[<p>Apples iPhone hat &#8211; wie mittlerweile hoffentlich alle modernen Mobiltelefone &#8211; eine eingebaute W-LAN-Netzwerkschnittstelle. Allerdings hat Apple auch hier auf ein unkompliziertes Benutzerinterface gesetzt, so dass Fehlermeldungen, sofern es welche gibt, doch eher sp&#228;rlich ausfallen.</p>
<p>So ist es nicht verwunderlich, dass es einem Schwei&#223;perlen auf die Stirn treibt, wenn man versucht, verzweifelt eine Verbindung einzurichten und das W-LAN mit der Meldung &#8220;Die Verbindung konnte nicht hergestellt werden&#8221; den Dienst quittiert, obwohl man vorher noch den Netzwerkschl&#252;ssel eingeben durfte.</p>
<p>Nat&#252;rlich ist der erste Schritt, den Schl&#252;ssel zu pr&#252;fen, aber nach einigen weiteren Versuchen d&#252;rfte klar sein, dass man sich nicht vertippt hat und die L&#246;sung (hoffentlich) nicht am eigenen Tippverm&#246;gen scheitert.</p>
<p>Erste Hilfe scheint nach einer gr&#252;ndlichen Google-Suche das Zur&#252;cksetzen der Netzwerkverbindungen im iPhone zu sein, eine Option, die man nicht so ohne weiteres findet. &#220;ber Einstellungen &#8211; Allgemein &#8211; Zur&#252;cksetzen kann man einzelne oder alle Komponenten des iPhones resetten. Nach einem Neustart des Telefons sollten nun alle W-LAN-Netzwerke verschwunden sein und man kann den EInwahlversuch erneut starten.</p>
<p>Leider hilft bei einigen W-LAN-Routern trotz WPA- und WPA2-Verschl&#252;sselung auch dieser Neustart nicht. Schuld ist, wie bei meinem Beispiel mit dem NETGEAR ProSafe VPN Wireless ADSL Gateway DGFV338, der Verschl&#252;sselungsalgorithmus, denn w&#228;hrend einigen Ger&#228;ten AES256 ausreicht, ben&#246;tigen andere TKIP, so offensichtlich auch das iPhone.</p>
<p>In so einem Fall hilft dann nur, die Firmware der Router zu upgraden, in der Hoffnung, die Hersteller haben nachgebessert. NETGEAR hat dies getan und &#8211; nach einem nochmaligen Zur&#252;cksetzen der iPhone-Netzwerkeinstellungen &#8211; war das Problem behoben und das Ger&#228;t konnte sich problemlos in das W-LAN-Netzwerk einw&#228;hlen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2009/09/04/iphone-w-lan-netgear/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rettungsversuch? CMS webEdition wird Open Source</title>
		<link>http://www.martin-specht.com/2008/11/04/rettungsversuch-cms-webedition-wird-open-source/</link>
		<comments>http://www.martin-specht.com/2008/11/04/rettungsversuch-cms-webedition-wird-open-source/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 14:08:24 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Leitartikel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Content Management]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[webEdition]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=75</guid>
		<description><![CDATA[Open Source ist eine feine Sache, vor allem dann, wenn man die Vorteile von Open Source zu sch&#228;tzen wei&#223;. So, oder vermutlich so &#228;hnlich, muss sich die Living-e AG das Konzept erdacht haben, nach welchem sie entschied, webEdition als Open Source anzubinden.
In meiner Vergangenheit bin ich dem System mehrfach begegnet und bis auf ein paar [...]]]></description>
			<content:encoded><![CDATA[<p>Open Source ist eine feine Sache, vor allem dann, wenn man die Vorteile von Open Source zu sch&#228;tzen wei&#223;. So, oder vermutlich so &#228;hnlich, muss sich die Living-e AG das Konzept erdacht haben, nach welchem sie entschied, webEdition als Open Source anzubinden.</p>
<p>In meiner Vergangenheit bin ich dem System mehrfach begegnet und bis auf ein paar kleine, aber feine Codeschnipsel konnte ich dem System nahezu nichts abgewinnen. In der uns von der Living-e AG &#252;bermittelten Version waren offensichtlich alte PHP4-Codefetzen zusammen mit neuen Funktionen in PHP5 ausgeliefert worden. Die Projektstruktur war dadurch mehr als un&#252;bersichtlich und das gesamte Projekt war logisch nicht ganz nachvollziehbar aufgebaut. Es handelte sich dabei um ein Stable-Release, welches wir niemals zum Projekteinsatz brachten.</p>
<p>Das gesamte System machte den Eindruck, als sei es mit altem und neuem Code geflickt worden. Etliche Features lie&#223;en sich auch nicht quer verbinden. Ein Austausch von Funktionen gestaltete sich daher ebenso schwierig wie die Anpassung der Templates an eigene Bed&#252;rfnisse, welche das System erweiterten.</p>
<p>Aus diesem Grund l&#228;&#223;t hier der EIndruck nicht los, dass Living-e versucht, die in die Jahre gekommenen Kinder kurz vor dem Sterben mit Hilfe der Open Source-Gemeinde zu retten. Bleibt Living-e nur zu w&#252;nschen, dass ihnen dies trotz vielfach besserer Konkurrenz mit der Open Source-Version 6 gelingt.</p>
<p><a title="CMS webEdition wird Open Source" href="http://www.heise.de/newsticker/CMS-webEdition-wird-Open-Source--/meldung/118326" target="_blank">Zur Meldung auf Heise.de</a></p>
<p><a title="CMS Webedition jetzt Open Source" href="http://createordie.de/cod/news/CMS-Webedition-jetzt-Open-Source-045852.html" target="_blank">Zur Meldung aus dem Software &amp; Support Verlag</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2008/11/04/rettungsversuch-cms-webedition-wird-open-source/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Progressbars in PHP-Projekten</title>
		<link>http://www.martin-specht.com/2008/10/14/progressbars-in-php-projekten/</link>
		<comments>http://www.martin-specht.com/2008/10/14/progressbars-in-php-projekten/#comments</comments>
		<pubDate>Tue, 14 Oct 2008 12:45:58 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[APC]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[MooTools]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Progressbar]]></category>
		<category><![CDATA[Status]]></category>
		<category><![CDATA[Statusanzeige]]></category>
		<category><![CDATA[Upload]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=63</guid>
		<description><![CDATA[Progressbars sind mittlerweile ein g&#228;ngiges Mittel, um Statusanzeigen zu realisieren. Seit 2003 nutze ich diese in verschiedenen Projekten, jedoch waren die Mittel, diese zu regeln, in der Vergangenheit eher holperig, unkomfortabel oder instabil gel&#246;st. Musste in Projekt umziehen oder gab es neue Browser oder auch Flash-Versionen, begann die Konfiguration und das R&#228;tselraten von neuem. CGI und Flash oder per Output-Buffer gesteuerte Javascript-Bars waren immer instabil und hielten selten l&#228;nger als ein Jahr in einem Projekt aus.]]></description>
			<content:encoded><![CDATA[<h2>Einf&#252;hrung</h2>
<p>Progressbars sind mittlerweile ein g&#228;ngiges Mittel, um Statusanzeigen zu realisieren. Seit 2003 nutze ich diese in verschiedenen Projekten, jedoch waren die Mittel, diese zu regeln, in der Vergangenheit eher holperig, unkomfortabel oder instabil gel&#246;st. Musste in Projekt umziehen oder gab es neue Browser oder auch Flash-Versionen, begann die Konfiguration und das R&#228;tselraten von neuem. CGI und Flash oder per Output-Buffer gesteuerte Javascript-Bars waren immer instabil und hielten selten l&#228;nger als ein Jahr in einem Projekt aus.</p>
<p>Dank der &#8220;Erfindung&#8221; von Ajax war man daraufhin in der Lage, f&#252;r Prozesse, die nach einem Request durchgef&#252;hrt wurden, bereits gute und fl&#252;ssige Prozessanzeigen zu realisieren. In verschiedenen Projekten habe ich beispielsweise Datensammlungen oder das Erstellen von ZIP-Archiven visuell dargestellt.</p>
<p>Mit der PHP-Version 5.2 l&#228;sst sich nun auch &#252;ber die Extension APC ein Upload mit einer Progress-Anzeige sinnvoll l&#246;sen, denn im Wesentlichen ver&#228;ndert sich nichts. Um dieses Feature zu nutzen, sind jedoch ein paar Vorbereitungen n&#246;tig:</p>
<h2>1. Installation von APC</h2>
<p>Ben&#246;tigt werden:</p>
<ul>
<li>Root-Zugriff auf die Kommandozeile</li>
<li>ein installiertes und auf Kommandozeilenebene funktionsf&#228;higes PEAR bzw. PECL</li>
<li>Internet-Zugriff</li>
</ul>
<p>Zun&#228;chst einmal wird APC mittels PECL installiert:</p>
<blockquote><p>testserver:~# pecl install apc</p></blockquote>
<p>Bei der darauffolgenden Frage die Option APCX &#228;ndern auf &#8220;NO&#8221;</p>
<blockquote><p>Use apxs to set compile flags (if using APC with Apache)? [yes] : no</p></blockquote>
<p>Nun folgen etliche Zeilen Kompilierung und Installation. Abh&#228;ngig vom System (in meiner Debian-Testumgebung ist es zwingend notwendig) muss in die php.ini bzw. im Debian in eine separate Datei</p>
<blockquote><p>extension=apc.so</p></blockquote>
<p>eingetragen werden.</p>
<div id="attachment_64" class="wp-caption alignleft" style="width: 310px"><a href="http://www.martin-specht.com/wp-content/uploads/2008/10/apc.gif"><img class="size-medium wp-image-64" title="APC-Eintrag" src="http://www.martin-specht.com/wp-content/uploads/2008/10/apc-300x100.gif" alt="AUsschnitt aus der PHP-Info zum APC-Eintrag" width="300" height="100" /></a><p class="wp-caption-text">Ausschnitt aus der PHP-Info zum APC-Eintrag</p></div>
<p>Ein Neustart des Webservers sollte nun &#8211; oh Wunder &#8211; die Extension geladen haben. Dies l&#228;sst sich am einfachsten &#220;ber eine Ausgabe der phpinfo(); pr&#252;fen, hier sollte es einen neuen Eintrag zu APC geben. Sofern APC-Support &#8220;enabled&#8221; ist, kann es weitergehen mit dem PHP-Teil der Installation. Sollte das Modul noch nicht aktiviert sein, hilft in der Regel ein Basiseintrag in der php.ini:</p>
<blockquote><p>[APC]<br />
apc.enable_cli=0<br />
apc.enabled=1<br />
apc.num_files_hint=1024<br />
apc.optimization=0<br />
apc.rfc1867=1<br />
apc.shm_segments=1<br />
apc.shm_size=128<br />
apc.ttl=7200<br />
apc.user_ttl=7200</p></blockquote>
<h2>2. PHP-Dateien und deren Funktionsweise</h2>
<p>Grunds&#228;tzlich funktioniert das Uploaden nun in der Weise, dass PHP in der Lage ist, einen weiteren Request aus der gleichen Quelle parallel zum laufenden Request zu beantworten. Dies bedeutet, dass man eigentlich nur daf&#252;r sorgen muss, dass PHP w&#228;hrend des Uploads brav antwortet, wieviel Upload statt fand. Hierf&#252;r sind folgende Codeschnipsel notwendig:</p>
<h3>Das Formular in der HTML-Datei:</h3>
<p><code>&lt;form action="upload.php" method="post" target="uploadFrame" enctype="multipart/form-data"&gt;<br />
</code></p>
<p><code> &lt;input type="file" name="upload" /&gt;<br />
&lt;input type="hidden" name="APC_UPLOAD_PROGRESS" value="&lt;?php echo </code><code> md5(uniqid(rand(), true)); ?&gt;" /&gt;</code><code><br />
&lt;button type="submit" onclick="this.disabled=true;   setTimeout('requestStatus(\''+this.form.APC_UPLOAD_PROGRESS.value+'\')', 1000);"&gt;Abschicken&lt;/button&gt;<br />
&lt;/form&gt;</code></p>
<p>Zu beachten ist, dass APC mit dem versteckten Feld APC_UPLOAD_PROGRESS mitgeteilt wird, wie die eindeutige Id f&#252;r diesen Upload lautet. Der Bezeichner muss mit der Angabe apc.rfc1867_name in der PHP-Konfiguration &#252;berein stimmen.</p>
<p>Zus&#228;tzlich muss in den HTML-Code ein IFrame eingebaut werden, an welches die Upload-Datei geschickt wird. Dies wird notwendig, weil alle g&#228;ngigen Browser durch das Abschicken des Formulars im gleichen Fenster die Seite blockieren w&#252;rde und &#196;nderungen im HTML-Code dann nicht mehr m&#246;glich sind.</p>
<p><code>&lt;iframe src="blank.html" name="uploadFrame" style="display:none"&gt;&lt;/iframe&gt;</code></p>
<p>Zus&#228;tzlich sollte fehlt nat&#252;rlich noch ein Platz, um den Upload-Status anzuzeigen. Hier sind mehrere Varianten denkbar, f&#252;r einen ersten Test reicht zun&#228;chst erst einmal ein leeres DIV.</p>
<p><code>&lt;div id="divStatus"&gt;&lt;/div&gt;</code></p>
<h3>Die Datei f&#252;r den Empfang des Uploads (upload.php)</h3>
<p>An dieser simplen Funktion &#228;ndert sich genau nichts, der Upload funktioniert hier genau gleich:</p>
<p><code><br />
&lt;?php<br />
if (isset($_FILES['upload'])) {<br />
move_uploaded_file($_FILES['upload']['tmp_name'], 'upload/'.$_FILES['upload']['name']);<br />
}<br />
?&gt;<br />
</code></p>
<p>Nat&#252;rlich muss man hier selbst f&#252;r Sicherheit etc. sorgen, aber im Grundsatz ist der Upload identisch.</p>
<h3>Die Datei f&#252;r die Statusmeldung (status.php)</h3>
<p>Ihre einzige Aufgabe ist es, den Upload anhand der eindeutigen Id zu identifizieren und mit Hilfe der Funktion apc_fetch() den aktuellen Status auszulesen. Dieser muss dann nur noch entsprechend aufbereitet werden, um im richtigen Format an die HTML-Seite &#252;bermittelt zu werden:</p>
<p><code>&lt;?php<br />
$arr_status = apc_fetch('upload_'.$_GET['</code><code>str_apcId</code><code>']);<br />
printf("&lt;pre&gt;%s&lt;/pre&gt;", print_r($arr_status, true));<br />
?&gt;</code></p>
<h3>Der Javascript-Teil</h3>
<p><code>function requestStatus(str_apcId)' {</code></p>
<p>var request = new Request({<br />
url: &#8216;/status.php?apcId=&#8217;+str_apcId,<br />
onComplete: function(responseText) {<br />
$(&#8216;uploadStatus&#8217;).innerHTML = responseText;<br />
}<br />
}).send();<br />
}</p>
<p>Der Javascript-Part sollte hier sehr individuell ausfallen, dies ist insbesondere abh&#228;ngig vom genutzten Javascript-Framework, von der Art, den Status anzuzeigen sowie den technischen M&#246;glichkeiten. Das gezeigte Beispiel w&#228;re eine M&#246;glichkeit in MooTools, aber auch hier gilt, dass sowohl die Schnittstelle zum Server als auch das Javascript abgesichter sein sollten gegen einen Fremdzugriff.</p>
<p>Quellen:</p>
<p><a title="Debian BLOG" href="http://www.debianblogs.com/debian_apc_alternative_php_cache" target="_blank">http://www.debianblogs.com/debian_apc_alternative_php_cache</a></p>
<p><a title="Coder Wiki" href="http://www.coder-wiki.de/HowTos/PHP-AJAX-Upload-Fortschritt" target="_blank">http://www.coder-wiki.de/HowTos/PHP-AJAX-Upload-Fortschritt</a></p>
<p><a title="MooTools Request-Objekt" href="http://mootools.net/docs/Request/Request" target="_blank">http://mootools.net/docs/Request/Request</a></p>
<h2>Update:</h2>
<p>Wer Probleme bei der Installation mit PECL bekommt, sollte &#252;berpr&#252;fen, ob folgende Pakete installiert und verf&#252;gbar sind:<br />
<code>php5-dev<br />
apache2-dev<br />
build-essentials</code></p>
<p>Die Namen der Pakete sind zwischen den Distributionen unterschiedlich, wichtig ist, dass sowohl von PHP als auch vom installierten Apache die Development-Pakete zur Verf&#252;gung stehen und alle notwendigen Bibliotheken installiert sind.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2008/10/14/progressbars-in-php-projekten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>VPN ganz easy: Netgear DGFV338B als Universalrouter</title>
		<link>http://www.martin-specht.com/2008/08/19/vpn-ganz-easy-netgear-dgfv338b-als-universalrouter/</link>
		<comments>http://www.martin-specht.com/2008/08/19/vpn-ganz-easy-netgear-dgfv338b-als-universalrouter/#comments</comments>
		<pubDate>Tue, 19 Aug 2008 13:16:11 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Server]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=51</guid>
		<description><![CDATA[Relativ h&#228;ufig stellt sich die Aufgabe, externen Zugriff auf Unternehmensdaten zu erm&#246;glichen. Hierf&#252;r ist in der Regel ein Zugriff per VPN notwendig. Um jedoch keine gro&#223;artigen &#8220;Zerst&#246;rungen&#8221; an der hauseigenen Infrastruktur vornehmen zu m&#252;ssen, bietet sich der Netgear DGFV338B als Universalrouter an. Neben WLAN und einer Firewall bietet er insgesamt 50 Nutzern Zugang per VPN [...]]]></description>
			<content:encoded><![CDATA[<p>Relativ h&#228;ufig stellt sich die Aufgabe, externen Zugriff auf Unternehmensdaten zu erm&#246;glichen. Hierf&#252;r ist in der Regel ein Zugriff per VPN notwendig. Um jedoch keine gro&#223;artigen &#8220;Zerst&#246;rungen&#8221; an der hauseigenen Infrastruktur vornehmen zu m&#252;ssen, bietet sich der <a title="Link zu Netgear" href="http://www.netgear.de/Produkte/Router/ModemGatewayRouter/DGFV338B/" target="_blank">Netgear DGFV338B</a> als Universalrouter an. Neben WLAN und einer Firewall bietet er insgesamt 50 Nutzern Zugang per VPN &#252;ber IPSec. Damit sollte es m&#246;glich sein, alle g&#228;ngigen Clients per VPN mit dem Firmennetzwerk zu verbinden.</p>
<p>Auf der Client-Seite dienen unter Mac OS X die Tools <a title="Link zu Lobotomo" href="http://www.lobotomo.com/products/IPSecuritas/index.html" target="_blank">IPSecuritas</a> oder <a href="http://tunnelblick.softonic.de/mac" target="_blank">Tunnelblick</a>, auf einem Windows <a title="Link zu TheGreenBow" href="http://www.thegreenbow.de" target="_blank">The Greenbow VPN Client</a> und auf Linux das hauseigene Tool ipsec als Br&#252;cke zwischen den Welten.</p>
<p>Der Router ist bei <a target="_blank" href="http://www.amazon.de/gp/product/B000PSRMCQ?ie=UTF8&amp;tag=janblnde-21&amp;linkCode=as2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=B000PSRMCQ">Amazon</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.de/e/ir?t=janblnde-21&amp;l=as2&amp;o=3&amp;a=B000PSRMCQ" border="0" alt="" width="1" height="1" /> f&#252;r ca. 250 EUR erh&#228;ltlich. In seiner Serie gibt es f&#252;r unterschiedliche Anwendungen auch leicht ver&#228;nderte Konfigurationen mit unterschiedlichen Zusatzfeatures.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2008/08/19/vpn-ganz-easy-netgear-dgfv338b-als-universalrouter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bye, bye PHP4</title>
		<link>http://www.martin-specht.com/2008/08/09/bye-bye-php4/</link>
		<comments>http://www.martin-specht.com/2008/08/09/bye-bye-php4/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 08:48:34 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP4]]></category>
		<category><![CDATA[Umstieg]]></category>
		<category><![CDATA[Version]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=45</guid>
		<description><![CDATA[Am 07. August erschien nun das wirklich allerletzte PHP-Update f&#252;r PHP4. Neben einem Update f&#252;r PCRE lieferte die neue Version weitere Sicherheitsupdates und Anwender sollten, sofern die Version in ihrem Einfluss liegt, so schnell wie m&#246;glich updaten.
Damit endet eine sehr lange &#196;ra einer PHP-Version. Anwendern wird empfohlen, auf die Version 5 umzusteigen. Neben einem besseren [...]]]></description>
			<content:encoded><![CDATA[<p>Am 07. August erschien nun das wirklich allerletzte PHP-Update f&#252;r PHP4. Neben einem Update f&#252;r PCRE lieferte die neue Version weitere Sicherheitsupdates und Anwender sollten, sofern die Version in ihrem Einfluss liegt, so schnell wie m&#246;glich updaten.</p>
<p>Damit endet eine sehr lange &#196;ra einer PHP-Version. Anwendern wird empfohlen, auf die Version 5 umzusteigen. Neben einem besseren Klassen-Support und standardisiertem XML-Support ist in der Regel ein Upgrade der Applikationen mit nur wenigen Anpassungen m&#246;glich. Dies sollte sobald als m&#246;glich geschehen, denn die PHP-Entwickler feilen bereits an Version 5.3 (am 01.August als Alpha-Release erschienen) und an Version 6.</p>
<p>Sollte man jetzt einen Umstieg planen, kann man bereits Vorkehrungen f&#252;r das Upgrade auf Version 6 schaffen. Einfachste L&#246;sung ist hier die Verwendung von &lt;?php anstelle des Short-Tags. So soll das Kompatibilit&#228;tsproblem mit dem Einf&#252;hrungstag f&#252;r XML &lt;?xml &#8230; /&gt; umgangen werden.</p>
<p>Weitere Informationen auf <a title="PHP.net" href="http://www.hphp.net" target="_blank">php.net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2008/08/09/bye-bye-php4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Out now: Wordpress 2.6</title>
		<link>http://www.martin-specht.com/2008/07/20/out-now-wordpress-26/</link>
		<comments>http://www.martin-specht.com/2008/07/20/out-now-wordpress-26/#comments</comments>
		<pubDate>Sun, 20 Jul 2008 11:34:20 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[2.6]]></category>
		<category><![CDATA[upgrade]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=30</guid>
		<description><![CDATA[Wer gerade mal wieder einen Artikel in seinem Wordpress schreibt, wird sehen, dass eine Textbox auf die neue Version 2.6 hinweist. Ich habe die Version ausprobiert und musste feststellen, dass das Upgrade v&#246;llig unproblematisch zu vollziehen war.]]></description>
			<content:encoded><![CDATA[<p>Wer gerade mal wieder einen Artikel in seinem Wordpress schreibt, wird sehen, dass eine Textbox auf die neue Version 2.6 hinweist. Ich habe die Version ausprobiert und musste feststellen, dass das Upgrade v&#246;llig unproblematisch zu vollziehen war.</p>
<p>Die Installation erfolgte &#8211; wie &#252;blich &#8211; in 5 Phasen:</p>
<ol>
<li>Backup der Datenbank und der Dateien</li>
<li>L&#246;schen der Wordpress-Dateien (Ordner wp-admin, wp-includes und alle Dateien im Wordpress-Installationsverzeichnis au&#223;er wp-config.php und .htaccess)</li>
<li>&#220;berspielen aller Dateien aus dem Archiv <a title="Download der neuesten Version" href="http://counter.wordpress-deutschland.org/dlcount.php?id=static&amp;url=/de-edition/latest.zip" target="_blank">lastest.zip</a></li>
<li>Anpassen der Datei config.php</li>
<li>Ausf&#252;hrend der Datei wp-admin/upgrade.php</li>
</ol>
<p>Die Anpassung der config.php ist abh&#228;ngig von der Vorversion. Sofern alle Upgrades immer zeitnah eingespielt wurden, wird lediglich die Definition von SECRET_KEY ersetzt durch 3 neue Keys:</p>
<p><code>define('AUTH_KEY', 'KEY1');<br />
define('SECURE_AUTH_KEY', 'KEY2');<br />
define('LOGGED_IN_KEY', 'KEY3');<br />
</code><br />
DIe Keys (KEY1, KEY2 und KEY3) kann man sich <a title="Link zum Keygenerator" href="http://talkpress.de/artikel/die-sicherheits-keys-fuer-wordpress-26#keygen-26" target="_blank">hier</a> erzeugen lassen. Insgesamt sollte die Wordpress-Konfiguration dann ungef&#228;hr so aussehen:</p>
<p><code>&lt;?php<br />
define('DB_NAME', 'my_db');<br />
define('DB_USER', 'my_user');<br />
define('DB_PASSWORD', 'my_db_password');<br />
define('DB_HOST', 'my_host');<br />
define('DB_CHARSET', 'utf8');<br />
define('DB_COLLATE', '');</code></p>
<p>define(&#8216;AUTH_KEY&#8217;, &#8216;1234567890abcdef1234567890abcdef&#8217;);<br />
define(&#8216;SECURE_AUTH_KEY&#8217;, &#8216;fedcba0987654321fedcba0987654321&#8242;);<br />
define(&#8216;LOGGED_IN_KEY&#8217;, &#8216;1234567890fedcbaabcdef0987654321&#8242;);</p>
<p>$table_prefix  = &#8216;wp_&#8217;;<br />
define (&#8216;WPLANG&#8217;, &#8216;de_DE&#8217;);</p>
<p>define(&#8216;ABSPATH&#8217;, dirname(__FILE__).&#8217;/');<br />
require_once(ABSPATH.&#8217;wp-settings.php&#8217;);</p>
<p>?&gt;</p>
<p>Danach noch schnell die Datei upgrade.php im wp-admin-Verzeichnis aufrufen und das Datenbank-Upgrade durchf&#252;hren. Nun sollte die Wordpress-Installation wieder funktionieren. Nun hilft noch ein Blick auf den Plugin-Reiter, dort m&#252;ssen eventuell Plugins aktualisiert werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2008/07/20/out-now-wordpress-26/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oft gebraucht: Alte Server-Dateien l&#246;schen</title>
		<link>http://www.martin-specht.com/2008/07/15/oft-gebraucht-alte-server-dateien-loeschen/</link>
		<comments>http://www.martin-specht.com/2008/07/15/oft-gebraucht-alte-server-dateien-loeschen/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 09:50:20 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Leitartikel]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Cron]]></category>
		<category><![CDATA[find]]></category>
		<category><![CDATA[Kommando]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=29</guid>
		<description><![CDATA[Gerade in einer LAMP-Umgebung kommt es oft vor, dass Dateien veralten. Ob Cache-Dateien oder PHP-Sessions, veraltete Dateien k&#246;nnen einem System zu schaffen machen. Wenn die integrierten M&#252;llsammler es nicht mehr schaffen, das System aufzur&#228;umen, kann es passieren, dass das System zu lahmen beginnt. Wo hunderte Dateien noch zu bew&#228;ltigen waren, lassen tausende Dateien den Server [...]]]></description>
			<content:encoded><![CDATA[<p>Gerade in einer LAMP-Umgebung kommt es oft vor, dass Dateien veralten. Ob Cache-Dateien oder PHP-Sessions, veraltete Dateien k&#246;nnen einem System zu schaffen machen. Wenn die integrierten M&#252;llsammler es nicht mehr schaffen, das System aufzur&#228;umen, kann es passieren, dass das System zu lahmen beginnt. Wo hunderte Dateien noch zu bew&#228;ltigen waren, lassen tausende Dateien den Server zusammenbrechen.</p>
<p>Die Hilfe ist &#8211; zumindest auf linux-basierten Systemen &#8211; schnell und effektiv. Veraltete Dateien lassen sich h&#228;ufig am Datum erkennen und eine geeignete Behandlung kann vom Serversystem selbst vorgenommen werden.</p>
<p><code>find /tmp/phptmp -mtime +2 -exec rm -f {} \;</code></p>
<p>l&#246;scht Dateien, die l&#228;nger als 2 Tage nicht ver&#228;ndert wurden und sich im Verzeichnis <code>/tmp/phptmp/</code> befinden. Hier lassen ich variable Parameter einstellen, z.B. letzte Zugriffszeit etc. </p>
<p>Dieses Kommando l&#228;&#223;t sich problemlos in die Cron-Tabelle aufnehmen und als Cronjob zu lastarmen Zeiten ausf&#252;hren. Diese M&#246;glichkeit ist zwar kein Allheilmittel und auch keine eierlegende Wollmilchsau, aber sie l&#228;sst sich immer dann einsetzen, wenn bei der Programmierung von Systemen das Beseitigen des M&#252;lls vergessen oder nur unzureichend umgesetzt wurde.</p>
<p>Update: Es git viele andere M&#246;gliche Wege, dem Problem zu begegnen. M&#246;glicherweise hilft auch dieser Artikel weiter, um ein simples L&#246;schen durchzuf&#252;hren, wenn die Zahl der Daten in einem Ordner das Maximum f&#252;r Wildcards &#252;bersteigt:</p>
<p><a href="http://www.ibm.com/developerworks/aix/library/au-badunixhabits.html#seven">http://www.ibm.com/developerworks/aix/library/au-badunixhabits.html#seven</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2008/07/15/oft-gebraucht-alte-server-dateien-loeschen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Endlich da: &#8220;Das Symfony Framework&#8221; von Timo Haberkern</title>
		<link>http://www.martin-specht.com/2008/07/05/endlich-da-das-symfony-framework-von-timo-haberkern/</link>
		<comments>http://www.martin-specht.com/2008/07/05/endlich-da-das-symfony-framework-von-timo-haberkern/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 07:36:58 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Buch]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=27</guid>
		<description><![CDATA[Lange Zeit war es angek&#252;ndigt, bei Amazon erwartete man das Buch &#8220;Das Symfony Framework&#8221; von Timo Haberkern bereits im Februar &#8211; vergeblich. Mittlerweile hat es das Werk jedoch in die Buchregale geschafft. Es  vermittelt Grundwissen und Projekterfahrungen mit dem Symfony Framework 1.1 und zeigt, wie man es mit mit umfangreichen Plugins erweitern und seinen [...]]]></description>
			<content:encoded><![CDATA[<p>Lange Zeit war es angek&#252;ndigt, bei Amazon erwartete man das Buch &#8220;Das Symfony Framework&#8221; von Timo Haberkern bereits im Februar &#8211; vergeblich. Mittlerweile hat es das Werk jedoch in die Buchregale geschafft. Es  vermittelt Grundwissen und Projekterfahrungen mit dem Symfony Framework 1.1 und zeigt, wie man es mit mit umfangreichen Plugins erweitern und seinen Bed&#252;rfnissen anpassen kann. Dass Buch kostet 29,90 EUR und ist im enwickler.press-Verlag erschienen.</p>
<p><a href="http://www.amazon.de/gp/offer-listing/393908414X?ie=UTF8&amp;tag=janblnde-21&amp;linkCode=am2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=393908414X">Das Symfony Framework: Enterprise Anwendungen mit PHP</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.de/e/ir?t=janblnde-21&amp;l=as2&amp;o=3&amp;a=393908414X" border="0" alt="" width="1" height="1" /></p>
<p><a href="http://www.symfony-zone.com/" target="_blank">www.symfony-zone.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2008/07/05/endlich-da-das-symfony-framework-von-timo-haberkern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oh, mein Gott: Google &amp; Yahoo! durchsuchen Flash</title>
		<link>http://www.martin-specht.com/2008/07/01/oh-mein-gott-google-yahoo-durchsuchen-flash/</link>
		<comments>http://www.martin-specht.com/2008/07/01/oh-mein-gott-google-yahoo-durchsuchen-flash/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 14:13:19 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[Leitartikel]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Suchmaschinen]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.martin-specht.com/?p=26</guid>
		<description><![CDATA[Suchmaschinenbetreiber haben in Zusammenarbeit mit Adobe endlich geschafft, was eigentlich schon lange notwendig war: SWF-Dateien werden jetzt indiziert. Freudig erregt d&#252;rfte jetzt der eine oder andere Programmier in die Luft springen, da er nun den nervigen Alternativcontent nicht mehr ben&#246;tigt. Weit gefehlt, denn die Schw&#228;chen liegen wie immer im Detail.
Zun&#228;chst einmal verhindert eine Indizierung einer [...]]]></description>
			<content:encoded><![CDATA[<p>Suchmaschinenbetreiber haben in Zusammenarbeit mit Adobe endlich geschafft, was eigentlich schon lange notwendig war: SWF-Dateien werden jetzt indiziert. Freudig erregt d&#252;rfte jetzt der eine oder andere Programmier in die Luft springen, da er nun den nervigen Alternativcontent nicht mehr ben&#246;tigt. Weit gefehlt, denn die Schw&#228;chen liegen wie immer im Detail.</p>
<p>Zun&#228;chst einmal verhindert eine Indizierung einer Suchmaschine nicht, dass nervige Intro-Flashfilme beim Aufruf nicht von Beginn ab, sondern von der Fundstelle der Suchmaschine aus abgespielt werden. Der m&#246;gliche Besucher muss sich also zwangsweise durch die h&#252;bsch bunte Animationswelt bewegen, um dann eventuell an geeignete Stellen zu springen. Zwar hat Adobe hier im Flash M&#246;glichkeiten der Anker geschaffen, die jedoch nutzen Flash-Animateure nur zu selten.</p>
<p>Dar&#252;ber hinaus war Flash eine gern genutzte Technologie, um Spam-Bots vom Grabben der Email-Adressen abzuhalten. Ob die Suchmaschinenbetreiber auch hierf&#252;r ein Rezept parat haben, bleibt abzuwarten.</p>
<p>Das dritte Problem liegt in der Technologie selbst: Animation zum Zwecke des SEO-Rankings. W&#228;hrend die gro&#223;en Suchmaschinenbetreiber alles versuchen, sichtbaren Content von verstecktem Inhalt zu unterscheiden, d&#252;rfte dies bei Flash eher ein kompliziertes Unterfangen werden. Endlose Texte mit Suchdaten-M&#252;ll k&#246;nnten erneut die Suchmaschinen verstopfen. Das Patentrezept hier k&#246;nnte so deutlich schwieriger werden, will man die Animation in einem Animationsprogramm nicht verbieten.</p>
<p>Last, but ganz sicher not least ist Flash noch immer kein integrierter Browserbestandteil und somit nicht allen Personenkreisen zug&#228;nglich. Adobe lieferte erst k&#252;rzlich wieder einen Grund mehr, Flash in Unternehmen nicht zuzulassen: Eine Sicherheitsl&#252;cke, welche von Adobe nicht ad-hoc gefunden werden konnte. Adobe selbst empfahl das Abschalten des Plugins bis zu einer Problembehebung (<a title="Link zum Bericht der Tagesschau" href="http://www.tagesschau.de/wirtschaft/flashplayer2.html" target="_blank">Bericht der Tagesschau</a>). So bleiben Anwender bei positiven Suchtreffern im klassischen Fall auf einer wei&#223;en Seite stehen. Wie die Suchmaschinenbetreiber alternativen Content produzieren, bleibt abzuwarten.</p>
<p>Grunds&#228;tzlich sollte man Adobes Neuerung jedoch als Schritt in die richtige Richtung verstehen. Bleibt zu hoffen, dass die Kinderkrankheiten zur Einf&#252;hrung neuer Technologien sich im Rahmen bewegen und angeschlossene Suchdienste sich nicht massiv qualitativ verschlechtern. F&#252;r weitere Informationen stellt Adobe eine <a title="Adobe FAQ zum Thema" href="http://www.adobe.com/devnet/flashplayer/articles/swf_searchability.html?devcon=f1" target="_blank">FAQ </a>zur Verf&#252;gung.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.martin-specht.com/2008/07/01/oh-mein-gott-google-yahoo-durchsuchen-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
