<?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>worstcase.cc</title>
	<atom:link href="http://worstcase.cc/feed/" rel="self" type="application/rss+xml" />
	<link>http://worstcase.cc</link>
	<description>Erwarte das Schlimmste.</description>
	<lastBuildDate>Thu, 24 Jun 2010 19:10:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Netzwerk Glasfaserverkabelung</title>
		<link>http://worstcase.cc/2010/06/netzwerk-glasfaserverkabelung/</link>
		<comments>http://worstcase.cc/2010/06/netzwerk-glasfaserverkabelung/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 11:06:42 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[dako]]></category>
		<category><![CDATA[hochschule augsburg]]></category>

		<guid isPermaLink="false">http://worstcase.cc/?p=1816</guid>
		<description><![CDATA[Aufbau Kern (leitet das Licht) Silizium-Germanium-Oxid (Glasart) oder neuer auch div. Kunststoffe Kunststoffhülle (umgibt den Kern) Gelmantel (ermöglicht geringfügige Biegung des Kerns) Schutzhülle (mechanischer Schutz) Geschwindigkeit 100 MBit/s bis 1GigaBit/s (üblich) je nach Hardware auch bis zu 10 GigaBit/s (experimentell sind bereits Geschwindigkeiten von bis zu 1000 TerraBit/s erreicht worden) Maximale Länge Abhängig von Faser- [...]]]></description>
			<content:encoded><![CDATA[<dl>
<dt>Aufbau</dt>
<dd><u>Kern</u> (leitet das Licht)<br />
Silizium-Germanium-Oxid (Glasart) oder neuer auch div. Kunststoffe <br />
<u>Kunststoffhülle</u> (umgibt den Kern)<br />
<u>Gelmantel</u> (ermöglicht geringfügige Biegung des Kerns)<br />
<u>Schutzhülle</u> (mechanischer Schutz)
</dd>
</dl>
<dl>
<dt>Geschwindigkeit</dt>
<dd>100 MBit/s bis 1GigaBit/s (üblich) je nach Hardware auch bis zu 10 GigaBit/s</br><br />
(experimentell sind bereits Geschwindigkeiten von bis zu 1000 TerraBit/s erreicht worden)
</dd>
</dl>
<dl>
<dt>Maximale Länge</dt>
<dd>Abhängig von Faser- / Sender- / Detektortyp bis zu 120 km ohne Verstärker<br />
mit Verstärker > 1000 km
</dd>
</dl>
<p><strong>Physikalische Funktionsweise</strong><br />
Der Lichtstrahl bewegt durch <em>Totalreflektion</em> durch das Kabel. Eine Totalreflektion kann nur funktionieren, wenn das Licht innerhalb eines bestimmten Winkel (Aperturkegel) auf die Grenzschicht trifft. Anderenfalls wird das Licht nach außen gebrochen.</p>
<p><strong>Stufenindexfaser</strong> (Art des Faserkerns)<br />
Da die Reflexion oder Brechung nur an dem Übergang zweiter Schichten möglich ist, ist de Faserkern aus zwei Schichten aufgebaut. Sie haben unterschiedliche Brechungsindices ( <img src='http://s.wordpress.com/latex.php?latex=n%20%3D%20%5Cfrac%7Bc_0%7D%7Bc%7D%20%20%5Cgeq%201&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='n = \frac{c_0}{c}  \geq 1' title='n = \frac{c_0}{c}  \geq 1' class='latex' /> ). Es gilt <img src='http://s.wordpress.com/latex.php?latex=n_%7BKern%7D%20%3E%20n_%7BMantel%7D%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='n_{Kern} &gt; n_{Mantel} ' title='n_{Kern} &gt; n_{Mantel} ' class='latex' />.</p>
<p><strong>Störeinflüsse bei Glasfaserkabeln</strong><br />
Es gibt eine Dämpfung des Signal aufgrund von Absorption und Streuung. Des weiteren ist auch der Faserkern nicht komplett rein, dort befinden sich auch <img src='http://s.wordpress.com/latex.php?latex=OH%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='OH ' title='OH ' class='latex' /> Verbindungen, welche das Licht besonders stark absorbieren. Deshalb ist es wichtig, Anschlussstellen und Glasfaserkabel von Wasser fern zu halten.<br />
Weiterhin kann eine zu starke Biegung des Kabels den Weg der Reflektion stören und dadurch zu Verlusten führen.</p>
<p><strong>Moden und Modendispersion</strong><br />
Die Wellen, welche ein Glasfaserkabel transportieren kann werden auch Moden genannt. Diese sind Abhängig vom Kerndurchmesser und dem Brechungsindex. Dies sind pro Kabel i.d.R. <img src='http://s.wordpress.com/latex.php?latex=10%5E3%20bis%2010%5E7&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='10^3 bis 10^7' title='10^3 bis 10^7' class='latex' /> Stück. Moden werden durch den Winkel zur optischen Achse unterschieden. Da diese mit verschiedenen Winkeln in das Kabel geschickt werden, kommt es zu Laufzeitunterschieden des Signals. Der maximale Varianz der Moden beschränkt die Länge des Signals ohne das es zu einem Zusammenfließen der verschiedenen Moden kommt (dies wird auch als Modendispersion bezeichnet).<br />
(Weitere Dispersionsarten: Polarisationsdispersion, chromatische Dispersion)</p>
<p><strong>Gradientenindexfaser</strong> (Art des Faserkerns)<br />
Um die Laufzeitunterschiede zu minimieren wird der Faserkern mit Fremdatomen dotiert. Als Folge besitzt er nun keinen konstanten Brechungsindex mehr, sondern dieser nimmt von außen nach innen immer mehr zu. Der Mantel bleibt dabei unverändert.<br />
Nun benötigen Signale, welche sich im Zentrum des Kernes bewegen länger als diese am Rand. Dies korrigiert die Modendispersion. </p>
<p><strong>Mono- und Singlemode-Faser</strong><br />
Möchte man die Dispersion vollkommen vermeiden, so kann man nur noch einen Mode zulassen. Dann spricht man von Mono- oder Singlemode-Fasern.</p>
<p><strong>Optimierung zur Geschwindigkeitserhöhung</strong></p>
<blockquote><p><strong>Wavelength Dispersion Multiplexing</strong> (WDM)<br />
Dabei werden Laser mit verschiedenen Wellenlängen parallel verwendet. Die Laser sollten einen Wellenlängenabstand von 20 nm haben. Pro Laser lässt sich ca. 2,5 GigaBit/s übertragen. Am Detektor (Empfänger) werden die Wellenlängen wieder durch Filter aufgeteilt.
</p></blockquote>
<blockquote><p><strong>Dense Wavelength Division Multiplexing</strong> (DWDM)<br />
Ist im Vergleich zu WDM deutlich aufwändiger und teurer. Es wird hauptsächlich auf sehr langen Strecken eingesetzt. Dabei muss der Abstand der Wellenlänge nur noch 1 nm betragen. Dabei werden Datenraten von 40 GBit/s erreicht.
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2010/06/netzwerk-glasfaserverkabelung/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netzwerkverkabelung mit metallischen Kabeln</title>
		<link>http://worstcase.cc/2010/06/netzwerk-metallische-medien/</link>
		<comments>http://worstcase.cc/2010/06/netzwerk-metallische-medien/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 09:50:02 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[dako]]></category>
		<category><![CDATA[hochschule augsburg]]></category>

		<guid isPermaLink="false">http://worstcase.cc/?p=1806</guid>
		<description><![CDATA[Thin Wire (veraltet) Material Koaxialkabel Stecker T-Stücke und BNC-Stecker Geschwindigkeit 10 MBit/s (50 MBit/s theoretisch möglich) Maximale Länge: 180m pro Strang + 4 Vestärker = 900m Wellenwiderstand 50 Ω Besonderheiten Alle offenen oder auch nicht benutzten Enden müssen mit einem Terminatorwiderstand von 50Ω abgeschlossen werden. Vorteile: Schrimung Durch die gute Schirmung eines Koaxialkabels (Faraday&#8217;scher Käfig) [...]]]></description>
			<content:encoded><![CDATA[<h3><strong>Thin Wire</strong> (veraltet)</h3>
<dl>
<dt>Material</dt>
<dd>Koaxialkabel</dd>
</dl>
<dl>
<dt>Stecker</dt>
<dd>T-Stücke und BNC-Stecker</dd>
</dl>
<dl>
<dt>Geschwindigkeit</dt>
<dd>10 MBit/s (50 MBit/s theoretisch möglich)</dd>
</dl>
<dl>
<dt>Maximale Länge:</dt>
<dd>180m pro Strang + 4 Vestärker = 900m</dd>
</dl>
<dl>
<dt>Wellenwiderstand</dt>
<dd>50 Ω</dd>
</dl>
<dl>
<dt>Besonderheiten</dt>
<dd>Alle offenen oder auch nicht benutzten Enden müssen mit einem Terminatorwiderstand von 50Ω abgeschlossen werden.</dd>
</dl>
<p><strong>Vorteile:</strong></p>
<dl>
<dt>Schrimung</dt>
<dd>Durch die gute Schirmung eines Koaxialkabels (Faraday&#8217;scher Käfig) kann es auch in hoher Strahlenbelastung verlegt werden. In letzter Zeit übernimmt aber dieses Einsatzgebiet das Glasfaserkabel.</dd>
</dl>
<p><strong>Nachteile:</strong></p>
<dl>
<dt>Ausfallrisiko</dt>
<dd>Wenn eine Strang unterbrochen, beschädigt oder der Terminatorwiderstand entfernt wird ist der ganze Strang außer Betrieb gesetzt.</dt>
</dl>
<h3><strong>Universelle Gebäudeverkabelung</strong></h3>
<dl>
<dt>Material</dt>
<dd>4 jeweils ineinander verdrillte Aderpaare mit Schrimung je nach Kabeltyp (Cat)<br />
Die Verdrillung soll entstehende Magnetfelder neutralisieren (NEXT Near End Crosstalk vermeiden).</dd>
</dl>
<dl>
<dt>Stecker</dt>
<dd>8-polige Westernstecker</dd>
</dl>
<dl>
<dt>Geschwindigkeit</dt>
<dd>100 MBit/s (max. zwei Geräte pro Kabel) <br />
1000 MBit/s (ein Gerät pro Kabel 4x 250 MBit/s Kanäle )
</dd>
</dl>
<dl>
<dt>Maximale Länge:</dt>
<dd>100m pro Segment + 4 Vestärker = 500m</dd>
</dl>
<dl>
<dt>Wellenwiderstand</dt>
<dd>100 Ω</dd>
</dl>
<dl>
<dt>Besonderheiten</dt>
<dd>Werden zwei Endgeräte (Hub/PC) direkt miteinander verbunden, so wird ein Cross Over Kabel benötigt. (Pin 1->2 und Pin 3->6).<br />
Dies wird jedoch durch Geräte/Netzwerkkarten, welche MDI-Autosensing besitzen umgangen.</dd>
</dl>
<p><strong>Vorteile:</strong></p>
<dl>
<dt>State of the Art / Universelle Verwendbarkeit</dt>
<dd>Die Verwendung von Universeller Gebäudeverkablung ermöglicht die einmal verlegten Kabel flexibel einzusetzen (Telefon, Türsprechstelle, etc.).
</dd>
</dl>
<p><strong>Nachteile:</strong></p>
<dl>
<dt>Störungsempfindlichkeit gegenüber EMP</dt>
<dd>In Umgebungen mit starker elektromagnetischer Strahlung kann es zu Störungen oder Ausfällen kommen.</dt>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2010/06/netzwerk-metallische-medien/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sortieralgorithmen: SelectionSort</title>
		<link>http://worstcase.cc/2010/06/sortieralgorithmen-selection-sort/</link>
		<comments>http://worstcase.cc/2010/06/sortieralgorithmen-selection-sort/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 19:55:51 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[gdi2]]></category>
		<category><![CDATA[hochschule augsburg]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[sortieralgorithmen]]></category>

		<guid isPermaLink="false">http://worstcase.cc/?p=1774</guid>
		<description><![CDATA[Vorgehensweise: Der SelectionSort sucht sich das kleinste Element in einer Liste (Array) und setzt dieses an den Anfang. Dies wird nun für die verbleibenden Elemente wiederholt. Die Bereits an den Anfang gesetzten Elemente werden dabei nicht noch einmal durchlaufen. Implementierung public static int&#91;&#93; selectionSort&#40;int&#91;&#93; array&#41; &#123; &#160; // Für alle Elemente im Array. for &#40;int [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Vorgehensweise:</strong><br />
Der SelectionSort sucht sich das kleinste Element in einer Liste (Array) und setzt dieses an den Anfang. Dies wird nun für die verbleibenden Elemente wiederholt. Die Bereits an den Anfang gesetzten Elemente werden dabei nicht noch einmal durchlaufen.</p>
<p><strong>Implementierung</strong></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;">static</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> selectionSort<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> array<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Für alle Elemente im Array.</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> i <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> array.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
      <span style="color: #666666; font-style: italic;">/*
       * Nehme an, dass die erste verbleibende Zahl in der
       * unsortierten Menge die kleinste ist. Wenn nicht wird dies
       * später korrigiert.
       */</span>
      <span style="color: #000066; font-weight: bold;">int</span> idx_min <span style="color: #339933;">=</span> i<span style="color: #339933;">;</span>
&nbsp;
      <span style="color: #666666; font-style: italic;">// Für alle noch nicht sortierten Elemente.</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> i <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> array.<span style="color: #006633;">length</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">/*
         * Wenn das aktuelle Element kleiner ist als das aktuelle
         * Minimum.
         */</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>array<span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&lt;</span> array<span style="color: #009900;">&#91;</span>idx_min<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
          <span style="color: #666666; font-style: italic;">// Speichere die Position des neuen Minimums.</span>
          idx_min <span style="color: #339933;">=</span> j<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
      <span style="color: #009900;">&#125;</span>
&nbsp;
      <span style="color: #666666; font-style: italic;">/*
       * Nach dem Durchlauf aller verbliebenen unsortierten
       * Elemente sind wir sicher, dass die Zahl in idx_min das
       * kleinste Element beinhaltet. Dies wird nun mit dem an der
       * ersten unsortierten Stelle gespeicherten Element
       * getauscht.
       */</span>
      array <span style="color: #339933;">=</span> swap<span style="color: #009900;">&#40;</span>array, i, idx_min<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #009900;">&#125;</span>
    <span style="color: #000000; font-weight: bold;">return</span> array<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Zeitkomplexität:</strong><br />
Der Algorithmus besteht zum Großteil aus zwei <code>for</code> Schleifen. Dies legt die Vermutung nahe, dass es sich um einen Alogrithmus der Zeitkomplexität von <img src='http://s.wordpress.com/latex.php?latex=O%28n%5E2%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='O(n^2) ' title='O(n^2) ' class='latex' /> handelt. </p>
<p>In der hier implementierten Form wird die erste Schleife bei einem zu sortierenden Array mit n einträgen n mal durchlaufen.<br />
Die zweite Schleife jedoch nur <img src='http://s.wordpress.com/latex.php?latex=n-1%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='n-1 ' title='n-1 ' class='latex' /> mal. Bei der Laufzeitbetrachtung dürfen jedoch alle Konstanten weggelassen werden. (siehe <a href="http://worstcase.cc/2010/06/begriff-der-komplexitat/">Blog Artikel über Komplexität</a>). </p>
<p>Es gilt also: <strong>Selection Sort:</strong> <img src='http://s.wordpress.com/latex.php?latex=O%28n%5E2%29&#038;bg=ffffff&#038;fg=000000&#038;s=3' alt='O(n^2)' title='O(n^2)' class='latex' /> </p>
<p><strong>Anmerkungen/Verbesserungsmöglichkeiten:</strong></p>
<p>Eigentlich müsste die erste Schleife nur <code>array.length<strong>-1</strong></code> mal durchlaufen werden, da das letzte Element zwangsläufig das größte ist. Dies Fällt jedoch nur bei extrem kleinen Arrays ins Gewicht, bei denen aber wohl die Laufzeit sowie so egal ist. </p>
<p>Eine weiter mögliche Optimierung besteht darin unnötige <code>swap</code> abzufangen. Bei einem zum Großteil vorsortierten Array würde das Element mit sich selbst ersetzt werden wenn es wirklich bereits das nächst größte ist. Die kann jedoch mit einer Abfrage ob sich idx_min geändert hat umgangen werden. Aber da diese Abfrage auch Resourcen kostet ist die Optimierung je nach erwarteten Arrays (vorsortiert, teilsortiert) abzuwägen.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>idx_min <span style="color: #339933;">!=</span> i<span style="color: #009900;">&#41;</span>
      array <span style="color: #339933;">=</span> swap<span style="color: #009900;">&#40;</span>array, i, idx_min<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2010/06/sortieralgorithmen-selection-sort/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Begriff der Komplexität</title>
		<link>http://worstcase.cc/2010/06/begriff-der-komplexitat/</link>
		<comments>http://worstcase.cc/2010/06/begriff-der-komplexitat/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 17:10:37 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[gdi2]]></category>
		<category><![CDATA[hochschule augsburg]]></category>
		<category><![CDATA[sortieralgorithmen]]></category>

		<guid isPermaLink="false">http://worstcase.cc/?p=1728</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p>Der Begriff der Komplexität (auch Zeitkomplexität) wird in der Informatik verwendet, um das Laufzeitverhalten eines Algorithmus abzuschätzen.<br />
Es ist nur sehr schwer möglich die wahre Laufzeit eines Programmes zu berechnen, da dies von sehr vielen Faktoren abhängt, wie beispielsweise dem Prozessor, dem Speicher oder auch dem Betriebssystem. Deshalb begnügt man sich damit, die Komplexität in verschiedene Klassen einzuteilen. Die Klassen heißen O-Notationen (auch BigO Funktion). </p>
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28%201%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O ( 1 ) ' title='T = O ( 1 ) ' class='latex' /><br />
konstante Zeitkomplexität (unabhängig von der Problemgröße)<br />
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28%20%5Clog%20n%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O ( \log n ) ' title='T = O ( \log n ) ' class='latex' /><br />
logarithmische Zeitkomplexität<br />
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28%20n%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O ( n ) ' title='T = O ( n ) ' class='latex' /><br />
lineare Zeitkomplexität<br />
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28%20n%5Clog%20n%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O ( n\log n ) ' title='T = O ( n\log n ) ' class='latex' /><br />
linear logarithmische Zeitkomplexität<br />
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28n%5E2%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O (n^2 ) ' title='T = O (n^2 ) ' class='latex' /><br />
quadratische Zeitkomplexität<br />
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28%20n%5E3%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O ( n^3 ) ' title='T = O ( n^3 ) ' class='latex' /><br />
kubische Zeitkomplexität<br />
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28%20n%5Ek%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O ( n^k ) ' title='T = O ( n^k ) ' class='latex' /><br />
polynomiale Zeitkomplexität<br />
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28%202%5En%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O ( 2^n ) ' title='T = O ( 2^n ) ' class='latex' /><br />
exponentielle Zeitkomplexität<br />
<img src='http://s.wordpress.com/latex.php?latex=T%20%3D%20O%20%28%20k%5En%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='T = O ( k^n ) ' title='T = O ( k^n ) ' class='latex' /><br />
exponentielle Zeitkomplexität</p>
<p>Aus der Sicht eines Informatikers sind die O-Notationen welche am Anfang der Tabelle stehen besser als die am Ende. Oftmals sind exponentielle Probleme/Algorithmen praktisch nicht mehr berechenbar (siehe div. Verschlüsselungsalgorithmen, welchen einen exponentiellen Aufwand zum &#8220;knacken&#8221; benötigen).</p>
<p>Eine weitere Begrifflichkeit ist dabei der average-, worst- und best case. Diese beschreiben die durchschnittliche Laufzeit (average), die ungünstigste Laufzeit (worst) und die best mögliche Laufzeit (best). Die Betrachtung des best cases ist zur Risikoabschätzung unnötig. Der best case wird manchmal auch als <img src='http://s.wordpress.com/latex.php?latex=%5COmega%28%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='\Omega( ) ' title='\Omega( ) ' class='latex' /> bezeichnet.</p>
<p>Die Berechnung der Zeitkomplexität kann durchaus sehr kompliziert sein, ich will das Grundprinzip aber hier anhand einiger einfacher Beispiele erläutern.</p>
<p>Summenformel:<br />
<img src='http://s.wordpress.com/latex.php?latex=%5Csum%5Climits_%7Bi%3D1%7D%5E%7Bn%7Di%20%3D%20%201%20%2B%202%20%2B%203%20%2B%20%5Cdots%20%28n-1%29%20%2B%20n&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\sum\limits_{i=1}^{n}i =  1 + 2 + 3 + \dots (n-1) + n' title='\sum\limits_{i=1}^{n}i =  1 + 2 + 3 + \dots (n-1) + n' class='latex' />
<p>Eine Umsetzung in Programmcode würde dementsprechend so aussehen:</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: #000066; font-weight: bold;">int</span> summe<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> n <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">int</span> sum <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</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> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;=</span>n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    sum <span style="color: #339933;">+=</span> i<span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000000; font-weight: bold;">return</span> sum<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Daraus lässt sich erkennen, das die Schleife n-mal durchlaufen werden muss, bis das Ergebnis feststeht. Daher kann man sagen, dass dieser Algorithmus eine Laufzeit von <img src='http://s.wordpress.com/latex.php?latex=O%28%20n%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='O( n ) ' title='O( n ) ' class='latex' /> &#8211; also eine lineare Zeitkomplexität hat. </p>
<p>Nun könnte aber jemand erwidern, dass man die Summenformel auch nach dieser Methode ausrechnen könnte: </p>
<img src='http://s.wordpress.com/latex.php?latex=%5Csum%5Climits_%7Bi%3D1%7D%5E%7Bn%7Di%20%3D%20%5Cfrac%7Bn%28n%2B1%29%7D%7B2%7D&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='\sum\limits_{i=1}^{n}i = \frac{n(n+1)}{2}' title='\sum\limits_{i=1}^{n}i = \frac{n(n+1)}{2}' class='latex' /><br />
<em>(warum dies Funktioniert? siehe <a href="http://de.wikipedia.org/wiki/Kleiner_Gau%C3%9F">kleiner Gauß</a>)</em></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: #000066; font-weight: bold;">int</span> summe<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> n <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #009900;">&#40;</span>n <span style="color: #339933;">*</span> <span style="color: #009900;">&#40;</span>n<span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Wäre Carl Friedrich Gauß nicht bereits vor uns darauf gekommen könnten wir nun mit Stolz sagen, wir haben die optimale Lösung (zumindest bzgl. der Zeitkomplexität) der Summenfunktion gefunden. Es leuchtet ein, das egal wie groß die Zahl n ist, diese Funktion nur einmal abgearbeitet werden muss um das Ergebnis zu erhalten. Also hat diese Formel eine Laufzeit von <img src='http://s.wordpress.com/latex.php?latex=O%281%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='O(1) ' title='O(1) ' class='latex' /> &#8211; also eine konstante Zeitkomplexität. </p>
<p>Mit dem nächsten Beispiel möchte ich euch eine einfache Funktion der Zeitkomplexität <img src='http://s.wordpress.com/latex.php?latex=O%28%20n%5E2%20%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='O( n^2 ) ' title='O( n^2 ) ' class='latex' /> zeigen. Angenommen wir wollen alle Elemente einer n x n  Matrix auf addieren:</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: #000066; font-weight: bold;">int</span> summiere<span style="color: #009900;">&#40;</span> <span style="color: #000066; font-weight: bold;">int</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> matrix <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">int</span> sum <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</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> i<span style="color: #339933;">=</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>n<span style="color: #339933;">;</span> i<span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</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>n<span style="color: #339933;">;</span> j<span style="color: #339933;">++</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      sum <span style="color: #339933;">+=</span> matrix<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Die erste for-Schleife wird nun n-mal durchlaufen, die zweite ebenfalls. Daraus kann man schließen, das die Zeitkomplexität dieser Funktion von <img src='http://s.wordpress.com/latex.php?latex=n%20%5Ccdot%20n%20%3D%20n%5E2%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='n \cdot n = n^2 ' title='n \cdot n = n^2 ' class='latex' /> abhängt. Dies bedeutet sie hat eine quadratische Laufzeit <img src='http://s.wordpress.com/latex.php?latex=O%28n%5E2%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='O(n^2) ' title='O(n^2) ' class='latex' />.</p>
<p>Auf diese weiße lassen sich einfache Funktionen bereits sehr gut bestimmen. </p>
<p>Bei einer Analyse kann durchaus auch einmal folgendes herauskommen: </p>
<p><img src='http://s.wordpress.com/latex.php?latex=t%20%3D%204%5Ccdot%20n%5E3%20%2B%203%20%5Ccdot%20n%20%2B%2010%5En%20%2B%201000&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt='t = 4\cdot n^3 + 3 \cdot n + 10^n + 1000' title='t = 4\cdot n^3 + 3 \cdot n + 10^n + 1000' class='latex' />
<p>Hier gilt nun, dass erst einmal alle konstanten Faktoren sowie Summanden weggelassen werden dürfen. Nun bleibt folgendes übrig:</p>
<img src='http://s.wordpress.com/latex.php?latex=%20t%20%3D%20n%5E3%20%2B%20%20n%20%2B%2010%5En%20&#038;bg=ffffff&#038;fg=000000&#038;s=2' alt=' t = n^3 +  n + 10^n ' title=' t = n^3 +  n + 10^n ' class='latex' />
<p>Die zweite wichtige Regel lautet, dass nur das am stärksten wachsende Glied berücksichtigt werden muss. Ein Blick auf die Aufstellung der O-Notationen hilft uns dabei zu erkennen, dass in diesem Fall nur das Glied <img src='http://s.wordpress.com/latex.php?latex=10%5En%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='10^n ' title='10^n ' class='latex' /> ausschlaggebend ist. Es wächst am schnellsten. (Wir erinnern uns, die Tabelle ist von geringer Laufzeit aufsteigend geordnet.) Es gilt also <img src='http://s.wordpress.com/latex.php?latex=O%2810%5En%29%20&#038;bg=ffffff&#038;fg=000000&#038;s=0' alt='O(10^n) ' title='O(10^n) ' class='latex' /> &#8211; eine exponentielle Zeitkomplexität.</p>
<p><strong>Weiterführende Literatur (Amazon):</strong></p>
<ul>
<li><a href="http://www.amazon.de/gp/product/3446227156?ie=UTF8&#038;tag=worstcase.cc-21&#038;linkCode=as2&#038;camp=1638&#038;creative=19454&#038;creativeASIN=3446227156">Softwaretechnik in C und C++</a><img src="http://www.assoc-amazon.de/e/ir?t=worstcase.cc-21&#038;l=as2&#038;o=3&#038;a=3446227156" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2010/06/begriff-der-komplexitat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zweite IP Adresse für vServer einrichten</title>
		<link>http://worstcase.cc/2010/06/zweite-ip-adresse-fur-vserver-einrichten/</link>
		<comments>http://worstcase.cc/2010/06/zweite-ip-adresse-fur-vserver-einrichten/#comments</comments>
		<pubDate>Thu, 17 Jun 2010 16:49:18 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[konfiguration]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://www.worstcase.cc/?p=1595</guid>
		<description><![CDATA[Mein Provider war so freundlich mir kostenlos eine zweite IP Adresse für meine vServer zur Verfügung zu stellen. Über diese war dann aber die Webseite nicht erreichbar. Nach einigem überlegen ist mir klar geworden, dass der Server ja noch gar nichts von der neuen Adresse weiß. Um einen zweite IP Adresse für eine Netzwerkkarte einzurichten [...]]]></description>
			<content:encoded><![CDATA[<p>Mein <a href="http://www.regfish.de/?partnerid=40766">Provider</a> war so freundlich mir kostenlos eine zweite IP Adresse für meine vServer zur Verfügung zu stellen. Über diese war dann aber die Webseite nicht erreichbar. Nach einigem überlegen ist mir klar geworden, dass der Server ja noch gar nichts von der neuen Adresse weiß.</p>
<p>Um einen zweite IP Adresse für eine Netzwerkkarte einzurichten muss die Datei <code>/etc/network/interfaces</code> bearbeitet werden. Am einfachsten kopiert man einfach die Konfiguration der ersten IP Adresse, ersetzt <strong>eth0</strong> durch <strong>eth0:1</strong> und trägt die neue IP unter <code>address</code> ein. Nach einem Neustart des Netzwerkprozesses durch <code>/etc/init.d/networking restart</code> ist der Server auch unter der zweiten IP erreichbar.<br />
Ob alle Einstellungen korrekt übernommen wurden lässt sich mit <code>ifconfig eth0</code> überprüfen.</p>
<p><code>/etc/network/interfaces</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="plain" style="font-family:monospace;">auto eth0
iface eth0 inet static
        address 79.142.51.211
        [...] // hier die weitere Konfiguration
&nbsp;
auto eth0:1
iface eth0:1 inet static
        address 79.241.55.110
        [...] // hier die weitere Konfiguration</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2010/06/zweite-ip-adresse-fur-vserver-einrichten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Navigation und Spracherkennung für Android in Deutschland</title>
		<link>http://worstcase.cc/2010/06/navigation-und-spracherkennung-fur-android-in-deutschland/</link>
		<comments>http://worstcase.cc/2010/06/navigation-und-spracherkennung-fur-android-in-deutschland/#comments</comments>
		<pubDate>Wed, 09 Jun 2010 14:57:30 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[navigation]]></category>
		<category><![CDATA[spracherkennung]]></category>

		<guid isPermaLink="false">http://waste.worstcase.cc/?p=21</guid>
		<description><![CDATA[Das lange in Deutschland erwartete Feature Navigation auf Android Handys wurde heute freigeschaltet. Das Icon war zwar schon immer vorhanden, jedoch führte es nur zu einer Meldung, dass die Navigationsfunktion in Deutschland noch nicht verfügbar sein. Mit dem heutigen Tag startet das Programm. Es wird jedoch noch ein Warnhinweis angezeigt, dass es sich um eine [...]]]></description>
			<content:encoded><![CDATA[<p>Das lange in Deutschland erwartete Feature Navigation auf Android Handys wurde heute freigeschaltet. Das Icon war zwar schon immer vorhanden, jedoch führte es nur zu einer Meldung, dass die Navigationsfunktion in Deutschland noch nicht verfügbar sein. Mit dem heutigen Tag startet das Programm. Es wird jedoch noch ein Warnhinweis angezeigt, dass es sich um eine Beta Version handelt, aber ein kurzer Test fiel bei mir sehr positiv aus. Leider ist es ja in Deutschland noch nicht möglich StreetView Daten anzuzeigen, wie das beispielsweise in Amerika der Fall ist. Schade eigentlich. Es lässt jedoch raum zur Spekulation, wann StreetView bei uns endlich grünes Licht bekommt.</p>
<p>Weiterhin funktioniert nun endlich auch die Spracheingabe in deutscher Sprache. Darauf habe ich wirklich schon sehnsüchtig gewartet. Endlich kann man am Handy E-Mails diktieren. Es funktioniert, jedoch noch nicht so gut, dass es eine Korrektur per Hand vollkommen überflüssig macht.</p>
<p>Dennoch war das für jeden Android Nutzer ein guter Tag. Das Betriebssystem ist definitiv auf dem richtigen Weg und neue Innovationen werden den Nutzern Stück für Stück zugänglich gemacht. Weiter so!!!</p>
]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2010/06/navigation-und-spracherkennung-fur-android-in-deutschland/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse &#8211; Hierarchische Darstellung der Packages</title>
		<link>http://worstcase.cc/2010/04/eclipse-tipps-hierarchische-darstellung-der-packages/</link>
		<comments>http://worstcase.cc/2010/04/eclipse-tipps-hierarchische-darstellung-der-packages/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 06:51:26 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[tipp]]></category>

		<guid isPermaLink="false">http://worstcase.cc/?p=1307</guid>
		<description><![CDATA[Wenn Java Projekte unübersichtlicher werden nutzt man Packages um Klassen zu verschiedenen Problemen zu gruppieren. Mich hat dabei aber geärgert, dass auch verschachtelte Packages immer noch alle einzeln angezeigt werden. Mein Mitbewohner war so freundlich mir diesen kleinen Trick zu zeigen. Jetzt bin ich auch mit der Package Aufteilung zufrieden und kann mich endlich mit [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn Java Projekte unübersichtlicher werden nutzt man Packages um Klassen zu verschiedenen Problemen zu gruppieren. Mich hat dabei aber geärgert, dass auch verschachtelte Packages immer noch alle einzeln angezeigt werden. Mein Mitbewohner war so freundlich mir diesen kleinen Trick zu zeigen. Jetzt bin ich auch mit der Package Aufteilung zufrieden und kann mich endlich mit dem Programmieren beschäftigen <img src='http://worstcase.cc/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Außerdem möchte ich euch diese Erleichterung auch nicht vorenthalten.</p>
<p>Im <code>Package Explorer</code> auf den <code>Pfeil</code>, welcher das Untermenü aufruft klicken. Dort <code>Package Representation</code> auswählen und <code>Hierarchical</code> statt <code>Flat</code> wählen.</p>
<p>Oder schaut euch einfach das Video an:<br />
<object width="600" height="585"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=10861749&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=10861749&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="600" height="585"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2010/04/eclipse-tipps-hierarchische-darstellung-der-packages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>for Schleifen über Dateinamen mit Leerzeichen</title>
		<link>http://worstcase.cc/2010/03/for-schleifen-uber-dateinamen-mit-leerzeichen/</link>
		<comments>http://worstcase.cc/2010/03/for-schleifen-uber-dateinamen-mit-leerzeichen/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 17:34:22 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[bash]]></category>

		<guid isPermaLink="false">http://worstcase.cc/?p=1225</guid>
		<description><![CDATA[Ursprünglich wollte ich nur ein paar Untertitel Dateien vom Format iso-8859-15 in das uft-8 Format konvertieren. Eigentlich keine große Sache. Die einfachste Möglichkeit wäre gewesen, diese kurz mit gedit zu öffnen und unter utf-8 erneut zu speichern. Aber Informatiker sind ja bekannterweise faul. Also habe ich mich auf die Suche nach einem Kommandozeilenprogramm gemacht, was [...]]]></description>
			<content:encoded><![CDATA[<p>Ursprünglich wollte ich nur ein paar Untertitel Dateien vom Format iso-8859-15 in das uft-8 Format konvertieren. Eigentlich keine große Sache. Die einfachste Möglichkeit wäre gewesen, diese kurz mit gedit zu öffnen und unter utf-8 erneut zu speichern. Aber Informatiker sind ja bekannterweise faul. Also habe ich mich auf die Suche nach einem Kommandozeilenprogramm gemacht, was das für mich erledigt. Dies war auch schnell gefunden <code>iconv -f iso8859-15 -t utf-8 EINGABEDATEI -o AUSGABEDATEI</code> löst das Problem. Aber Informatiker sind ja bekannterweise sehr faul &#8211; also muss jetzt noch ein Script her, das dies mit allen Dateien automatisch macht.</p>
<p>Genau dort hat mein Problem angefangen. Ich wollte die Dateinamen nicht umbenennen, aber sie enthalten bei mir Leerzeichen. Gut, die einfache Methode wäre gewesen die Dateien umzubenennen. Aber Informatiker sind nicht nur faul, sondern auch oft etwas umständlich.</p>
<p>Die üblichen Ansätze, die Dateien zu bearbeiten, mit einer <code>for</code>-Schleife schlugen leider fehl, da jedes Leerzeichen als Abtrennung für eine neue Variable gedeutet wurde:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #000000; font-weight: bold;">for</span> i <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;*.srt&quot;</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$i</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>Naja, was soll ich sagen, nach einer stundenlangen Ausprobier-Orgie und Google-Recherchen habe ich <a href="http://ramblings.narrabilis.com/wp/looping-through-files-with-spaces-in-the-names-in-bash/">hier</a> den passenden Denkanstoß gefunden.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">find</span> . <span style="color: #660033;">-name</span> <span style="color: #ff0000;">&quot;*.srt&quot;</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> i
<span style="color: #000000; font-weight: bold;">do</span>
	iconv <span style="color: #660033;">-f</span> iso8859-<span style="color: #000000;">15</span> <span style="color: #660033;">-t</span> utf-<span style="color: #000000;">8</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$i</span>&quot;</span> <span style="color: #660033;">-o</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$i</span>&quot;</span>.<span style="color: #ff0000;">&quot;utf8&quot;</span>
	<span style="color: #c20cb9; font-weight: bold;">mv</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$i</span>&quot;</span>.<span style="color: #ff0000;">&quot;utf8&quot;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$i</span>&quot;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></div></div>

<p>Nun kann ich immer schön alle Untertitel Dateien automatisch konvertieren und es hat mir höchstens zwei Stunden meines Lebens gekostet <img src='http://worstcase.cc/wordpress/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .<br />
Aber vielleicht hilft dieser Artikel ja jemandem, der auch Dateinamen mit Leerzeichen auf der Bash Konsole verarbeiten möchte, das ganze in einer Stunde zu schaffen&#8230;</p>
<p><strong>Links:</strong></p>
<ul>
<li><a href="http://tldp.org/LDP/abs/html/">Advanced Bash-Scripting Guide</a></li>
</ul>
<p><strong>Weiterführende Literatur (Amazon):</strong></p>
<ul>
<li><a href="http://www.amazon.de/gp/product/3897215330?ie=UTF8&#038;tag=worstcase.cc-21&#038;linkCode=as2&#038;camp=1638&#038;creative=19454&#038;creativeASIN=3897215330">Bash &#8211; kurz &#038; gut</a><img src="http://www.assoc-amazon.de/e/ir?t=worstcase.cc-21&#038;l=as2&#038;o=3&#038;a=3897215330" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2010/03/for-schleifen-uber-dateinamen-mit-leerzeichen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dateisystemcheck unter Linux</title>
		<link>http://worstcase.cc/2009/11/dateisystemcheck-unter-linux/</link>
		<comments>http://worstcase.cc/2009/11/dateisystemcheck-unter-linux/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 12:51:51 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[tipp]]></category>

		<guid isPermaLink="false">http://worstcase.cc/?p=467</guid>
		<description><![CDATA[Mal wieder den PC mit einem Hardreset (Strom aus &#8211; Strom wieder an) ausschalten müssen? Oder aus anderen Gründen das Gefühl das die Festplatte oder genauer das Dateisystem einen Schaden genommen hat? Auch externe Festplatten sollten von Zeit zu Zeit manuell überprüft werden. Leider (oder zum Glück) ist es unter Linux nicht so einfach wie [...]]]></description>
			<content:encoded><![CDATA[<p>Mal wieder den PC mit einem Hardreset (Strom aus &#8211; Strom wieder an) ausschalten müssen? Oder aus anderen Gründen das Gefühl das die Festplatte oder genauer das Dateisystem einen Schaden genommen hat? Auch externe Festplatten sollten von Zeit zu Zeit manuell überprüft werden. Leider (oder zum Glück) ist es unter Linux nicht so einfach wie in Windows einen Dateisystemcheck auszuführen.</p>
<ul>
<li><strong>Interne Festplatten</strong></li>
<p>Unter Linux (in meinem Fall Ubuntu) wird jede Festplatte alle 30 Startvorgänge standardmäßig überprüft. Dies hat nichts damit zu tun, dass sie evtl. beschädigt ist, sondern ist nur eine Sicherheitsmaßnahme. Unter Umständen kann es jedoch gewünscht sein, alle Partitionen bei einem Neustart einer Überprüfung zu unterziehen.<br />
In diesem Fall kann man dies recht einfach veranlassen:</p>
<p><code>sudo touch /forcefsck</code></p>
<p>Beim Neustart werden nun alle Platten gecheckt.</p>
<p>Jedoch wird von Haus aus keine Reperatur im Falle von Fehlern vorgenommen. Möchte man dies, muss man in der Datei <code>/etc/default/rcS</code> den Eintrag <code>FSCKFIX=no</code> auf <code>yes</code> setzen.</p>
<li><strong>Externe Datenträger</strong></li>
<p><em>Ein Wort der Warnung: Diese Methode kann auf Verschlüsselten Platten oder anderen exotischen Konfigurationen unter Umständen zum Datenverlust führen. Die Partition <code>/dev/sdb1</code> wird im folgenden stellvertretend für die korrekte Partition angenommen.</em></p>
<p>Leider werden externe Platten nicht in einem bestimmten Intervall automatisch geprüft. Dies muss man per Hand veranlassen.<br />
Es muss zuerst dafür gesorgt werden, dass die entsprechende Partition nicht eingehängt ist. Ggf. mit dem Befehlt <code>umount</code> aushängen.</p>
<p><code>sudo umount  /dev/sdb1</code></p>
<p>Im Anschluss kann die Partition mit dem Tool <code>fsck</code> überprüft werden.</p>
<p><code>fsck -p /dev/sdb1</code></p>
<p>Die Option <code>-p</code> sorgt dafür das alle weniger schlimmen Fehler automatisch behoben werden. Dies ist in der Regel sinnvoll.<br />
Am Ende wird eine Zusammenfassung angezeigt, aus welcher man die vorgenommenen Operationen bzw. Probleme entnehmen kann.</p>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2009/11/dateisystemcheck-unter-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Was versteht man unter einem Worstcase?</title>
		<link>http://worstcase.cc/2009/09/was-versteht-man-unter-einem-worstcase/</link>
		<comments>http://worstcase.cc/2009/09/was-versteht-man-unter-einem-worstcase/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 12:00:23 +0000</pubDate>
		<dc:creator>Mark</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[worstcase]]></category>

		<guid isPermaLink="false">http://worstcase.cc/?p=364</guid>
		<description><![CDATA[Ich habe festgestellt, dass viele Leute mit dem Suchbegriff &#8220;Was ist ein Worstcase&#8221; auf meine Seite kommen. Deshalb möchte ich hier kurz erklären, was man darunter versteht. Ein Worst Case ist die englische Bezeichnung für den schlimmst anzunehmenden Fall (engl. worst = schlechteste/schlimmste; case = Fall). In der Informatik wird dieser Begriff oft im Zusammenhang [...]]]></description>
			<content:encoded><![CDATA[<p>Ich habe festgestellt, dass viele Leute mit dem Suchbegriff &#8220;Was ist ein Worstcase&#8221; auf meine Seite kommen. Deshalb möchte ich hier kurz erklären, was man darunter versteht.</p>
<p>Ein <strong>Worst Case ist die englische Bezeichnung für den schlimmst anzunehmenden Fall</strong> (engl. worst = schlechteste/schlimmste; case = Fall). In der Informatik wird dieser Begriff oft im Zusammenhang mit Effizienzbetrachtungen verschiedener Algorithmen verwendet. Beispielsweise wenn ein Sortieralgorithmus seine maximale Laufzeit benötigt ist der Worst Case eingetreten &#8211; interessanter ist in diesem Fall aber der Average Case. Dieser beschreibt die durchschnittliche Laufzeit eines Algorithmus. </p>
<p>Ein deutsches ähnliches Wort ist GAU &#8211; größter anzunehmender Unfall &#8211; dieses kommt aber aus der Atomtechnik und beschreibt einen statistisch unwahrscheinlichen Störfall. Aber es wurde längst als Synonym für Worst Case in die deutsche Sprache übernommen.</p>
<p><strong>Links:</strong></p>
<ul>
<li><a href="http://de.wikipedia.org/wiki/Worst_Case">Worst Case (Wikipedia)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://worstcase.cc/2009/09/was-versteht-man-unter-einem-worstcase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
