<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux @ Home &#187; geek</title>
	<atom:link href="http://www.linuxhome.ch/category/geek/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.linuxhome.ch</link>
	<description>Pinguine, Politik undsoweiter...</description>
	<lastBuildDate>Thu, 05 Jan 2012 09:03:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>ggT / gcd, wer kann&#8217;s am Kürzesten?</title>
		<link>http://www.linuxhome.ch/geek/ggt-gcd-wer-kanns-am-kurzesten/</link>
		<comments>http://www.linuxhome.ch/geek/ggt-gcd-wer-kanns-am-kurzesten/#comments</comments>
		<pubDate>Thu, 05 Jan 2012 08:50:45 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=1074</guid>
		<description><![CDATA[ggT / gcd, wer kann&#8217;s am Kürzesten? Diese Frage, tauchte auf, nachdem ich versuchte, den grössten gemeinsamen Teiler aus Lust und Laune in ein paar Programmiersprachen zu implementieren (und einige male kläglich scheiterte). Von der Auswahl ausgenommen sind esoterische oder „unleserliche“ Sprachen (APL) und natürlich solche, die eine gcd-Funktion bereits in den Bibliotheken haben. Unter [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>ggT / gcd, wer kann&#8217;s am Kürzesten? Diese Frage, tauchte auf, nachdem ich versuchte, den grössten gemeinsamen Teiler aus Lust und Laune in ein paar Programmiersprachen zu implementieren (und einige male kläglich scheiterte). Von der Auswahl ausgenommen sind esoterische oder „unleserliche“ Sprachen (APL) und natürlich solche, die eine gcd-Funktion bereits in den Bibliotheken haben. Unter diesen Gesichtspunkten gewinnt hier relativ klar <strong>Forth</strong>! Irgendwie überraschend (aber beim zweiten Nachdenken doch nicht mehr so überraschend), dass eine Programmiersprache aus den Sechzigerjahren des vorigen Jahrhunderts so unglaublich effizient im Ausdruck ist:</p>

<div class="wp_syntax"><div class="code"><pre class="forth" style="font-family:monospace;">: gcd ( a b -- n )
  begin dup while tuck mod repeat drop ;</pre></div></div>

<p>Zugegeben, ohne genau zu wissen, was tuck macht, ist es etwas schwierig zu verstehen, aber das Prinzip der wiederholenden Modulo ist schon klar zu erkennen.<br />
Aufrufe dieser Funktion macht man dann in etwa so:</p>
<pre>142864 24 gcd . 8</pre>
<p>oder pro Linie ein Argument (da merkt man deutlich, dass Forth nur auf einem Stack arbeitet):</p>
<pre>14361672
649981417530
gcd
. 1446</pre>
<p>Wer dies unbedingt austesten will, sollte sich <em>gforth</em> (GNU) installieren. Für Fans der UPN: In Forth rechnet man aufgrund des Stacks natürlich mit der umgekehrten polnischen Notation:</p>
<pre>5 3 + 7 2 + * .</pre>
<p>(mit dem Punkt holt man sich das letzte Resultat vom Stack, quasi ein <em>pop</em>). Natürlich gibt es auch andere Kandidaten, die zumindest ähnlich kurz sind, aber meines Erachtens ist Forth noch die bekannteste (ich habe jedenfalls noch nie was von K oder Joy gehört). Interessanterweise bietet auch gnuplot eine Lösung dafür an. Ich weiss nicht, ob man Gnuplot zu den Turing-vollständigen Sprachen zählt, deshalb ausser Konkurrenz:</p>

<div class="wp_syntax"><div class="code"><pre class="gnuplot" style="font-family:monospace;">gcd <span style="color: #000099; font-weight:bold;">&#40;</span>a<span style="color: #000; font-weight: bold;">,</span> b<span style="color: #000099; font-weight:bold;">&#41;</span> <span style="color: #000; font-weight: bold;">=</span> <span style="color: #007800;">b =</span><span style="color: #000; font-weight: bold;">=</span> <span style="color: #cc66cc;">0</span> ? a <span style="color: #000; font-weight: bold;">:</span> gcd <span style="color: #000099; font-weight:bold;">&#40;</span>b<span style="color: #000; font-weight: bold;">,</span> a <span style="color: #000; font-weight: bold;">%</span> b<span style="color: #000099; font-weight:bold;">&#41;</span></pre></div></div>

<p>Ach ja, der Preis für die längste Implementierung von gcd geht an SED (ein Streaming-Editor von Unix, der eigentlich nie als Programmiersprache gedacht war), den Sourcecode kann man sich bei rosettacode.org angucken <img src='http://www.linuxhome.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<address>[1] <a href="http://rosettacode.org/wiki/Gcd">http://rosettacode.org/wiki/Gcd</a></address>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/geek/ggt-gcd-wer-kanns-am-kurzesten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Klein und fein: Der Boyer-Moore-Horspool Algorithmus</title>
		<link>http://www.linuxhome.ch/geek/klein-und-fein-der-boyer-moore-horspool-algorithmus/</link>
		<comments>http://www.linuxhome.ch/geek/klein-und-fein-der-boyer-moore-horspool-algorithmus/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 14:51:52 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[programmierung]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=1063</guid>
		<description><![CDATA[Zugegeben, ich verstand den Boyer-Moore Algorithmus nicht ganz, was alleine schon ein Grund war, eine einfachere Variante zu implementieren. Der Boyer-Moore-Horspool ist so eine Variante. Glücklicherweise zeigt sich, dass die Horspool-Vereinfachung die Textsuche im durchschnittlichen Fall nicht oder nicht viel langsamer werden lässt (rein subjektive Einschätzung!). Neugierige sollten den Code 1:1 kopieren und verwenden können [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Zugegeben, ich verstand den Boyer-Moore Algorithmus nicht ganz, was alleine schon ein Grund war, eine einfachere Variante zu implementieren. Der Boyer-Moore-Horspool ist so eine Variante. Glücklicherweise zeigt sich, dass die Horspool-Vereinfachung die Textsuche im durchschnittlichen Fall nicht oder nicht viel langsamer werden lässt (rein subjektive Einschätzung!). Neugierige sollten den Code 1:1 kopieren und verwenden können mit einem beliebigen Java-Compiler. Und bitte einfach den Programmierstil ausblenden, es ging mir nur darum, den Algorithmus zu testen und wenigstens halbwegs zu verstehen. Heute braucht man sich kaum mehr selber um Implementierungen von Suchalgorithmen zu bemühen, die meisten Programmierumgebungen bringen entsprechende Bibliotheksfunktionen seit vielen Jahren mit.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> BoyerMooreHorspoolSearch <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> text<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span> text_len<span style="color: #339933;">;</span>
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">int</span> ALPHABET_SIZE <span style="color: #339933;">=</span> <span style="color: #cc66cc;">256</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> BoyerMooreHorspoolSearch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">String</span> str <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;overeovere The oxen-brown Fox jumped over the Fox-lake. It (fox) didn't&quot;</span> <span style="color: #339933;">+</span>
				<span style="color: #0000ff;">&quot; know why, but it was kinda fun overemphasized! xxxxxxxxxxx aaaaaaa&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">text</span> <span style="color: #339933;">=</span> str.<span style="color: #006633;">toCharArray</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		text_len <span style="color: #339933;">=</span> text.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DEBUG: text_len: &quot;</span> <span style="color: #339933;">+</span> text_len<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> BoyerMooreHorspoolSearch<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> text<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">text</span> <span style="color: #339933;">=</span> text.<span style="color: #006633;">toCharArray</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		text_len <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">text</span>.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> search<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> pattern<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> pat <span style="color: #339933;">=</span> pattern.<span style="color: #006633;">toCharArray</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> pat_len <span style="color: #339933;">=</span> pat.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> occurrenceTable <span style="color: #339933;">=</span> initOccurrence<span style="color: #009900;">&#40;</span>pat<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> pos <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// our text index position</span>
		<span style="color: #000066; font-weight: bold;">int</span> countloops <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>pos <span style="color: #339933;">&lt;=</span> text_len<span style="color: #339933;">-</span>pat_len<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> pat_len<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// our pattern index position</span>
			<span style="color: #666666; font-style: italic;">// As long as the pattern chars are hits (we start at the</span>
			<span style="color: #666666; font-style: italic;">// end of the pattern) =&gt; go one backwards (to the left).</span>
			<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">&gt;=</span> <span style="color: #cc66cc;">0</span> <span style="color: #339933;">&amp;&amp;</span> pat<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> text<span style="color: #009900;">&#91;</span>pos<span style="color: #339933;">+</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> j<span style="color: #339933;">--;</span> <span style="color: #666666; font-style: italic;">// hits</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>j <span style="color: #339933;">&lt;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> report<span style="color: #009900;">&#40;</span>pattern, pos<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #666666; font-style: italic;">// We get here, when: a) a full hit was found</span>
			<span style="color: #666666; font-style: italic;">// and b) nothing was found or partially pattern was found</span>
			<span style="color: #666666; font-style: italic;">// in either case, we have to check, how far to the right we</span>
			<span style="color: #666666; font-style: italic;">// can jump now.</span>
			<span style="color: #666666; font-style: italic;">//</span>
			<span style="color: #666666; font-style: italic;">// Now we do this in one step: take the jump-length from</span>
			<span style="color: #666666; font-style: italic;">// the occurrenceTable indicating pat_len, if the character</span>
			<span style="color: #666666; font-style: italic;">// of the current pos in text is _not_ in the pattern and</span>
			<span style="color: #666666; font-style: italic;">// giving the difference from the right to the rightmost character</span>
			<span style="color: #666666; font-style: italic;">// in the pattern, if the character at pos in text _is_ in our</span>
			<span style="color: #666666; font-style: italic;">// pattern</span>
			pos <span style="color: #339933;">+=</span> occurrenceTable<span style="color: #009900;">&#91;</span>text<span style="color: #009900;">&#91;</span>pos<span style="color: #339933;">+</span>pat_len <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
			countloops<span style="color: #339933;">++;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;DEBUG: Loops: &quot;</span> <span style="color: #339933;">+</span> countloops<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> initOccurrence<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">char</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> pat<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> occurrenceTable <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span>ALPHABET_SIZE<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">char</span> a<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">int</span> pat_len <span style="color: #339933;">=</span> pat.<span style="color: #006633;">length</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span>a <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> a <span style="color: #339933;">&lt;</span> ALPHABET_SIZE<span style="color: #339933;">;</span> a<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
			occurrenceTable<span style="color: #009900;">&#91;</span>a<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> pat_len<span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #666666; font-style: italic;">// We fill the table at the position of the ASCII char</span>
		<span style="color: #666666; font-style: italic;">// (for example occurrenceTable[97] for 'a') with the</span>
		<span style="color: #666666; font-style: italic;">// index value of it's last occurrence in the pattern.</span>
		<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> j <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> pat_len<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
			occurrenceTable<span style="color: #009900;">&#91;</span>pat<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span>pat_len <span style="color: #339933;">-</span> j <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000000; font-weight: bold;">return</span> occurrenceTable<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">void</span> report<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span> pat, <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #000066; font-weight: bold;">int</span> pos<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003399;">System</span>.<span style="color: #006633;">out</span>.<span style="color: #006633;">println</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Found <span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> <span style="color: #339933;">+</span> pat <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\&quot;</span> at position &quot;</span>
				<span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>pos<span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot; (index &quot;</span> <span style="color: #339933;">+</span> pos <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;) in the text!&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// Driver</span>
	<span style="color: #008000; font-style: italic; font-weight: bold;">/**
	 * @param args
	 */</span>
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000066; font-weight: bold;">void</span> main<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> args<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//		BoyerMooreHorspoolSearch bmh = new BoyerMooreHorspoolSearch(&quot;Is there a fox?&quot;);</span>
		BoyerMooreHorspoolSearch bmh <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> BoyerMooreHorspoolSearch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		bmh.<span style="color: #006633;">search</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Fox&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		bmh.<span style="color: #006633;">search</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;fox&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		bmh.<span style="color: #006633;">search</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot; fox&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// this should _not_ be found</span>
		bmh.<span style="color: #006633;">search</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;ox&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		bmh.<span style="color: #006633;">search</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;xxx&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		bmh.<span style="color: #006633;">search</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;overe&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/geek/klein-und-fein-der-boyer-moore-horspool-algorithmus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatisierte Server-infrastruktur mit Puppet in der KMU: Lohnt sich das?</title>
		<link>http://www.linuxhome.ch/linux/automatisierte-server-infrastruktur-mit-puppet-in-der-kmu-lohnt-sich-das/</link>
		<comments>http://www.linuxhome.ch/linux/automatisierte-server-infrastruktur-mit-puppet-in-der-kmu-lohnt-sich-das/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 12:54:58 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=1035</guid>
		<description><![CDATA[Puppet ist seit Jahren im Aufwind und entwickelt sich zum Nonplusultra im professionellen Konfigurationsmanagement. Es ist schon längst nicht mehr nur die &#8220;Alternative zu cfengine&#8221; die es anfangs noch war. Die Liste der Firmen, die seit längerem und im grossen bis sehr grossen Umfang (bis zehntausende von Servern oder Instanzen) auf Puppet setzen ist beeindruckend, [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Puppet ist seit Jahren im Aufwind und entwickelt sich zum Nonplusultra im professionellen Konfigurationsmanagement. Es ist schon längst nicht mehr nur die &#8220;Alternative zu <a title="cfengine homepage" href="http://cfengine.com/" target="_blank">cfengine</a>&#8221; die es anfangs noch war. Die<a title="Who uses Puppet?" href="http://projects.puppetlabs.com/projects/puppet/wiki/Whos_Using_Puppet" target="_blank"> Liste</a> der Firmen, die seit längerem und im grossen bis sehr grossen Umfang (bis zehntausende von Servern oder Instanzen) auf Puppet setzen ist beeindruckend, darunter finden sich unter anderem Google, Twitter, Red Hat, Sun, Citrix, match.com, Rackspace etc. Wegen der ausgezeichneten Reputation von Puppet und der möglichen Vollautomatisierung (ein heiliger Gral von Systemadministratoren, leider wird dies manchmal eher als Bedrohung ihres Jobs wahrgenommen) entschieden wir uns für eine Evaluation dieser Software. Der Preis für die Flexibilität und die überragende Mächtigkeit dieses Instruments ist allerdings am Anfang ziemlich hoch: Nicht wegen dem Kaufpreis, es handelt sich ja um Opensource, aber die Lernkurve ist am Anfang wirklich sehr steil. So steil, dass ich mich die erste Woche mehr als einmal gefragt habe: Sollen wir wirklich? Lohnt sich das überhaupt für unsere 20 Linux-Server? Vielleicht ist es gar nicht so schlecht, dass die Einstiegshürde so hoch ist, damit wird sichergestellt, dass sich nur eingehend damit beschäftigt, wer genau weiss, was er tut (das ist auch bei Linux-Administratoren nicht automatisch der Fall <img src='http://www.linuxhome.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  und was genau mit dem Werkzeug erreicht werden soll.</p>
<p>Nach zwei Wochen intensiven Lernens (Meistens &#8220;Learning by doing&#8221;, denn praktisch alle  Puppet-Bücher sind nicht wirklich brauchbar) ist die Antwort Ja. Ja, und es würde sich sogar nur mit 10 Servern bereits lohnen. Denn nach dem hohen Lernaufwand am Anfang wird das Erstellen von neuen Modulen und Konfigurationen immer einfacher und schneller. Es macht Spass, ein derartig mächtiges Werkzeug immer besser zu beherrschen. Zudem gibt es eine Unmenge von<a title="Puppet Module Forge" href="http://forge.puppetlabs.com/" target="_blank"> vorgefertigten Modulen</a> auf den entsprechenden Internetseiten zu finden. Und nicht zuletzt lernt man sehr viel über deklarative Sprachen und wenn man will, kann man zugleich noch etwas Ruby Programmieren lernen, je nachdem wie tief man in die Materie eintauchen möchte.</p>
<p>Einen anständigen Workflow vorausgesetzt kommt man unter Umständen auch intensiv mit Git in Kontakt, was einem den zukünftigen Umgang mit diesem ebenfalls sehr mächtigen Versionierungswerkzeug in anderen Projekten sehr einfach macht (Projektleiter, ob kommerziell oder Opensource sind froh, wenn sie nicht erst einen Kurs in &#8220;Git basics&#8221; geben müssen). Als kleiner Bonus wird durch den Workflow auch ein Produktionsrelease-Zyklus eingaführt mit Test und Live-Szenarien, ohne die sonst üblichen Probleme eines Paradigmen- oder Prozesswechsels (Akzeptanz u.ä.), denn die ersten Früchte der Arbeit werden sehr schnell auch individuell spürbar. Für vorsichtigere Naturen lohnt sich bestimmt ein Blick auf die <a title="Puppet Enterprise" href="http://puppetlabs.com/puppet/puppet-enterprise/" target="_blank">Enterprise-Version</a>, mit der die Installation vollautomatisch auf Klick funktioniert und für die man auch offiziellen Support bekommt.</p>
<p>Warum scheuen dennoch viele Administratoren den Weg in die Vollautomatisierung? Bei einigen herrscht wohl noch die altbekannte Angst vor dem Überflüssigwerden des Administrators vor. Dies lässt sich in der Welt der proprietären Betriebssysteme und Software (aber nicht nur dort) sehr häufig beobachten, wo selbst einfachste, repetierbare Aufgaben teilweise Stunden benötigen. Mein Argument gegen diese Angst ist, dass wir unseren Job nicht machen, um langweilige, wiederholende und im Prinzip immergleiche Arbeiten zu machen. Dazu kann man auch Roboter (sprich: Puppet) nehmen! Als Systemadministrator / Entwickler etc. hat man genug zu tun, kreative und nachhaltige Lösungen für nicht-alltägliche Probleme zu finden. Diese Arbeit ist essentiell das, was uns  implizit motiviert! Typische Situation: Die ersten 10 Apache-Installationen macht man noch gerne, weil man lernt und das Ergebnis sehen kann. Danach merkt man schnell, dass es immer dasselbe ist. Warum also nicht automatisieren? Jeder Systemadministrator den ich kenne, hat eine Liste mit 100+ interessanteren Problemen und Ideen, welche ihrer Firma einen echten Mehrwert bieten würden, wenn man denn neben den alltäglichen Aufgaben Zeit für sie fände. Deshalb ist Automatisierung keine Bedrohung sondern eine Befreiung! Sobald man mit vielen Servern zu tun hat, muss man sich ohnehin überlegen, wie man diese effizient und nachvollziehbar gleich aufsetzen und administrieren will, daher ist in grösseren Firmen diese Form der Automatisierung schon eher ein Sachzwang, will man motivierte und kreative anstatt genervte Administatoren.</p>
<p>Im Gegensatz zu cfengine besteht derzeit leider noch keine offizielle <a title="Puppet on Windows" href="http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Windows" target="_blank">Windows-Unterstützung.</a> Es sind jedoch Entwicklungen im Gange, dass bald die wichtigsten Ressourcen durch einen Windows-Agent realisiert werden können.</p>
<p>In diesem Sinne gelte das alte Administratoren-Credo: Wenn eine Arbeit automatisch erledigt werden kann, soll man keinen Menschen damit belästigen. Denn Menschen haben Interessanteres zu tun.</p>
<address>[1] <a href="http://cfengine.com/">http://cfengine.com/</a></address>
<address>[2] <a href="http://projects.puppetlabs.com/projects/puppet/wiki/Whos_Using_Puppet">http://projects.puppetlabs.com/projects/puppet/wiki/Whos_Using_Puppet</a></address>
<address>[3] <a href="http://forge.puppetlabs.com/">http://forge.puppetlabs.com/<br />
</a>[4] <a href="http://puppetlabs.com/puppet/puppet-enterprise/">http://puppetlabs.com/puppet/puppet-enterprise/</a><a href="http://forge.puppetlabs.com/"><br />
</a>[4] <a href="http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Windows">http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Windows</a></address>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/linux/automatisierte-server-infrastruktur-mit-puppet-in-der-kmu-lohnt-sich-das/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ade KDE&#8230;</title>
		<link>http://www.linuxhome.ch/linux/ade-kde/</link>
		<comments>http://www.linuxhome.ch/linux/ade-kde/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 15:34:24 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[gnome]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=914</guid>
		<description><![CDATA[Selten lasse ich mich zu  solchen Postings hinreissen. Nun ist es soweit. Nachdem ich nun seit über 10 Jahren KDE nutze (seit ca. 1999), hat das Frustlevel mit KDE 4.x (Version egal) ein unerträgliches Mass erreicht. Schade, ich wäre gerne länger optimistisch gewesen bezüglich des Projektes. Ich hoffe, dieser Artikel wird nicht zu sehr als [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Selten lasse ich mich zu  solchen Postings hinreissen. Nun ist es soweit. Nachdem ich nun seit über 10 Jahren KDE nutze (seit ca. 1999), hat das Frustlevel mit KDE 4.x (Version egal) ein unerträgliches Mass erreicht. Schade, ich wäre gerne länger optimistisch gewesen bezüglich des Projektes. Ich hoffe, dieser Artikel wird nicht zu sehr als Troll-Posting aufgefasst, ich versuche so sachlich wie möglich zu bleiben (ich bin zwar kein KDE-Entwickler, kann aber Usability und Projektleitung einigermassen beurteilen)&#8230;</p>
<p>Ich war wirklich ein grosser Fan von KDE, habe die Gnome-Benutzer immer belächelt, weil sie für Konfigurationen Registry-ähnliche (brrrr&#8230;) Einträge in GConf machen mussten (auch heute noch?), falls es dafür kein entsprechendes Werkzeug gibt.</p>
<p>Als mit KDE 4.0-4.3 bereits viele enttäuschte KDE-Benutzer absprangen, bezichtigte ich sie der Ungeduld und vermutete, dass in 6 Monaten endlich Stabilität und Klarheit bezüglich der Schnittstellen, des Designs und der Oberflächen herrschen würde: Ich habe mich geirrt. Es sind mehr als 3 Jahre seit Version 4.0 vergangen, ich habe wirklich genug Geduld bewiesen. Leider ist weder die Stabilität, noch die Funktionalität auch nur annähernd an die Versprechungen der Entwickler herangekommen. Als Benutzer frisst mir KDE einfach zuviel Zeit und Ressourcen und kostet mich immer mehr Nerven.</p>
<p>Um nur ein paar unrühmliche Beispiele zu nennen:</p>
<ul>
<li>Plasma-Abstürze (diese treten je nach Grafikkarten-Treiben häufiger oder seltener auf, aber sie treten auf)</li>
<li>Der &#8220;semantische Desktop&#8221; mit Nepomuk/Strigi =&gt; Zweimaliger Backendwechsel (alle Tags und Indizes konnte man vergessen oder nur mit grossem Aufwand migrieren) und immer noch kein funktionierendes Frontend, abgesehen von ein paar unintuitiven Dolphin-Buttons. Kurz gesagt: Sogar die Windows-Indizierung oder der Google-Desktop-Search funktionieren besser.</li>
<li>Akonadi (Datenprovider)=&gt; immer noch nicht vollständig integriert, nicht mal in KMail! Immerhin ist der Akonadi-Dienst heute stabil und zuverlässig.</li>
<li>ALT+F2 (KRunner) war in mehreren Versionen instabil, brauchte Minutenlang, um Nepomuk oder werweisswas abzufragen und stürzt auch heute noch unregelmässig ab.</li>
<li>Für mich sehr unverständlich: Das eigentlich geniale Konzept der Aktivitäten wurde niemals richtig brauchbar eingeführt. Dabei hätte man in Verbindung mit den virtuellen Deskstops Einiges erreichen können. Aber es ist bis heute nur den wenigsten Benutzern klar, das es Aktivitäten gibt geschweige denn, wie man sie nutzen oder konfigurieren kann (die Konfiguration wird sehr gut versteckt).</li>
<li>Die Systemkonfigurationswerkzeuge sind immer chaotischer <a title="KDE systemsettings" href="http://www.pro-linux.de/artikel/2/image/1496/4107,die-systemsettings-in-kde-46-sind-endlich-wieder-uebersichtlich.html" target="_blank">organisiert</a> und bezeichnet (wer sucht das Tastaturlayout schon unter &#8220;Input Devices&#8221;?)</li>
<li>Abstürze in KMail, amarok und vielen anderen Applikationen. Auf das von KDE verwendete QT-Framework sind die Abstürze kaum zurückzuführen, denn reine QT-Applikationen scheinen in der Regel sehr stabil zu arbeiten.</li>
<li>Desktopeffekte: Tolle und gutaussehende Effekte, nur fehlt ein einheitliches Konzept. Der Benutzer ist ganz auf sich gestellt, die für ihn nützlichen Komponenten einzurichten. Ausserdem auch hier: Noch viel zu viele Abstürze, wenn man &#8220;ungewöhnliche&#8221; Mausbewegungen o.ä. macht, während ein Effekt in Kraft ist. Heute kann man kaum noch jemanden mit den tollen KDE-Desktopeffects beeindrucken, wenn sie nur zur Hälfte funktionieren wegen Treiberproblemen oder gar abstürzen, wenn man sie gerade einem Kollegen zeigen möchte <img src='http://www.linuxhome.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
</ul>
<p>Dies sind auch in den meisten Foren so etwa die am häufigsten bemängelten Punkte.</p>
<p>Bei KDE merkt man seit einigen Jahren, dass die Projektleitung chaotisch ans Werk geht, Entwickler Aaron Seigo ignoriert seit Jahren die unzähligen Kommentare in seinem <a title="Aaron Seigo Blog" href="http://aseigo.blogspot.com/" target="_blank">Blog</a> und den KDE-Foren, in denen die Benutzer einfach nur Stabilität, weniger Abstürze und weniger Bugs fordern, wenn er und andere Entwickler schon wieder mit den nächsten Features auftrumpfen, während grundsätzliche Attribute noch nicht mal stabil funktionieren. Sebastian Kügler indes<a title="KDE 4.7 Beta ankündigung" href="http://dot.kde.org/2011/05/25/kde-ships-first-47-beta" target="_blank"> kündigt bereits die Betaversion von KDE 4.7</a> an. Auch dort viele Kommentare, dass Version vor 1.0 (1998) stabiler war, als es 4.x je war usw. Je länger die Benutzerklagen bezüglich der mangelnden Stabilität von KDE 4 ignoriert oder beschwichtigt wurden, ohne dass es spürbare Verbesserungen gab (es gab sie, aber nur für Benutzer, die in der Lage waren, immer die neuesten Versionen zu installieren), desto ungeduldiger und drängender wurde natürlich deren Ton. Mittlerweile werden sogar Kommentare gelöscht, weil sie sich im Ton ganz vergreifen, schlecht bewertet und als &#8220;Trollpost&#8221; bezeichnet. Das deutet auf Schwierigkeiten hin, die sich längerfristig auswirken dürften. Sehr schade, denn es geht hier viel Vertrauen verloren, das doch so wichtig ist für Softwareprodukte.</p>
<p>Was tun? Noch bis Ende letzten Jahres gab es für mich kaum eine Alternative, denn KDE hat unbestritten viele tolle Applikationen und Gnome 3 steckte scheinbar noch etwas in den Kinderschuhen.</p>
<p>Mit dem Release von Fedora 15 sollte Gnome 3 in brauchbarer Form vorliegen. Mit grösster Skepsis stattete ich diesr Desktopumgebung einen Besuch ab. Kurz und gut: Ich war von Anfang an begeistert! Schon mit einer so frühen Release haben die Gnome-Entwickler ein absolut stabiles und benutzbares Produkt abgeliefert! Natürlich sind noch nicht alle Applikationen und Systemkomponenten migriert worden, aber das Projekt scheint sehr gut voranzukommen. Das alte Gnome hat mir nie gefallen, zu altbacken und kaum konfigurierbar. Doch genau dieser &#8220;Mangel&#8221; an Konfigurationsmöglichkeiten scheint bei Gnome 3 gut in das Gesamtkonzept zu passen. Die Gnome-Shell ist zwar gewöhnungsbedürftig, aber sie stellt nach kurzer Zeit sogar jede Mac-Oberfläche in den Schatten. Warum? Weil man sich auf die Arbeit mit den jeweiligen Applikationen konzentrieren kann und weil die verwendeten Effekte auf den Workflow ausgelegt sind und praktisch nie abstürzen. Auch wenn ich hoffe, dass ich in Zukunft mehr konfigurieren kann (z.B. gespeicherte Sessions, in welchen die Applikationen auf zugewiesenen Desktops starten), fehlt mir im Moment nichts. Ich kann es vielleicht in die Worte fassen: Es fühlt sich alles von Anfang an richtig an, die meisten Kommandos entdeckt man intuitiv (z.B. das Navigieren in den Desktops, das Aufrufen der Gnome-Shell etc.), die Projektleitung scheint zu wissen, was das Ziel ist und das merkt man. Vielleicht erweisen sich nun die höheren Einstiegshürden in die Gnome-Entwicklung als Vorteil, weshalb Gnome-Entwickler unter Umständen etwas &#8220;reifer&#8221; und zurückhaltender sind mit Features, die dem Workflow nicht wirklich helfen.</p>
<p>Man darf mich also seit dieser Woche als Gnome3 (oder Gnome-Shell?) Benutzer bezeichnen. Ich kann sagen, die Migration ist mir viel leichter gefallen, da ich nur in einem Drittel der Zeit dasselbe erreichte, wie mit einer neuen KDE-Installation: Evolution ist viel stabiler geworden (stabiler als KMail war es schon immer) und es hilft einem beim Einrichten von Googlemail-IMAP-Accounts. Ausserdem integriert es Google-Kalender sauber, genauso wie Google-Kontakte uvm. Im Büro nutze ich Evolution sogar mit unserem Exchange-Server (inkl. GAL) ohne Probleme. Soweit so gut.</p>
<p>Nochmals: Bitte versteht mich nicht falsch, die KDE-Entwickler sind Profis und viele Applikationen möchte ich nicht mehr missen (obwohl die Anzahl schrumpft aufgrund zunehmender Abstürze). QT ist und bleibt ein geniales Framework, dass ich jederzeit GTK vorziehe, um kleine Applikationen zu entwickeln. Auch werde ich weiterhin mit Spenden die einzelnen Projekte unterstützen. Nur bezweifle ich mittlerweile offiziell, dass die Projektleitung dazu fähig ist, dieses Boot wieder in ruhigere Gewässer zu lenken. Nach der Lektüre von Frederick P. Brooks &#8220;The Mythical Man-Month&#8221;, Peter Seibel&#8217;s &#8220;Coders at Work&#8221; und anderen Materialien über vergangene Grossprojekte im Softwarebereich deutet für mich Vieles darauf hin, dass KDE4 niemals stabil werden wird. Als Entwickler muss man sich dann überlegen, ob nicht ein kompletter Neuanfang das Beste wäre. Als Benutzer hat man glücklicherweise mit Gnome 3, XFCE usw. brauchbare Alternativen.</p>
<address>[1] KDE Systemsettings: <a title="Systemsettings KDE 4" href="http://www.pro-linux.de/artikel/2/image/1496/4107,die-systemsettings-in-kde-46-sind-endlich-wieder-uebersichtlich.html">http://www.pro-linux.de/artikel/2/image/1496/4107,die-systemsettings-in-kde-46-sind-endlich-wieder-uebersichtlich.html</a><br />
[2] Aaron Seigo&#8217;s Blog: <a title="Aaron Seigo's Blog" href="http://aseigo.blogspot.com/">http://aseigo.blogspot.com/</a><br />
[3] Ankündigung KDE 4.7:<a title="Ankündigung KDE 4.7" href=" http://dot.kde.org/2011/05/25/kde-ships-first-47-beta"> http://dot.kde.org/2011/05/25/kde-ships-first-47-beta</a></address>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/linux/ade-kde/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Harte Zeiten&#8230;</title>
		<link>http://www.linuxhome.ch/news/harte-zeiten/</link>
		<comments>http://www.linuxhome.ch/news/harte-zeiten/#comments</comments>
		<pubDate>Thu, 28 Apr 2011 09:19:41 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=898</guid>
		<description><![CDATA[Nachdem Sony alle (auch meine) Kundendaten schlechter als gebrauchtes Toilettenpapier bewacht hat, kann ich leider nicht mehr über die iPhone-Fanboys lächeln, die sich bereitwillig von ihrem Big Daddy überwachen lassen. War es dumm von mir, einem kapitalgeilen Grosskonzern auch nur ein Bit von meinen persönlichen Daten anzuvertrauen? Hell, yes! Das sollte für uns alle die [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Nachdem Sony alle (auch meine) <a title="The Sonygate" href="http://www.heise.de/newsticker/meldung/Angriff-auf-Playstation-Network-Persoenliche-Daten-von-Millionen-Kunden-gestohlen-1233136.html" target="_blank">Kundendaten</a> schlechter als gebrauchtes Toilettenpapier bewacht hat, kann ich leider nicht mehr über die iPhone-Fanboys lächeln, die sich bereitwillig von ihrem Big Daddy überwachen lassen. War es dumm von mir, einem kapitalgeilen Grosskonzern auch nur ein Bit von meinen persönlichen Daten anzuvertrauen? Hell, yes! Das sollte für uns alle die letzte Lektion gewesen sein: Keine Konsole mehr kaufen, die einen Account von mir will, damit ich spielen kann. Leider schliesst das alle derzeitigen Konsolen aus, bis auf die Wii.</p>
<p>Und der nächste Schlag kam kurz darauf: <a title="Yahoo will Delicious schliessen" href="http://www.heise.de/newsticker/meldung/Yahoo-schliesst-moeglicherweise-AltaVista-Delicious-und-andere-Dienste-1155369.html" target="_blank">Delicious wird geschlossen</a>?! WTF, Yahoo behandelt einmal mehr seine Kunden wie Dreck! Hunderttausende Benutzer (darunter mal wieder ich) haben nur noch diese Bookmarks und sind auf sie angewiesen. Man hat zwar die Möglichkeit, die Bookmarks auf den neuen Hüter AVOS zu transferieren, aber dies passiert mit gemischten Gefühlen, wenn man liest, wer AVOS ist (Auszug aus dem offiziellen Mail von Yahoo):</p>
<address>AVOS is a new Internet company founded by Chad Hurley and Steve Chen  who, in 2005, founded YouTube, the world&#8217;s largest online video  platform. Before YouTube, Hurley and Chen were early employees at  PayPal, a leading online payment service that is now part of eBay.  Delicious will become a part of AVOS, based in San Mateo, California.</address>
<p>&nbsp;</p>
<p>Hmm&#8230;höchste Zeit, die Exportfunktion zu benutzen, nur habe ich dann im Browser 1000 unsortierte Bookmarks!</p>
<address> </address>
<p>Es ist schon hart für einen <a title="Late Adopting" href="http://www.linuxhome.ch/geek/wie-uberlebt-man-als-geek-wahrend-dem-teilzeitstudium/" target="_blank">Late Adopter</a> wie mich zu sagen: Seid noch viel vorsichtiger als vorher, wie weit Ihr Euch auf Internet-Dienste verlasst. Kleinste Unrentabilitäten (natürlich kann man mit Social Bookmarks nicht viel verdienen, was hat Yahoo denn eigentlich erwartet?) und Marktschwankungen können selbst grösste und weitverbteitete Dienste zum Erliegen bringen von Heute auf Morgen. Die übliche Warnung ¨gebt nicht jedem Eure Daten&#8221; kennt man schon zur Genüge, nur muss man sie nun auf _alle_ Firmen ausweiten, auch und insbesondere auf die Grössten. Die Datensicherheit ist eher selten gewährleistet, da entweder die Projektleiter oder die Administratoren <del>absolute Pfeifen</del> suboptimal ausgebildet sind.</p>
<p>Auch meine Cloud-Daten werde ich überdenken müssen, die Daten werden zwar verschlüsselt übertragen, aber über ihre Speicherung weiss ich nichts Genaues. Zum Glück sind sie jeweils lokal vorhanden, da sie über ein Programm synchronisiert werden. Und bedenkt man dann noch Google-Mail, Google-Kalender, Rememberthemilk.com etc. macht man auch wieder Gedanken, ob nicht eine Low-Tech-Lösung langfristig das Beste wäre. Es gilt auch hier: Haltet immer einen 16- oder 32GB USB-Stick bereit.</p>
<p>Mein Fazit ist allerdings nicht so frustrierend, wie man zuerst denkt: Selbständigkeit und Unabhängigkeit von externen Dienstleistern ist wieder vermehrt gefragt. Dazu braucht es nun mal etwas Know-How und vor allem Spass am Selbermachen. Dafür kann man sich solchen Ärger künftig eher ersparen. Man muss sich etwa zwingen, sich bei jedem benutzten Internet-Dienst zu überlegen, ob man die Daten überhaupt exportieren kann und ob ein Rettungsboot existiert, falls das Schiff sinkt.</p>
<p>NACHTRAG: Da wir gerade beim Thema sind: <a title="TomTom Sorry" href="http://www.heise.de/newsticker/meldung/Tomtom-entschuldigt-sich-wegen-Datenweitergabe-fuer-Radarfallen-1234351.html" target="_blank">TomTom</a> und die <a title="Unesco Datenleck Spiegel Artikel" href="http://www.spiegel.de/netzwelt/web/0%2C1518%2C759538%2C00.html" target="_blank">Unesco</a> achten neben <a title="Apple Locationgate" href="http://www.heise.de/mac-and-i/meldung/Wirbel-um-Aufzeichnung-von-Ortungsdaten-im-iPhone-1231573.html" target="_blank">Apple</a> derzeit auch sehr auf die Kunden-, Nutzer- und Bewerberdaten. Schöne neue Facebookwelt eben&#8230;</p>
<p>Man wird irgendwie den Verdacht nicht los, dass es mittlerweile sehr viele Datenbanken und Applikationen aber nur sehr wenige fähige Administratoren dafür gibt.</p>
<p>&nbsp;</p>
<p>[1] <a title="The Sonygate" href="http://www.heise.de/newsticker/meldung/Angriff-auf-Playstation-Network-Persoenliche-Daten-von-Millionen-Kunden-gestohlen-1233136.html" target="_blank">http://www.heise.de/newsticker/meldung/Angriff-auf-Playstation-Network-Persoenliche-Daten-von-Millionen-Kunden-gestohlen-1233136.html</a></p>
<p>[2]<a title="Yahoo will Delicios schliessen" href="http://www.heise.de/newsticker/meldung/Yahoo-schliesst-moeglicherweise-AltaVista-Delicious-und-andere-Dienste-1155369.html" target="_blank"> http://www.heise.de/newsticker/meldung/Yahoo-schliesst-moeglicherweise-AltaVista-Delicious-und-andere-Dienste-1155369.html</a></p>
<p>[3]<a title="TomTom Sorry" href="http://www.heise.de/newsticker/meldung/Tomtom-entschuldigt-sich-wegen-Datenweitergabe-fuer-Radarfallen-1234351.html" target="_blank"> shttp://www.heise.de/newsticker/meldung/Tomtom-entschuldigt-sich-wegen-Datenweitergabe-fuer-Radarfallen-1234351.html</a></p>
<p>[4]<a title="Unesco Datenleck Spiegel Artikel" href="http://www.spiegel.de/netzwelt/web/0%2C1518%2C759538%2C00.html" target="_blank"> http://www.spiegel.de/netzwelt/web/0%2C1518%2C759538%2C00.html</a></p>
<p>[5] <a title="Apple Locationgate" href="http://www.heise.de/mac-and-i/meldung/Wirbel-um-Aufzeichnung-von-Ortungsdaten-im-iPhone-1231573.html" target="_blank">http://www.heise.de/mac-and-i/meldung/Wirbel-um-Aufzeichnung-von-Ortungsdaten-im-iPhone-1231573.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/news/harte-zeiten/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Wie (über)lebt man als Geek während dem Teilzeitstudium?</title>
		<link>http://www.linuxhome.ch/geek/wie-uberlebt-man-als-geek-wahrend-dem-teilzeitstudium/</link>
		<comments>http://www.linuxhome.ch/geek/wie-uberlebt-man-als-geek-wahrend-dem-teilzeitstudium/#comments</comments>
		<pubDate>Mon, 07 Feb 2011 19:27:11 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=871</guid>
		<description><![CDATA[Durch das Teilzeitstudium und den damit verbunden Geld- und Zeitmangel wird der Einfallsreichtum eines Geeks enorm gefördert. Schliesslich will man nicht die gesamten Ersparnisse in einem Jahr verdampfen müssen. Man muss sich besser organisieren, kann nicht einfach mal schnell einen Tablet-PC für eine Präsentation kaufen, das Notebook sollte 5 Jahre halten, bis das Studium fertig [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Durch das Teilzeitstudium und den damit verbunden Geld- und Zeitmangel wird der Einfallsreichtum eines Geeks enorm gefördert. Schliesslich will man nicht die gesamten Ersparnisse in einem Jahr verdampfen müssen. Man muss sich besser organisieren, kann nicht einfach mal schnell einen Tablet-PC für eine Präsentation kaufen, das Notebook sollte 5 Jahre halten, bis das Studium fertig ist etc. etc.</p>
<p>Ausgehend von einem Teilzeitstudium (mit 60-80% Teilzeitstelle) und Mietkosten von ungefähr 40% des Bruttolohnes können folgende Punkte sicher behilflich sein, trotzdem ein gutes Leben ohne Hungergefühle zu führen:</p>
<h2>Finanztipps:</h2>
<p>1.) Kaufe nur ausgereifte Gadgets mind. der 2. Generation. Ersparnis: Ca. 2&#8217;000 Euro pro Jahr: Wie schon mehrfach erwähnt, bin ich ein &#8220;Late adopter&#8221;: Ich beobachte neue Gadgets oder gar Geräteklassen am Anfang mit Skepsis und warte meist die zweite oder dritte Generation ab. Das hat den Vorteil, dass die Geräte günstig, ausgereift und gut unterstützt sind. Nachteil: Geek-Faktor nicht so hoch wie wenn man der erste Importeur für ein superheisses Teil aus Japan ist&#8230;</p>
<p>2.) Essen wie die Armen im 18. Jahrhundert. Ersparnis: Ca. 300 Euro im Monat (ausgehend von den Lebensmittelpreisen der Schweiz). Als Vegetarier spart man zusätzlich nochmals etwa 100 Euro.  Man soll sich nicht geisseln, aber wenn man wie ich gerne auch mal nur eine Schüssel Reis oder arme Ritter isst (die sind richtig gemacht ein sehr günstiges Festmahl). So kann man sich trotzdem einmal wöchentlich ein gutes Restaurant leisten immer zu rechnen.</p>
<p>3.) Strom sparen. Ersparnis: Ca. 20-40 Euro im Monat. Als Geek hat man hier den Vorteil, auf LED abzufahren und in der Lage zu sein, den Heimserver per Wake-On-Lan zu starten (kommt auch die Netzwerkkarte an) anstatt ihn 24 Stunden heizen zu lassen, wenn man ihn dann doch nur 30 Minuten lang braucht.</p>
<p>4.) Gratis Mobil surfen: Der e-Reader Kindle von Amazon (nein, ich bekomme leider kein Geld für die Werbung) hat neben seinen Qualitäten noch einen ganz besonderen Nebeneffekt: Man kann damit gratis surfen via WLAN/3G/UMTS/GSM, die SIM-Card ist eingebaut und der Browser ist durchaus brauchbar. Da es von Seiten wie Gmail, Wikipedia, leo.org, gutenberg.org etc. Mobil-Versionen gibt, surft man sogar überraschend flott damit.</p>
<p>5.) Gratis SMS für Termine: Mit Google-Calendar kann man sich für Termine kostenlos SMS  schicken lassen. Wie man diesen &#8220;Service&#8221; für private SMS an beliebige Personen nutzen kann, müssen wir wohl noch austüfteln.</p>
<p>6.) Investiere in Aktien von Firmen, die Du sehr gut kennst: Wenn Du Ersparnisse von Deinem Berufsleben vor dem Studium hast, investiere so 20&#8217;000 Euro in Firmen, die Du wirklich gut kennst respektive von denen Du genau weisst, was sie tun. Bei mir war das z.B. Redhat und der Gewinn in einem Jahr finanzierte mir fast 3 Monatsmieten! Natürlich auch ein bisschen Glückssache. Aber bitte immerdaran denken: Nur Abschaum investiert in Lebensmittel!</p>
<h2>Organisationstipps:</h2>
<p>1.) Nutze eine Online-Festplatte (ich nehme das C-Wort lieber nicht in den Mund, das machen die Krawattenträger schon zur genüge): Dies ist zwar aus diversen Gründen etwas heikel (Privatsphäre, Datendiebstahl), aber wenn man sich den Anbieter gut aussucht und sensible Daten selber verschlüsselt (wie man es bis anhin auf den USB-Sticks machte), sollte das ein gangbarer Weg sein. Die Kosten (ca. 20 Euro für 100 GB je nach Anbieter) rechnen sich, weil man auf Sicherheitskopien, USB-Key-Rumschleppen usw. endlich verzichten kann. Wenn man wirklich einmal seine Daten braucht und an einem PC ohne Internet-Anschluss sitzt, muss man sich ohnehin andere Fragen stellen&#8230;</p>
<p>2.) Mache ein Organisationssystem: Das Ziel von allen Organisationssystemen (ich nutze beispielsweise GTD) ist zu wissen, was man als nächstes Tun soll. Eine unschätzbare Hilfe, wenn man arbeitet und gleichzeitig studiert. Rememberthemilk.com und Google-Services (Kalender, Mail) leisten hier sehr gute Dienste.</p>
<p>3.) Verliere Dich selbst nicht: Man ist manchmal geneigt, das ganze Privatleben inkl. Freunde und Familie zu vernachlässigen, weil man glaubt, jede Minute fürs Studium nutzen zu müssen. Tu das nicht! Man schreibt keine (viel) besseren Prüfungen (und wenn, dann ist es auch egal beim heutigen Modulsystem). Man kann sogar davon ausgehen, dass der fehlende Ausgleich die Semesternoten negativ beeinflusst. Also: Treibt weiter Eure bevorzugten Sportarten / Meditationstechniken etc. und haltet die sozialen Kontakte aufrecht. Durch gute Planung (siehe Punkt 2) hat man in der Regel genug Zeit, um sich zumindest die Minimalnote zu sichern.</p>
<p>4.) Nutze Deine Fähigkeiten mit dem Computer. Viele wissen es vielleicht nicht mehr, aber der Computer soll Zeit sparen anstatt verbrauchen. Also lautet das Motto: Automatisieren, Automatisieren, Automatisieren. Das kann via Onlineservices und/oder mit Skripten gemacht werden (Auto-SMS, Auto-Mails). Der Phantasie sind keine grenzen gesetzt.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/geek/wie-uberlebt-man-als-geek-wahrend-dem-teilzeitstudium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Swisscom Digital TV im Geek-Kurztest</title>
		<link>http://www.linuxhome.ch/in-eigener-sache/swisscom-digital-tv-im-geek-kurztest/</link>
		<comments>http://www.linuxhome.ch/in-eigener-sache/swisscom-digital-tv-im-geek-kurztest/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 09:31:59 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[In eigener Sache]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=770</guid>
		<description><![CDATA[Nachdem ich in diesem Bereich nicht den sogenannten &#8220;Early-Adaptor&#8221; spielen wollte, sondern mehr als fünf Jahre gewartet habe, war ich nach Besuchen bei Freunden sehr schnell überzeugt, dass digitales TV heute gut brauchbar ist. Überall war Cablecom TV im Einsatz, aber ich habe meine Erfahrungen mit der Firma gemacht und entschloss mich nach kurzen Preisvergleichen [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Nachdem ich in diesem Bereich nicht den sogenannten &#8220;Early-Adaptor&#8221; spielen wollte, sondern mehr als fünf Jahre gewartet habe, war ich nach Besuchen bei Freunden sehr schnell überzeugt, dass digitales TV heute gut brauchbar ist. Überall war Cablecom TV im Einsatz, aber ich habe meine Erfahrungen mit der Firma gemacht und entschloss mich nach kurzen Preisvergleichen (was kostet es mich insgsesamt, wenn ich den SciFi-Kanal haben will?). Ausserdem dauerte mir den Senderwechsel (auch bei Leuten mit 20Mbit Bandbreite) zu lange. Nach fünf Tagen war es schon soweit: Ich installierte die viel zu grosse Box und es funktionierte alles auf Anhieb. Diese Box ist so gross wie eine PS3 (erste Generation!) und hat ebensolaute Lüfter und dürfte daher auch im Standby eine Menge Strom vertilgen. Meine Befürchtungen, der Senderwechsel wäre bei Swisscom ebenso langsam, stellten sich als unbegründet heraus. Ich zappe über die Box schneller als mit dem Fernseher selbst (Philips, ca. 4 Jahre alt, braucht ca. 1,2 Sekunden zum Senderwechsel).</p>
<div id="attachment_773" class="wp-caption alignnone" style="width: 610px"><strong><a rel="attachment wp-att-773" href="http://www.linuxhome.ch/in-eigener-sache/swisscom-digital-tv-im-geek-kurztest/attachment/setupbox_plus_vorne/"><img class="size-medium wp-image-773" title="SetupBox_plus_vorne" src="http://www.linuxhome.ch/wp-content/uploads/2010/08/SetupBox_plus_vorne-600x240.jpg" alt="" width="600" height="240" /></a></strong><p class="wp-caption-text">Die TV-Box: Ja, auch 2010 ist sie noch so riesig!</p></div>
<p>Meine knappe Beurteilung der beworbenen Features:</p>
<ul>
<li>Die Bildqualität ist in der Tat exzellent</li>
<li>Es gibt leider nicht viele HD Sender</li>
<li>Die Video on Demand Filme sind sehr einfach zu handhaben und die Auswahl ist sehr gross</li>
<li>Nur wenige Sender (bei mir Disneychannel) haben erkennbare Probleme mit Kompressionsartefakten</li>
<li>Gute Auswahl Radiostationen / Internetradio</li>
</ul>
<p>Und hier die Geek-Infos:</p>
<ul>
<li>Ein HD-Film benötigt 7 MBit. Diese Bandbreite sollte man immer abziehen, also lohnt sich praktisch nur eine Leitung mit mehr als 10 Mbit, weil sonst vermutlich mehr Kompressionen (und dadurch mehr Artefakte =&gt; schlechtere Bildqualität) verwendet werden.</li>
<li>Man kann Serien (wie StarTrek) sehr einfach und komfortabel aufnehmen, obwohl ich teilweise Zeitverschiebungen bemerkt habe.</li>
<li>Die TV-Box ist älterer Machart und das merkt man: Windows CE (3 Abstürze bisher, Startzeiten bis zu 4 Minuten möglich), Festplatte mit 160GB (könnte schlimmer sein, es reicht für einige Filme und Serien)</li>
<li>Die Box hat kein WLAN (weshalb vernünftigerweise auch ein 15 Meter LAN-Kabel mitgeliefert wird)!</li>
<li>Im Gegensatz zum Betriebssystem der Box scheint die eigentliche TV-Software recht ausgereift zu sein (wobei komfortablere Suchfunktionen wünschenswert wären, diese sollen gem. Swisscom im Dezember etwas besser werden)</li>
<li>Alle Sender-, Such- und Programmierfunktionen sind online verfügbar, was komfortabler in der Bedienung ist. Nur leider ist die Webseitenstruktur von Swisscom nicht gerade übersichtlich und man benötigt verschiedene Logins in div. Bereichen (Swisscom-Login hier, Modem-Login da&#8230;)</li>
</ul>
<p>Alles in allem ist digitales Fernsehen das TV, wie es schon immer hätte sein sollen: Jeder kann praktisch zu jeder Zeit genau die Inhalte anschauen, die er möchte und kann die Werbung überspringen (leider fehlt eine automatische Werbeblockfunktion). In ungeübten Händen jedoch besteht natürlich die Gefahr des &#8220;Verzappens&#8221;. Genau dies haben wir uns in 12 Monaten ohne Fernsehen abgewöhnen können. Wenn ich also Lust habe, Jazz zu hören oder StarTrek zu schauen, so muss ich nicht erst alle Sender durchsuchen oder auf den Zeitpunkt warten, sondern habe die entsprechenden Inhalte praktisch sofort zur Verfügung (Spartensender oder Serienaufnahme). Dadurch spart man tatsächlich Zeit und schaut viel entspannter und besser gelaunt (keine Werbung!) fern.</p>
<address><em>[1] </em>Senderliste Swisscom: http://www.swisscom.ch/res/tv/sender/index.htm<em> </em></address>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/in-eigener-sache/swisscom-digital-tv-im-geek-kurztest/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Wie man Checkpoint&#8217;s SSL Network Extender auf Linux einsetzt</title>
		<link>http://www.linuxhome.ch/linux/wie-man-den-checkpoints-ssl-network-extender-auf-linux-einsetzt/</link>
		<comments>http://www.linuxhome.ch/linux/wie-man-den-checkpoints-ssl-network-extender-auf-linux-einsetzt/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 11:45:07 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=703</guid>
		<description><![CDATA[Wer wie ich das Vergnügen hat, für eine VPN-Verbindung in&#8217;s Büro auf ein proprietäres Werkzeug angewiesen zu sein, der muss sich zuweilen zu helfen wissen, um das entsprechende Programm auch unter modernen Linuxen betreiben zu können. So auch bei &#8220;SSL Network Extender&#8221; von Checkpoint, das nicht auf ein die Standards (Cisco VPN, OpenVPN) aufsetzt, sondern [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Wer wie ich das Vergnügen hat, für eine VPN-Verbindung in&#8217;s Büro auf ein proprietäres Werkzeug angewiesen zu sein, der muss sich zuweilen zu helfen wissen, um das entsprechende Programm  auch unter modernen Linuxen betreiben zu können. So auch bei <a title="Checkpoint SSL Network Extender" href="http://www.checkpoint.com/products/ssl_network_ext/index.html" target="_blank">&#8220;SSL Network Extender&#8221; von Checkpoint</a>, das nicht auf ein die Standards (Cisco VPN, OpenVPN) aufsetzt, sondern ein eigenes, nicht offenes VPN-Format verwendet, das unter der Haube machen kann, was es will, denn niemand sieht es. Abgesehen davon, dass es ziemlich schwierig ist, ohne Kundenlogin an das SSLExtender Binary für Linux ranzukommen, ist das Teil auch noch sauschlecht programmiert, aber dazu komme ich später.</p>
<h2>Installation</h2>
<p>Die Installation ist einfach, das selbstextrahierende Shellskript wird ausgeführt und 3 Sekunden später ist das Programm installiert und bereit:</p>
<pre>./Check_Point_SNX_R66_HFA_01_For_Linux_800004013.sh
</pre>
<h2>Erste Zweifel</h2>
<p>Beim ersten Ausführen allerdings wird einem schon der erste Stock zwischen die Beine geworfen:</p>
<pre>snx
<span style="color: #ff0000;">snx: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory</span></pre>
<p>Die Software hat also tatsächlich eine Versionsabfrage für die Grundbibliothek libstc++ hart eincodiert! Uns fehlen die Worte und erste Zweifel an der Programmierqualität (oder fehlt einfach die Erfahrung mit Linux?) des Hauses Checkpoint kommen auf&#8230; Aber wir wären keine echten Geeks, wenn wir dafür keinen Workaround fänden:</p>
<p>Für Fedora u.ä. steht dazu meist eine compat-Version bereit, die für ebensolche Fälle gemacht ist:</p>
<pre>yum install compat-libstdc++-33</pre>
<p>Achtung! Auf 64bit-Versionen muss die 32bit-Version explizit angegeben werden (denn natürlich hat Checkpoint keine 64bit-Version auf Lager):</p>
<pre>yum install compat-libstdc++-33.i686</pre>
<p>Für Ubuntu&#8217;s neuere Versionen gibt es diese gar nicht mehr, aber man kann sie einfach aus einem älteren Repository ziehen: <a title="Ubuntu Jaunty Repo" href="http://packages.ubuntu.com/jaunty/i386/libstdc++5/download" target="_blank">http://packages.ubuntu.com/jaunty/i386/libstdc++5/download</a></p>
<h2>Trügerischer Tunnelgräber</h2>
<p>Also auf geht&#8217;s mit einem neuen Versuch:</p>
<pre>snx -u BENUTZER -s SERVERNAME
<span style="color: #ff0000;">FATAL: Could not open tun.ko. No such file or directory
SNX: Virtual Network Adapter initialization and configuration failed. Try to reconnect.</span></pre>
<p>Oh je, warum zum Geier benötigt der SSL Network Extender das Tunnel-Kernelmodul? Eine kurze Suche im Internet bringt an&#8217;s Tageslicht, dass auch diese Abhängigkeit fest einprogrammiert ist, obwohl SSL Extender einen eigenen, proprietären VPN-Tunnel erstellt. Auf Fedora tritt dieser Fehler nicht auf, weil das Modul &#8220;tun&#8221; mit dem Standardkernel ausgeliefert wird. Unter Ubuntu jedoch ist dies Fehlanzeige, auch nachträglich lässt sich das Modul nicht installieren. Man müsste den Kernel neu übersetzen mit der entsprechenden Option. Aber wir sind doch nicht bescheuert und machen uns diese Mühe, bloss weil da ein paar Erstsemesterprogrammierer bei Checkpoint sizten! Das Modul muss einfach existieren, es muss überhaupt nix tun, also wird es einfach gefaked, siehe dazu auch: <a title="Ubuntuusers Wiki" href="http://wiki.ubuntuusers.de/Check_Point_SSL_Network_Extender" target="_blank">http://wiki.ubuntuusers.de/Check_Point_SSL_Network_Extender</a></p>
<pre>mkdir faketun
cd faketun
echo -e "#include &lt;linux/module.h&gt;\nstatic int start__module(void) {return 0;}\nstatic void end__module(void){return;}\nmodule_init(start__module);\nmodule_exit(end__module);"&gt;tun.c
echo -e "obj-m += tun.o\nall:\n\tmake -C /lib/modules/\$(shell uname -r)/build/ M=\$(PWD) modules\nclean:\n\tmake -C /lib/modules/\$(shell uname -r)/build/ M=\$(PWD) clean\nclean-files := Module.symvers"&gt;Makefile
make
sudo install tun.ko /lib/modules/`uname -r`/kernel/net/tun.ko
sudo depmod -a
</pre>
<p>Ab jetzt funktioniert SSLExtender auch auf Ubuntu und man kann in Ruhe von zu Hause aus arbeiten, auch mit diesem proprietären VPN-Tunnel. Dem Arbeiten am Wochenende steht nun nichts mehr im Wege, ausser man hat nebenbei noch ein Privatleben <img src='http://www.linuxhome.ch/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<address><em>[1] http://www.checkpoint.com/products/ssl_network_ext/index.html<br />
[2] http://packages.ubuntu.com/jaunty/i386/libstdc++5/download<br />
[3]http://wiki.ubuntuusers.de/Check_Point_SSL_Network_Extender</em></address>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/linux/wie-man-den-checkpoints-ssl-network-extender-auf-linux-einsetzt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ein kleiner Windows 7-Test</title>
		<link>http://www.linuxhome.ch/geek/ein-kleiner-windows-7-test/</link>
		<comments>http://www.linuxhome.ch/geek/ein-kleiner-windows-7-test/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 20:42:46 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[gaming]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=630</guid>
		<description><![CDATA[Ja, ich habe mir wirklich die Finger schmutzig gemacht für Euch und einen kleinen, unabhängigen Geek-Kurztest von Windows 7 Home Premium (Hey, was anderes gibt&#8217;s bei Dell-billig-Geräten nicht, was kann ich dafür, dass die meisten Features da nicht dabei sind?). Der Grund ist ganz einfach: Microsoft wollte auch Gamern wie mir den Umstieg schmackhaft machen [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Ja, ich habe mir wirklich die Finger schmutzig gemacht für Euch und einen kleinen, unabhängigen Geek-Kurztest von Windows 7 Home Premium (Hey, was anderes gibt&#8217;s bei Dell-billig-Geräten nicht, was kann ich dafür, dass die meisten Features da nicht dabei sind?). Der Grund ist ganz einfach: Microsoft wollte auch Gamern wie mir den Umstieg schmackhaft machen und liefert deshabl DirectX 11 nicht für XP aus. Weil ich aber doch gerne mal die neuen Shader und Effekte bei den neuen Games sehen würde und die Lizenz eh bei Dell dabei ist, warum nicht mal ausprobieren?</p>
<p>Als erstes nach dem (wegen Dell-Tools über 12 Minuten dauernden) Start stellte ich mir die Frage: &#8220;Wo ist Aero?&#8221; Tja, wie sich eben später herausstellen sollte, bedeutet der wohlklingende Name &#8220;<a title="Windows 7 Home Premium" href="http://windows.microsoft.com/de-DE/windows7/products/compare?T1=tab04" target="_blank">Home Premium</a>&#8221; übersetzt eigentlich &#8220;Billig-Version für Massen-Konsumenten&#8221;. Alles, wirklich alles, was bei jeder noch so kleinen Linux-Distro selbstverständlich ist seit vielen Jahren, findet sich nur in den <a title="Windows 7 Professional" href="http://windows.microsoft.com/de-DE/windows7/products/compare?T1=tab05" target="_blank">besseren Versionen</a>, die dann richtig teuer werden (35 Sprachen gibt&#8217;s sogar nur bei <a title="Windows 7 Ultimate" href="http://windows.microsoft.com/de-DE/windows7/products/compare?T1=tab09" target="_blank">Ultimate</a>). Verschlüsselung? XP-Mode (also virtuelle Maschine)? Denkste!</p>
<p>Naja, war eigentlich nicht anders zu erwarten, aber im Vergleich zu damals eine absolute Frechheit, denn XP Professional war als OEM niemals so <a title="Windows 7 Preise" href="http://www.microsoft.com/germany/windows/upgradecenter/default.aspx?cat=1&amp;tab=0">teuer</a>. Ich will ja nur spielen, also wären Leistung-fressende Effekte sowieso fehl am Platze.</p>
<p>Was mich positiv überraschte, war der Fenster-Schüttel-Effekt, der wirklich intuitiv funktionierte. Das Ding nennt sich <a title="Aero Shake" href="http://windows.microsoft.com/de-DE/windows7/products/features/aero-shake" target="_blank">Shake</a> und wird separat als Feature geführt und beworben! Tut mir leid schon wieder den Vergleich zu machen, aber bei KWin wäre der Effekt unter &#8220;ferner liefen&#8221; gelistet neben den 40 anderen. Dasselbe gilt für <a title="Aero Snap" href="http://windows.microsoft.com/de-DE/windows7/products/features/snap" target="_blank">Snap</a>, welches genauso auch bei KWin funktioniert (bitte keine Diskussion, wer was zuerst erfunden hat, das wäre müssig). Dies zeigt, wie sich die verschiedenen Benutzeroberflächen gegenseitig beeinflussen, Windows Aero, KDE, Gnome, OSX, etc., eine gute Sache für die Benutzer!</p>
<p>Nun zurück zur Installation: Weil offenbar die Dell-DVD irgendwie defekt ist, musste ich nach der 4. Installation mein Vorhaben bereits aufgeben. Äusserst fragwürdig ist, dass zwar das Betriebssystem jedesmal komplett installiert wurde ohne Fehlermeldung, aber nach ein paar Minuten der Explorer nicht mehr startbar war, was wiederum keine anderen Programme brauchbar machte. Positiv: Es gibt keinen Bluescreen mehr in solchen Situationen. Negativ: Warum gibt es keine Integritätsüberprüfung aller Pakete während der Installation oder einen Medium-Test vor der Installation? Man hat also das Gefühl, es sei alles o.k., aber es kann jederzeit zu Problemen aus irgendeiner Ecke kommen. Wie gesagt, die Schuld dürfte hier an der Dell-DVD liegen. Trotzdem ist es ein sehr ungutes Gefühl, wenn man nicht weiss, ob nun alles o.k. war bei der Installation oder nicht, weil man einfach keine Details zu sehen bekommt. Dasselbe passierte auch mit einer anderen OEM-Version. Ich fand heraus, dass es sich um CRC-Fehler handelte. Nach ein bisschen logisch überlegen setzte ich das BIOS zurück (der Prozessor war etwas übertacktet) und siehe da: die Installation funktionierte wie üblich mit dem Unterschied, dass Windows nun endlich läuft. Warum zum Teufel die Fehler bei der Installation nicht schon gemeldet werden, ist mir ein Rätsel. Will man den Benutzer nicht mit solchen &#8220;Banalitäten&#8221; wie einem inkomplett installierten OS stören?</p>
<p>Zurück zu den Games: Kurz und gut, mit allen 3D-Marks ca. Minus 15% Leistung. Aber oho! Nachdem ich ALLE Desktopeffekte abschaltete (jetzt sieht es aus wie Windows 95), bekam ich 10% davon wieder zurück! Ich muss leider auch hier wieder einen fiesen Vergleich ziehen: Wenn in KDE (einen anständigen Grafikkartentreiber vorausgesetzt) alle Effekte an sind, braucht kwin so ca. 4% CPU, auch wenn man den Bildschirmwürfel wie wild dreht. Das liegt daran, dass die meiste Arbeit konsequent via OpenGL an die Grafikkarte abgetreten wird.</p>
<p>Nun habe ich also meine PC-Spielekonsole wieder mit der vollen DirectX-11-Grafikpracht, mehr wollte ich nicht und mehr bekam ich auch nicht. Für Windows-Fans kann ich aber sagen: Der Umstieg lohnt sich auf jeden Fall, wenn Ihr aber Hardcore-Gamer seid, solltet Ihr entsprechende Hardware haben und die Leistungseinbusse bei Spielen von 10-15% in Kauf nehmen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/geek/ein-kleiner-windows-7-test/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>KDE 4.4.0 ist da: ein erster und ein zweiter Blick&#8230;</title>
		<link>http://www.linuxhome.ch/linux/kde-4-4-0-ist-da-ein-erster-blick/</link>
		<comments>http://www.linuxhome.ch/linux/kde-4-4-0-ist-da-ein-erster-blick/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 17:22:22 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
				<category><![CDATA[geek]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.linuxhome.ch/?p=610</guid>
		<description><![CDATA[Kaum wurde KDE SC 4.4.0 (SC steht für Software Compilation, seit ein paar Wochen nennt sich KDE so, weil es doch langsam viele Software aus dem Projekt gibt) und schon stehen für Fedora 12 die Pakete bereit. Natürlich rechnete ich mit Kinderkrankheiten, denn ein KDE 4-Release war noch nie &#8220;Produktionsreif&#8221; sondern eigentlich immer Beta. Das [...]]]></description>
			<content:encoded><![CDATA[<img style='float: left; margin-right: 10px; border: none;' src='http://www.gravatar.com/avatar.php?gravatar_id=d6b1294fe73eea0bc9dc84a732e5e880&amp;default=http://use.perl.org/images/pix.gif' alt='No Gravatar' width=40 height=40/><p>Kaum wurde KDE SC 4.4.0 (SC steht für Software Compilation, seit ein paar Wochen nennt sich KDE so, weil es doch langsam viele Software aus dem Projekt gibt) und schon stehen für Fedora 12 die Pakete bereit. Natürlich rechnete ich mit Kinderkrankheiten, denn ein KDE 4-Release war noch nie &#8220;Produktionsreif&#8221; sondern eigentlich immer Beta. Das ist nun mal so, wen das stört, der soll doch testen und helfen, damit sich das ändert.</p>
<p>Auf jeden Fall wurde KDE schlanker, was die Fensterdekoration angeht. Es gibt einen Formfaktor-Umschalter, der bei mir aber zuerst einmal den kwin-Prozess abstürzen liess.  Ein Erlebnis, welches sich unter verschiedensten Umständen wiederholen sollte. Die Intention des Umschalters ist jedoch durchaus klar, denn bei Netbooks kommt ein ganz anderes Prinzip zum tragen als bei Desktops:</p>
<p><a rel="attachment wp-att-613" href="http://www.linuxhome.ch/linux/kde-4-4-0-ist-da-ein-erster-blick/attachment/kde4_4_systemsettings_ff/"><img class="size-medium wp-image-613 alignnone" title="kde4_4_systemsettings_ff" src="http://www.linuxhome.ch/wp-content/uploads/2010/02/kde4_4_systemsettings_ff-451x300.png" alt="Systemsettings Formfaktor" width="451" height="300" /></a></p>
<h2><span id="more-610"></span>Semantischer Desktop (Nepomuk / Strigi)</h2>
<p>Beim semantischen Desktop hat es wieder mal eine Änderung im Backend gegeben. Virtuoso speichert nun die indizierten Daten, Tags etc. für Nepomuk. Angeblich viel schneller und stabiler, merke ich davon nichts. Im Gegenteil, der strigi-indexer ist noch nie soviele male abgestürzt wie jetzt. Er kann meine Dateien nicht mal fertig indexieren (und es sind beileibe nicht mehr als 6 GB). Wenn man nur Nepomuk alleine nutzt (z.B. Tags für Dateien, Kontakte u.ä.), sieht man jedoch, wie cool eine semantische Suchapplikation sein kann. Man gibt einen Namen ein und erhält als ersten Vorschlag &#8220;Mail senden an &#8230;&#8221; wenn der Name ein Mail-Kontakt ist (wenn Strigi hier die Mails indiziert hätte würden auch Namen angezeigt, die nicht in den Kontakten gespeichert sind, sondern mit denen wir einfach irgendwann mal in Kontakt waren). Weitere Vorschläge zeigen auch phonetisch ähnliche Suchanfragen in Wikipedia u.v.m. Würde Strigi funktionieren, wäre Nepomuk noch viel mächtiger, also bitte, stabilisiert den Indexier-Mist endlich, Google hat seit vielen Jahren den Desktop-Indexer stabil am laufen!</p>
<p>Krunner (wird mit ALT+F2 gestartet), den man am besten für die Suche oder Programmaufrufe benutzt, wurde an den oberen Bildschirmrand versetzt (was man natürlich weiterhin frei konfigurieren darf, wenn man das nicht mag). Leider bleibt er manchmal aus unersichtlichen Gründen (Nepomuk?) einige Sekunden stehen.</p>
<h2>Plasma</h2>
<p>Vieles hat sich in Plasma getan. Besonders freuten mich viele kleine und grössere Änderungen, die dem Benutzer viel mehr intuitives Arbeiten ermöglichen. Viele Details entdeckt man erst später, wie die verbesserten Desktopeffekte, da werden zum Beispiel beim Anzeigen aller virtuellen Desktops die jeweiligen geöffneten Fenster auseinandergehalten, denn wozu sonst ist die Übersicht gut, als um offene Programme zu finden? Bis anhin taugte sie eigentlich nur als netter Effekt um Kollegen zu beeindrucken. Solche Beispiele gibt es einige. Der Hammer ist für mich persönlich der Systemabschnitt der Kontrolleiste. Dort kann man nun diverse Plasmoiden reinwursteln, und es ist nicht einmal unansehnlich!</p>
<p><a rel="attachment wp-att-615" href="http://www.linuxhome.ch/linux/kde-4-4-0-ist-da-ein-erster-blick/attachment/systembox_conf1/"><img class="size-medium wp-image-615 alignnone" title="systembox_conf1" src="http://www.linuxhome.ch/wp-content/uploads/2010/02/systembox_conf1-428x300.png" alt="Systemabschnitt Konfiguration" width="428" height="300" /></a></p>
<p>Ich hätte ja nie gedacht, dass eine 4-Tage-Wettervorhersage so wenig Platz braucht und im Systemabschnitt Platz hat. Wenn man mit der Maus darüber fährt, erhältm man den ausführlichen Wetterbericht. Im Bild dazu sieht man auch den neuen Gerätemanager, der nun Automunt beherrscht, sowie vom Benutzer konfigurierbar ist. Wenn ein versierter Benutzer hat, kann er beliebige Befehle automatisch ablaufen lassen, sobald dieser Stick eingesteckt ist, was sehr viele Möglichkeiten eröffnet (automatische Synchronisation beim Einstecken u.v.m.)</p>
<p><a rel="attachment wp-att-616" href="http://www.linuxhome.ch/linux/kde-4-4-0-ist-da-ein-erster-blick/attachment/systembox_weather-2/"><img class="alignnone size-medium wp-image-616" title="systembox_weather" src="http://www.linuxhome.ch/wp-content/uploads/2010/02/systembox_weather1-600x260.png" alt="" width="600" height="260" /></a></p>
<p>Endlich wurde auch die Verknüpfung von Aktivitäten mit virtuellen Desktops in die normale Konfigurationsoberfläche übernommen:</p>
<p><a rel="attachment wp-att-619" href="http://www.linuxhome.ch/linux/kde-4-4-0-ist-da-ein-erster-blick/attachment/workspaces_conf1/"><img class="alignnone size-medium wp-image-619" title="workspaces_conf1" src="http://www.linuxhome.ch/wp-content/uploads/2010/02/workspaces_conf1-448x300.png" alt="Desktop und Aktivitäten zusammen konfiguriert" width="448" height="300" /></a></p>
<p>Ein paar der alten Probleme bleiben: Verkleinert man die Aktivitäten, wird das Scrolling wieder sehr zähflüssig. Bei Multi-Monitor-Betrieb mit TwinView noch viel schlimmer. Das Erstellen von 4 Aktivitäten (eine pro virt. Desktop) ist ja kein Problem, aber was passiert, wenn man es rückgängig macht? Die Aktivitäten bleiben bestehen. Hier müssen seit langem Komfortfunktionen geschaffen werden (eine kleine Aktivitätenvorschau, ohne im Plasma-Bereich zähflüssig herumzustraucheln). Denn wenn man die Zuordnung Aktivität/Desktop wieder einschaltet passiert etwas Altbekanntes: Die mühselig eingerichtete Aktivität wird einem anderen Desktop zugeordnet. Auch wenn man herauszoomt und bei der richtigen Aktivität wieder hineinzoomt, hat man früher oder später ein Durcheinander. So wie ich jetzt nach dem Testen: Weil meine zwei Monitore verschiedene Auflösungen haben, kann ich jetzt genausogut .kde/share/config/plasma* löschen, um von vorne anzufangen. Das bringt mich zum letzten Punkt. Kaum ein Release von KDE konnten die meisten Benutzer ihr .kde behalten. Immer wieder kommt man zum Punkt an dem man sagt „Besser ich lösche die Konfiguration sonst gibts wieder Probleme“. Denn es geht mehr Zeit verloren auf der Suche nach einzelnen Problemem als für die Neukonfiguration der KDE-Oberfläche. Nun kommt aber etwas problematisches hinzu: Nepomuk mit Strigi sammelt Daten in Datenbankdateien innerhalb von .kde. Wenn ein unbedarfter Benutzer nun 1 Jahr lang alle seine Dateien taggt und bei einem neuen Release mal wieder das Löschen von .kde vor der Tür steht&#8230;man kann sich vorstellen wie das weitergeht. Für Otto Normalbenutzer braucht es Sicherheit, was die Konfiguration anbelangt. Ein Möglichkeit zum XML-Export von Konfigurationen und Nepomuk-Daten vor Releaseses wäre so etwas. Es ist wie immer: Der Ideen hat es genug, aber es kann immer nur ein Bruchteil davon umgesetzt werden.</p>
<h2>Fazit</h2>
<p>Für einen als offiziell veröffentlichten Release gibt es viel zu viele Abstürze an so vielen Stellen, dass man das Marketing-Team entmündigen und mit 100 Windows-Installationen bestrafen sollte. Als Technologie-Preview zeigt es aber durchaus, wie exzellent KDE 4.4.x sein wird und das der semantische Desktop wirklich kommt und nützlich ist. Ausserdem sieht KDE unverschämt gut aus und viele Funktionen sind selbsterklärender geworden. Es ist schon lange überfällig, dass anstatt neuen Features die Stabilität in den Vordergrund rückt. Aaron Seigo und Co. wären gut beraten, einen Fork für die Feature-geilen Desktop-User zu machen, und einen Stable-Branch nebenbei zu führen. Denn KDE 4 wird sich wohl kaum in Enterprise-Distributionen verbreiten, wenn es erst in einem Jahr absturzfrei läuft. Was die Features anbelangt, wurde das Vorbild OSX schon vor zwei Jahren übertroffen, aber was die Stabilität angeht liegt sogar Windows 95 vorne im Moment (das soll ein Ansporn sein und kein Gejammere).</p>
<h2>Zweiter Eindruck</h2>
<p>Nachdem ich nun die meisten Verbesserungen gesehen und getestet habe, bin ich schon sehr viel milder gestimmt. Die Abstürze werden seltener, wenn man die Aktivitäten von Anfang an neu aufbaut. Wenn man ihnen dieselben Namen gibt wie den ihnen zugeordneten virtuellen Desktops (was imho eigentlich automatisch geschehen sollte, wenn man die Zuordnung aktiviert), gibt es auch weniger Konfusion in dieser Hinsicht. Wenn auch Nepomuk und Strigi ausgebaut und stabilisiert werden müssen, fühlt sich alles absolut flüssig und unheimlich konsistent an. KDE rockt wieder!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxhome.ch/linux/kde-4-4-0-ist-da-ein-erster-blick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
