<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>Slideshow Bob - Webentwicklung</title>
    <link>http://people.avona.com/~thomas.werner/</link>
    <description>So viele bunte Zeichen. Überall.</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 1.4.1 - http://www.s9y.org/</generator>
    <pubDate>Fri, 12 Mar 2010 16:34:08 GMT</pubDate>

    <image>
        <url>http://people.avona.com/~thomas.werner/templates/slideshowbob/img/s9y_banner_small.png</url>
        <title>RSS: Slideshow Bob - Webentwicklung - So viele bunte Zeichen. Überall.</title>
        <link>http://people.avona.com/~thomas.werner/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Script-Entwicklung für Greasemonkey</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/73-Script-Entwicklung-fuer-Greasemonkey.html</link>
            <category>Internet</category>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/73-Script-Entwicklung-fuer-Greasemonkey.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=73</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=73</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    [TOC3]Greasemonkey ist eine nette, aber auch irgendwie anarchistische Firefox-Erweiterung, welche es erlaubt, von Benutzern selbst gebastelten JavaScript-Code auf x-beliebigen Websites auszuführen. Sinn und Zweck ist die Veränderung der Seiten. Klingt erstmal komisch, hat aber viele, viele sinnvolle Anwendungsgebiete, insbesondere auf populären Websites wie StudiVZ, Youtube und Co.&lt;br /&gt;
Mit Greasemonkey kann man Websites um Funktionalitäten erweitern, die so nicht angeboten werden. Da sind der Vorstellungskraft keine Grenzen gesetzt und darüber hinaus erleichtert einem diese Erweiterung sehr viel Arbeit, wenn man vorhat, eine kleine, eigene Erweiterung für Firefox zu basteln (was recht kompliziert ausfallen kann).&lt;br /&gt;
&lt;br /&gt;
In diesem Artikel gehe ich auf die Script-Entwicklung mit Greasemonkey ein, erläutere Dinge, die man beachten muß und ein paar fiese Bugs, über die ich selbst gestolpert bin.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/73-Script-Entwicklung-fuer-Greasemonkey.html#extended&quot;&gt;&quot;Script-Entwicklung für Greasemonkey&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 11 Mar 2010 19:54:00 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/73-guid.html</guid>
    <category>erweiterung</category>
<category>firefox</category>
<category>greasemonkey</category>
<category>internet</category>
<category>javascript</category>
<category>tutorial</category>
<category>xpath</category>

</item>
<item>
    <title>JavaScript und das Krümelmonster</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/71-JavaScript-und-das-Kruemelmonster.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/71-JavaScript-und-das-Kruemelmonster.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=71</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=71</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Ich hab mich kürzlich erstmals mit dem Thema Cookies unter JavaScript beschäftigt und muß sagen: meine Fresse, das ist wirklich zum Haareraufen schlecht gelöst. Daher gibts jetzt von mir eine kleine Klasse, die den Umgang mit Cookies deutlich vereinfacht:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;javascript&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt; * A Cookie Manager Class.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt; * @author tw&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt; */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt; Cookie&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* Gets a cookie value by its name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param name The cookie&#039;s name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @return String&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;eval&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;var regex=/&#039;&lt;/span&gt; + &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt; + &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\\&lt;/span&gt;s*=&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\\&lt;/span&gt;s*([^;]+)&lt;span style=&quot;color: #000099; font-weight: bold;&quot;&gt;\\&lt;/span&gt;s*(;|$)/;&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; result = document.&lt;span style=&quot;color: #006600;&quot;&gt;cookie&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;regex&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;return&lt;/span&gt; result&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* Sets a cookie.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param name The cookie&#039;s name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param value The according value.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param expiresOn [Optional] A Date object specifying the expiration date.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*&amp;#160; &amp;#160; &amp;#160; &amp;#160; if omitted, the cookie expires in seven days from now.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;, value, expiresOn&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;typeof&lt;/span&gt; expiresOn == &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;undefined&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Date;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Keep for a week&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;setTime&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;getTime&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span style=&quot;color: #CC0000;&quot;&gt;604800000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; document.&lt;span style=&quot;color: #006600;&quot;&gt;cookie&lt;/span&gt; = &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt; + &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;=&#039;&lt;/span&gt; + value.&lt;span style=&quot;color: #006600;&quot;&gt;paramEncode&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;; expires=&#039;&lt;/span&gt; +&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;toGMTString&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* Sets an &amp;quot;unlimited&amp;quot; cookie, meaning that the expiration date is set&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* to the maximum.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param name The cookie&#039;s name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param value The according value.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;setUnlimited&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;, value&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; expiresOn = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Date;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;setTime&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;2147483647000&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;, value, expiresOn&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;/**&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* Deletes a cookie.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;* @param name The cookie&#039;s name.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160;*/&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;remove&lt;/span&gt; = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; expiresOn = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Date;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; expiresOn.&lt;span style=&quot;color: #006600;&quot;&gt;setTime&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #CC0000;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #000066; font-weight: bold;&quot;&gt;this&lt;/span&gt;.&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;&#039;&lt;/span&gt;, expiresOn&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Verwendet wird der ganze Spaß folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;javascript&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;var&lt;/span&gt; cookie = &lt;span style=&quot;color: #003366; font-weight: bold;&quot;&gt;new&lt;/span&gt; Cookie;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Hält 7 Tage lang&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;cookie.&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;meinCookie&#039;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;xyz&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900; font-style: italic;&quot;&gt;// Hält &amp;quot;ewig&amp;quot; - also genau genommen bis 2037 oder so:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;cookie.&lt;span style=&quot;color: #006600;&quot;&gt;setUnlimited&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;ewig&#039;&lt;/span&gt;, &lt;span style=&quot;color: #3366CC;&quot;&gt;&#039;jaja&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Viel Spaß damit. 
    </content:encoded>

    <pubDate>Tue, 24 Nov 2009 19:15:44 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/71-guid.html</guid>
    <category>cookies</category>
<category>javascript</category>
<category>oop</category>

</item>
<item>
    <title>[JavaScript] Die Probleme einer Vererbungskette</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/70-JavaScript-Die-Probleme-einer-Vererbungskette.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/70-JavaScript-Die-Probleme-einer-Vererbungskette.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=70</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=70</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    [TOC3]Ich habe zuvor bereits einen ausführlichen Artikel über die Möglichkeiten und Grenzen von Objektorientierung und Vererbung in JavaScript geschrieben (siehe &lt;a href=&#039;http://people.avona.com/~thomas.werner/index.php?/archives/48-Objektorientierte-Programmierung-in-JavaScript.html&#039;&gt;Objektorientierte Programmierung in JavaScript&lt;/a&gt;).&lt;br /&gt;
Gerade eben bin ich allerdings auf ein handfestes Problem gestoßen, und zwar konnte ich mit der gängigen Technik nicht vernünftig die Kette von Eltern-Konstruktormethoden von einer tieferen Kindklasse aus aufrufen.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/70-JavaScript-Die-Probleme-einer-Vererbungskette.html#extended&quot;&gt;&quot;[JavaScript] Die Probleme einer Vererbungskette&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 23 Nov 2009 17:32:00 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/70-guid.html</guid>
    <category>javascript</category>
<category>oop</category>
<category>problem</category>
<category>tutorial</category>

</item>
<item>
    <title>PHP geht bei 64 Bit die Speicherpuste aus</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/59-PHP-geht-bei-64-Bit-die-Speicherpuste-aus.html</link>
            <category>PHP</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/59-PHP-geht-bei-64-Bit-die-Speicherpuste-aus.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=59</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=59</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 250px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:518 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;250&quot; height=&quot;145&quot;  src=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PHP64.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Höher, schneller, weiter hat auch seinen Preis.&lt;/div&gt;&lt;/div&gt;Vergangene Nacht war ich mit &#039;nem Kumpel damit beschäftigt, eine Homepage zu debuggen, die auf einem neuen Server einfach nicht mehr funktionieren wollte. Manche Seiten waren weiß, ein paar wenige Seiten funktionierten dagegen - und im PHP-Log war zu sehen, daß der Speicherverbrauch die festgelegte 16-MB-Grenze gesprengt hat, weshalb sich PHP zum Abbruch der Skriptausführung gezwungen sah.&lt;br /&gt;
&lt;br /&gt;
Die Frage war: was ist mit der Homepage nach der Migration plötzlich passiert? Auf dem alten Server ging sie auch mit dem 16M-Speicherlimit. Die Antwort ist hierbei ganz einfach und leider auch ein bißchen erschreckend - der neue Server ist ein 64-Bit-System. Auch die PHP-Installation ist die 64-Bit-Variante.&lt;br /&gt;
&lt;br /&gt;
Der Speicherverbrauch der problematischen Homepage hat sich eindeutig meßbar im Schnitt verdoppelt. Eigentlich muß das nicht unbedingt der Fall sein, bloß weil der Prozessor von 32 Bit auf 64 Bit &quot;hochgeschnellt&quot; ist, aber scheinbar geht die 64-Bit-Version von PHP etwas verschwenderisch mit dem Speicher um.&lt;br /&gt;
&lt;br /&gt;
Ich kann mir gut vorstellen, daß intern sämtliche Ganzzahlen auf 64-Bit-Integer festgelegt sind (anstatt dies je nach Bedarf niedriger anzusiedeln), und dazu kommen dann noch sämtliche Pointer, die zur Adressierung des größeren Adressraums wahrscheinlich standardmäßig ebenso 64-Bit sind. Allein diese Werte verdoppeln daher schon einmal ihren Speicherbedarf.&lt;br /&gt;
&lt;br /&gt;
Da die betreffende Homepage eine recht komplizierte, objektorientierte Architektur hat, ist wohl der Ärger im Rahmen dieser Migration vorprogrammiert gewesen - nur geahnt hat es keiner.&lt;br /&gt;
&lt;br /&gt;
Ich hab jedenfalls mal wieder was dazugelernt - insbesondere daß es wohl erforderlich ist, auf einem modernen 64-Bit-System auch tiefer in die Tasche für mehr RAM zu greifen. Ebenso ist es unvermeidlich, spendabler mit dem PHP-Memory-Limit umzugehen. Wenn das alles nicht hilft, muß man wohl leider wieder auf ein 32-Bit-System zurückgreifen. 
    </content:encoded>

    <pubDate>Sun, 20 Sep 2009 15:21:48 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/59-guid.html</guid>
    <category>64 bit</category>
<category>debugging</category>
<category>php</category>
<category>problem</category>
<category>server</category>

</item>
<item>
    <title>JSE v1.0 - Ein Quellcode-Editor für den Webbrowser</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/58-JSE-v1.0-Ein-Quellcode-Editor-fuer-den-Webbrowser.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/58-JSE-v1.0-Ein-Quellcode-Editor-fuer-den-Webbrowser.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=58</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=58</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Als ich vor zwei Jahren meinen Blog frisch einrichtete, veröffentlichte ich einen Artikel über meinen Quellcode-Editor, den ich damals in JavaScript schrieb. In erster Linie ließ ich meinen Ärger über die Cross-Browser-Problematik bezüglich Tastatur-Key-Codes aus, welche abhängig von Browser und Plattform voneinander abweichen können.&lt;br /&gt;
&lt;br /&gt;
Aufgrund dieser und weiterer Probleme war das Projekt seither auch auf Eis. Ich hab&#039;s aber vorhin nochmal ausgegraben, weitgehend korrigiert, sodaß es immerhin einigermaßen sauber unter Firefox für Linux klappt und stelle es nun wie den Quellcode von &lt;a href=&#039;http://people.avona.com/~thomas.werner/index.php?/archives/57-PixPush-1.0-JavaScript-Bitmap-Malprogramm.html&#039;&gt;PixPush&lt;/a&gt; ebenso &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jse.zip&quot; title=&quot;jse.zip&quot; target=&quot;_blank&quot;&gt;zur freien Verfügung unter der Creative Commons 3.0 Lizenz&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Ebenso stelle ich eine &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jsetest.html&quot; title=&quot;jsetest.html&quot; target=&quot;_blank&quot; style=&quot;font-weight:bold&quot;&gt;Live-Testversion zum Rumspielen&lt;/a&gt; (bzw. Code schreiben) zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_center&quot; style=&quot;width: 500px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:477 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;500&quot; height=&quot;144&quot;  src=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jse.jpg&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Schön bunt sieht&#039;s aus. Einfach mal selbst ausprobieren: &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jsetest.html&quot; title=&quot;jsetest.html&quot; target=&quot;_blank&quot;&gt;Live-Testversion&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;h3&gt;Features&lt;/h3&gt;&lt;br /&gt;
Die Editor-Klasse ist recht flexibel gestaltet. So kann man sich eigene Regeln für simple Code-Completion sowie Syntax-Highlighting festlegen. Standardmäßig wird Hervorhebung für die Programmierspache Java unterstützt.&lt;br /&gt;
Ansonsten werden Look &amp;amp; Feel klassischer Quellcode-Editoren über Tricksereien nachgebildet.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Automatische Zeilennumerierung&lt;/li&gt;&lt;li&gt;Syntax-Highlighting&lt;/li&gt;&lt;li&gt;Navigation über Cursortasten sowie Bild auf und ab&lt;/li&gt;&lt;li&gt;Entfernen und Backspace funktioniert, wie man es von einem Editor erwartet&lt;/li&gt;&lt;li&gt;Tab-Taste für Zeileneinschub&lt;/li&gt;&lt;li&gt;Automatischer Zeileneinschub basierend auf vorangegangene Zeile&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;Quellcode und Support&lt;/h3&gt;&lt;br /&gt;
Vorab: ich werde keinen aktiven Support bieten, es aber dennoch begrüßen, wenn ihr mir Feedback über Probleme an dieser Stelle als Kommentar zukommen lassen würdet. Ich geb&#039; das Ding so frei wie es ist und werde allerdings nur dann daran weitermachen, wenn ich Zeit und Lust dazu habe.&lt;br /&gt;
&lt;br /&gt;
Ich lade jeden dazu ein, selbst Verbesserungen und Erweiterungen vorzunehmen, sowie die vorhandenen Probleme bezüglich der Tastatur-Key-Codes usw. zu beheben (weitere Details zu den Problemen und TODOs befinden sich im Quellcode).&lt;br /&gt;
Über Rückmeldungen würde ich mich jedenfalls freuen, sollte jemand am Code etwas ändern oder den Editor irgendwo einsetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/JSE/jse.zip&quot; title=&quot;jse.zip&quot; target=&quot;_blank&quot;&gt;jse.zip&lt;/a&gt; 
    </content:encoded>

    <pubDate>Fri, 11 Sep 2009 17:07:00 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/58-guid.html</guid>
    <category>creative commons</category>
<category>editor</category>
<category>javascript</category>
<category>programmierung</category>
<category>source code</category>

</item>
<item>
    <title>PixPush 1.0 - JavaScript Bitmap-Malprogramm</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/57-PixPush-1.0-JavaScript-Bitmap-Malprogramm.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/57-PixPush-1.0-JavaScript-Bitmap-Malprogramm.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=57</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=57</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 250px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_screen.jpg&#039; target=&quot;_blank&quot;&gt;&lt;!-- s9ymdb:443 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;250&quot; height=&quot;168&quot;  src=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_screen.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Screenshot von PixPush v1.0 - Selber damit rumspielen kann man hier: &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush.html&quot; title=&quot;pixpush.html&quot; target=&quot;_blank&quot;&gt;PixPush v1.0 Live-Version&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;Vor zwei Jahren veröffentlichte ich einen ausführlichen Artikel zum Thema &lt;a href=&#039;http://people.avona.com/~thomas.werner/index.php?/archives/2-Bitspiele-Schnelle-Multiplikation-der-alten-Schule.html&#039;&gt;Bitspiele - Schnelle Multiplikation der alten Schule&lt;/a&gt;. Der Anlaß war mein damals programmiertes, browser-basiertes Bitmap-Malprogramm, welches ich nun wie damals angekündigt &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_v1.0.zip&quot; title=&quot;pixpush_v1.0.zip&quot; target=&quot;_blank&quot;&gt;unter der Creative Commons 3.0 Lizenz veröffentliche&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Auf folgender Seite kann man mit dem Malprogramm etwas herumspielen: &lt;a href=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush.html&quot; title=&quot;pixpush.html&quot; target=&quot;_blank&quot; style=&quot;font-weight:bold&quot;&gt;PixPush v1.0 Live-Version&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Da zum damaligen Zeitpunkt der sogenannte Canvas-HTML-Tag nicht sonderlich weit verbreitet war, implementierte ich das Malprogramm auf Basis von DIV-Tags - daher leidet etwas die Performance. Unter Konqueror sollte man eher die Finger davon lassen. Unter Firefox und Opera läuft&#039;s an sich ganz gut.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;serendipity_imageComment_right&quot; style=&quot;width: 250px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;a class=&#039;serendipity_image_link&#039; href=&#039;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_patrick.jpg&#039; target=&quot;_blank&quot;&gt;&lt;!-- s9ymdb:468 --&gt;&lt;img class=&quot;serendipity_image_right&quot; width=&quot;250&quot; height=&quot;168&quot;  src=&quot;http://people.avona.com/~thomas.werner/uploads/Programmierung/PixPush/pixpush_patrick.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Mit meinem PixelPush-Patrick mache ich mal den Anfang.&lt;/div&gt;&lt;/div&gt;&lt;h3&gt;Wettbewerb&lt;/h3&gt;&lt;br /&gt;
Schreibt mir Kommentare und schickt mir Links auf eure, mit PixPush erstellten, Kunstwerke. Hierbei zählen nur Screenshots der gesamten PixPush-Programmoberfläche. Es gibt hierbei keinen Einsendeschluß.&lt;br /&gt;
&lt;br /&gt;
Zu gewinnen gibt es eventuell einen feuchten Händedruck - sollten wir uns einmal leibhaftig gegenübertreten.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/57-PixPush-1.0-JavaScript-Bitmap-Malprogramm.html#extended&quot;&gt;&quot;PixPush 1.0 - JavaScript Bitmap-Malprogramm&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Wed, 09 Sep 2009 16:52:00 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/57-guid.html</guid>
    <category>creative commons</category>
<category>grafik</category>
<category>javascript</category>
<category>kunst</category>
<category>programmierung</category>
<category>wettbewerb</category>

</item>
<item>
    <title>Objektorientierte Programmierung in JavaScript</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/48-Objektorientierte-Programmierung-in-JavaScript.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/48-Objektorientierte-Programmierung-in-JavaScript.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=48</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=48</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    [TOC3] Objektorientierte Programmierung (OOP) ist in JavaScript eine ungewöhnliche Sache. Die ersten Einblicke in JavaScript-Code gaukeln einem alles vor, was man von OOP an sich gewohnt ist, aber Klassen sucht man darin vergeblich. Das liegt daran, daß JavaScript &lt;a href=&quot;http://de.wikipedia.org/wiki/Prototypenbasierte_Programmierung&quot; title=&quot;Wikipedia-Artikel über prototypbasierte Programmierung&quot;&gt;prototypbasiert&lt;/a&gt; ist. Es gibt also keine Klassen als Vorlage für Objekte, sondern Objekte wie String, Array etc. existieren bereits von vornherein, und werden über den &quot;new&quot;-Operator geklont, um neue Objekte zu schaffen, welche die gleichen Eigenschaften des Originals haben.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel behandelt Techniken der Vererbung und wie man so etwas wie Klassenkonstrukte unter JavaScript nachbilden kann. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/48-Objektorientierte-Programmierung-in-JavaScript.html#extended&quot;&gt;&quot;Objektorientierte Programmierung in JavaScript&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 21 Jul 2009 13:20:00 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/48-guid.html</guid>
    <category>JavaScript</category>
<category>Objektorientierung</category>
<category>OOP</category>
<category>Programmierung</category>
<category>Tutorial</category>

</item>
<item>
    <title>Eine einfache ActiveRecord-Klasse für PHP</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/31-Eine-einfache-ActiveRecord-Klasse-fuer-PHP.html</link>
            <category>PHP</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/31-Eine-einfache-ActiveRecord-Klasse-fuer-PHP.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=31</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=31</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Active Record ist ein recht simples Design Pattern, welches grob gesagt die Einträge einer Datenbanktabelle Objekten zuordnet, die sich dann wiederum beliebig in einem Programm manipulieren lassen.&lt;br /&gt;
&lt;br /&gt;
Angenommen es existiert in einem Programm die Klasse &quot;Car&quot; mit den Eigenschaften &quot;name&quot;, &quot;color&quot; und &quot;hp&quot; (horse power). Ebenso angenommen, es existiert eine Datenbanktabelle, die über die entsprechenden Spalten &quot;name&quot;, &quot;color&quot;,  und &quot;hp&quot; verfügt. Das ActiveRecord-Pattern verknüpft die Klasse mit der Tabelle und entbindet den Programmierer von seinen Pflichten, entsprechende SQL-Abfragen zu schreiben, um Daten aus der Datenbank auszulesen oder darin abzuspeichern.&lt;br /&gt;
&lt;br /&gt;
Ein kleines Anwendungsbeispiel:&lt;br /&gt;
&lt;div class=&quot;php&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Neues Auto-Objekt anlegen und Eigenschaften festlegen:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt; = &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;new&lt;/span&gt; Car;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;name&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;BMW&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;color&#039;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;hp&#039;&lt;/span&gt;, &lt;span style=&quot;color: #cc66cc;&quot;&gt;180&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// In Datenbank abspeichern:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;save&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;// Und jetzt das Auto wieder aus der Datenbank laden:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$result&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$car&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;findAllBySql&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;name=?&#039;&lt;/span&gt;, &lt;a href=&quot;http://www.php.net/array&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;BMW&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #b1b100;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a href=&quot;http://www.php.net/count&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;count&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;$result&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #0000ff;&quot;&gt;$mySavedCar&lt;/span&gt; = &lt;span style=&quot;color: #0000ff;&quot;&gt;$result&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span style=&quot;color: #cc66cc;&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#93;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;Name: &#039;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$mySavedCar&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;name&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&amp;lt;br /&amp;gt;&#039;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;Color: &#039;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$mySavedCar&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;color&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&amp;lt;br /&amp;gt;&#039;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;HP: &#039;&lt;/span&gt;, &lt;span style=&quot;color: #0000ff;&quot;&gt;$mySavedCar&lt;/span&gt;-&amp;gt;&lt;span style=&quot;color: #006600;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;hp&#039;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;, &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&amp;lt;br /&amp;gt;&#039;&lt;/span&gt;;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;/* Ausgabe:&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; ------------&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Name: BMW&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; Color: blue&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; HP: 180&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;&amp;#160; &amp;#160; */&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;?&amp;gt;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
Im Folgenden stelle ich eine recht kurzgehaltene, sehr vereinfachte Variante des Patterns als abstrakte Basisklasse für PHP (Version 5 und höher) vor. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/31-Eine-einfache-ActiveRecord-Klasse-fuer-PHP.html#extended&quot;&gt;&quot;Eine einfache ActiveRecord-Klasse für PHP&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 15 Jan 2009 00:26:18 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/31-guid.html</guid>
    <category>datenbank</category>
<category>design-pattern</category>
<category>php</category>
<category>programmierung</category>
<category>sql</category>

</item>
<item>
    <title>Es ist ja &quot;nur ein Test&quot;...</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/25-Es-ist-ja-nur-ein-Test....html</link>
            <category>Internet</category>
            <category>PHP</category>
            <category>Webentwicklung</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/25-Es-ist-ja-nur-ein-Test....html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=25</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Derzeit fallen mir gehäuft und regelmäßig &quot;Einbruchsversuche&quot; auf einer, von mir erstellten, Homepage auf, da diese Versuche Ausnahmefehler verursachen, welche mich automatisch mit allen Details über E-Mail informieren.&lt;br /&gt;
&lt;br /&gt;
Diese Attacken kommen jeweils von unterschiedlichen Servern, verfolgen aber immer dasselbe Muster:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
&lt;li&gt;Eine URL wird als GET-Parameter an &quot;meine&quot; Homepage übergeben&lt;/li&gt;&lt;br /&gt;
&lt;li&gt;&quot;Meine&quot; Homepage mag das nicht schlucken, bricht ab und schickt mir ne Email&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
Ich hab mir ein paar dieser &quot;injizierten URLs&quot; angeschaut und es sind immer Textdokumente, welche PHP-Code repräsentieren:&lt;br /&gt;
&lt;div class=&quot;php&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;a href=&quot;http://www.php.net/echo&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; &lt;a href=&quot;http://www.php.net/md5&quot;&gt;&lt;span style=&quot;color: #000066;&quot;&gt;md5&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;just_a_test&quot;&lt;/span&gt;&lt;span style=&quot;color: #66cc66;&quot;&gt;&amp;#41;&lt;/span&gt;;?&amp;gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
Es ist offensichtlich ein PHP-basiertes Internetvirus, welches die Weiten des Internets durchsucht, um &quot;kleine Dummheiten&quot; von PHP-Programmierern zu finden.&lt;br /&gt;
&lt;br /&gt;
Das Virus spekuliert offenbar auf folgenden Sachverhalt:&lt;br /&gt;
&lt;i&gt;Führt das PHP-Skript auf dem anzugreifenden Server Benutzereingaben aus?&lt;/i&gt; &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/25-Es-ist-ja-nur-ein-Test....html#extended&quot;&gt;&quot;Es ist ja &amp;quot;nur ein Test&amp;quot;...&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Thu, 20 Mar 2008 16:05:12 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/25-guid.html</guid>
    <category>bugs</category>
<category>internet</category>
<category>php</category>
<category>sicherheit</category>
<category>spam</category>
<category>virus</category>

</item>
<item>
    <title>Wenn bei PHP die Müllabfuhr streikt</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/21-Wenn-bei-PHP-die-Muellabfuhr-streikt.html</link>
            <category>PHP</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/21-Wenn-bei-PHP-die-Muellabfuhr-streikt.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=21</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=21</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    PHP 5 weist nicht nur aufgeräumte Sprachergänzungen in puncto Objektorientierung, sondern auch erhebliche Probleme im Speicher-Management auf.&lt;br /&gt;
&lt;br /&gt;
Der sogenannte &quot;garbage collector&quot;, welcher sich für das Aufräumen unbenötigter Daten, Ressourcen und Objekte verantwortlich zeichnet, versagt unter gewissen Umständen seinen Dienst.&lt;br /&gt;
&lt;br /&gt;
Dieser Artikel erläutert nicht nur dieses Problem anhand eines Beispiels, sondern stellt auch eine Lösung hierzu vor. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/21-Wenn-bei-PHP-die-Muellabfuhr-streikt.html#extended&quot;&gt;&quot;Wenn bei PHP die Müllabfuhr streikt&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 12 Jan 2008 19:16:47 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/21-guid.html</guid>
    <category>bugs</category>
<category>garbage-collector</category>
<category>gc</category>
<category>objektorientierung</category>
<category>oop</category>
<category>php</category>

</item>
<item>
    <title>Wenn Apache zuhause Hausverbot erteilt</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/20-Wenn-Apache-zuhause-Hausverbot-erteilt.html</link>
            <category>Internet</category>
            <category>Webentwicklung</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/20-Wenn-Apache-zuhause-Hausverbot-erteilt.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=20</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=20</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    Ich hatte seit einiger Zeit das kuriose Problem, manchmal weder über Opera noch Konqueror, auf meinen lokalen Entwicklungs-Webserver zugreifen zu können. Die Eingabe von &lt;code&gt;http://localhost&lt;/code&gt; als Webadresse, wurde bei beiden mit einem lakonischen &quot;Zugriff verweigert&quot; quittiert.&lt;br /&gt;
&lt;br /&gt;
Apaches Fehlerlog vermeldete Ähnliches. Angeblich versuchte ein &quot;client&quot;, entgegen der konfigurierten Zugriffskriterien, sich Zugang zu verschaffen. Aber das alles auf meinem eigenen Rechner.&lt;br /&gt;
&lt;br /&gt;
Naja, ein Blick in die Konfigurationssektion meines &quot;htdocs&quot;-Verzeichnisses, ließ in mir eine Ahnung aufkommen: &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;xml&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;Directory&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&quot;/srv/www/htdocs&quot;&lt;/span&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Options FollowSymlinks Indexes&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;AllowOverride All&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Order Deny,Allow&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Deny from all&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;Allow from 127.0.0.1&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; color: black; font-weight: normal; font-style: normal;&quot;&gt;&lt;div style=&quot;font-family: &#039;Courier New&#039;, Courier, monospace; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;lt;/Directory&lt;span style=&quot;font-weight: bold; color: black;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Ich vermutete, daß sowohl Opera, als auch Konqueror auf &#039;localhost&#039; zugriffen, und dieser Hostname nicht vernünftig auf meiner Kiste als &#039;127.0.0.1&#039; aufgelöst wird. Nachdem ich den obigen Konfigurationsabschnitt noch um ein &lt;code&gt;Allow from localhost&lt;/code&gt; ergänzt hatte, läuft&#039;s jetzt wie geschmiert.&lt;br /&gt;
&lt;br /&gt;
Zu seltsam, daß ich unter OpenSUSE 10.2 hiermit keinerlei Probleme hatte. 
    </content:encoded>

    <pubDate>Sat, 22 Dec 2007 16:45:16 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/20-guid.html</guid>
    <category>apache</category>
<category>internet</category>
<category>konfiguration</category>
<category>linux</category>
<category>sicherheit</category>

</item>
<item>
    <title>Annahme ausgelöst und nicht aufgefangen - oder JavaScript im Internet Explorer</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/18-Annahme-ausgeloest-und-nicht-aufgefangen-oder-JavaScript-im-Internet-Explorer.html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/18-Annahme-ausgeloest-und-nicht-aufgefangen-oder-JavaScript-im-Internet-Explorer.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=18</wfw:comment>

    <slash:comments>10</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=18</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;div class=&quot;serendipity_imageComment_left&quot; style=&quot;width: 323px&quot;&gt;&lt;div class=&quot;serendipity_imageComment_img&quot;&gt;&lt;!-- s9ymdb:53 --&gt;&lt;img width=&#039;323&#039; height=&#039;159&#039;  src=&quot;http://people.avona.com/~thomas.werner/uploads/ie_fehler.png&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;&lt;div class=&quot;serendipity_imageComment_txt&quot;&gt;Eine JavaScript-Fehlermeldung des aktuellen Microsoft Internet Explorer 7. Offenbar verwechselten die Übersetzer &quot;exception&quot; mit &quot;expectation&quot;.&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
Seit jeher beschert Microsoft uns Webdesignern und -programmierern mit seiner &quot;Internet Explorer&quot;-Produktserie (IE) eine schier unerschöpfliche Quelle an, zu meisternden, Herausforderungen.&lt;br /&gt;
Meine ersten Gehversuche in JavaScript, waren damals noch geprägt von einer gigantischen Menge an Inkompatibilitäten zwischen den großen Browsern (Netscape und IE), wobei die Räder gerne neu erfunden wurden, und die Hersteller für gleiche Funktionalitäten ihre eigenen Spezifikationen und Methoden bereithielten.&lt;br /&gt;
Dieses Problem läpperte sich im Verlauf der Jahre und die meisten Browser halten sich mittlerweile auch brav an die Standards.&lt;br /&gt;
Da ich mittlerweile hauptsächlich unter Linux entwickle, testete ich auch ein neues JavaScript-Projekt von mir, eine ganze Weile lang hauptsächlich unter Firefox, Konqueror sowie Opera, da bei mir der IE leider auch mit Hilfe von Wine und dem praktischen Tool &lt;a href=&quot;http://www.tatanka.com.br/ies4linux/page/Main_Page&quot; &gt;IEs4Linux&lt;/a&gt;, mittlerweile nicht mehr funktioniert.&lt;br /&gt;
Gestern testete ich meinen Code allerdings unter Windows, um genau zu sein, unter Internet Explorer 7; und mußte feststellen, daß nichts, meiner harten Arbeit, darin laufen wollte. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/18-Annahme-ausgeloest-und-nicht-aufgefangen-oder-JavaScript-im-Internet-Explorer.html#extended&quot;&gt;&quot;Annahme ausgelöst und nicht aufgefangen - oder JavaScript im Internet Explorer&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Mon, 27 Aug 2007 19:06:00 +0200</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/18-guid.html</guid>
    <category>internet explorer</category>
<category>javascript</category>
<category>programmierung</category>

</item>
<item>
    <title>PHP-Sicherheit</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/9-PHP-Sicherheit.html</link>
            <category>PHP</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/9-PHP-Sicherheit.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=9</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=9</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;!-- s9ymdb:32 --&gt;&lt;img width=&#039;110&#039; height=&#039;108&#039; style=&quot;float: right; border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://people.avona.com/~thomas.werner/uploads/php_security.serendipityThumb.jpg&quot; alt=&quot;&quot; /&gt;PHP und Sicherheit ist ein wichtiges Thema - insbesondere durch den &lt;a href=&quot;http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_december_2006.php&quot; &gt;hohen Verbreitungsgrad&lt;/a&gt; des &lt;a href=&quot;http://de.wikipedia.org/wiki/PHP&quot;  title=&quot;&quot;Rekursives Backronym&quot;.... oha!&quot;&gt;&quot;PHP: Hypertext Preprocessor&quot;&lt;/a&gt;&#039;s. Es ist eine nette, offenbar einfach zu erlernende Skriptsprache, welche den Webentwickler recht flott Ergebnisse erzielen läßt. Bei aller Einfachheit, bzw. bei allem Komfort, liegt es am Entwickler, gewisse Sicherheitsvorkehrungen an seinen Skripten vorzunehmen, um nicht unerfreuliche Bekanntschaft mit Hackern und &quot;&lt;a href=&quot;http://de.wikipedia.org/wiki/Skriptkiddie&quot; &gt;Skriptkiddies&lt;/a&gt;&quot; zu machen. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/9-PHP-Sicherheit.html#extended&quot;&gt;&quot;PHP-Sicherheit&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 11 Feb 2007 15:00:00 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/9-guid.html</guid>
    <category>Internet</category>
<category>php</category>
<category>Sicherheit</category>

</item>
<item>
    <title>Bitspiele - Auf Biegen und Brechen einen Nutzen gefunden</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/5-Bitspiele-Auf-Biegen-und-Brechen-einen-Nutzen-gefunden.html</link>
            <category>Webentwicklung</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/5-Bitspiele-Auf-Biegen-und-Brechen-einen-Nutzen-gefunden.html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=5</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=5</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    In meinem vorigen &lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/2-Bitspiele-Schnelle-Multiplikation-der-alten-Schule.html&quot; &gt;Artikel zum Thema Bitspiele&lt;/a&gt;, habe ich mein ernüchterndes Ergebnis bezüglich Multiplikationen mittels Bitshifting in JavaScript gezeigt.&lt;br /&gt;
Nun habe ich allerdings die andere Shiftingrichtung durchgetestet: die Division. &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/5-Bitspiele-Auf-Biegen-und-Brechen-einen-Nutzen-gefunden.html#extended&quot;&gt;&quot;Bitspiele - Auf Biegen und Brechen einen Nutzen gefunden&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sun, 04 Feb 2007 15:21:38 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/5-guid.html</guid>
    <category>javascript</category>
<category>optimierung</category>
<category>performance</category>
<category>php</category>

</item>
<item>
    <title>Ein Array sagt mehr als tausend Worte.</title>
    <link>http://people.avona.com/~thomas.werner/index.php?/archives/4-Ein-Array-sagt-mehr-als-tausend-Worte..html</link>
            <category>JavaScript</category>
    
    <comments>http://people.avona.com/~thomas.werner/index.php?/archives/4-Ein-Array-sagt-mehr-als-tausend-Worte..html#comments</comments>
    <wfw:comment>http://people.avona.com/~thomas.werner/wfwcomment.php?cid=4</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://people.avona.com/~thomas.werner/rss.php?version=2.0&amp;type=comments&amp;cid=4</wfw:commentRss>
    

    <author>nospam@example.com (Thomas Werner)</author>
    <content:encoded>
    &lt;!-- s9ymdb:12 --&gt;&lt;img width=&#039;422&#039; height=&#039;25&#039; style=&quot;border: 0px; padding-left: 5px; padding-right: 5px;&quot; src=&quot;http://people.avona.com/~thomas.werner/uploads/array_spricht.jpg&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
So auch ich selbst: JavaScript und Array-Funktionen. Ein bunter Strauß der guten Laune und Abendunterhaltung. &lt;strong&gt;Nicht.&lt;/strong&gt; &lt;br /&gt;&lt;a href=&quot;http://people.avona.com/~thomas.werner/index.php?/archives/4-Ein-Array-sagt-mehr-als-tausend-Worte..html#extended&quot;&gt;&quot;Ein Array sagt mehr als tausend Worte.&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Sat, 03 Feb 2007 20:32:44 +0100</pubDate>
    <guid isPermaLink="false">http://people.avona.com/~thomas.werner/index.php?/archives/4-guid.html</guid>
    <category>Datenstrukturen</category>
<category>JavaScript</category>
<category>Kuriosität</category>

</item>

</channel>
</rss>