<?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/"
xmlns:series="http://unfoldingneurons.com/"
> <channel><title>Technik, Gothic und Anderes &#187; Desktop</title> <atom:link href="http://blog.oncode.info/category/applikationen/desktop/feed/" rel="self" type="application/rss+xml" /><link>http://blog.oncode.info</link> <description>Technik ist Spiel, Gothic ist ernst und Zeit hat man zuviel</description> <lastBuildDate>Wed, 01 Feb 2012 17:03:41 +0000</lastBuildDate> <language>de</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>Klauen ist auch nicht mehr wie fr&#252;her&#8230;</title><link>http://blog.oncode.info/2011/06/02/klauen-ist-auch-nicht-mehr-wie-fruher/</link> <comments>http://blog.oncode.info/2011/06/02/klauen-ist-auch-nicht-mehr-wie-fruher/#comments</comments> <pubDate>Thu, 02 Jun 2011 09:53:59 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Desktop]]></category> <category><![CDATA[Web]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[antitheft]]></category> <category><![CDATA[diebstahl]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[theft protection]]></category> <guid
isPermaLink="false">http://blog.oncode.info/?p=1844</guid> <description><![CDATA[Theft Protection f&#252;r Laptops und Handys, gratis und einfach.]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.oncode.info/wp-content/uploads/2011/06/theft.png" alt="" title="theft" width="158" height="126" class="lead" align="left" />Das Arsenal an Ger&#228;ten, die ein durchschnittlicher Geek heutzutage mit sich herumschleppt, hat bald den Gegenwert eines kleinen Autos. Wenn fr&#252;her ein Rucksack geklaut wurde (oder, hmm, ehrlich gesagt, zerstreut wie immer &#8220;irgendwo liegen gelassen&#8221; wurde), dann war der Rucksack selbst oftmals das teuerste Ding des ganzen Verlustes. Heutzutage &#8211; mit Laptop, Pad, Phone, &#8230; &#8211; geht ein ganzer Serverraum verloren. Meine Wenigkeit ist so was von Monotasking, dass ich oftmals mit atmen, laufen, verdauen und transpirieren schon an die Grenze komme (darum spreche ich so wenig, weil dann mein Herz aussetzen w&#252;rde!), wie soll ich dann noch an die 1001 Ger&#228;te denken, die ich irgendwie zusammen wischen und mitnehmen sollte? Da ich k&#246;rperlich auch nicht unbedingt einem Standard-Hulk entspreche, muss ich wohl gegen Diebstahl andere Massnahmen ergreifen.</p><p>Vorsorge ist besser als Heulen und Therapie im Nachhinein, darum habe ich jetzt, wo alle Ger&#228;te noch um mich herum sind, ein paar Dinge &#252;berlegt. Ich kann das nicht genug gewichten: Man sollte etwas tun, <strong>bevor</strong> die Ger&#228;te weg sind.</p><h3>Was kann man tun?</h3><p>Gewisse Dinge sind sehr einfach zu realisieren und ersparen viel M&#252;he:</p><dl><dt>Regelm&#228;ssiges Backup</dt><dd>Ok, das wird eh niemand tun, bevor nicht eine Semesterarbeit im den ewigen Datengr&#252;nden verschwindet oder stundenlang Daten wiederabgetippt werden m&#252;ssen. Sobald das aber einmal passiert ist, kann ich <a
href="http://luckybackup.sourceforge.net/">luckyBackup</a> und <a
href="http://www.cis.upenn.edu/~bcpierce/unison/">unison</a> empfehlen. Ein NAS w&#228;re mittlerweile ebenfalls erschwinglich. Wenn man viele Ger&#228;te besitzt, kann man auch Backuppen, indem man die Dateien auf allen Computern ablegt/synchronisiert. F&#252;r Serverbesitzer: Ich habe mittlerweile auch viele Dokumente und nicht nur Quellcode im svn.</dd><dt>Synchronisieren von Daten und Adressen</dt><dd>Oftmals wird der Wert von Terminen und Adressen untersch&#228;tzt. Syncen hilft, egal ob mit Google, <a
href="http://www.memotoo.com/">memotoo</a>, oder sonst was&#8230;</dd><dt>Absichern des Systems</dt><dd>Das hilft auch gegen neugierige Mitmenschen! Bootpasswort, BIOS-Passwort und das Booten von externen Ger&#228;ten unbedingt unterbinden! Wenn die Pladde nicht verschl&#252;sselt ist und ich von einem USB-Stick booten kann, hilft auch ein 42-Zeichen langes Passwort nix!</dd><dt>Installation von Anti Theft Software</dt><dd>Siehe unten.</dd></dl><h3>Anti Theft Software</h3><p>Das Prinzip ist einfach: Eine Software wird auf dem Laptop/Handy installiert, die sich regelm&#228;ssig bei einem Server meldet. Sollte das Ger&#228;t verschwinden, k&#246;nnen zum Einen Standort, Manipulationen und sogar Photos vom Dieb &#252;bertragen, zum Anderen Daten gesichert und das Ger&#228;t fernmanipuliert werden. Der absolute Br&#252;ller und Beweis, dass es klappen kann, ist <a
href="http://thisguyhasmymacbook.tumblr.com/">This Guy Has My MacBook</a>. Der Link ist wirklich hitverd&#228;chtig.</p><p><img
src="http://blog.oncode.info/wp-content/uploads/2011/06/prey-agent.png" alt="" title="prey-agent" width="64" height="64" class="lead" align="left" />F&#252;r Linux-Laptops gibt es beispielsweise <a
href="http://preyproject.com/">Prey</a> (ja, es gibt auch eine Windows- und eine <a
href="https://market.android.com/details?id=com.prey">Android</a>-Version). Diese L&#246;sung ist grunds&#228;tzlich gratis und bei Ubuntu &#252;ber den Package-Manager installierbar. In <tt>/etc/prey/config</tt> muss der api und der device-key von der Website eingetragen werden, dann sollte man noch <tt>/etc/cron.d/prey</tt> &#252;berpr&#252;fen und los gehts. Im Falle eines Diebstahl hat man alle sch&#246;nen Werkzeuge zur Verf&#252;gung.</p><p>Als Administrator kann man unter Linux mittels <tt>/usr/lib/prey/prey.sh</tt> die Ausf&#252;hrung testen, das Logfile befindet sich unter <tt>/var/log/prey.log</tt>. Windows hat in einem Unterverzeichnis <tt>check.bat</tt> das aber nur als Administrator durchl&#228;uft.</p><p>Unter Windows sollte man die Sache sowieso gut austesten, insbesondere, wenn man Standardbenutzer ohne Passwort hat. Diese haben standardm&#228;ssig die Erlaubnis, Dateien zu l&#246;schen. Abhilfe: Vererbbare Rechte f&#252;r das Verzeichnis in normale Rechte umwandeln und den &#8220;Authenticated Users&#8221; das &#8220;Change&#8221; Recht entziehen.</p><p>F&#252;r mein <a
href="/2010/11/25/archos-10-1-ein-geiles-geraet/">nicht-GPS und nicht-3G Android-Pad</a>, steht Prey im Androidmarket leider nicht zur Verf&#252;gung. Irgendeine chinesische Version erscheint zwar als Suchresultat, aber da bin ich nun doch etwas misstrauisch. Funktioniert hat <a
href="https://market.android.com/details?id=com.snuko.android">die App</a> von <a
href="http://www.snuko.com/de">Snuko</a>, wenn man eine Fake-Telefonnummer eingibt.</p><p>So, nun bin ich gespannt wie es sich im Ernstfall bew&#228;hrt. Ich bin auf jeden Fall ger&#252;stet und habe Vorgesorgt!</p><h3>Was w&#228;re sch&#246;n</h3><p>Ganz sch&#246;n w&#228;re eine einfache Bluetooth-Proximity Implementation. Sobald sich die Ger&#228;te mehr als ein paar Meter voneinander entfernen, sollten alle einen schrillen Pfeifton abgeben und eine nette Frauenstimme sollte k&#252;hl aber bestimmt sagen: &#8220;Skaldrom, du seniler Greis, hast Du nicht etwas vergessen?&#8221;. Hmm, das w&#228;re auch f&#252;r Kinder geeignet und in K&#252;rze werde ich auch f&#252;r meine Hosen ein solches Ger&#228;t brauchen&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2011/06/02/klauen-ist-auch-nicht-mehr-wie-fruher/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Automatischer Spell-Check in KMail</title><link>http://blog.oncode.info/2010/06/28/automatischer-spell-check-in-kmail/</link> <comments>http://blog.oncode.info/2010/06/28/automatischer-spell-check-in-kmail/#comments</comments> <pubDate>Mon, 28 Jun 2010 08:42:27 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Desktop]]></category> <category><![CDATA[default]]></category> <category><![CDATA[Dictionary]]></category> <category><![CDATA[kde]]></category> <category><![CDATA[kmail]]></category> <category><![CDATA[Kubuntu]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[spell]]></category> <guid
isPermaLink="false">http://blog.oncode.info/?p=1495</guid> <description><![CDATA[Automatische Rechtschreibepr&#252;fung in KMail einschalten.]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.oncode.info/wp-content/uploads/2010/06/orthogravieh.png" alt="" title="orthogravieh" width="194" height="140" class="lead" align="left"/>Als Ortogravieh-Experte bin ich sehr froh f&#252;r die roten Linien unter den falsch geschriebenen W&#246;rtern, man will ja nicht schon beim ersten Mail den Eindruck eines Dorftrottels hinterlassen <img
src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Leider schaltet sich diese sehr n&#252;tzliche Funktion bei KMail immer mal wieder aus.</p><p>Was bisher geholfen hat:</p><ul><li>Folgende Pakete m&#252;ssen installiert werden:<ul><li>spell</li><li>ispell</li><li>Lokale Dictionaries: ingerman, inswiss, &#8230;</li></ul></li><li>Global muss folgendes H&#228;ckchen gesetzt sein: <tt>Systemeinstellungen</tt> &rarr; <tt>Land/Region &amp; Sprache</tt> &rarr; <tt>Rechtschreibpr&#252;fung</tt> &rarr;<tt>Automatische Rechtschreibpr&#252;fung</tt> in der Voreinstellung aktiviert</li><li>Das Standardw&#246;rterbuch (Default-Dictionary) muss man in der Identit&#228;t einstellen: KMail &rarr; Einstellungen&#8230; &rarr; Identit&#228;ten &rarr; &#196;ndern &rarr; Erweitert.</li><li>Beim Schreiben einer Mail muss unten rechts <tt>Rechteschreibpr&#252;fung: ein</tt> stehen.</li><li>Das aktuelle W&#246;rterbuch kann angezeigt werden bei Ansicht &rarr; W&#246;rterbuch.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2010/06/28/automatischer-spell-check-in-kmail/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Avira Antivir Personal will nicht updaten</title><link>http://blog.oncode.info/2009/10/19/avira-antivir-personal-will-nicht-updaten/</link> <comments>http://blog.oncode.info/2009/10/19/avira-antivir-personal-will-nicht-updaten/#comments</comments> <pubDate>Mon, 19 Oct 2009 10:28:58 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Desktop]]></category> <category><![CDATA[Antivir]]></category> <category><![CDATA[Avira]]></category> <category><![CDATA[manuell]]></category> <category><![CDATA[update]]></category> <category><![CDATA[veraltet]]></category> <category><![CDATA[Virenschutz]]></category> <category><![CDATA[Windows]]></category> <guid
isPermaLink="false">http://blog.oncode.info/?p=1350</guid> <description><![CDATA[Wenn die Server von Avira Antivir &#252;berlastet sind, kann man die Virendefinitionen manuell updaten.]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.oncode.info/wp-content/uploads/2009/10/avira.png" alt="avira" title="avira" class="lead" align="left"/>Da Windows noch nicht ganz verschwunden ist, muss ich mich ab und an auch damit ein Bisschen herumschlagen. Es r&#228;cht sich f&#252;r die Vernachl&#228;ssigung , indem es jedesmal wenn es gebootet wird eine zuerst eine halbst&#252;ndige Updateorgie abzieht.</p><p>Einer der Updatewilligen ist <a
href="http://www.free-av.de/">Avira Antivir</a>. Avira ist mein bevorzugter Virenschutz, weil es sich sch&#246;n im Hintergrund h&#228;lt, seine Arbeit macht und mir nicht allzuweit ins System hineinfunkt. Leider scheinen die Server ab und zu &#252;berlastet zu sein und dann werde ich von Windows und Avira generft.</p><p>Doch Hilfe naht: In einem Beitrag in der <a
href="http://www.avira.com/en/support/kbdetails.php?id=95">Avira Knowledge Base</a> steht, wie man manuell updaten kann:</p><ol><li>Verlinkte Datei downloaden.</li><li>Avira Hauptprogramm starten.</li><li>Update &rarr; Manual Update ausw&#228;hlen.</li><li>Die Datei &#8211; wie sie ist &#8211; angeben.</li><li>Und schon sind alle gl&#252;cklich.</li></ol> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2009/10/19/avira-antivir-personal-will-nicht-updaten/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Showdown: Swiftfox gegen Firefox</title><link>http://blog.oncode.info/2009/04/13/showdown-swiftfox-gegen-firefox/</link> <comments>http://blog.oncode.info/2009/04/13/showdown-swiftfox-gegen-firefox/#comments</comments> <pubDate>Mon, 13 Apr 2009 17:22:03 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Applikationen]]></category> <category><![CDATA[Desktop]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Browser]]></category> <category><![CDATA[Firefox]]></category> <category><![CDATA[performance]]></category> <category><![CDATA[Swiftfox]]></category> <guid
isPermaLink="false">http://blog.oncode.info/?p=1133</guid> <description><![CDATA[Welcher Browser ist der schnellste? Bring der "Custom Build" von Swiftfox grosse Verbesserungen? Was kann man tun um den Firefox etwas zu beschleunigen?]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.oncode.info/wp-content/uploads/2009/04/chillfox.png" alt="chillfox" title="chillfox" align="right" class="lead" />Vor einiger Zeit gab es eine grosse <a
href="http://www.reddit.com/r/programming/comments/7x8mz/even_wine_beats_linux_firefox/">Kontroverse um Firefox unter Linux</a>: Messungen haben gezeigt, dass die <a
href="http://www.tuxradar.com/content/browser-benchmarks-2-even-wine-beats-linux-firefox">Windowsversion mit Wine unter Linux schneller gelaufen ist, als die Linux native Version</a>. Diese Messung hat sehr zu meinem subjektiven Eindruck gepasst: Firefox ist eine Schnecke unter Linux. Als Alternative wurde eine &#8220;optimierte&#8221; Version mit Namen Swiftfox offeriert. Nundenn, lasset uns das auschecken.</p><h3>Das Testsystem</h3><p>Der HP Laptop:</p><table><tr><th>Typ:</th><td>HP EliteBook 8530p</td></tr><tr><th>CPU:</th><td>Intel® Core™2 Duo Prozessoren T9400 (2,53 Mhz)</td></tr><tr><th>RAM:</th><td>4GB</td></tr><tr><th>Video:</th><td>ATI Technologies Inc Mobility Radeon HD 3650</td></tr><tr><th>Videodriver:</th><td>8.54.3</td></tr></table><p><br/><br
/> Der Dell Desktop:</p><table><tr><th>Typ:</th><td>Dell Inspiron 531 Desktop</td></tr><tr><th>CPU:</th><td>AMD Athlon(tm) 64 X2 3800+ (2.0G)</td></tr><tr><th>RAM:</th><td>4GB</td></tr><tr><th>Video:</th><td>NVIDIA GeForce 6150SE nForce 430</td></tr></table><p><br/><br
/> Windows:</p><table><tr><th>OS:</th><td>Microsoft Windows Vista Home Basic SP1 (32 Bit)</td></tr></table><p><br/><br
/> Linux:</p><table><tr><th>Distribution:</th><td>Kubuntu 8.10</td></tr><tr><th>Kernel:</th><td>2.6.27-11-generic #1 SMP x86_64 GNU/Linux</td></tr></table><p>Der Windowsrechner ist ein Desktop, daf&#252;r schon eine Spur &#228;lter. Bei den unterschiedlichen Hardwareplattformen sind die Resultate nat&#252;rlich nur bedingt vergleichbar. Klar h&#228;tte man das auf einer Kiste durchziehen k&#246;nnen, aber ich hab auch noch Anderes zu tun <img
src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230;</p><h3>Die Kontrahenten</h3><dl><dt>Swiftfox:</dt><dd><a
href="http://getswiftfox.com/">Swiftfox</a> sind &#8220;optimierte&#8221; Builds. Sie k&#246;nnen unter Debian wunderbar mittels apt-repository installiert werden. Leider hinken die Versionen etwas nach und die aktuellste ist 3.0.4pre. Swiftfox kann dasselbe Profil-Verzeichnis benutzen wie eine Firefox-Installation.</dd><dt>Firefox:</dt><dd>DER Klassiker. Anscheinend wird Firefox unter Windows entwickelt und humpelt darum in der Linuxversion etwas lahm. Unter beiden Betriebssystemen kam 3.0.8 zum Einsatz.</dd><dt>Internet Explorer</dt><dd>Der bei Vista, beiliegende und stetig upgedatete Microsoft Internet Explorer, Version 7.0.6001.18000.</dd></dl><h3>Die Messungen</h3><p>Ich habe die Tests jeweils zwei mal laufen lassen und die Resultate verglichen, damit die Plausibilit&#228;t einigermassen gegeben ist <img
src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230;</p><dl><dt><a
href="http://mootools.net/slickspeed/">MooTools SlickSpeed</a>:</dt><dd>Misst die Zeit, welche die Selektoren einiger prominenter JavaScript-Libraries brauchen in Millisekunden. Weniger ist demnach besser.</dd><dt><a
href="http://www2.webkit.org/perf/sunspider-0.9/sunspider.html">SUN Spider JavaScript Benchmark 0.9</a>:</dt><dd>Misst einige Operationen in Javascript. Die Zeitangaben sind in Millisekunden, weniger ist demnach besser.</dd><dt><a
href="http://celtickane.com/labs/web-browser-javascript-benchmark/">Celtic Kane JavaScript</a>:</dt><dd>Misst die Zeit, die einige grundlegende Operationen in JavaScript ben&#246;tigen in Millisekunden. Weniger ist besser.</dd><dt><a
href="http://people.opera.com/~pettern/performance-1.html">Opera DHTML Benchmark</a>:</dt><dd>L&#228;sst DHTML-B&#228;llchen im Browser h&#252;pfen und misst die Framerate. Gez&#228;hlt wurde bei 150 Dots. Mehr Frames pro Sekunde ist besser.</dd><dt><a
href="http://v8.googlecode.com/svn/data/benchmarks/v3/run.html">Google V8 Benchmark Suite</a>:</dt><dd>Misst einige grosse JavaScript-Operationen. Die Resultate sind relativ zu einem 100er Referenzsystem. Mehr Punkte sind besser.</dd><dt><a
href="http://www.numion.com/StopWatch/">Seitenladezeiten</a>:</dt><dd>Anzahl Sekunden, die eine Seite zum Laden braucht. Der Cache wurde vorher geleert. Weniger ist somit besser.</dd></dl><h3>Resultate</h3><h4>SlickSpeed</h4><table
border="1"><tbody><tr><th>Browser</th><th>Version</th><th>OS</th><th>HW</th><th>MooTools <span>↓</span></th><th>Jquery ↓</th><th>Prototype ↓</th><th>YUI ↓</th><th>Dojo ↓</th></tr><tr><td>Firefox</td><td>3.0.8</td><td>Linux</td><td>HP</td><td>350</td><td>376</td><td>353</td><td>639</td><td>239</td></tr><tr><td>Swiftfox</td><td>3.0.4pre</td><td>Linux</td><td>HP</td><td>374</td><td>391</td><td>447</td><td>682</td><td>254</td></tr><tr><td>Firefox</td><td>3.0.8</td><td>Linux</td><td>Dell</td><td>203</td><td>222</td><td>286</td><td>467</td><td>145</td></tr><tr><td>Firefox</td><td>3.0.8</td><td>Windows</td><td>Dell</td><td>127</td><td>140</td><td>236</td><td>317</td><td>96</td></tr><tr><td>MSIE</td><td>7.0.6001.18000</td><td>Windows</td><td>Dell</td><td>461</td><td>306</td><td>1895</td><td>1230</td><td>541</td></tr></tbody></table><p>Rangfolge:</p><ol><li>Firefox, 3.0.8, Windows, Dell</li><li>Firefox, 3.0.8, Linux, Dell</li><li>Firefox, 3.0.8, Linux, HP</li><li>Swiftfox, 3.0.4pre, Linux, HP</li><li>MSIE, 7, Windows, Dell</li></ol><h4>JavaScript</h4><table
border="1"><tbody><tr><th>Browser</th><th>Version</th><th>OS</th><th>HW</th><th>SUN Spider ↓</th><th>Celtic Kane ↓</th><th>Opera DHTML <span>↑</span></th><th>Google V8 ↑</th></tr><tr><td>Firefox</td><td>3.0.8</td><td>Linux</td><td>HP</td><td>3712.4</td><td>386</td><td>40</td><td>190</td></tr><tr><td>Swiftfox</td><td>3.0.4pre</td><td>Linux</td><td>HP</td><td>4040.2</td><td>431</td><td>40</td><td>185</td></tr><tr><td>Firefox</td><td>3.0.8</td><td>Linux</td><td>Dell</td><td>7044.4</td><td>639</td><td>29</td><td>104</td></tr><tr><td>Firefox</td><td>3.0.8</td><td>Windows</td><td>Dell</td><td>5264.2</td><td>469</td><td>31</td><td>126</td></tr><tr><td>MSIE</td><td>7.0.6001.18000</td><td>Windows</td><td>Dell</td><td>42943.2</td><td>1248</td><td>41</td><td>40.2</td></tr></tbody></table><p>Rangfolge:</p><ol><li>Firefox, 3.0.8, Linux, HP</li><li>Swiftfox, 3.0.4pre, Linux, HP</li><li>Firefox, 3.0.8, Windows, Dell</li><li>Firefox, 3.0.8, Linux, Dell</li><li>MSIE, 7, Windows, Dell</li></ol><h4>Ladezeiten</h4><table
border="1"><tbody><tr><th>Browser</th><th>Version</th><th>OS</th><th>HW</th><th>blog.oncode.info ↓</th><th>www.reddit.com/r/programming ↓</th><th>slashdot.org ↓</th><th>moodle.org ↓</th></tr><tr><td>Firefox</td><td>3.0.8</td><td>Linux</td><td>HP</td><td>3.27</td><td>2.89</td><td>4.8</td><td>4.54</td></tr><tr><td>Swiftfox</td><td>3.0.4pre</td><td>Linux</td><td>HP</td><td>4.16</td><td>3.58</td><td>5.83</td><td>4.36</td></tr><tr><td>Firefox</td><td>3.0.8</td><td>Linux</td><td>Dell</td><td>3.76</td><td>4.59</td><td>6.7</td><td>5.14</td></tr><tr><td>Firefox</td><td>3.0.8</td><td>Windows</td><td>Dell</td><td>2.89</td><td>2.27</td><td>4.9</td><td>4.55</td></tr><tr><td>MSIE</td><td>7.0.6001.18000</td><td>Windows</td><td>Dell</td><td>3.9</td><td>1.78</td><td>Fehler</td><td>4.87</td></tr></tbody></table><ol><li>Firefox, 3.0.8, Windows, Dell</li><li>MSIE, 7, Windows, Dell</li><li>Firefox, 3.0.8, Linux, HP</li><li>Swiftfox, 3.0.4pre, Linux, HP</li><li>Firefox, 3.0.8, Linux, Dell</li></ol><h3>Fazit</h3><p>Folgende Erkenntnisse kann man f&#252;r diese Plattform daraus ziehen:</p><ul><li>Die Windowsversion von Firefox ist schneller als die Linuxversion *gna*.</li><li>Die aktuelle Version des Firefox ist schneller als die aktuelle Version des Swiftfox.</li></ul><p>Ok, damit ist mein Browser bis auf Weiteres bestimmt.</p><h3>Verbesserungen</h3><p>Als erstes scheint die ATI Grafikkarte meines Laptops Schrott zu sein (mit dem Linuxtreiber). Sie zeigt Artefakte beim &#214;ffnen eines Fensters und verlangsamt das Scrollen im Firefox (neben dem Flackern beim Filme schauen und Anderem). Subjektiv erzeugt dies ein enormes Gef&#252;hl von Langsamkeit. Die neuen ATI Treiber funzen nicht, und so l&#228;sst man halt die alten installiert und wartet. Die NVIDIA-Karte auf dem Dell reagiert viel spritziger.</p><p>Zumindest einem Problem konnte ich abhelfen. Unter 64Bit wird der Flashplayer im Emulationsmodus laufen gelassen. Das braucht extrem viele Ressourcen und er wollte sich auch nicht immer sch&#246;n beenden. Fleissig wurden CPU und RAM von <em>npviewer.bin</em> belastet. Es gibt <a
href="http://labs.adobe.com/downloads/flashplayer10.html">von Adobe nun eine Alpha</a>, mit einer <a
href="http://www.myscienceisbetter.info/2008/11/install-native-64bit-flash-player-10-on-linux.html">Installationsanleitung von Romeo Adrian Cioaba</a>. ich hatte bisher keine Probleme und kann sie nur weiter empfehlen.</p> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2009/04/13/showdown-swiftfox-gegen-firefox/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Ein Word 2007 Makro nachtr&#228;glich mit einer Tastenkombination versehen</title><link>http://blog.oncode.info/2009/03/05/ein-word-2007-makro-nachtraeglich-mit-einer-tastenkombination-versehen/</link> <comments>http://blog.oncode.info/2009/03/05/ein-word-2007-makro-nachtraeglich-mit-einer-tastenkombination-versehen/#comments</comments> <pubDate>Thu, 05 Mar 2009 15:49:04 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Desktop]]></category> <category><![CDATA[2007]]></category> <category><![CDATA[Makro]]></category> <category><![CDATA[microsoft]]></category> <category><![CDATA[Shortcut]]></category> <category><![CDATA[Tastatur Office]]></category> <category><![CDATA[Word]]></category> <guid
isPermaLink="false">http://blog.oncode.info/?p=1065</guid> <description><![CDATA[Beschreibung, wie man in Word 2007 einem Makro nachtr&#228;glich eine Tastenkombination zuweisen kann.]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.oncode.info/wp-content/uploads/2009/03/office.png" alt="office" title="office" class="lead" align="left" />Zeichnet man in Word 2007 ein Makro auf, hat man die M&#246;glichkeit, dieses Makro mit einer Tastenkombination zu versehen. Verpasst man diese Chance, dann muss man etwas weiter graben:</p><p>Office-Signet &rarr; Word-Optionen (ganz unten) &rarr; Anpassen &rarr; Tastenkombinationen Anpassen (ganz unten) &rarr; Kategorien: Makros ausw&#228;hlen &rarr; Tastenkombination eingeben &rarr; Zuordnen&#8230;</p><p>Hat doch gar nicht weh getan&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2009/03/05/ein-word-2007-makro-nachtraeglich-mit-einer-tastenkombination-versehen/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Backup! Keine Ausreden mehr&#8230;</title><link>http://blog.oncode.info/2009/02/17/backup-keine-ausreden-mehr/</link> <comments>http://blog.oncode.info/2009/02/17/backup-keine-ausreden-mehr/#comments</comments> <pubDate>Tue, 17 Feb 2009 05:30:08 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Desktop]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[Backup]]></category> <category><![CDATA[Kubuntu]]></category> <category><![CDATA[Parted]]></category> <category><![CDATA[sbackup]]></category> <category><![CDATA[simple-backup]]></category> <category><![CDATA[Ubuntu]]></category> <guid
isPermaLink="false">http://blog.oncode.info/?p=1037</guid> <description><![CDATA[Jeder weiss: Backups sind wichtig, Backups sind gut. Zumindest bei mir hat diese Einsicht immer wieder die Tendenz, in die Theorie abzugleiten. Eigentlich d&#252;rfte das nicht sein, habe ich doch eine Diplomarbeit fast vollst&#228;ndig verloren aufgrund eines &#8220;Crashes&#8221; und bin somit ein &#8220;gebranntes Kind&#8221; (am Rande: Es war etwa 1996, ich machte erste Erfahrungen mit [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.oncode.info/wp-content/uploads/2009/02/tape.png" alt="tape" title="tape" class="lead" align="left" />Jeder weiss: Backups sind wichtig, Backups sind gut. Zumindest bei mir hat diese Einsicht immer wieder die Tendenz, in die Theorie abzugleiten. Eigentlich d&#252;rfte das nicht sein, habe ich doch eine Diplomarbeit fast vollst&#228;ndig verloren aufgrund eines &#8220;Crashes&#8221; und bin somit ein &#8220;gebranntes Kind&#8221; (am Rande: Es war etwa 1996, ich machte erste Erfahrungen mit Linux und dachte, dass man Dateien mittels <tt>cat MeineDatei.doc > /dev/sda1</tt> auf die Windows-Partition verschieben kann :irre: . Aber das erz&#228;hl ich besser niemandem&#8230;).</p><p>Es w&#228;re eigentlich auch kein Problem. Heutige, externe USB-Festplatten kosten nur noch <a
href="http://bee5.de/jN140" rel="nofollow">noch 0,13 Eur (19 Rappen)</a> pro Gigabyte (Tendenz fallend). Es gibt also keine Ausreden mehr!</p><h3>Anforderungen</h3><p>Es muss einfach sein! Wenn ich jedes mal eine halbe Stunde rumwursteln muss werde ich &#8211; so wie ich mich kenne &#8211; nie Backups machen. Die Geschwindigkeit spielt nicht sooo eine Rolle, wenn es nicht gerade Stunden dauert. Dateien m&#252;ssen gezielt ein- und ausgeschlossen werden k&#246;nnen. Ich brauche keine raffinierten Backuppl&#228;ne, ich werf es von Hand an wenn mich das Gewissen plagt. Und wenn ich schon Backup mache, dann soll es vom Backupprogramm einfach in Ruhe gelassen werden <img
src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Inkrementell sollte schon m&#246;glich sein: Dateien, die sich nicht ge&#228;ndert haben, sollen nicht nochmals gespeichert werden.<br
/> Ich h&#228;tte es begr&#252;sst, wenn die Dateien einzeln gespeichert w&#252;rden, jede einzeln gezipt, doch dieses Feature habe ich leider nirgends gefunden.</p><h3>Vorbereitungen</h3><p>Die meisten externen Festplatten sind mit VFAT formatiert. Dies hat zur Folge, dass die Dateigr&#246;sse 4 GiB nicht &#252;berschreiten darf. Darum w&#252;rde ich lieber auf ein Linux-ext3 System schreiben.</p><p>F&#252;r folgende Dinge kann vielleicht auch <a
href="http://qtparted.sourceforge.net/">QTParted</a> verwendet werden. Er liefert eine grafische Oberfl&#228;che, aber bei externen Festplatten hat er bei mir leider nicht richtig mitgespielt.</p><h4>Partitionieren der externen Festplatte</h4><p>M&#246;chte man eine VFAT-Partition behalten und hat schon Daten gespeichert, kann sie mittels <a
href="http://www.gnu.org/software/parted/index.shtml">Parted</a> verkleinert werden, um Platz f&#252;r eine Linuxpartition zu schaffen.</p><p>Als Erstes, nach dem Einstecken der Platte, mittels <tt>dmesg</tt> herausfinden wie das Devicefile heisst:</p><pre>
$ dmesg
...
[13756.075841] sd 8:0:0:0: [sdb] Write Protect is off
[13756.075852] sd 8:0:0:0: [sdb] Mode Sense: 38 00 00 00
[13756.075857] sd 8:0:0:0: [sdb] Assuming drive cache: write through
[13756.075867]  sdb: sdb1
...
</pre><p>In unserem Falle also <em>/dev/sdb</em>. Parted wird gestartet mittels <tt>sudo parted /dev/sdb</tt>. <tt>p</tt> zeigt die Partitionstabelle an. Die Nummer vorne merken (normalerweise eine 1) und mittels etwas wie <tt>resize 1 0 200GB</tt> die Partition verkleinern.</p><h4>Partition und Filesystem erstellen</h4><p>Um eine neue Partition zu erstellen eignet sich fdisk: <tt>sudo fdisk /dev/sdb</tt>. Mit <tt>d</tt> kann eine eventuell noch zu entfernende Partition vernichtet werden. <tt>n</tt> macht eine neue Partition. Nicht vergessen mit <tt>w</tt> die Tabelle zu speichern. Jetzt w&#228;re der Zeitpunkt gekommen, die Platte aus- und neu einzustecken.</p><p>Nun noch das Dateisystem erstellen: <tt>sudo mkfs.ext3 /dev/sdb1</tt> wenn die Erste Partition ext3 sein soll, <tt>/dev/sdb2</tt> wenn vorher noch eine VFAT liegt.</p><p>Ich m&#246;chte nicht bei jedem 20ten einst&#246;pseln checken (150 kling angenehmer) und ein sch&#246;nes Label:</p><pre>
tune2fs -c 150
tune2fs -L Backup
</pre><h3>Das Backup-Programm</h3><p>Meine Wahl fiel auf <a
href="http://wiki.ubuntuusers.de/sbackup">simple-backup</a>. Es ist einfach und vorallem nett und zuverl&#228;ssig.</p><h4>Konfiguration</h4><p>Zuerst muss eine Konfiguration vorgenommen werden: <tt>sudo simple-backup-config</tt> zeigt ein GUI zum Editieren der <tt><a
href="http://blog.oncode.info/wp-content/uploads/2009/02/sbackup.conf">/etc/sbackup.conf</a></tt>. Hier k&#246;nnen sehr einfach Verzeichnisse und Dateien hinzugef&#252;gt oder ausgeschlossen werden. Eine besondere Erw&#228;hnung verdienen vielleicht noch die Regex-Ausschlussm&#246;glichkeit:</p><ul><li>Es werden nur Dateien verglichen: Verzeichnisse werden gebackupt, auch wenn alle Dateien darin ausgeschlossen sind.</li><li>Die Regexe m&#252;ssen <em>nicht</em> komplett matchen. Ein <tt>/tmp/</tt> schliesst also <tt>/tmp/blah.txt</tt> als auch <tt>/home/gna/tmp/gno.txt</tt> aus.</li><li>Mindestens ein Regex muss vorhanden sein, sonst sichert simple-backup nicht.</li></ul><div
id="attachment_1047" class="wp-caption aligncenter" style="width: 694px"><img
src="http://blog.oncode.info/wp-content/uploads/2009/02/sbackup.png" alt="simple-backup Konfiguration" title="sbackup" width="684" height="476" class="size-full wp-image-1047" /><p
class="wp-caption-text">simple-backup Konfiguration</p></div><p>Zwei Bemerkungen noch: im Reiter <tt>Time</tt> kann eingestellt werden, wie oft ein vollst&#228;ndiges Backup gemacht werden soll. Alle ein bis zwei Jahre reichen mir, in der Zwischenzeit kann er inkrementell backuppen. Auf dem letzten Reiter, <tt>Purging</tt> habe ich alles ausgeschaltet. Hier wird nicht gepurget!</p><div
id="attachment_1049" class="wp-caption aligncenter" style="width: 694px"><img
src="http://blog.oncode.info/wp-content/uploads/2009/02/sbackup-time.png" alt="Immer sch&#246;n iisi mit dem Fullbackup..." title="sbackup-time" width="684" height="476" class="size-full wp-image-1049" /><p
class="wp-caption-text">Immer sch&#246;n iisi mit dem Fullbackup...</p></div><p>Am Schluss <tt>Save</tt> NICHT VERGESSEN.</p><h4>Backup</h4><p>Das Backup kann vom <tt>simple-backup-config</tt> GUI aus gestartet werden, von wo aus es dann ruhig und still seine Arbeit verrichtet. Vor dem Ausschalten sollte man allerdings mittels <tt>ps -axww | grep sbackupd</tt> sicherstellen, dass es seine Arbeit vollendet hat.</p><p>Zweite M&#246;glichkeit: <tt>sudo sbackupd</tt> und warten bis er terminiert.</p><h4>Restore</h4><p>Man sollte <em>immer</em> ein Restore versuchen. Beim Simple-Backup geht das entweder &#252;ber das GUI <tt>simple-restore-gnome</tt> (l&#228;uft auch unter KDE) oder aber per Kommandozeile. Schliesslich sind es alles GZips&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2009/02/17/backup-keine-ausreden-mehr/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Lokale Turniere f&#252;r CodeRuler</title><link>http://blog.oncode.info/2008/12/17/lokale-turniere-fuer-coderuler/</link> <comments>http://blog.oncode.info/2008/12/17/lokale-turniere-fuer-coderuler/#comments</comments> <pubDate>Wed, 17 Dec 2008 10:15:41 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Applikationen]]></category> <category><![CDATA[Desktop]]></category> <category><![CDATA[eLearning]]></category> <category><![CDATA[Coderuler]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[local]]></category> <category><![CDATA[lokal]]></category> <category><![CDATA[Programmierspiele]]></category> <category><![CDATA[Spiel]]></category> <category><![CDATA[Tournament]]></category> <category><![CDATA[Turnier]]></category> <guid
isPermaLink="false">http://blog.oncode.info/?p=895</guid> <description><![CDATA[Beschreibung wie Turniere in CodeRuler veranstaltet werden k&#246;nnen, wenn keine direkte Netzverbindung zum Server besteht.]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.oncode.info/wp-content/uploads/2008/12/coderuler.png" alt="coderuler" title="coderuler" align="left" class="lead" /><a
href="http://www.alphaworks.ibm.com/tech/coderuler">CodeRuler</a> ist ein geniales <a
href="http://blog.oncode.info/2007/08/08/5-wege-fuer-programmiererinnen-die-zeit-intelligent-zu-verdoedeln/">Programmierspiel</a> von IBM. Es eignet sich sehr f&#252;r eine spielerische Besch&#228;ftigung mit der Programmiersprache Java.</p><p>F&#252;r Turniere hat das Spiel eine eingebaute Serverfunktion. Rulers werden ganz bequem von Eclipse aus eingereicht und stehen dann auf dem Server zur Verf&#252;gung. Wenn man allerdings eigene Rulers gegeneinander antreten lassen m&#246;chte, oder wenn das Netz securitym&#228;ssig so abgeriegelt ist dass Peer to Peer Verbindungen nicht m&#246;glich sind, muss man etwas tricksen. Hier die einfachste M&#246;glichkeit unter Linux (eventuell portierbar), die ich gefunden habe. <a
href="http://philipmjohnson.blogspot.com/2007/09/coderuler-tournament-setup.html">Kompliziertere M&#246;glichkeiten</a> gibt es nat&#252;rlich auch.</p><ol><li>Die <tt>MyRuler.java</tt> Dateien m&#252;ssen irgendwie auf den Servercomputer kommen. Ev. mit E-Mail, USB-Stick oder Flaschenpost.</li><li>Den Server in Eclipse starten mittels: <tt>Window &rarr; Preferences &rarr; Games &rarr; Start</tt>. Eventuell sollte vor dem Start der Port angepasst werden (9999 ist gut).</li><li>F&#252;r jeden Ruler muss ein eigenes &#8220;Game&#8221; Projekt in Eclipse erstellt werden. Die <tt>MyRuler.java</tt> dorthin kopieren.</li><li>F&#252;r jeden Ruler Folgendes erledigen:<ol><li>Projekt &#246;ffnen und <tt>Games.xml</tt> anklicken.</li><li>Mit dem Pfeil den Bereich <tt>Game Server</tt> erweitern und die korrekten Daten ausf&#252;llen.</li><li><tt>Identification</tt> ausf&#252;llen.</li><li>Ruler submitten.</li><li>Im Workspace Verzeichnis (Ersichtlich unter <tt>File &rarr; Switch Workspace</tt>) in <tt>.metadata/.plugins/com.ibm.games/players</tt> wechseln</li><li>Das Verzeichnis <tt>localhost</tt> in irgendetwas Anderes umbenennen</li></ol></li></ol><p>Turniere k&#246;nnen nun an Zwei Orten durchgef&#252;hrt werden:</p><ul><li>Entweder Direkt von einem <tt>games.xml</tt> aus.</li><li>Im Turniermodus: <tt>Window &rarr; Preferences &rarr; Games &rarr; Tournaments.</tt></li></ul><p>Der Turniermodus ist ein Sensibelschen. Turniere scheinen nur mit neu submitteten Rulern m&#246;glich zu sein. Ausserdem: <em>Im Hintergrund wird sofort mit dem Turnier begonnen!</em> Das GUI zeigt keine direkte Reaktion, nicht mal ein Eintrag des neuen Turniers ist ersichtlich, aber im Hintergrund k&#228;mpfen die armen Gesellen. Das Spiel kann dann mit dem Button <tt>Play</tt> angesehen werden. Hier hat erst ein Klick auf den schwarzen Bereich das Spielfeld zum Vorschein gebracht.</p> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2008/12/17/lokale-turniere-fuer-coderuler/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Avaloqix: Unterhaltsamer Java-Programmierwettbewerb</title><link>http://blog.oncode.info/2008/08/23/avaloqix-unterhaltsamer-java-programmierwettbewerb/</link> <comments>http://blog.oncode.info/2008/08/23/avaloqix-unterhaltsamer-java-programmierwettbewerb/#comments</comments> <pubDate>Sat, 23 Aug 2008 19:56:11 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Desktop]]></category> <category><![CDATA[Theorie und Schnipsel]]></category> <category><![CDATA[Avaloqix]]></category> <category><![CDATA[Coding]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[Game]]></category> <category><![CDATA[Informatik]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[Programmierspiele]]></category> <category><![CDATA[shannon]]></category> <category><![CDATA[Shannon Switching Game]]></category> <category><![CDATA[Spass]]></category> <category><![CDATA[Spiel]]></category> <category><![CDATA[Wettbewerb]]></category> <guid
isPermaLink="false">http://blog.oncode.info/?p=552</guid> <description><![CDATA[Avaloqix ist ein Programmierspiel f&#252;r Javaprogrammierer. Ein Wettbewerb mit Preisen und eine sch&#246;ne "Arena" machen das Teilnehmen zu einem Erlebnis.]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.oncode.info/wp-content/uploads/2008/08/neuron.png" alt="Flow im Hirn" title="neuron" class="lead" align="left" />Ich liebe Wettbewerbe und ich liebe das Spielen. Meine inneres, urm&#228;nnliches Ich springt voll auf das kompetitive Element solcher Veranstaltungen an. Zum Erlegen von H&#246;hlenb&#228;ren oder f&#252;r Sportwettk&#228;mpfe eigne ich mich definitiv nicht, darum bin ich froh, wenn ab und zu ein Kr&#228;ftemessen auf meinem &#8211; eher wetwarelastigen &#8211; Gebiet stattfindet.</p><p>Leider hat es jetzt seit l&#228;ngerer Zeit kein <a
href="http://www.frigidor.ch/codeduel/">Codeduel</a> (ein spassiger, von Microsoft Schweiz gesponserter/organisierter Event in welchem SOAP-Services gegeneinander angetreten sind, f&#252;r den es aber leider keine offizielle Website mehr gibt) mehr gegeben und f&#252;r die <a
href="http://www.topcoder.com/">kommerzielle Version</a> solcher Wettbewerbe habe ich im Moment wirklich keine Zeit.</p><p>&#220;ber die Seite des Schweizerischen Jahres der Informatik bin ich  auf <a
href="http://www.avaloq.com/itadventure/">Avaloqix</a> gestossen und war sofort begeistert. Am Tag der Informatik am 29. August 2008 in Z&#252;rich wird es ein Event speziell zu diesem Wettbewerb geben.</p><h3>Das Spiel</h3><p>Es geht darum, einen Spieler f&#252;r eine abgewandelte Version des <a
href="http://en.wikipedia.org/wiki/Shannon_switching_game">Shannon Switching Games</a> zu programmieren. Kurz erkl&#228;rt: Es gibt eine Quelle und ein Senke, die &#252;ber ganz viele R&#246;hren und Sammelpunkte miteinander verbunden sind. Im ersten Durchgang versucht der eine Spieler einen m&#246;glichst grossen Durchfluss zu erzielen indem er R&#246;hren freischaltet, w&#228;hrend der andere Spieler ebendies durch das Ausbauen von R&#246;hren zu verhindern versucht. In einer zweiten Runde werden die Rollen der Spieler in demselben R&#246;hrengeflecht getauscht. Gewonnen hat, wer als Durchflussmaximierer den gr&#246;sseren Durchfluss erzielen konnte.</p><h3>Avaloqix</h3><p><a
href="http://www.avaloq.com/itadventure/">Avaloqix</a> ist ein Spiel der <em>Avaloq Evolution AG</em> (die f&#252;r diese geniale Leistung und ihr Engagement durchaus etwas Werbung verdient hat). F&#252;r dieses Spiel wurde eine sehr anm&#228;chelige Spieloberfl&#228;che kreiert, in welcher zwei Comutergegner oder auch Menschen dieses Spiel spielen k&#246;nnen. Auf der <a
href="http://www.avaloq.com/itadventure/">Homepage</a> findet man den Download inklusive Anleitungen zum Einstieg.</p><div
id="attachment_561" class="wp-caption alignnone" style="width: 310px"><a
href="http://blog.oncode.info/wp-content/uploads/2008/08/avaloqix.png"><img
src="http://blog.oncode.info/wp-content/uploads/2008/08/avaloqix-300x246.png" alt="Die Avaloqix Spieloberfl&#228;che" title="Avaloqix Spieloberfl&#228;che" width="300" height="246" class="size-medium wp-image-561" /></a><p
class="wp-caption-text">Die Avaloqix Spieloberfl&#228;che</p></div><p>Im Download werden zwei Beispielspieler mitgeliefert: Ein Zufallsspieler (mit Quellcode) und einer, der auf den Namen <em>OptimalOneAgent</em> h&#246;rt. Obwohl er stolz das <em>Optimal</em>im Namen f&#252;hrt, ist er jedoch auch f&#252;r impulsive, r&#252;ckenmarkgesteuerte Spieler wie mich (zumindest bei wenigen Knoten) relativ einfach schlagbar. Ich nehme mal an, dass dieser Agent so verf&#228;hrt, als wenn alle Pipes nur 1 Durchfluss h&#228;tten.</p><p>Gestartet werden kann die Spieloberfl&#228;che mittels <tt>java -jar Avaloqix.jar</tt>.</p><h3>Avaloqix unter Eclipse</h3><p>Eine Anleitung f&#252;r Netbeans liegt dem Spiel bei. Auch mit Eclipse ist es nicht schwer, Spielerprogramme zu entwickeln.</p><ol><li>Neues Java Projekt erstellen.</li><li>Rechte Maustaste auf das Projekt &rarr; Properties &rarr; Java Build Path &rarr; Libraries &rarr; Add External JARs&#8230; &rarr; <tt>AvaloqixAgentInterface.jar</tt> ausw&#228;hlen und OK dr&#252;cken:<br
/><div
id="attachment_565" class="wp-caption alignnone" style="width: 310px"><a
href="http://blog.oncode.info/wp-content/uploads/2008/08/eclipse-avaloqix.png"><img
src="http://blog.oncode.info/wp-content/uploads/2008/08/eclipse-avaloqix-300x204.png" alt="Avaloqix unter Eclipse" title="Avaloqix unter Eclipse" width="300" height="204" class="size-medium wp-image-565" /></a><p
class="wp-caption-text">Avaloqix unter Eclipse</p></div></li><li>Ein Spielprogramm <strong>im Package agents</strong> erstellen (eventuell von <tt>RandomAgent.java</tt>) ausgehend.</li><li>Project &rarr; Build All</li><li>Die .class Datei aus <tt>bin/agents/</tt> in das <tt>agents</tt> Verzeichnis der Spieloberfl&#228;che kopieren. Ab da ist er in der Spieloberfl&#228;che verf&#252;gbar.</li></ol><h3>Wichtig</h3><p>Leider gibt es auf der Avaloqix wenig M&#246;glichkeiten zum Austausch und zur Communitybildung. Gerade bei den Codeduels ging da immer der Punk ab, und so habe ich ein kleines Forum f&#252;r die Diskussion eingerichtet <strong>Update 01.2009: Forum gel&#246;scht mangels Interesse und wegen Spam</strong>), vielleicht besteht ja auch hier das Bed&#252;rfnis sich &#252;ber Strategien, Lust und Frust und verschiedene Biersorten zu unterhalten:</p><div
id="attachment_563" class="wp-caption alignnone" style="width: 310px"><img
src="http://blog.oncode.info/wp-content/uploads/2008/08/codinggamesforum-300x209.png" alt="Oncode.info Coding Games Forum" title="Oncode.info Coding Games Forum" width="300" height="209" class="size-medium wp-image-563" /><p
class="wp-caption-text">Oncode.info Coding Games Forum</p></div><p>Als Leckerli sind dort schon einige Verweise zu den theoretischen Grundlagen des Spiels gepostet. Es w&#252;rde mich sehr freuen, von anderen Teilnehmerinnen und Teilnehmern zu lesen&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2008/08/23/avaloqix-unterhaltsamer-java-programmierwettbewerb/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>AntMe, Spass mit programmierbaren Ameisen</title><link>http://blog.oncode.info/2008/07/02/antme-spass-mit-programmierbaren-ameisen/</link> <comments>http://blog.oncode.info/2008/07/02/antme-spass-mit-programmierbaren-ameisen/#comments</comments> <pubDate>Wed, 02 Jul 2008 09:37:18 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Coding]]></category> <category><![CDATA[Desktop]]></category> <category><![CDATA[Ameise]]></category> <category><![CDATA[AntMe]]></category> <category><![CDATA[CSharp]]></category> <category><![CDATA[eLearning]]></category> <category><![CDATA[Game]]></category> <category><![CDATA[microsoft]]></category> <category><![CDATA[Programmieren]]></category> <category><![CDATA[Programmierspiele]]></category> <category><![CDATA[Software]]></category> <category><![CDATA[Spass]]></category> <category><![CDATA[Spiel]]></category> <category><![CDATA[vb.net]]></category> <category><![CDATA[Zeitvertreib]]></category> <guid
isPermaLink="false">http://blog.oncode.info/2008/07/02/antme-spass-mit-programmierbaren-ameisen/</guid> <description><![CDATA[Spielen hilft auf verscheidenen Ebenen Spass und Wissen mit und &#252;ber den Computer zu f&#246;rdern. AntMe ist ein raffiniertes Programmierspiel f&#252;r .net das viel Freude bereitet.]]></description> <content:encoded><![CDATA[<p><img
src='http://blog.oncode.info/wp-content/uploads/2008/07/ant.png' alt='AntMe!' align='left' class='lead'/>Nachdem ich die Ameisen in meiner Wohnung mit ganz perfidem tragts-es-zu-euch-nach-Hause-und-vergiftet-eure-Nachkommen-Gift losgeworden bin, habe ich sehr viel sympathischere Zeitgenossen dieser Spezies getroffen: AntMe ist ein Programmierspiel, dass aus <a
href="http://www.microsoft.com/germany/msdn/coding4fun/default.mspx">Microsofts Coding4Fun Initiative</a> (nicht zu verwechseln mit dem Galileo <a
href="http://www.amazon.de/gp/product/3836211165?ie=UTF8&#038;tag=tecgotundand-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=3836211165" rel="nofollow">Coding for Fun</a> Buch. Das ist auch spassig, behandelt auch AntMe, aber zus&#228;tzlich noch viele Andere Dinge) hervorgegangen ist. Es hat einen <a
href="http://de.wikipedia.org/wiki/Antme">eigenen Wikipedia Artikel</a> und vorallem eine geniale <a
href="http://antme.net/">Homepage</a>.</p><p>Grunds&#228;tzlich geht es darum Ameisen zu implementieren die &#252;berleben, &#196;pfel und Zucker sammeln und unter Umst&#228;nden auf K&#228;fer und fremde Ameisen losgehen. Ein Markierungsmechanismus sorgt daf&#252;r, dass die Ameisen untereinander kommunizieren k&#246;nnen. Fortgeschrittene Ameisenpapis und -mamis k&#246;nnen spezialisierte Ameisen erstellen und <a
href="http://de.wikipedia.org/wiki/Rollenspiel_%28Spiel%29#Nach_Spielweise">RPG</a> m&#228;ssig Eigenschaften verbessern, wenn sie daf&#252;r andere verschlechtern.</p><p><img
src='http://blog.oncode.info/wp-content/uploads/2008/07/dieameiseninaktion.gif' alt='Die Ameisen in Aktion' /></p><p>Die Ameisen k&#246;nnen in C# oder in Visual Basic .net mit der notwendigen Intelligenz versehen werden. Bestimmte Methoden werden zu bestimmten Ereignissen aufgerufen; beispielsweise <tt>WirdM&#252;de()</tt> (ja, mit &#8220;&#252;&#8221; und deutsch) oder <tt>SiehtFeind(ByVal k&#228;fer As K&#228;fer)</tt>. Zur Steuerung steht fast der ganze .net Sprachumfang zur Verf&#252;gung, sowie Ameisenspezifische Hilfsmethoden wie etwa <tt>GeheZuBau()</tt> oder <tt>GreifeAn(k&#228;fer)</tt>.</p><h3>Quickstart</h3><p>Auf der <a
href="http://antme.net/">AntMe Homepage</a> findet man verschiedene Versionen. Wir spielen hier mit der 1.5 Beta 2 (VB.net oder C#, je nach Gusto). Die Profiversion beinhaltet den gesamten Quellcode der Spielengine (!). Das ist so genial, dass es nochmals erw&#228;hnt werden darf: Die Profiversion beinhaltet den gesamten Quellcode der Spielengine. Will man sich nur mit den Ameisen besch&#228;ftigen, reicht die Einsteigerversion. Im Download enthalten ist ein gut dokumentiertes Ameisenskelett, bei dem sofort losgottgespielt werden kann.<br
/> Eine gute Doku &#252;ber die Klassen und deren Methoden sowie ein Tutorial wird mitgeliefert. Zum Teil beziehen sich die Unterlagen noch auf Version 1.1, aber der Transfer zu 1.5 ist eigentlich kein Problem. F&#252;r Leute, die lieber kuckn statt lesen, gibt es gut gemachte Screencasts, die ebenfalls in die Thematik einf&#252;hren.</p><p>F&#252;r eher haptisch veranlagte Menschen gibt es auch ein Buch: <a
href="http://www.amazon.de/gp/product/3866452055?ie=UTF8&#038;tag=tecgotundand-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=3866452055" rel="nofollow">AntMe! &#8211; Programmieren und Spielen mit den Ameisen und Visual C#</a>. Das kenne und besitze ich allerdings (noch) nicht.</p><p>Verf&#252;gt man noch &#252;ber keine Programmierumgebung, so k&#246;nn bei Microsoft gratis die <a
href="http://www.microsoft.com/germany/express/">Express Versionen</a> verschiedener Sprachen downgeloaded werden. F&#252;r die 3D Visualisierung braucht man<br
/> noch <a
href="http://www.microsoft.com/downloads/details.aspx?displaylang=de&#038;FamilyID=2DA43D38-DB71-4C1B-BC6A-9B6652CD92A3">DirectX</a>. Mit der neusten Version (nicht mit der im Forum angegebenen) hat es wunderbar gefunzt.</p><h3>Turniere</h3><p>Ein Bisschen lebt das Ganze auch vom kompetitiven Element (um ehrlich zu sein, vielleicht ist ein Bisschen etwas untertrieben: ICH FRESS EUCH ALLE AUF!). In der Version 1.5 funktioniert das Importieren von anderen Ameisen leider nicht und es wird eine unbehandelte Ausnahme ausgespuckt:<br
/> <em>Der Typ f&#252;r Member AntMe.SpielKonfiguration.AntMe.Simulation, Version=1.5.0.0, Culture=neutral, PublicKeyToken=37d8e32ef3294969 wurde nicht aufgel&#246;st.</em></p><p>Workaround f&#252;r die VB-Version (C# ungetestet):</p><ol><li>Abgabe der Ameisen im Quellcode (ist eh besser, da man so Betr&#252;germeisen (Siehe unten) erkennt).</li><li>Drag and Drop des Quellcodes in das Projekt.</li><li>Compilieren und das <del>Massaker</del> Messen der intellektuellen Kapazit&#228;ten kann starten.</li></ol><p>Wenn einzelne Ameisen in C# gecoded sind, kann der <a
href="http://labs.developerfusion.co.uk/convert/csharp-to-vb.aspx">Online-Konverter</a> den Code in VB umwandeln (mit gemischtem Erfolg). Ist denn C# und VB dasselbe (*frech_grins*)?</p><h3>Fragen und Antworten/Tipps und Tricks</h3><p>Q: Warum verhungern meine Ameisen? Ich habe doch die folgenden Zeilen eingef&#252;gt:<br
/> [cc lang="vbnet"]<br
/> Public Overrides Sub WirdM&#252;de()<br
/> Me.GeheZuBau()<br
/> End Sub<br
/> [/cc]</p><p>A: Wahrscheinlich wird die arme Ameise auf ihrem nach Hauseweg f&#252;r andere Jobs eingespannt! Wird sie vielleicht auf K&#228;fer oder feindliche Ameisen losgejagt wenn sie solche sieht? Oder muss das arme Insekt beim Apfeltragen helfen wenn sie an einer solchen Gruppe vorbeikommt? Man sollte sie jeweils in Ruhe lassen wenn sie in Richtung Bau dackelt und rund um Aktionen folgendes schreiben:<br
/> [cc lang="vbnet"]<br
/> if Not TypeOf Me.Ziel Is Bau then<br
/> &#8216; Hier was stressiges machen<br
/> end if<br
/> [/cc]</p><hr
width="33%"/><p>Q: Wie finde ich die Koordinaten meines Baus?</p><p>A: Am besten eine shared/Static Variable vom typ <tt>Bau</tt> definieren. Die erste Ameise zum Bau schicken, dann werden die Koordinaten des Baus zu ihrem <tt>Ziel</tt>, von wo sie dann ausgelesen werden k&#246;nnen:<br
/> [cc lang="vbnet"]<br
/> [...]<br
/> Private Shared bau As IKoordinate<br
/> [...]<br
/> If bau Is Nothing Then<br
/> Me.GeheZuBau()<br
/> bau = Me.Ziel<br
/> End If<br
/> [/cc]</p><hr
width="33%"/><p>Q: Wie komme ich an die X und Y Koordinaten eines Objekts?</p><p>A: Gar nicht. Aber gewitzte Ameisenk&#246;nige k&#246;nnen <a
href="http://de.wikipedia.org/wiki/Polarkoordinaten">Polarkoordinaten</a> verwenden. Man weiss ja wo der Bau ist, die Winkel sind absolut, &#8230;</p><hr
width="33%"/><p>Q: Meine Ameisen verhalten sich in der zweiten Runde ziemlich irr, woran kann das liegen?</p><p>A: Vielleicht sind sie irr? Es k&#246;nnte aber auch am Umstand liegen, dass anscheinend statische Variablen zwischen den Durchg&#228;ngen nicht neu initialisiert werden. Von Hand k&#246;nnte man beispielsweise folgendes tun:<br
/> [cc lang="vbnet"]<br
/> Public Overrides Function BestimmeTyp(ByVal anzahl As Dictionary(Of String, Integer)) As String<br
/> &#8216; Init for rounds > 1<br
/> If anzahl(&#8220;Kundschafterin&#8221;) + anzahl(&#8220;Kriegerin&#8221;) < 2 Then<br
/> &#8216; Reset all static members<br
/> lastphase = False<br
/> bau = Nothing<br
/> ObstSpeicher.Clear()<br
/> ZuckerSpeicher.Clear()<br
/> [...]<br
/> End If<br
/> [...]<br
/> [/cc]</p><hr
width="33%"/><p>Q: Ich bekomme eine Fehlermeldung, wenn ich auf den Freund in <tt>SiehtFreund(ByVal ameise As Ameise)</tt> zugreifen will, was geht da ab?</p><p>A: Das scheint ein Bug zu sein. Freunde scheinen halt ab und zu zu verschwinden <img
src='http://blog.oncode.info/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> . Um das Turnier nicht gewaltsam zu beenden, sollte man checken, ob es sich um einen wahren Freund handelt:<br
/> [cc lang="vbnet"]<br
/> if not ameise is nothing then<br
/> &#8216; Hier was funkyges tun mit dem Freund<br
/> end if<br
/> [/cc]</p><hr
width="33%"/><p>Q: Wenn ich in Visual Basic die Funktionen der <tt>Koordinaten</tt> Klasse benutzen m&#246;chte, wird es unterstrichen und folgendes gemeldet: <em>Zugriff des freigegebenen Members, konstanten Members, Enumerationsmembers oder geschachtelten Typs &#252;ber eine Instanz; Der qualifizierende Ausdruck wird nicht ausgewertet.</em>. In was f&#252;r einer Sprache ist diese Fehlermeldung?</p><p>A: In MS-Deutsch(tm) <img
src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Um <tt>Koordinate</tt> ohne gemotze zu verwenden sollte man sie folgendermassen qualifizieren: <tt>Global.AntMe.Koordinate</tt>.</p><hr
width="33%"/><p>Q: Ich m&#246;chte mit der Markierung einen Punkt und nicht einen Winkel &#252;bergeben.</p><p>A: Entweder Polarkoordinaten verwenden oder ganz einfach: <tt>Me.GeheZuZiel(markierung)</tt> verwenden.</p><hr
width="33%"/><p>Q: &#196;pfel werden in einem Multiplayerspiel irgendwohin getragen, sind die Ameisen besoffen?</p><p>A: Nein, aber das kann passieren wenn Ameisen von verschiedenen Gruppen den Apfel in verschiedene Richtungen zerren.</p><hr
width="33%"/><p>Q: Psst! *fl&#252;ster* Ich habe geh&#246;rt man kann bescheissen?</p><p>A: Ja, kann man. Es ist m&#246;glich Ameisen zu beamen, fremde Ameisen &#8220;Zu &#252;bernehmen&#8221;, etc. Das ist Bugusing und nicht nett. Beim <a
href="http://judt-softwaretechnology.com/AntMeForum/tabid/58/forumid/5/scope/threads/Default.aspx">Judt AntMe Forum</a> gibt es diese Entdeckungen nachzulesen.</p><hr
width="33%"/><p>Q: Was ist ein <em>Globales Ged&#228;chtnis</em>?</p><p>A: In der objektorientierten Programmierung kennt man eine bestimmte Art von Variablen, die <em>statisch</em> (<em>shared</em> in vb.net) sind. Diese werden dann nicht in den Objekten, sondern in den Klassen gespeichert. Das heisst, alle Objekte greifen auf dieselbe Variable zu. Wenn eine Ameise in einer Solchen etwas speichert, steht es allen Anderen auch zur Verf&#252;gung. Nicht gerade naturnah, aber sehr effizient <img
src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><hr
width="33%"/><p>Q: Ich m&#246;chte eine Ameise mit verschiedenen Phasen. Wie finde ich heraus, bei welchem Tick wir sind?</p><p>A: Eigentlich gar nicht. Man kann in der Funktion <tt>Tick()</tt> z&#228;hlen, aber das ist risikoreich, weil die Anzahl Ticks pro Spiel ver&#228;ndert werden kann, die Funktion unter Umst&#228;nden mehrfach aufgerufen wird und eine neu erzeugte Ameise dann mitten im Spiel bei 0 beginnt. Eine Kr&#252;cke ist folgender Code im Tick(), der darauf hofft, dass mindestens eine Ameise von Beginn weg &#252;berlebt und im globalen Ged&#228;chtnis eine Variable setzt sobald die Anzahl Ticks erreicht wird. Darauf sollten dann alle Ameisen reagieren. F&#252;r Verbesserungsvorschl&#228;ge w&#228;re ich sehr offen, aber bitte nur getestete und validierte.<br
/> [cc lang="vbnet"]<br
/> Public Overrides Sub Tick()<br
/> Me.ticks = Me.ticks + 1<br
/> If Me.ticks >= lastphaseticks Then<br
/> lastphase = True<br
/> End If<br
/> [...]<br
/> [/cc]</p><h3>Beispiele</h3><p>Die <a
href="http://blog.oncode.info/wp-content/uploads/2008/07/aggrosvb.zip">Aggros</a> sind Ameisen mit globalem Ged&#228;chtnis. Kundschafterinnen finden Mapf und Feinde, Sammlerinnen wenden sich dem n&#228;chstgelegenen Mapf zu und Kriegerinnen nehmen sich den Feinden an. L&#228;uft ganz ok.</p><p>Die <a
href="http://blog.oncode.info/wp-content/uploads/2008/07/applekornvb.zip">Applekorns</a> sind noch in Entwicklung. Die Idee war, alle &#196;pfel in die N&#228;he des eigenen Baus zu bringen um fremde Ameisen anzulocken, Zuckerhaufen zu besetzen und kurz vor Schluss alles einzuheimsen. Sie bieten noch sehr viel Optimierungspotential.</p><p>Ganz genial sind die <a
href="http://judt-softwaretechnology.com/AntMeForum/tabid/58/forumid/4/threadid/21/scope/posts/Default.aspx">Polarameisen</a>. Sie kommen ohne globales Ged&#228;chtnis aus und spr&#252;hen kodierte Polarkoordinaten &#252;ber das Spielfeld. Das f&#252;hrt dazu, dass die Ameisen wirklich wie am Schn&#252;rchen zur Futterquelle gehen. Ebenfalls integriert ist eine Berechnung der Zeit, die eine Ameise braucht, bis sie bei einem Ziel ankommt und noch viele weitere Schmankerl. Ein sch&#246;nes St&#252;ck Software.</p><h3>Fazit und Ausblick</h3><p>Mit diesen Programmierspielen kann sehr viel gelehrt und gelernt werden: Sprachpraxis, Programmierroutine, Problemdekomposition und Konzepte wie statische Variablen und &#220;berladungen. Es ist sch&#246;n die Lichtlein zu sehen die aufgehen, wenn man sp&#228;ter im Unterricht auf die Ameisen verweisen kann und sofort ein tieferes Verst&#228;ndnis da ist.</p><p>Es w&#252;rde mich extrem reizen, diese Ameisen mit einem <a
href="http://cdrnet.net/projects/neuro/">neuronalen Netz</a> zu versehen oder sie mittels <a
href="http://de.wikipedia.org/wiki/Genetische_Algorithmen">genetischen Algorithmen</a> zu z&#252;chten. H&#228;tte ich doch mal einfach etwas Zeit <img
src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2008/07/02/antme-spass-mit-programmierbaren-ameisen/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Soviel Phun!!!</title><link>http://blog.oncode.info/2008/03/24/soviel-phun/</link> <comments>http://blog.oncode.info/2008/03/24/soviel-phun/#comments</comments> <pubDate>Sun, 23 Mar 2008 23:15:45 +0000</pubDate> <dc:creator>skaldrom</dc:creator> <category><![CDATA[Desktop]]></category> <category><![CDATA[Game]]></category> <category><![CDATA[Phun]]></category> <category><![CDATA[Physik]]></category> <category><![CDATA[Spiel]]></category> <category><![CDATA[Zeitvertreib]]></category> <guid
isPermaLink="false">http://blog.oncode.info/2008/03/24/soviel-phun/</guid> <description><![CDATA[Phun ist eine ganz neue Art von Spiel. Interaktiv k&#246;nnen physikalische Welten zusammengeklickt werden.]]></description> <content:encoded><![CDATA[<p><img
src='http://blog.oncode.info/wp-content/uploads/2008/03/phun.png' alt='Phun' class='lead' align='left'/>Das macht mal wieder echt Spass! <a
href="http://www.phunland.com/wiki/Home">Phun</a> ist eine Art Spiel, aber vielmehr eine interaktive Physikengine. In einer virtuellen 2D Welt k&#246;nnen einfache Dinge wie Rechtecke, Kreise, Ketten, Freie Formen, Wasser, Motoren, &#8230; plaziert und miteinander verbunden werden. Beim Starten interagieren diese Elemente miteinander, physikalisch fast korrekt.</p><p>Dinge wie Dichte, Reibungskoeffizient, etc k&#246;nnen ebenfalls f&#252;r die einzelnen Elemente angepasst werden.</p><p>Es macht einen Riesenspass Katapulte zusammenzustellen und virtuelle Mauern einzuhauen. Wie ein kleines Kind T&#252;rme zu bauen, nur um sie dann wieder einzureissen ist einfach nur eine Freude zum Quitschen.</p><p>F&#252;r anspruchsvollere Naturen gibt es nat&#252;rlich auch anspruchsvollere Aufgaben: Zeppeline, Fallschirme, Schiffe die Schwimmen, Panzer die fahren und schiessen. All das kann man <a
href="http://phunland.com/phunbox/">runterladen</a> und als bl&#246;der Bully wie ich einer bin mit grossen Steinen zusammenhauen. Immer und immer wieder *lach*. Naja, ich hab mal eine Mitsteinzusammenhaumaschine gemacht, aber die braucht noch ein Bisschen&#8230;</p><p>Das Programm funktioniert unter Linux und Windows, sofern eine 3D-Beschleunigung vorhanden ist.</p><p>F&#252;r Videos gibt es einen <a
href="http://www.youtube.com/user/PhunChannel">YouTube Channel</a>:</p><p><object
width="425" height="355"><param
name="movie" value="http://www.youtube.com/v/0H5g9VS0ENM&#038;hl=en"></param><param
name="wmode" value="transparent"></param><embed
src="http://www.youtube.com/v/0H5g9VS0ENM&#038;hl=en" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"></embed></object></p> ]]></content:encoded> <wfw:commentRss>http://blog.oncode.info/2008/03/24/soviel-phun/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> </channel> </rss>
