<?xml version="1.0" encoding="UTF-8"?>
<rss 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/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Technik, Gothic und Anderes</title>
	
	<link>http://blog.oncode.info</link>
	<description>Technik ist Spiel, Gothic ist ernst und Zeit hat man zuviel</description>
	<lastBuildDate>Tue, 15 Dec 2009 16:27:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.oncode.info/TechnikGothicUndAnderes" /><feedburner:info uri="technikgothicundanderes" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><geo:lat>47.485073</geo:lat><geo:long>8.333634</geo:long><item>
		<title>Bookmarklets: Kleine Helferlein</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/qAx_Mtu5VCQ/</link>
		<comments>http://blog.oncode.info/2009/12/15/bookmarklets-kleine-helferlein/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 15:04:44 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Bookmarks]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1450</guid>
		<description><![CDATA[Bookmarklets helfen bei kleinen Aufgaben. Sie sind nichts anderes als Links mit JavaScript, haben aber dadurch den ganzen Sprachumfang der Sprache zur Verf&#252;gung.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.oncode.info/wp-content/uploads/2009/12/bookmark.png" alt="bookmark" title="bookmark" class="lead" align="right"/><a href="http://de.wikipedia.org/wiki/Bookmarklet">Bookmarklets</a> sind eigentlich ganz normale Links, die aber Javascript beinhalten. Sie k&#246;nnen aus einer beliebigen Website direkt an den bevorzugten Bookmark-Ort (Toolbar, Men&#252;, Sidebar, &#8230;) gezogen und verwendet werden. Die Idee ist so einfach und genial, dass es schon <a href="http://www.bookmarklets.com/">grosse Verzeichnisse</a> f&#252;r sie gibt. Da sie in Javascript programmiert sind, kann man auch den Quellcode direkt ansehen und f&#252;r sich anpassen.</p>
<p>Beispiele sind:</p>
<ul>
<li>Das auf der aktuellen Seite markierte Wort nachschlagen, &#252;bersetzen, auf der ganzen Seite markieren, &#8230;</li>
<li>Seitendaten (Bilder, Links, Texte) oder -metadaten (Frische, Gr&#246;sse, &#8230;) auslesen.</li>
<li>Seite ver&#228;ndern: (Schrift, Farbe, &#8230;)</li>
<li>&#8230;</li>
</ul>
<p>Hier ein Trivialbeispiel: <a href="http://www.ddo.com">ddo.com</a> ist ein MMPORG, das den Service &#8220;<a href="http://my.ddo.com">my.ddo.com</a>&#8221; anbietet. Dort k&#246;nnen Detaildaten &#252;ber die Charakteren der Spieler abgerufen werden indem eine spezielle URL nach dem Schema http://my.ddo.com/character/<i>welt</i>/<i>name</i>/ zusammengestellt wird. Das erste Bookmarklet nimmt vom Benutzer Welt und Name entgegen und ruft die entsprechende URL auf (Test: Senthessel auf Ghallanda):<br />
[cc lang="javascript"]<br />
<a href="javascript:void(Tn=prompt('Toon name:',''));void(Sr=prompt('Server:',''));if(Tn &#038;&#038; Sr) location.href='http://my.ddo.com/character/'+escape(Sr.toLowerCase())+'/'+escape(Tn.toLowerCase())+'/'">Suche DDO-Toon</a><br />
[/cc]</p>
<p>Es ist voll bookmarkf&#228;hig und sieht folgendermassen aus: <a href="javascript:void(Tn=prompt('Toon name:',''));void(Sr=prompt('Server:',''));if(Tn &#038;&#038; Sr) location.href='http://my.ddo.com/character/'+escape(Sr.toLowerCase())+'/'+escape(Tn.toLowerCase())+'/'">Suche DDO-Toon</a>.</p>
<p>Ein zweites Bookmarklet sucht auf einer bestimmten Welt und nimmt als Namen entweder den auf einer Webseite markierten Text oder die Eingabe in einem Dialog:<br />
[cc lang="javascript"]<br />
<a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/ghallanda/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Ghallanda</a><br />
[/cc]</p>
<p>Beispiel: <a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/ghallanda/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Ghallanda</a></p>
<p>Folgendes Bookmarklet sucht ein entsprechendes Ausbildungsmodul von I-CH (Quelltext anzeigen f&#252;r die Source <img src='http://blog.oncode.info/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ): <a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Modul:',''))};if(Tn) location.href='http://www.i-ch.ch/modulbaukasten/servlet/WebInter?lang=de&#038;release=2&#038;aa_id=6&#038;class=COMain&#038;method=showSearch&#038;table=modul&#038;id=103&#038;lang=de&#038;mid=103&#038;search='+escape(Tn.toLowerCase())">Modulsuche auf I-CH</a></p>
<p>Am besten nimmt man ein bestehendes Bookmarklet und passt es auf seine Bed&#252;rfnisse an.</p>
<p><a name="ddobookmarklets"></a><br />
Hier eine Liste der kompletten DDO-Bookmarklets:</p>
<ul>
<li><a href="javascript:void(Tn=prompt('Toon name:',''));void(Sr=prompt('Server:',''));if(Tn &#038;&#038; Sr) location.href='http://my.ddo.com/character/'+escape(Sr.toLowerCase())+'/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon</a></li>
<li><a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/argonnessen/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Argonnessen</a></li>
<li><a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/cannith/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Cannith</a></li>
<li><a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/ghallanda/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Ghallanda</a></li>
<li><a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/khyber/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Khyber</a></li>
<li><a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/lamannia/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Lamannia</a></li>
<li><a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/orien/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Orien</a></li>
<li><a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/sarlona/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Sarlona</a></li>
<li><a href="javascript:Tn=document.getSelection();if(!Tn){void(Tn=prompt('Toon name:',''))};if(Tn) location.href='http://my.ddo.com/character/thelanis/'+escape(Tn.toLowerCase())+'/'">Search DDO-Toon On Thelanis</a></li>
</ul>

<p><a href="http://feedads.g.doubleclick.net/~a/iMKuNRVZNWIdQQNGAdW2rbAEQes/0/da"><img src="http://feedads.g.doubleclick.net/~a/iMKuNRVZNWIdQQNGAdW2rbAEQes/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/iMKuNRVZNWIdQQNGAdW2rbAEQes/1/da"><img src="http://feedads.g.doubleclick.net/~a/iMKuNRVZNWIdQQNGAdW2rbAEQes/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=qAx_Mtu5VCQ:iyFvpKJoRcQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=qAx_Mtu5VCQ:iyFvpKJoRcQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=qAx_Mtu5VCQ:iyFvpKJoRcQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=qAx_Mtu5VCQ:iyFvpKJoRcQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=qAx_Mtu5VCQ:iyFvpKJoRcQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=qAx_Mtu5VCQ:iyFvpKJoRcQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/qAx_Mtu5VCQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/12/15/bookmarklets-kleine-helferlein/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/12/15/bookmarklets-kleine-helferlein/</feedburner:origLink></item>
		<item>
		<title>Zeitintervalle (Erledigungsfristen) in PHP</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/ax--BsPfPx0/</link>
		<comments>http://blog.oncode.info/2009/12/13/zeitintervalle-erledigungsfristen-in-php/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 17:26:40 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Theorie und Schnipsel]]></category>
		<category><![CDATA[intervall]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zeit]]></category>
		<category><![CDATA[zeitintervall]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1445</guid>
		<description><![CDATA[Dieser Artikel zeigt wie man Erledigungsintervalle oder Fristen in PHP parst.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.oncode.info/wp-content/uploads/2009/12/time.png" alt="time" title="time" align="left" class="lead"/>Ich bin wiedereinmal am Coden und irgendwie scheine ich mit fortschreitendem Alter auf immer mehr ungel&#246;ste Probleme zu treffen. In der aktuellen Applikation geht es darum, dass Erledigungsfristen als Intervalle eingegeben werden k&#246;nnen: Beispielsweise muss eine Aufgabe immer in 2 Monaten, 1 Woche und 4 Sekunden nach dem Erfassen erledigt sein. Daraus ergeben sich ein Strauss an Problemen (oder ein Problemkorb, wie man neuerdings zu sagen scheint. Was f&#252;r eine schreckliche Vorstellung, nur FR&#220;CHTE-K&#246;rbe finde ich noch abschreckender):</p>
<ul>
<li>Jemand muss die Aufgabe erledigen. Zum Gl&#252;ck ist das ein PAL (Problem anderer Leute) <img src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  .</li>
<li>&#8220;In einem Monat&#8221; und &#8220;In einem Jahr&#8221; kann nicht trivial in Sekunden umgerechnet werden. Irgendein Soziopath hat mal bestimmt, dass nicht alle Monate und Jahre die gleiche Anzahl Tage haben. Ganz zu schweigen von Schaltsekunden und Sommer-/Winterzeit.</li>
<li>Aus hier zu verschweigenden Gr&#252;nden habe ich weder Lust noch Zeit ein GUI mit 7 Textfeldern f&#252;r Jahre, Monate, Wochen, Tage, Stunden, Minuten und Sekunden aufzubauen.</li>
</ul>
<p>Ich habe mich f&#252;r ein simples Eingabefeld entschieden, in denen das Erledigungsintervall in der Form &#8220;Zahl Zeitbezeichner Zahl Zeitbezeichner &#8230;&#8221; eingegeben werden kann. In obigem Beispiel w&#228;re das: &#8220;<tt>2m 1w 4s</tt>&#8220;.</p>
<p>Leider ist die Aufgabe ein Bisschen zu klein um einen <a href="http://blog.oncode.info/2007/10/25/eine-eigene-programmiersprache-erschaffen-lexer-und-parser-in-php/">richtigen Parser</a> hochzufahren <img src='http://blog.oncode.info/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  , und so habe ich die kleineren Kanonen hervorgeholt. Meine Idee is die Folgende: Dieses Intervall wird in einen String &#252;bersetzt, der direkt an <a href="http://php.net/manual/en/function.strtotime.php">strtotime</a> &#252;bergeben werden kann. Soll sich diese Funktion doch um die H&#228;sslichkeiten der Zeit k&#252;mmern.</p>
<p>Mein Ansatz ist zweistufig: Erst wird geparst und ein Array aus den Tokens erzeugt. Im Idealfall also immer abwechselnd &#8220;number&#8221; und &#8220;alpha&#8221;. Im zweiten Schritt wird dann der String daraus geformt. Hier der Code f&#252;r alle armen Seelen, die vielleicht mal auf dasselbe exotische Problem treffen sollten. Mir ist bewusst, dass ich auch mit RegExpen h&#228;tte arbeiten k&#246;nnen, aber die sind eh nur f&#252;r Weicheier <img src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> :</p>
<p>[cc lang="php"]<br />
/**<br />
 * Parses a string with an interval into a string that is understood by strtotime.<br />
 *<br />
 * Example: &#8220;3w 2d 4h 2s&#8221; means 3 Weeks, 2 days, 4 hours<br />
 */<br />
function timeIntervalToStrtotime($timeInterval) {<br />
    $tokens=array();<br />
    $currentTokenType=&#8221;";<br />
    $currentToken=&#8221;";</p>
<p>    // Poor man&#8217;s scanner<br />
    for($i=0; $i<strlen($timeInterval); $i++) {</p>
<p>        // Ignore whitespaces<br />
        if(ctype_space($timeInterval[$i])) {<br />
            continue;<br />
        }</p>
<p>        // Numbers or names<br />
        $thisTokenType=ctype_digit($timeInterval[$i])?&#8221;numeric&#8221;:&#8221;alpha&#8221;;</p>
<p>        if($currentTokenType == $thisTokenType) {<br />
            $currentToken.=$timeInterval[$i];<br />
        } // Else<br />
        if($currentTokenType != $thisTokenType) { // New Tokentype<br />
            if($currentTokenType!=&#8221;") { // Not first token<br />
                // Save old token<br />
                $tokens[]= array(&#8220;type&#8221; => $currentTokenType, &#8220;token&#8221; => $currentToken);<br />
            } else { // First token must be numeric<br />
                if($thisTokenType!=&#8221;numeric&#8221;) {<br />
                    return &#8220;&#8221;;<br />
                }<br />
            }<br />
            $currentTokenType=$thisTokenType;<br />
            $currentToken=$timeInterval[$i];<br />
        }<br />
    }<br />
    // Save last Token<br />
    if($currentTokenType!=&#8221;") {<br />
        $tokens[]= array(&#8220;type&#8221; => $currentTokenType, &#8220;token&#8221; => $currentToken);<br />
    }</p>
<p>    // Poor man&#8217;s parser</p>
<p>    // There has to be an even number of tokens<br />
    if(count($tokens) % 2 != 0) {<br />
        return &#8220;&#8221;;<br />
    }</p>
<p>    $ret=array();<br />
    for($i=0; $i<count($tokens); $i+=2) {<br />
        switch(strtolower($tokens[$i+1]["token"])) {<br />
            case &#8220;a&#8221;:<br />
            case &#8220;y&#8221;:<br />
            case &#8220;yr&#8221;:<br />
            case &#8220;year&#8221;:<br />
            case &#8220;years&#8221;: $ret[]=&#8221;+&#8221;.$tokens[$i]["token"].&#8221; years&#8221;; break;<br />
            case &#8220;m&#8221;:<br />
            case &#8220;mon&#8221;:<br />
            case &#8220;month&#8221;:<br />
            case &#8220;months&#8221;: $ret[]=&#8221;+&#8221;.$tokens[$i]["token"].&#8221; months&#8221;; break;<br />
            case &#8220;w&#8221;:<br />
            case &#8220;week&#8221;:<br />
            case &#8220;weeks&#8221;: $ret[]=&#8221;+&#8221;.$tokens[$i]["token"].&#8221; weeks&#8221;; break;<br />
            case &#8220;d&#8221;:<br />
            case &#8220;day&#8221;:<br />
            case &#8220;days&#8221;: $ret[]=&#8221;+&#8221;.$tokens[$i]["token"].&#8221; days&#8221;; break;<br />
            case &#8220;h&#8221;:<br />
            case &#8220;hr&#8221;:<br />
            case &#8220;hour&#8221;:<br />
            case &#8220;hours&#8221;: $ret[]=&#8221;+&#8221;.$tokens[$i]["token"].&#8221; hours&#8221;; break;<br />
            case &#8220;m&#8221;:<br />
            case &#8220;min&#8221;:<br />
            case &#8220;mins&#8221;:<br />
            case &#8220;minute&#8221;:<br />
            case &#8220;minutes&#8221;: $ret[]=&#8221;+&#8221;.$tokens[$i]["token"].&#8221; minutes&#8221;; break;<br />
            case &#8220;s&#8221;:<br />
            case &#8220;sec&#8221;:<br />
            case &#8220;secs&#8221;:<br />
            case &#8220;second&#8221;:<br />
            case &#8220;seconds&#8221;: $ret[]=&#8221;+&#8221;.$tokens[$i]["token"].&#8221; seconds&#8221;; break;<br />
            default: return &#8220;&#8221;;<br />
        }<br />
    }<br />
    return join(&#8221; &#8220;, $ret);<br />
}</p>
<p>$tests=array(&#8220;1s&#8221;, &#8220;1&#8243;, &#8221; 1y 2d 3 mins 4sec&#8221;, &#8221; 15 yr &#8220;, &#8220;a2 3mon&#8221;);<br />
foreach($tests as $test) {<br />
    echo &#8220;TEST:[$test]: &#8220;.timeIntervalToStrtotime($test).&#8221;\n&#8221;;<br />
}<br />
[/cc]</p>

<p><a href="http://feedads.g.doubleclick.net/~a/b4Rb3yWVBbTj8K3gFd1cpyPkRnc/0/da"><img src="http://feedads.g.doubleclick.net/~a/b4Rb3yWVBbTj8K3gFd1cpyPkRnc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/b4Rb3yWVBbTj8K3gFd1cpyPkRnc/1/da"><img src="http://feedads.g.doubleclick.net/~a/b4Rb3yWVBbTj8K3gFd1cpyPkRnc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=ax--BsPfPx0:9ifMcECIjG8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=ax--BsPfPx0:9ifMcECIjG8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=ax--BsPfPx0:9ifMcECIjG8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=ax--BsPfPx0:9ifMcECIjG8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=ax--BsPfPx0:9ifMcECIjG8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=ax--BsPfPx0:9ifMcECIjG8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/ax--BsPfPx0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/12/13/zeitintervalle-erledigungsfristen-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/12/13/zeitintervalle-erledigungsfristen-in-php/</feedburner:origLink></item>
		<item>
		<title>Webanwendungen: Office 2007 Dateien werden als ZIP heruntergeladen</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/ME5VU4eedWs/</link>
		<comments>http://blog.oncode.info/2009/11/26/webanwendungen-office-2007-dateien-werden-als-zip-heruntergeladen/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 12:07:14 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2007]]></category>
		<category><![CDATA[docx]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[msie]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[öffnen]]></category>
		<category><![CDATA[xlsx]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1437</guid>
		<description><![CDATA[Wenn bei einer Webanwendung Office 2007 Dateien (docx, xlsx) als Zips downgeloaded werden, fehlen die korrekten Eintr&#228;ge in de Mimetype-Konfigurationsdatei.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.oncode.info/wp-content/uploads/2009/11/zipper.png" alt="zipper" title="zipper" width="243" height="172" class="lead" align="left" /> Ein Server von uns versuchte wiedereinmal besonders originell zu sein: Eine in Wordpress hochgeladene &#8220;.docx&#8221; Datei wurde im Internet Explorer als &#8220;.zip&#8221; zum Download offeriert. So richtig b&#246;se kann man dem dem Server nicht sein, hat er doch recht: Die Office 2007 Dateien sind an sich Zips, und trotzdem m&#246;chte man sie mit Word &#246;ffnen, oder?</p>
<p>Nach einigem Fluchen bin ich auf den korrekten <a href="http://www.webdeveloper.com/forum/showthread.php?t=162526">Eintrag gestossen</a> und konnte die L&#246;sung ableiten. In der Datei <tt>/etc/mime.types</tt> folgendes am Ende hinzuf&#252;gen und gut is:</p>
<pre>
application/vnd.ms-word.document.macroEnabled.12 .docm
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx
application/vnd.openxmlformats-officedocument.wordprocessingml.template dotx
application/vnd.ms-powerpoint.template.macroEnabled.12 potm
application/vnd.openxmlformats-officedocument.presentationml.template potx
application/vnd.ms-powerpoint.addin.macroEnabled.12 ppam
application/vnd.ms-powerpoint.slideshow.macroEnabled.12 ppsm
application/vnd.openxmlformats-officedocument.presentationml.slideshow ppsx
application/vnd.ms-powerpoint.presentation.macroEnabled.12 pptm
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx
application/vnd.ms-excel.addin.macroEnabled.12 xlam
application/vnd.ms-excel.sheet.binary.macroEnabled.12 xlsb
application/vnd.ms-excel.sheet.macroEnabled.12 xlsm
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx
application/vnd.ms-excel.template.macroEnabled.12 xltm
application/vnd.openxmlformats-officedocument.spreadsheetml.template xltx
</pre>

<p><a href="http://feedads.g.doubleclick.net/~a/ra1J0rJtDqywTQr07Niv7OMtG8c/0/da"><img src="http://feedads.g.doubleclick.net/~a/ra1J0rJtDqywTQr07Niv7OMtG8c/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ra1J0rJtDqywTQr07Niv7OMtG8c/1/da"><img src="http://feedads.g.doubleclick.net/~a/ra1J0rJtDqywTQr07Niv7OMtG8c/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=ME5VU4eedWs:Tu2s_1jlJjQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=ME5VU4eedWs:Tu2s_1jlJjQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=ME5VU4eedWs:Tu2s_1jlJjQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=ME5VU4eedWs:Tu2s_1jlJjQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=ME5VU4eedWs:Tu2s_1jlJjQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=ME5VU4eedWs:Tu2s_1jlJjQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/ME5VU4eedWs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/11/26/webanwendungen-office-2007-dateien-werden-als-zip-heruntergeladen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/11/26/webanwendungen-office-2007-dateien-werden-als-zip-heruntergeladen/</feedburner:origLink></item>
		<item>
		<title>Der Stand der Technik: One for All Xsight Universalfernbedienungen</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/zfVRH1TuWSk/</link>
		<comments>http://blog.oncode.info/2009/11/20/der-stand-der-technik-one-for-all-xsight-universalfernbedienungen/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 06:51:58 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Fernbedienung]]></category>
		<category><![CDATA[Universalfernbedienung]]></category>
		<category><![CDATA[Xsight]]></category>
		<category><![CDATA[Xsight Colour]]></category>
		<category><![CDATA[Xsight Touch]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1411</guid>
		<description><![CDATA[Diese Universalferbedienungen n&#228;hern sich dem Computer an. Topmodernes Fersteuern aller Ger&#228;te, die auf Infrarot h&#246;ren.]]></description>
			<content:encoded><![CDATA[<p>[<a href="http://www.trigami.com/?blog=http://blog.oncode.info/" rel="nofollow" target="_blank">Trigami-Review</a>]<script type="text/javascript" src="http://s.trigami.com/261168s.js"></script><br />
<img src="http://blog.oncode.info/wp-content/uploads/2009/11/remote.png" alt="remote" title="remote" width="226" class="lead" align="left" /> Ein weiteres Problem in einem Techie-Haushalt (und wenn ich mich so umschaue, wohl langsam aber sicher auch bei &#8220;normalen&#8221; Menschen): Die Inflation der Fernbedienungen. TV-0, TV-1, DVD, Sound-System-0 und Sound-System-1, Satellitenreceiver, ja sogar mein Laptop verf&#252;gt mittlerweile &#252;ber eine Fernsteuerung. Das f&#252;hrt dazu, dass ich &#252;ber die Zeit ein ganzes IKEA-K&#246;rbchen mit diesen Dingern gef&#252;llt habe. Um eine DVD zu sehen (und zu h&#246;ren) brauche ich drei davon, die dann fr&#246;hlich auf meinem Bauch drapiert jedes wohlige R&#228;keln verhindern und gierig jedes Kr&#252;melchen ged&#252;nstete Kartoffelscheibchen in sich aufnehmen. Mindestens einmal pro Film muss ich aufstehen und einem dieser Ger&#228;te neue Batterien spendieren (und gleichzeitig die beiden Anderen gekonnt auf den Boden werfen).</p>
<p>Meine Experimente mit Universalfernbedienungen sind bis jetzt leider immer an meiner Unf&#228;higkeit gescheitert, papierne Unterlagen wieder-zugriffsf&#228;hig abzulegen. Wer kann sich schon die komplizierten Griffe merken, die Notwendig sind, um die Teile nach einer l&#228;ngeren Ruhepause neu zu programmieren? Ohne Kohl: bei einem Modell musste man sogar nach einer Fingerbrecher-Knopfkombination eine ganz bestimmte Zeit warten, damit das Reprogrammieren geklappt hat.</p>
<p>Ich war daher mehr als gespannt auf die &#8220;One for All&#8221; Xsight Ger&#228;te <a href="http://www.oneforall.de/de_DE/product/1/universal-fernbedienungen/3/advanced/61/xsight-colour" rel="nofollow">Xsight Colour</a> und <a href="http://www.oneforall.de/de_DE/product/1/universal-fernbedienungen/3/advanced/29/xsight-touch" rel="nofollow">Xsight Touch</a> . Sie haben einen Bildschirm, viele Kn&#246;pfe und einen USB-Anschluss. Was braucht es mehr, um des Geeken Herz h&#246;her schlagen zu lassen? (ok, ein SDK w&#228;r nicht schlecht <img src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<h3>Universalfernbedienungen auf h&#246;chstem Niveau</h3>
<div id="attachment_1420" class="wp-caption alignright" style="width: 307px"><img src="http://blog.oncode.info/wp-content/uploads/2009/11/boths.jpg" alt="Links die Touch, in der Mitte die Colour und rechts eine Zigarettenschachtel zum Gr&#246;ssenvergleich" title="boths" width="297" height="329" class="size-full wp-image-1420" /><p class="wp-caption-text">Links die Touch, in der Mitte die Colour und rechts eine Zigarettenschachtel zum Gr&#246;ssenvergleich</p></div>
<p>Schon beim Auspacken gefallen die Ger&#228;te. Sie sind etwas gross, sehen aber sehr elegant aus, und die blaue Beleuchtung bringt Star-Trek-Feeling. Beide Ger&#228;te k&#246;nnen entweder direkt oder per USB &#252;ber den PC konfiguriert werden. Das direkte Konfigurieren geht dank dem Bildschirm sehr schnell, aber die Datenbank ist nicht so gross wie bei der Online-Variante. </p>
<h4>Konfigurieren &#252;ber USB</h4>
<p>Nach der (leider Windows-Only) Installation der Software auf dem PC, wird das Ger&#228;t &#252;ber eine Webseite upgedated (Firmware) und konfiguriert. Das hat den Vorteil, dass die Datenbanken der Ger&#228;te aktuell gehalten werden k&#246;nnen. Man ist theoretisch also auch f&#252;r Ger&#228;te ger&#252;stet, die es noch gar nicht gibt. Der Nachteil dabei d&#252;rfte sein, dass One for All ziemlich viele Infos &#252;ber mich erh&#228;lt. Ich habe mich zum Beispiel sehr gefragt, wieso ich meinen Geburtstag und den Wohnort angeben muss.</p>
<div id="attachment_1419" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.oncode.info/wp-content/uploads/2009/11/activex.png"><img src="http://blog.oncode.info/wp-content/uploads/2009/11/activex-300x206.png" alt="ActiveX muss aktiviert werden, dann klappts auch mit dem USB" title="activex" width="300" height="206" class="size-medium wp-image-1419" /></a><p class="wp-caption-text">ActiveX muss aktiviert werden, dann klappts auch mit dem USB</p></div>
<p>Nachdem ich ActiveX aktiviert habe, ging das Procedere dann auch ohne Probleme und speditiv vonstatten. Als Coder hat mich die Idee fasziniert, wie hier lokale Ger&#228;te mit online-Applikationen gesteuert werden. Das muss man im Auge behalten.</p>
<h4>Fernzusteuernde Ger&#228;te ausw&#228;hlen</h4>
<p>&#220;ber ein ansprechendes Men&#252; kann zuerst der Ger&#228;tetyp ausgew&#228;hlt und danach via Hersteller und Seriennummer genau spezifiziert werden. An sich sollte die Fernbedienung in der Lage sein, nach Angabe des Herstellers auch selbst&#228;ndig herauszufinden, mit welchem Modell sie es zu tun hat. Das hat bei mir leider nicht so ganz geklappt. Eine dritte M&#246;glichkeit ist das Lernen von bestehenden Fernbedienungen.</p>
<p>Nachdem ich alle Seriennummern ausfindig gemacht (und meinen Kopf drei mal am Fernsehtisch gestossen) habe, war das Einrichten kein Problem mehr, und alle Ger&#228;te, von der guten alten Lady (meinem SABA-R&#246;hren-TV) bis zum neuen Soundsystem gehorchten der Fernbedienung ohne zu Murren.</p>
<p>Wer lieber lugt als liest kann auch ein <a rel="nofollow" href="http://www.amazon.de/gp/mpd/permalink/m3IY89NTK25OTL">Kurzvideo &#252;ber die Einrichtung ansehen</a>.</p>
<h4>Aktivit&#228;ten</h4>
<p>Weil diese Universalfernbedienungen richtige, kleine Computer sind, bieten sie auch einiges an Komfortfunktionen. Beispielsweise sind &#8220;Aktivit&#228;ten&#8221; (<a rel="nofollow" href="http://www.amazon.de/gp/mpd/permalink/m4XH2BOSJI2U3">guckstDu Film</a>) Kombinationen von Fernbedienungskommandos: Bei mir w&#228;re &#8220;Film Schauen&#8221; das Einschalten des TV&#8217;s, DVD&#8217;s und des Soundsystems (und eigentlich auch das Dimmen des Lichts, aber so gut ausger&#252;stet bin ich noch nicht). Diese Vereinfachung will man sehr schnell nicht mehr missen.</p>
<h4>Profile und Favoriten</h4>
<div id="attachment_1426" class="wp-caption alignnone" style="width: 186px"><a href="http://blog.oncode.info/wp-content/uploads/2009/11/favoriten.png"><img src="http://blog.oncode.info/wp-content/uploads/2009/11/favoriten.png" alt="Favoriten mit Senderlogos" title="favoriten" width="176" height="220" class="size-full wp-image-1426" /></a><p class="wp-caption-text">Favoriten mit Senderlogos</p></div>
<p>&#220;ber die Webapplikation k&#246;nnen bis zu 72 <a rel="nofollow" href="http://www.amazon.de/gp/mpd/permalink/mAVW8HFE9H88J">Favorisierte TV-Sendern mit Logos eingerichtet werden</a>. Das ist wirklich praktisch, werden doch die Senderlogos in den Werbepausen (der Hauptumschaltzeit) bei den Sendern nicht angezeigt. Jedes Familienmitglied hat andere Senderpr&#228;ferenzen, und hier kommen die Profile ins Spiel: <a rel="nofollow" href="http://www.amazon.de/gp/mpd/permalink/m1ROPULZEUUR7G">Sechs Benutzerprofile k&#246;nnen unterschiedlich eingerichtet werden</a>, so dass alle ihre bevorzugten Sender in der Schnellauswahl haben.</p>
<h4>Unterschiede der Modelle</h4>
<p>Neben den oben beschriebenen Gemeinsamkeiten gibt es auch Unterschiede. Die <a rel="nofollow" href="http://www.oneforall.de/de_DE/product/1/universal-fernbedienungen/3/advanced/29/xsight-touch">Xsight Touch</a> bietet (wie der Name schon sagt) einen ber&#252;hrungsempfindlichen Bildschirm und eine &#8220;Bl&#228;ttermulde&#8221;, w&#228;hrend bei der <a rel="nofollow" href="http://www.oneforall.de/de_DE/product/1/universal-fernbedienungen/3/advanced/61/xsight-colour">Xsight Colour</a> die Navigation mit sechs Tasten auf der Seite gemacht wird. Als zus&#228;tzliches Schmankerl bringt die <a rel="nofollow" href="http://www.oneforall.de/de_DE/product/1/universal-fernbedienungen/3/advanced/29/xsight-touch">Xsight Touch</a> eine Ladestation mit, &#252;ber die der interne Akku aufgeladen wird. Dies ist ein unglaubliches Plus, denn wenn ich es mir schon mal gestatte mir Zeit f&#252;r einen Film zu nehmen, will ich diese nicht mit Batterien suchen verbringen.</p>
<h4>Problemchen</h4>
<p>Neue Technologien, neue Probleme. Da sich anscheinend alle Gadgets immer mehr dem Computer ann&#228;hern, werden auch die Probleme immer &#228;hnlicher. Beispielsweise hat wie erw&#228;hnt die Einrichtung &#252;ber Hersteller ohne Seriennummer nicht geklappt. Die Eindeutschung ist vorhanden, aber irgendwie nicht ganz &#252;berpr&#252;ft: Auf der Einrichtungs-Website erscheinen einige (wenige) Texte in Englisch, das Deutsch ist etwas holperig und auf den kleinen Displays bricht der Text so um, dass er teilweise nicht mehr gelesen werden kann. Wir haben halt mehr Buchstaben hier als im englischsprachigen Bereich. Spannend w&#228;re es, das mal auf Finnisch anzusehen <img src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230;</p>
<p>Viele der Probleme, die auf Amazon in den Benutzerrezensionen aufgeworfen werden (<a rel="nofollow" href="http://www.amazon.de/Xsight-Touch-Universal-Fernbedienung-Infrarot-Lernfunktion-Makrofunktions-Tasten/dp/B001LEHFIO/ref=sr_1_1?ie=UTF8&#038;s=ce-de&#038;qid=1256042956&#038;sr=1-1">XSight Touch auf Amazon</a>, <a rel="nofollow" href="http://www.amazon.de/Xsight-Colour-Universal-Fernbedienung-Infrarot-Lernfunktion-Makrofunktions-Tasten/dp/B001KNR0MM/ref=cm_cr_pr_product_top">Xsight Colour auf Amazon</a>), konnte ich nicht nachvollziehen. Vielleicht hatte ich neuere Versionen oder einfach mehr Gl&#252;ck.</p>
<h3>Xsight Kaufen</h3>
<p>Kaufen kann man die Fernbedienungen &#252;ber Amazon: <a rel="nofollow" href="http://www.amazon.de/Xsight-Touch-Universal-Fernbedienung-Infrarot-Lernfunktion-Makrofunktions-Tasten/dp/B001LEHFIO/ref=sr_1_1?ie=UTF8&#038;s=ce-de&#038;qid=1256042956&#038;sr=1-1">XSight Touch</a>, <a rel="nofollow" href="http://www.amazon.de/Xsight-Colour-Universal-Fernbedienung-Infrarot-Lernfunktion-Makrofunktions-Tasten/dp/B001KNR0MM/ref=cm_cr_pr_product_top">Xsight Colour</a>. Sie haben einen stolzen Preis (>100 €), bieten daf&#252;r aber einiges an Komfort und Vereinfachung. Vielleicht bleibt ja vom Weihnachtsgeld etwas &#252;brig <img src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Sollte man gar nicht zufrieden und arg von den Problemen gebeutelt sein, gibt es einen Support und eine &#8220;Money Back&#8221; Garantie. </p>
<h3>Fazit</h3>
<p>Die ganze Ger&#228;tschaft macht einen unglaublich modernen Eindruck. Zum Einen ist da die Onlineapplikation um die Fernbedienung einzurichten, zum Anderen ist die Kampagne an vorderster 2.0 Front: Trigami-Kampagne, die professionell wirkenden Filme, Pr&#228;senz auf <a rel="nofollow" href="http://twitter.com/OFA_Xsight">Twitter</a> und auf <a rel="nofollow" href="http://www.facebook.com/pages/OneForAll-Xsight/135675795990">Facebook</a>. </p>
<p>Irgendwie sind die Jungs ihrer Zeit echt voraus! Das macht sie sympathisch und ich hoffe, dass sie Erfolg haben mit den Produkten.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/xFpnatoqznmNwbZmmA6xbxHODsM/0/da"><img src="http://feedads.g.doubleclick.net/~a/xFpnatoqznmNwbZmmA6xbxHODsM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/xFpnatoqznmNwbZmmA6xbxHODsM/1/da"><img src="http://feedads.g.doubleclick.net/~a/xFpnatoqznmNwbZmmA6xbxHODsM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=zfVRH1TuWSk:asjcEVp25cY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=zfVRH1TuWSk:asjcEVp25cY:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=zfVRH1TuWSk:asjcEVp25cY:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=zfVRH1TuWSk:asjcEVp25cY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=zfVRH1TuWSk:asjcEVp25cY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=zfVRH1TuWSk:asjcEVp25cY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/zfVRH1TuWSk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/11/20/der-stand-der-technik-one-for-all-xsight-universalfernbedienungen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/11/20/der-stand-der-technik-one-for-all-xsight-universalfernbedienungen/</feedburner:origLink></item>
		<item>
		<title>Text- oder Quellcodedateien auf Ähnlichkeit prüfen unter Linux</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/0JOfxsZzfG4/</link>
		<comments>http://blog.oncode.info/2009/11/12/text-oder-quellcodedateien-auf-aehnlichkeit-pruefen-unter-linux/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 15:23:52 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Bildung und Unterricht]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ähnlichkeiten]]></category>
		<category><![CDATA[Dateien]]></category>
		<category><![CDATA[Plagiat]]></category>
		<category><![CDATA[Unterricht]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1399</guid>
		<description><![CDATA[Text oder Codedateien]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.oncode.info/wp-content/uploads/2009/11/mirror.png" alt="mirror" title="mirror" class="lead" align="left"/>Manchmal &#252;berf&#228;llt mich der starke Drang nachzuforschen, wieviel von meinem vermittelten Wissen auch tats&#228;chlich angekommen, gespeichert und wiedergegeben werden kann. Im Volksmund heisst dies &#8220;Pr&#252;fung&#8221;, im Mund der Lernenden &#8220;Folter&#8221;. Im Zeitalter der Kommunikation k&#246;nnte es nat&#252;rlich sein, dass Dateien weitergegeben werden. Als Beurteiler sollte man das herausfinden, so dass man diese Dateien wieder zur&#252;ckgeben kann <img src='http://blog.oncode.info/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &#8230;</p>
<p>Eine der M&#246;glichkeiten unter Linux ist der <a href="http://www.cs.vu.nl/~dick/sim.html">similarity-tester</a>. Er kann Code in verschiedenen Programmiersprachen oder auch Text vergleichen. Als Argument &#252;bernimmt er eine Liste von Dateien f&#252;r den Vergleich.</p>
<p>Angenommen, man hat die Dateinamen vorgeschrieben und alle Resultate lokal, so listet folgender Befehl die &#196;hnlichkeiten prozentual auf, absteigend geordnet.</p>
<p>[cc lang="bash]<br />
sim_text -e -s -p `find . -name &#8216;aufgabe.vb&#8217;`<br />
[/cc]</p>
<p>Wer sich in die Optionen einarbeiten m&#246;chte, sei auf die Manpage verwiesen.</p>
<p>Eine weitere M&#246;glichkeit w&#228;re <a href="http://manpages.ubuntu.com/manpages/karmic/man1/simhash.1.html">Simhash</a>. Leider bin ich zu dumm es zu verstehen und f&#252;r meine Bed&#252;rfnisse aufzurufen.</p>
<p>Hat jemand vielleicht eine noch komfortablere L&#246;sung? Vielleicht auch f&#252;r Bin&#228;rdateien?</p>

<p><a href="http://feedads.g.doubleclick.net/~a/UhaSKMhZludS5OnEQGo4Ow7XN4s/0/da"><img src="http://feedads.g.doubleclick.net/~a/UhaSKMhZludS5OnEQGo4Ow7XN4s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UhaSKMhZludS5OnEQGo4Ow7XN4s/1/da"><img src="http://feedads.g.doubleclick.net/~a/UhaSKMhZludS5OnEQGo4Ow7XN4s/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=0JOfxsZzfG4:dKhZVPKVDCU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=0JOfxsZzfG4:dKhZVPKVDCU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=0JOfxsZzfG4:dKhZVPKVDCU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=0JOfxsZzfG4:dKhZVPKVDCU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=0JOfxsZzfG4:dKhZVPKVDCU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=0JOfxsZzfG4:dKhZVPKVDCU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/0JOfxsZzfG4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/11/12/text-oder-quellcodedateien-auf-aehnlichkeit-pruefen-unter-linux/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/11/12/text-oder-quellcodedateien-auf-aehnlichkeit-pruefen-unter-linux/</feedburner:origLink></item>
		<item>
		<title>m:n Beziehungen zu Lookup-Tables mit einem SQL-Befehl erstellen</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/p6FHPUI3U48/</link>
		<comments>http://blog.oncode.info/2009/11/11/mn-beziehungen-zu-lookup-tables-mit-einem-sql-befehl-erstellen/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 07:35:40 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Theorie und Schnipsel]]></category>
		<category><![CDATA[insert]]></category>
		<category><![CDATA[Lookup]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1380</guid>
		<description><![CDATA[Mei m:n Verbindungen mit Lookup-Tables k&#246;nnen die Verbindungen in einem SQL-Statement gemacht werden. Dieser Beitrag zeigt wie.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.oncode.info/wp-content/uploads/2009/11/puzzle.png" alt="puzzle" title="puzzle" width="186" height="147" class="lead" align="left"/>Bei diesen Beitrag habe ich echt &#252;berlegt, ihn unter einem anderen Namen zu ver&#246;ffentlichen. Ist der Inhalt doch eigentlich sowas von trivial und f&#252;r Menschen mit mehr als zwei Hirnzellen wahrscheinlich sowieso offensichtlich. Aber das Gef&#252;hl, das mich durchflutet hat als mich Erkenntnis k&#252;sste war so erf&#252;llend und erhebend, dass ich dieses gerne mit Euch teilen w&#252;rde. </p>
<p>SQL ist eine geniale Erfindung. Zwar wird es im Moment arg von den schm&#228;chtigen <a href="http://en.wikipedia.org/wiki/NoSQL">noSQL</a> bedr&#228;ngt, aber es wird wie triumphieren *star-wars-musik-on*, denn die Anderen werden untergehen wie die noAngels, es wird gewinnen wie die Maden &#252;ber die noMaden, h&#228;ufiger verwendet werden, so wie es das Ah gegen&#252;ber noAh wird und edler sein, wie der Orden gegen&#252;ber noRden! Ich bin heute noch auf der Suche nach der vern&#252;nftigen Frage, die nicht in ein einziges SQL-Statement verpackt werden kann.*star-wars-musik-off*</p>
<h3>Beispiel-Schema</h3>
<p>Doch zur&#252;ck zum Problem: Es seien Entit&#228;ten gegeben, die m:n Beziehungen zu &#8220;lookup-Werten&#8221; haben. Ein bestehender Wert in einem Set also, das sich selten &#228;ndert wie beispielsweise Kategorien, Zust&#228;nde, Farben, L&#228;ndercodes, Geschlechter oder so etwas. Ein weiterer Use Case w&#228;re ein Import, bei dem die Datens&#228;tze schon erstellt wurden und nun nur noch die Verbindungen fehlen.</p>
<p>Hier ein Beispiel:<br />
<strong>Personen</strong> beinhalten, ja ratet mal, Personen.Hier vereinfacht nur mit Namen und Vornamen.<br />
<strong>Personentypen</strong> bezeichnen die Art der Person. Beispielsweise <em>Lernender</em>, <em>Lehrperson</em>, <em>Verwaltungsangestellter</em> oder auch <em>Schulleiter</em>.</p>
<p>Jede Person kann mehreren Personentypen entsprechen. Diagnose: klassisches m:n mit Verbindungstabelle (<strong>personen_personentypen</strong>).</p>
<p><a href="http://blog.oncode.info/wp-content/uploads/2009/11/erd.png"><img src="http://blog.oncode.info/wp-content/uploads/2009/11/erd-300x82.png" alt="ERD-Diagramm einer m:n Beziehung" title="ERD-Diagramm einer m:n Beziehung" width="300" height="82" class="alignnone size-medium wp-image-1381" /></a></p>
<p>Die Inhalte der Tabellen gestalten sich folgendermassen:</p>
<p><strong>Personen</strong></p>
<pre>
+----+---------------+-----------+
| id | name          | vorname   |
+----+---------------+-----------+
|  1 | Schinkler     | Sebastian |
|  2 | Moser         | Hanspeter |
|  3 | Gublinsbacher | Anneli    |
|  4 | Iltis         | Mahara    |
+----+---------------+-----------+
</pre>
<p><strong>Personentypen</strong></p>
<pre>
+----+-------------------------+
| id | personentyp             |
+----+-------------------------+
|  1 | Lernender               |
|  2 | Lehrperson              |
|  3 | Verwaltungsangestellter |
|  4 | Schulleiter             |
+----+-------------------------+
</pre>
<h3>Insert kombiniert mit Select</h3>
<p>Der alte Ablauf war folgendermassen:</p>
<ol>
<li>Lese ID von Personen.</li>
<li>Lese ID von Personentypen.</li>
<li>F&#252;ge einen neuen Verbindungsdatensatz in personen_personentypen ein.</li>
</ol>
<p>Doch es geht viel einfacher! Die Werte, die in personen_personentypen eingef&#252;gt werden sollen, k&#246;nnen direkt im Statement selektiert werden. Grunds&#228;tzlich f&#252;gt man also das Resultat einer Abfrage ein:</p>
<p>[cc lang="sql"]<br />
INSERT INTO personen_personentypen<br />
  SELECT p.id, pt.id FROM personen p, personentypen pt<br />
    WHERE p.name=&#8217;Moser&#8217; AND p.vorname=&#8217;Hanspeter&#8217; AND pt.personentyp=&#8217;Lehrperson&#8217;<br />
[/cc]</p>
<p>Wirklich effizient wird es, wenn man gerade mehrere Lookupwerte verbindet:<br />
[cc lang="sql"]<br />
INSERT INTO personen_personentypen<br />
  SELECT p.id, pt.id FROM personen p, personentypen pt<br />
    WHERE p.name=&#8217;Gublinsbacher&#8217; AND p.vorname=&#8217;Anneli&#8217; AND pt.personentyp IN(&#8216;Verwaltungsangestellter&#8217;, &#8216;Schulleiter&#8217;)<br />
[/cc]</p>
<p>Jaaa, mit so einfachen Dingen kann man mich gl&#252;cklich und zufrieden machen&#8230;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/5yyjGC5RUX9k2L0Z1eZk_G1J69k/0/da"><img src="http://feedads.g.doubleclick.net/~a/5yyjGC5RUX9k2L0Z1eZk_G1J69k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5yyjGC5RUX9k2L0Z1eZk_G1J69k/1/da"><img src="http://feedads.g.doubleclick.net/~a/5yyjGC5RUX9k2L0Z1eZk_G1J69k/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=p6FHPUI3U48:YzfaUUWhc4c:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=p6FHPUI3U48:YzfaUUWhc4c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=p6FHPUI3U48:YzfaUUWhc4c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=p6FHPUI3U48:YzfaUUWhc4c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=p6FHPUI3U48:YzfaUUWhc4c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=p6FHPUI3U48:YzfaUUWhc4c:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/p6FHPUI3U48" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/11/11/mn-beziehungen-zu-lookup-tables-mit-einem-sql-befehl-erstellen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/11/11/mn-beziehungen-zu-lookup-tables-mit-einem-sql-befehl-erstellen/</feedburner:origLink></item>
		<item>
		<title>Kubuntu update und GRUB Wiederherstellung</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/SfERxuYu73o/</link>
		<comments>http://blog.oncode.info/2009/11/01/kubuntu-update-und-grub-wiederherstellung/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 17:13:32 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Grub]]></category>
		<category><![CDATA[Kubuntu]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Menu]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1371</guid>
		<description><![CDATA[Entropie in Reinkultur: Alles tendiert zum gr&#246;sstm&#246;glichen Chaos und guter Wille pflastert den Weg ins Grab. Auf meinem Lieblingsrechner wurde vor langer Zeit Kubuntu installiert. Mit dem Update auf Version 9.10 hat sich gerade eine schon lange f&#228;llige Neuinstallation von Windows gekreuzt. (Neuinstallation weil: Vista Basic Home Premium &#8211; entgegen der Meinung des MS Update-Assistant [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.oncode.info/wp-content/uploads/2009/11/facepalm.png" alt="facepalm" title="facepalm" height="170" class="lead" align=left />Entropie in Reinkultur: Alles tendiert zum gr&#246;sstm&#246;glichen Chaos und guter Wille pflastert den Weg ins Grab. Auf meinem Lieblingsrechner wurde vor langer Zeit <a href="http://www.kubuntu.org/">Kubuntu</a> installiert. Mit dem Update auf Version 9.10 hat sich gerade eine schon lange f&#228;llige Neuinstallation von Windows gekreuzt. (Neuinstallation weil: <i>Vista Basic Home Premium</i> &#8211; entgegen der Meinung des MS Update-Assistant &#8211; nicht auf <i>Windows 7 Professional</i> upgedatet werden kann. Warum? Das weiss wohl nur ein <i>Microsoft Certified Client System Upgrade Engineer</i>, der wohl ein <i>Live Upgrade</i> &#252;ber <i>Windows Vista Home Half Master Business Game Edition</i> oder so empfehlen w&#252;rde *gna*.)</p>
<p>Windows startet nun wunderbar, hat aber nat&#252;rlich meinen Bootloader (GRUB) &#252;berschrieben und ich kann nimmer in mein geliebtes, frisch upgedatetes Kubuntu booten. Das kennen wir von fr&#252;her und mit Hilfe einer Boot-CD hat das schon bei Lilo wunderbar geklappt. Nicht jedoch dieses mal: Fehlermeldungen von nicht gefundenen Partitionen (<tt>"Could not find device for /boot: Not found or not a block device."</tt>) lachten Hohn &#252;ber <a href="http://wiki.ubuntuusers.de/GRUB">ganz</a> <a href="http://ubuntuforums.org/showthread.php?t=224351">verschiedene</a> <a href="http://www.belug.de/hilfe/howtos/bootloader-grub/">Anleitungen</a>.</p>
<p>Ein paar ausgerissene Haarb&#252;schel sp&#228;ter und nach einer sehr formal geordneten Analyse (*lach*) hab ich dann das Problem erfasst. Beim Update wird der alte Grub 0.97 weiterverwendet, eine Neuinstallation (und auf der 9.10 Life-CD) ist der neue Grub 1.97.</p>
<p>Nach ein paar weiteren Tritten gegen die Maschine war die L&#246;sung dann einfach: Eine <em>alte</em> Knoppix mit <em>altem</em> Grub rausgekramt, gebootet:</p>
<pre>
$> sudo grub
grub> find /boot/grub/stage1
 (hd0,5)
grub> root (hd0,5)
grub> setup (hd0)
grub> quit
</pre>
<p>Und alle sind wieder gl&#252;cklich, die Haare wachsen nach, die Falten werden sich wieder gl&#228;tten und die neuen Dellen im PC werden nicht weiter auffallen (is ja ein Dell *h&#246;h&#246;_und_schenkelklopf*).</p>

<p><a href="http://feedads.g.doubleclick.net/~a/X9sh_6KxTZpYPxDVVt_0zJ5mBxU/0/da"><img src="http://feedads.g.doubleclick.net/~a/X9sh_6KxTZpYPxDVVt_0zJ5mBxU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/X9sh_6KxTZpYPxDVVt_0zJ5mBxU/1/da"><img src="http://feedads.g.doubleclick.net/~a/X9sh_6KxTZpYPxDVVt_0zJ5mBxU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=SfERxuYu73o:69ANTrBQsMw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=SfERxuYu73o:69ANTrBQsMw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=SfERxuYu73o:69ANTrBQsMw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=SfERxuYu73o:69ANTrBQsMw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=SfERxuYu73o:69ANTrBQsMw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=SfERxuYu73o:69ANTrBQsMw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/SfERxuYu73o" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/11/01/kubuntu-update-und-grub-wiederherstellung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/11/01/kubuntu-update-und-grub-wiederherstellung/</feedburner:origLink></item>
		<item>
		<title>Website mit Java-Programmieraufgaben, die automatisch korrigiert werden</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/BWUKWRgqCAI/</link>
		<comments>http://blog.oncode.info/2009/10/21/website-mit-java-programmieraufgaben-die-automatisch-korrigiert-werden/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 10:40:22 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[eLearning]]></category>
		<category><![CDATA[Aufgaben]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Lernen]]></category>
		<category><![CDATA[Programmieren]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1358</guid>
		<description><![CDATA[JavaBat ist eine S&#252;chtig machende Website mit Aufgaben in Java, die sofort online korrigiert werden.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.oncode.info/wp-content/uploads/2009/10/bat.png" alt="bat" title="bat" class="lead" align="left" />Und es gibt sie: Die Perlen im Web. Man surft sich einfach so die Zeit weg, weil die Arbeit lauert und nur darauf wartet zuzupacken und versucht verzweifelt das schlechte Gewissen wegzusurfen und dann trifft einem der Hammer und eine Rechtfertigung f&#252;r das Prokastrinieren: <a href="http://javabat.com/">JavaBat</a>. <a href="http://javabat.com/">JavaBat</a> ist undesigned, sehr technisch, aber einfach genial um Java zu lernen.</p>
<p>Auf JavaBat gibt es Programmieraufgaben zu verschiedenen Themen. Die L&#246;sung wird als Java-Quellcode eingereicht, auf dem Server compiliert, ausgef&#252;hrt und mittels Unit-Tests korrigiert. Eine geniale Idee: Schlicht und ergreifend und mit dem Potential s&#252;chtig zu machen. Zus&#228;tzlich besteht die M&#246;glichkeit, einen &#8220;Teacher&#8221; anzugeben, dieser kann dann die Fortschritte beobachten.</p>
<div id="attachment_1359" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.oncode.info/wp-content/uploads/2009/10/bunnyEars.png"><img src="http://blog.oncode.info/wp-content/uploads/2009/10/bunnyEars-150x150.png" alt="Diese Aufgabe wurde gel&#246;st" title="bunnyEars" width="150" height="150" class="size-thumbnail wp-image-1359" /></a><p class="wp-caption-text">Diese Aufgabe wurde gel&#246;st</p></div>
<p>Aber wie machen die denn das? Wie bewahren sie sich davor, dass ich ihnen mit den Dateioperationen den Server &#252;berschreibe? Es w&#228;re doch wunderbar, wenn man dieses Prinzip auch f&#252;r andere Programmiersprachen anwenden k&#246;nnte&#8230; Es scheint so, dass es bei Java sehr einfach ist: JavaBat verbietet Import-Statements, oder es kann &#252;ber die JVM-Security-Policies gel&#246;st werden (sagen sie bei <a href="http://stackoverflow.com/questions/1247637/disable-libraries-in-java">Stackoverflow</a>). Eine generellere Herangensweise zeigt <a href="http://www.xs4all.nl/~weegen/eelis/geordi/">Geordi</a>: Hier werden die System-Calls geblockt. Mal sehen, wie sich das zum Nutzen Aller verwenden l&#228;sst&#8230;</p>

<p><a href="http://feedads.g.doubleclick.net/~a/d-FcdopIkKfx1BNMYrMRuTBCIqw/0/da"><img src="http://feedads.g.doubleclick.net/~a/d-FcdopIkKfx1BNMYrMRuTBCIqw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/d-FcdopIkKfx1BNMYrMRuTBCIqw/1/da"><img src="http://feedads.g.doubleclick.net/~a/d-FcdopIkKfx1BNMYrMRuTBCIqw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=BWUKWRgqCAI:lzqpPgK2TZ0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=BWUKWRgqCAI:lzqpPgK2TZ0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=BWUKWRgqCAI:lzqpPgK2TZ0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=BWUKWRgqCAI:lzqpPgK2TZ0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=BWUKWRgqCAI:lzqpPgK2TZ0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=BWUKWRgqCAI:lzqpPgK2TZ0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/BWUKWRgqCAI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/10/21/website-mit-java-programmieraufgaben-die-automatisch-korrigiert-werden/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/10/21/website-mit-java-programmieraufgaben-die-automatisch-korrigiert-werden/</feedburner:origLink></item>
		<item>
		<title>Avira Antivir Personal will nicht updaten</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/4h5hlIHMzjM/</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>

<p><a href="http://feedads.g.doubleclick.net/~a/mfESGf6ZZTkf9knb0PmVlh7ZmXo/0/da"><img src="http://feedads.g.doubleclick.net/~a/mfESGf6ZZTkf9knb0PmVlh7ZmXo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mfESGf6ZZTkf9knb0PmVlh7ZmXo/1/da"><img src="http://feedads.g.doubleclick.net/~a/mfESGf6ZZTkf9knb0PmVlh7ZmXo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=4h5hlIHMzjM:wMRjz0QXlnk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=4h5hlIHMzjM:wMRjz0QXlnk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=4h5hlIHMzjM:wMRjz0QXlnk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=4h5hlIHMzjM:wMRjz0QXlnk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=4h5hlIHMzjM:wMRjz0QXlnk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=4h5hlIHMzjM:wMRjz0QXlnk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/4h5hlIHMzjM" height="1" width="1"/>]]></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>
		<feedburner:origLink>http://blog.oncode.info/2009/10/19/avira-antivir-personal-will-nicht-updaten/</feedburner:origLink></item>
		<item>
		<title>KDE bootet nicht mehr und bleibt bei der Weltkugel stehen</title>
		<link>http://feeds.oncode.info/~r/TechnikGothicUndAnderes/~3/B7kZ023O7WY/</link>
		<comments>http://blog.oncode.info/2009/10/05/kde-bootet-nicht-mehr-und-bleibt-bei-der-weltkugel-stehen/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 08:48:23 +0000</pubDate>
		<dc:creator>skaldrom</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[kde]]></category>
		<category><![CDATA[openoffice]]></category>

		<guid isPermaLink="false">http://blog.oncode.info/?p=1343</guid>
		<description><![CDATA[Wenn KDE nicht mehr aufstartet und bei der Weltkugel h&#228;ngen bleibt, k&#246;nnen falsche Verzeichniseigent&#252;mer die Ursache sein.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.oncode.info/wp-content/uploads/2009/10/kde-world.png" alt="KDE splash screen" title="kde-world" align="left" class="lead" />In einem Anfall von Wahnsinn habe ich <a href="http://www.martinvogel.de/blog/index.php?/archives/48-Wie-man-OpenOffice-3.1-in-Ubuntu-9.04-installiert-Update.html">OpenOffice 3.1 nach Anleitung</a> in meinem Kubuntu installiert. Die Strafe folgt auf dem Fusse: Nach einem Neustart h&#228;ngt der KDE bei der sch&#246;nen Erde. &lt;Ctrl&gt;+&lt;Alt&gt;+&lt;F8&gt; hat keine neuen Fehlermeldung und ich sitze da, untermailt und geschliffen.</p>
<p>Die &#252;blichen Experimente wie <tt>.kde</tt> neu erstellen lassen funzen leider nicht. Etwas beruhigt hat mich dann, dass KDE sich dem <tt>sudo</tt> gebeugt hat und als root aufstartbar war.</p>
<p>Nach viel Fluchen habe ich die L&#246;sung gefunden. <tt>~/.ICEauthority</tt> wurde dem root als alleiniges Eigentum zugeschanzt. Ein beherztes <tt>chown -R skaldrom.skaldrom ~/.ICEauthority</tt> hat dem Spuk ein Ende bereitet. Vielleicht hilft das jemandem in derselben Situation.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/AEwvsyVgi7S4KBUM0hy9Xb9LBG0/0/da"><img src="http://feedads.g.doubleclick.net/~a/AEwvsyVgi7S4KBUM0hy9Xb9LBG0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/AEwvsyVgi7S4KBUM0hy9Xb9LBG0/1/da"><img src="http://feedads.g.doubleclick.net/~a/AEwvsyVgi7S4KBUM0hy9Xb9LBG0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=B7kZ023O7WY:ZQlGn2fcaA0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=B7kZ023O7WY:ZQlGn2fcaA0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=B7kZ023O7WY:ZQlGn2fcaA0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=B7kZ023O7WY:ZQlGn2fcaA0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?i=B7kZ023O7WY:ZQlGn2fcaA0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.oncode.info/~ff/TechnikGothicUndAnderes?a=B7kZ023O7WY:ZQlGn2fcaA0:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/TechnikGothicUndAnderes?d=7Q72WNTAKBA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/TechnikGothicUndAnderes/~4/B7kZ023O7WY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.oncode.info/2009/10/05/kde-bootet-nicht-mehr-und-bleibt-bei-der-weltkugel-stehen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.oncode.info/2009/10/05/kde-bootet-nicht-mehr-und-bleibt-bei-der-weltkugel-stehen/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 0.624 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-01-28 18:13:13 --><!-- Compression = gzip -->
