<?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>ComSubVies Creative Content</title>
	<atom:link href="http://blog.ocrs.at/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ocrs.at</link>
	<description></description>
	<lastBuildDate>Wed, 17 Mar 2010 12:23:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Command &amp; Conquer &#8211; Freeware</title>
		<link>http://blog.ocrs.at/2010/02/15/command-conquer-freeware/</link>
		<comments>http://blog.ocrs.at/2010/02/15/command-conquer-freeware/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 17:55:42 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Command & Conquer]]></category>
		<category><![CDATA[Freeware]]></category>
		<category><![CDATA[Freizeit]]></category>
		<category><![CDATA[Spiele]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=1002</guid>
		<description><![CDATA[Command &#038; Conquer: Tiberian Dawn und Tiberian Sun sowie der Ableger Red Alert sind als Freeware verfügbar.]]></description>
			<content:encoded><![CDATA[<p>Quasi als Werbung für das bald kommende Command &#038; Conquer 4 (Tiberian Twilight) gibt es die älteren Versionen (Tiberian Dawn sowie Tiberian Sun) als auch den Ableger Red Alert als freie Versionen zum <a href="http://www.commandandconquer.com/classic">Download</a>.</p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li>Keine verwandten Artikel</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2010/02/15/command-conquer-freeware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schneeschuhwanderung auf der Rax</title>
		<link>http://blog.ocrs.at/2010/02/13/schneeschuhwanderung-auf-der-rax/</link>
		<comments>http://blog.ocrs.at/2010/02/13/schneeschuhwanderung-auf-der-rax/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 17:00:37 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Wandern]]></category>
		<category><![CDATA[Rax]]></category>
		<category><![CDATA[Schneeschuhe]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=990</guid>
		<description><![CDATA[Am Samstag haben wir es endlich geschafft unsere erste heurige Schneeschuhwanderung durchzuführen. Bei Sonnenschein haben wir eine kleine gemütliche Tour auf der Rax gemacht.]]></description>
			<content:encoded><![CDATA[<p>Am Samstag haben wir es endlich geschafft unsere erste heurige Schneeschuhwanderung durchzuführen. Bei Sonnenschein haben wir eine kleine gemütliche Tour auf der Rax gemacht, hier die GPS-Daten:</p>
<div  style="text-align: center;"  class="xmlgmdiv" id="xmlgmdiv_27"><iframe class="xmlgm" id="xmlgm_27" src="http://blog.ocrs.at/wp-content/plugins/xml-google-maps/xmlgooglemaps_show.php?gpxid=27" style="border: 0px; width: 637px; height: 400px;" name="Google_Gpx_Maps" frameborder="0"></iframe></div>
<p><img class="xmlgmele" id="xmlgmele_27"  style="text-align: center; margin: 0px; padding: 0px; max-width: 100%;"  alt="Höhenprofil" src="http://chart.apis.google.com/chart?cht=lc&#038;chls=5,0,0&#038;chf=c,ls,90,CCCCCC,0.14285714285714,FFFFFF,0.14285714285714&#038;chxt=x,y&#038;chxl=0:|0 km|2 km|4 km|6 km|8 km|1:|1525 m|1550 m|1575 m|1600 m|1625 m|1650 m|1675 m|1700 m&#038;chd=s:CDJTbeecddhlrvzzvqkijoswxwurpqvz1zwtqpkggdedYSNJFG&#038;chs=637x200&#038;chco=0000FF&#038;chtt=Höhenprofil&#038;chts=555555,12" /></p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.ocrs.at/2009/07/27/norwegen-tag-21/" title="Norwegen &#8211; Tag 21 (27. Juli 2009)">Norwegen &#8211; Tag 21</a> (2)</li>
	<li><a href="http://blog.ocrs.at/2009/07/26/norwegen-tag-20/" title="Norwegen &#8211; Tag 20 (26. Juli 2009)">Norwegen &#8211; Tag 20</a> (1)</li>
	<li><a href="http://blog.ocrs.at/2009/07/24/norwegen-tag-18/" title="Norwegen &#8211; Tag 18 (24. Juli 2009)">Norwegen &#8211; Tag 18</a> (1)</li>
	<li><a href="http://blog.ocrs.at/2009/07/23/norwegen-tag-17/" title="Norwegen &#8211; Tag 17 (23. Juli 2009)">Norwegen &#8211; Tag 17</a> (2)</li>
	<li><a href="http://blog.ocrs.at/2009/07/22/norwegen-tag-16/" title="Norwegen &#8211; Tag 16 (22. Juli 2009)">Norwegen &#8211; Tag 16</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2010/02/13/schneeschuhwanderung-auf-der-rax/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation eines Git-Hosts</title>
		<link>http://blog.ocrs.at/2010/01/24/installation-eines-git-hosts/</link>
		<comments>http://blog.ocrs.at/2010/01/24/installation-eines-git-hosts/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 18:27:32 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Versionskontrolle]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=937</guid>
		<description><![CDATA[Eine Kurzanleitung zur Installation und Konfiguration eines Git-Servers mittels des Tools gitosis, sowie ein kleines Beispiel wie ein lokales Verzeichnis in ein remote Repository übertragen werden kann.]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich derzeit ohnehin keinen vernünftigen privaten Software-Development Server habe, und es dann doch schön langsam an der Zeit ist, die diversen Projekte wieder mal unter eine Versionskontrolle zu stellen (TimeMachine Backups sind zwar durchaus sicher, einfach und zuverlässig, aber eben nur Backups), habe ich beschlossen diesmal auf git zu setzen &#8211; nachdem ich ja in den Jahren zuvor meistens mit CVS bzw. vereinzelt mit SVN gefahren bin, wollte ich mal was neues probieren&#8230;</p>
<p>Um Git Repositories vernünftig hosten zu können gibt es das Tool <code class="codecolorer text default"><span class="text">gitosis</span></code>, welches bereits als Debian-Paket verfügbar und somit leicht zu installieren ist:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$apt-get install gitosis</div></div>
<p>Im Anschluss muss man gitosis mit einem SSH public key initialisieren, damit man sich ohne Passwort mit dem gitosis Repository (welches zur Konfiguration verwendet wird) verbinden kann. Eine entsprechenden Schlüssel kann man mit <code class="codecolorer text default"><span class="text">ssh-keygen</span></code> erzeugen:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ssh-keygen -t rsa</div></div>
<p>Diesen Schlüssel muss man jetzt für gitosis aktivieren:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$sudo -H -u gitosis gitosis-init &lt; ~/.ssh/id_rsa.pub</div></div>
<p><code class="codecolorer text default"><span class="text">gitosis</span></code> verfügt über ein eigenes Konfigurations-Repository über das es konfiguriert werden kann. Dieses lässt sich wie folgt auschecken:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$git clone gitosis@localhost:gitosis-admin.git</div></div>
<p>Dieser Befehl checkt das Repository aus und speichert es im aktuellen Pfad im Verzeichnis <code class="codecolorer text default"><span class="text">gitosis-admin</span></code>. In diesem befindet sich einerseits eine Konfigurationsdatei <code class="codecolorer text default"><span class="text">gitosis.conf</span></code>, sowie zusätzlich ein Verzeichnis <code class="codecolorer text default"><span class="text">keydir</span></code>, in dem die SSH public keys der Benutzer gespeichert werden.</p>
<p>In der Konfigurationsdatei <code class="codecolorer text default"><span class="text">gitosis.conf</span></code> gibt es Blöcke für Benutzergruppen und Repositories. Ich lege daher einfach einmal eine Gruppe für Entwickler an (wo allerdings momentan nur ich Mitglied bin). Außerdem sage ich, dass diese Gruppe mit dem Repository <code class="codecolorer text default"><span class="text">diplomarbeit</span></code> (vielleicht sollte ich mehr Leute in diese Gruppe schreiben, vielleicht findet sich ja ein Depp der mir die Arbeit abnimmt) arbeiten darf.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[group developers]<br />
members = markus<br />
writable = diplomarbeit</div></div>
<p>Die geänderte Konfiguration kann mittels der folgenden Befehle aktiviert werden:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$git commit -a -m &quot;Created group developers with access to repository diplomarbeit&quot;<br />
$git push</div></div>
<p>Der erste Befehl speichert dabei die Änderungen in der lokalen Kopie des Repositorys, während mit <code class="codecolorer text default"><span class="text">git push</span></code> die Änderungen auf das Remote-Repository übertragen werden.</p>
<p>Die Diplomarbeit lässt sich jetzt in das Repository einchecken (dazu muss zuerst in das entsprechende Verzeichnis gewechselt werden):</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$git init<br />
$git remote add origin gitosis@SERVER:diplomarbeit.git</div></div>
<p>Mit <code class="codecolorer text default"><span class="text">git init</span></code> wird dabei ein lokales git Repository angelegt (d.h. das Verzeichnis <code class="codecolorer text default"><span class="text">.git</span></code> wird erstellt), mit <code class="codecolorer text default"><span class="text">git remote add</span></code> wird ein neues Ziel <code class="codecolorer text default"><span class="text">origin</span></code> angelegt, welches der angegebenen URL entspricht). Anschließend können die lokalen Dateien für die Versionskontrolle aktiviert werden (<code class="codecolorer text default"><span class="text">git add</span></code> teilt <code class="codecolorer text default"><span class="text">git</span></code> mit, das diese Dateien ab sofort unter Versionskontrolle sein sollen):</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$git add .</div></div>
<p>Die Änderungen (d.h. das Hinzufügen der Dateien) muss nun noch bestätigt werden, wobei hier zusätzlich ein entsprechender Kommentar angegeben werden sollte, der die Änderungen beschreibt:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$git commit -m &quot;Initial import&quot;</div></div>
<p>Das Repository muss nun auch auf den Server gepusht werden. Hierbei werden die Änderungen an das Ziel <code class="codecolorer text default"><span class="text">origin</span></code> (welches zuvor mit <code class="codecolorer text default"><span class="text">git remote add</span></code> konfiguriert wurde) übertragen. Diese werden dabei in die lokale Branch <code class="codecolorer text default"><span class="text">master</span></code> als remote Branch <code class="codecolorer text default"><span class="text">heads/master</span></code> gespeichert werden soll:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$git push origin master:refs/heads/master</div></div>
<p>Die Repositories werden auf dem Server dabei im Verzeichnis <code class="codecolorer text default"><span class="text">/srv/gitosis/repositories/</span></code> gespeichert, welches natürlich entsprechend in die Backups aufgenommen werden sollte.</p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.ocrs.at/2009/03/29/uml-sequence-diagram-online/" title="UML Sequence Diagram Online (29. März 2009)">UML Sequence Diagram Online</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/11/13/tips-zum-schreiben-von-dokumentationen/" title="Tips zum Schreiben von Dokumentationen (13. November 2009)">Tips zum Schreiben von Dokumentationen</a> (1)</li>
	<li><a href="http://blog.ocrs.at/2009/04/03/stanford-cs193p/" title="Stanford CS193P: iPhone Application Programming (3. April 2009)">Stanford CS193P: iPhone Application Programming</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/10/19/puzzle-websites-to-sharpen-your-programming-skills/" title="Puzzle Websites to Sharpen Your Programming Skills (19. Oktober 2009)">Puzzle Websites to Sharpen Your Programming Skills</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/03/29/how-a-programmer-reads-your-resume/" title="How a programmer reads your resume (29. März 2009)">How a programmer reads your resume</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2010/01/24/installation-eines-git-hosts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Husarentempel</title>
		<link>http://blog.ocrs.at/2010/01/17/husarentempel/</link>
		<comments>http://blog.ocrs.at/2010/01/17/husarentempel/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 19:36:39 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Wandern]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=891</guid>
		<description><![CDATA[Nachdem sich ja auch in der Wiener Umgebung ein bisschen Schnee eingefunden hat, habe ich heute mit Andi, Christoph, Su und Tikani eine kleine gemütliche Wanderung unternommen. Verwandte Artikel Schneeschuhwanderung auf der Rax (0) Norwegen &#8211; Tag 21 (2) Norwegen &#8211; Tag 20 (1) Norwegen &#8211; Tag 18 (1) Norwegen &#8211; Tag 17 (2)]]></description>
			<content:encoded><![CDATA[<p>Nachdem sich ja auch in der Wiener Umgebung ein bisschen Schnee eingefunden hat, habe ich heute mit Andi, Christoph, Su und Tikani eine kleine gemütliche Wanderung unternommen.</p>
<div  style="text-align: center;"  class="xmlgmdiv" id="xmlgmdiv_26"><iframe class="xmlgm" id="xmlgm_26" src="http://blog.ocrs.at/wp-content/plugins/xml-google-maps/xmlgooglemaps_show.php?gpxid=26" style="border: 0px; width: 637px; height: 400px;" name="Google_Gpx_Maps" frameborder="0"></iframe></div>
<p><img class="xmlgmele" id="xmlgmele_26"  style="text-align: center; margin: 0px; padding: 0px; max-width: 100%;"  alt="Höhenprofil" src="http://chart.apis.google.com/chart?cht=lc&#038;chls=5,0,0&#038;chf=c,ls,90,CCCCCC,0.16666666666667,FFFFFF,0.16666666666667&#038;chxt=x,y&#038;chxl=0:|0 km|4 km|8 km|12 km|16 km|1:|250 m|300 m|350 m|400 m|450 m|500 m|550 m&#038;chd=s:EKPPRWXZabglnqsvtsrrrrrrtxxx12222yspkfbYWUTQNJFDCB&#038;chs=637x200&#038;chco=0000FF&#038;chtt=Höhenprofil&#038;chts=555555,12" /></p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.ocrs.at/2010/02/13/schneeschuhwanderung-auf-der-rax/" title="Schneeschuhwanderung auf der Rax (13. Februar 2010)">Schneeschuhwanderung auf der Rax</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/07/27/norwegen-tag-21/" title="Norwegen &#8211; Tag 21 (27. Juli 2009)">Norwegen &#8211; Tag 21</a> (2)</li>
	<li><a href="http://blog.ocrs.at/2009/07/26/norwegen-tag-20/" title="Norwegen &#8211; Tag 20 (26. Juli 2009)">Norwegen &#8211; Tag 20</a> (1)</li>
	<li><a href="http://blog.ocrs.at/2009/07/24/norwegen-tag-18/" title="Norwegen &#8211; Tag 18 (24. Juli 2009)">Norwegen &#8211; Tag 18</a> (1)</li>
	<li><a href="http://blog.ocrs.at/2009/07/23/norwegen-tag-17/" title="Norwegen &#8211; Tag 17 (23. Juli 2009)">Norwegen &#8211; Tag 17</a> (2)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2010/01/17/husarentempel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parrot AR.Drone</title>
		<link>http://blog.ocrs.at/2010/01/07/parrot-ar-drone/</link>
		<comments>http://blog.ocrs.at/2010/01/07/parrot-ar-drone/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 17:02:03 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Modellbau]]></category>
		<category><![CDATA[Drone]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[UAV]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=885</guid>
		<description><![CDATA[Ein über das iPhone gesteuerter Quadrocopter mit Augmented Reality Optionen. MUSS ICH HABEN!]]></description>
			<content:encoded><![CDATA[<p>Die <a href="http://www.parrot.com/">Parrot AR.Drone</a> ist &#8220;eigentlich&#8221; ja nur ein ganz normaler Quadrocopter. Aber das Ding wird über WiFi über das iPhone gesteuert und sendet einen Videostream zurück. Außerdem gibt es die Möglichkeit Augmented Reality Spiele damit zu spielen. Das Video spricht eigentlich eh für sich.</p>
<p>Hier noch ein Video, welches die Augmented Reality Fähigkeiten demonstriert:</p>
<p><object width="685" height="400"><param name="movie" value="http://www.youtube.com/v/2aDE5GcriHc&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/2aDE5GcriHc&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en_US&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="685" height="400"></embed></object></p>
<p>Da kann man eigentlich eh nur eines dazu sagen: MUSS ICH HABEN!</p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.ocrs.at/2009/10/19/laser-navigation-am-mit-uav/" title="Laser-Navigation am MIT UAV (19. Oktober 2009)">Laser-Navigation am MIT UAV</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2010/01/07/parrot-ar-drone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GandALF T-Shirt</title>
		<link>http://blog.ocrs.at/2010/01/02/gandalf-t-shirt/</link>
		<comments>http://blog.ocrs.at/2010/01/02/gandalf-t-shirt/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 11:55:13 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Film / Kino]]></category>
		<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Filme]]></category>
		<category><![CDATA[Serien]]></category>
		<category><![CDATA[T-Shirt]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=869</guid>
		<description><![CDATA[Ich hab ja schon eine recht große Sammlung an T-Shirts, aber ich konnte einfach nicht widerstehen und musste mir dieses bestellen (vor allem wo das ein Eintagesaktion ist). Freu mich schon...]]></description>
			<content:encoded><![CDATA[<p>Ich hab ja schon eine recht große Sammlung an T-Shirts, aber ich konnte einfach nicht widerstehen und musste mir dieses bestellen (vor allem wo das ein Eintagesaktion ist). Freu mich schon&#8230;</p>
<p>Gefunden habe ich das wieder einmal über <a href="http://www.slashfilm.com/2010/01/01/cool-stuff-gandalf-t-shirt/">/Film: GandALF T-Shirt</a>, zu bestellen ist es bei <a href="http://www.teefury.com/">TeeFury</a>.</p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.ocrs.at/2009/10/19/trailer-zu-black-lightning/" title="Trailer zu Black Lightning (19. Oktober 2009)">Trailer zu Black Lightning</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/10/21/the-tournament/" title="The Tournament (21. Oktober 2009)">The Tournament</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/11/02/the-good-the-bad-the-weird/" title="The Good, The Bad, The Weird (2. November 2009)">The Good, The Bad, The Weird</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2010/01/01/solomon-kane/" title="Solomon Kane (1. Januar 2010)">Solomon Kane</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/11/21/prince-of-persia-the-sands-of-time/" title="Prince of Persia: The Sands of Time (21. November 2009)">Prince of Persia: The Sands of Time</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2010/01/02/gandalf-t-shirt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solomon Kane</title>
		<link>http://blog.ocrs.at/2010/01/01/solomon-kane/</link>
		<comments>http://blog.ocrs.at/2010/01/01/solomon-kane/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 21:22:37 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Film / Kino]]></category>
		<category><![CDATA[Filme]]></category>
		<category><![CDATA[Trailer]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=864</guid>
		<description><![CDATA[Der Film Solomon Kane kommt heuer ins Kino. Hier ein erster Trailer und ein paar zusätzliche Videos (Kampfszenen, Kreaturen, etc.). Sieht jedenfalls sehr interessant aus.]]></description>
			<content:encoded><![CDATA[<p>Solomon Kane ist eine von Robert E. Howard (siehe auch zum Beispiel Conan) geschaffene Figur, die in ein paar Geschichten von Howard mitspielt. Ein Sammelband der Geschichten habe ich mir gerade bestellt. Außerdem gibt es &#8211; basierend auf diesen Geschichten &#8211; eine Comic-Reihe.</p>
<p>Wie auch andere hat Solomon Kane das Ziel das Böse zu vernichten. Als Figur ähnelt er dabei sehr Van Helsing, was auch in dem Trailer recht deutlich erkennbar sein sollte. Der Film sollte dieses Jahr in die Kinos kommen, ich bin jedenfalls schon sehr gespannt darauf.</p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li><a href="http://blog.ocrs.at/2009/10/19/trailer-zu-black-lightning/" title="Trailer zu Black Lightning (19. Oktober 2009)">Trailer zu Black Lightning</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/11/21/prince-of-persia-the-sands-of-time/" title="Prince of Persia: The Sands of Time (21. November 2009)">Prince of Persia: The Sands of Time</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/11/28/king-of-fighters/" title="King of Fighters (28. November 2009)">King of Fighters</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/11/23/give-em-hell-malone/" title="Give &#8216;em Hell, Malone (23. November 2009)">Give &#8216;em Hell, Malone</a> (0)</li>
	<li><a href="http://blog.ocrs.at/2009/10/21/the-tournament/" title="The Tournament (21. Oktober 2009)">The Tournament</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2010/01/01/solomon-kane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silex SX-560 Embedded WLAN</title>
		<link>http://blog.ocrs.at/2009/12/21/silex-sx-560-embedded-wlan/</link>
		<comments>http://blog.ocrs.at/2009/12/21/silex-sx-560-embedded-wlan/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 18:37:46 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Modellbau]]></category>
		<category><![CDATA[Embedded Systems]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[SX-560]]></category>
		<category><![CDATA[WLAN]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=847</guid>
		<description><![CDATA[Das SX-560 ist ein kleines embedded WLAN Modul, auf dem bereits ein Linux läuft. Meines ist gerade angekommen und ich habe damit zumindest mal die ersten Versuche unternommen - Inbetriebnahme und erste Schritte.]]></description>
			<content:encoded><![CDATA[<p>Nachdem inzwischen mein <a href="http://www.silexamerica.com/products/wireless_modules/sx-560.html">SX-560</a> inklusive Development-Board angekommen ist, habe ich mich heute gleich mal damit spielen müssen.</p>
<p>Der Lieferumfang des Development-Boards ist jedenfalls sehr ausführlich: 3 serielle Kabel, 2 externe Stabantennen, eine externe Stehantenne, eine Netzgerät mit echtem und mit amerikanischem Anschlusskabel sowie einer Software-CD.</p>
<p>Nach erfolgreichem Zusammenbau und erstem Schock, weil die orange Power-On-LED nur kurz nach dem Anstecken aufblinkt und dann ausgeht habe ich mein serielles Kabel am Mac angesteckt und eine Screen-Session darüber gestartet:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">$ screen -T vt100 /dev/tty.usbserial 115200</div></div>
<p>Und schon sieht man den Boot-Prozess des Gerätes.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">CPU: &nbsp; S3C2412@200MHz<br />
&nbsp; &nbsp; &nbsp; &nbsp;Fclk = 200MHz, Hclk = 100MHz, Pclk = 50MHz<br />
Board: SMDK2412 &nbsp;SDRAM 16bits <br />
DRAM: &nbsp;16 MB<br />
Flash: &nbsp;8 MB<br />
In: &nbsp; &nbsp;serial<br />
Out: &nbsp; serial<br />
Err: &nbsp; serial<br />
Hit any key to stop autoboot: &nbsp;0 <br />
## Booting image at 00040000 ...<br />
&nbsp; &nbsp;Image Name: &nbsp; Linux Kernel<br />
&nbsp; &nbsp;Created: &nbsp; &nbsp; &nbsp;2008-05-24 &nbsp;15:47:46 UTC<br />
&nbsp; &nbsp;Image Type: &nbsp; ARM Linux Kernel Image (gzip compressed)<br />
&nbsp; &nbsp;Data Size: &nbsp; &nbsp;988488 Bytes = 965.3 kB<br />
&nbsp; &nbsp;Load Address: 30008000<br />
&nbsp; &nbsp;Entry Point: &nbsp;30008000<br />
&nbsp; &nbsp;Verifying Checksum ... OK</div></div>
<p>Nach kurzen nachschauen im Manual habe ich dann auch gleich das Passwort (admin / access) gefunden &#8211; und den hinweis überlesen, das bei älteren Firmware-Versionen root als Benutzer zu verwenden ist. Naja, 3 Versuche später hab ich es dann erfolgreich erraten.</p>
<p>Erster Schritt am eingeloggten System: welche Version hamma denn?</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># cat /proc/version <br />
Linux version 2.6.16.11 (bill@localhost.localdomain) (gcc version 3.4.6) #160 Sat May 24 08:47:34 PDT 2008</div></div>
<p>Dann mal die Überprüfung, wie viel Speicherplatz wir denn eigentlich verwenden (dabei habe ich auch gleich festgestellt, das jffs2 als root-Filesystem verwendet wird):</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># df -h<br />
Filesystem &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Size &nbsp; &nbsp; &nbsp;Used Available Use% Mounted on<br />
rootfs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;6.8M &nbsp; &nbsp; &nbsp;3.5M &nbsp; &nbsp; &nbsp;3.2M &nbsp;52% /<br />
/dev/root &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 6.8M &nbsp; &nbsp; &nbsp;3.5M &nbsp; &nbsp; &nbsp;3.2M &nbsp;52% /<br />
tmpfs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 8.0M &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp;8.0M &nbsp; 0% /tmp<br />
tmpfs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 248.0k &nbsp; &nbsp; 20.0k &nbsp; &nbsp;228.0k &nbsp; 8% /var</div></div>
<p>Hm, nicht viel, sollte aber für&#8217;s erste Mal ausreichen. Sodann überprüfe ich einmal, welche Module denn verwendet werden &#8211; in der Vermutung, das das sicher teilweise recht spezifische sein werden:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"># lsmod<br />
Module &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Size &nbsp;Used by &nbsp; &nbsp;Tainted: P &nbsp;<br />
sx560_gpio &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;3432 &nbsp;2 <br />
ar6000 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;173628 &nbsp;0 <br />
sdio_s3c2412 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 16132 &nbsp;0 <br />
sdio_busdriver &nbsp; &nbsp; &nbsp; &nbsp; 78984 &nbsp;2 ar6000,sdio_s3c2412<br />
sdio_lib &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;6656 &nbsp;2 ar6000,sdio_busdriver</div></div>
<p>Eigentlich sollte ich ja eine aktuelle Version der Firmware installieren, aber das funktioniert irgendwie nicht so wie geplant &#8211; es ist zwar möglich, diese via TFTP oder auch über das eigene UpdateIP Programm auf das SX-560 zu transferieren, dort passiert aber genau nichts damit. Ich vermute das ist ein Problem der frühen Version (1.00A scheint das bei mir zu sein, offenbar sind da irgendwelche alten Lagerhallten bei der Bestellung geräumt worden).</p>
<p>Der nächste Schritt ist es, die Tool Chain für das Ding zu laden und zu installieren. Dabei gibt es im wesentlichen 2 verschiedene Dinge und Ergebnisse:</p>
<h3>Erzeugen eines neuen Root-Filesystems</h3>
<p>Damit habe ich mich noch nicht wirklich sonderlich auseinander gesetzt, weil ich annehme, dass die ohnehin vorhandenen Firmware-Images ganz brauchbar sind. Und auf 8MB Flash lässt sich ja auch nicht sonderlich viel unterbringen. Die dazu benötigten Files findet man jedenfalls <a href="http://www.silexamerica.com/engineering/SX-560/">hier</a> auf der Silex Homepage, wobei zu beachten ist, das man bei einer aktuellen Version von Buildroot ein paar Anpassungen durchführen muss, die im folgenden Abschnitt erklärt werden. Wenn man sich jedenfalls an die Anleitung in der dortigen Readme hält, bekommt man als Endresultat ein ext2-Image (eventuell sollte man hier also noch etwas umkonfigurieren, um ein JFFS2 Image zu erhalten).</p>
<h3>Erzeugen einer Tool-Chain um eigene Programme zu erstellen</h3>
<p>Für diese Aufgabe ist auf der Silex Homepage ebenfalls eine <a href="http://www.silexamerica.com/support/downloads/documentation/wireless_modules/sx-560/sx560_tools_a.pdf">Anleitung</a> zu finden, an die man sich weitgehend halten kann. Es waren lediglich zwei Dinge umzukonfigurieren: die Version des empfohlenen Kernels ist nicht mehr in der Auswahlliste vorhanden, da der schon zu verstaubt ist. Ich habe es noch nicht probiert, ob das ganze auch mit einem aktuellen Kernel noch funktioniert (bzw. sich mit dem installierten 2.6.16er verträgt) &#8211; insbesondere da ja auch in der Anleitung nicht die aktuelle sondern die vorige Version verwendet wird. Dazu muss man nach dem <code class="codecolorer text default"><span class="text">make menuconfig</span></code> in der <code class="codecolorer text default"><span class="text">.config</span></code> die Optione <code class="codecolorer text default"><span class="text">BR2_KERNEL_HEADERS_2_6_22=y</span></code> einfügen, und den Default-Kernel ändern:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">BR2_KERNEL_HEADERS_2_6_22=y<br />
BR2_DEFAULT_KERNEL_HEADERS=&quot;2.6.22&quot;</div></div>
<p>Im Anschluss kann man das ganze Ding kompilieren, wobei er sich da zumindest zweimal dastoßen wird: beim Kernel und bei der Libc. In beiden Fällen betrifft es eine Inkompatibilität der <code class="codecolorer text default"><span class="text">unifdef.c</span></code> mit der <code class="codecolorer text default"><span class="text">stdio.h</span></code>, sodass die Datei <code class="codecolorer text default"><span class="text">unifdef.c</span></code> bei der er da jeweils meckert entsprechend adaptiert werden muss (siehe auch <a href="http://patchwork.kernel.org/patch/11166/">dieser</a> Kernel-Patch):</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">diff --git a/scripts/unifdef.c b/scripts/unifdef.c<br />
index 552025e..977e682 100644<br />
--- a/scripts/unifdef.c<br />
+++ b/scripts/unifdef.c<br />
@@ -206,7 +206,7 @@ &nbsp;static void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; done(void);<br />
&nbsp;static void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; error(const char *);<br />
&nbsp;static int &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;findsym(const char *);<br />
&nbsp;static void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; flushline(bool);<br />
-static Linetype &nbsp; &nbsp; &nbsp; &nbsp; getline(void);<br />
+static Linetype &nbsp; &nbsp; &nbsp; &nbsp; parseline(void);<br />
&nbsp;static Linetype &nbsp; &nbsp; &nbsp; &nbsp; ifeval(const char **);<br />
&nbsp;static void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ignoreoff(void);<br />
&nbsp;static void &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ignoreon(void);<br />
@@ -512,7 +512,7 @@ &nbsp;process(void)<br />
&nbsp;<br />
&nbsp; for (;;) {<br />
&nbsp; &nbsp; linenum++;<br />
- &nbsp; lineval = getline();<br />
+ &nbsp; lineval = parseline();<br />
&nbsp; &nbsp; trans_table[ifstate[depth]][lineval]();<br />
&nbsp; &nbsp; debug(&quot;process %s -&gt; %s depth %d&quot;,<br />
&nbsp; &nbsp; &nbsp; &nbsp; linetype_name[lineval],<br />
@@ -526,7 +526,7 @@ &nbsp;process(void)<br />
&nbsp; * help from skipcomment().<br />
&nbsp; */<br />
&nbsp;static Linetype<br />
-getline(void)<br />
+parseline(void)<br />
&nbsp;{<br />
&nbsp; const char *cp;<br />
&nbsp; int cursym;</div></div>
<p>Wenn das alles erfolgreich funktioniert hat, findet man im Verzeichnis <code class="codecolorer text default"><span class="text">build_arm/staging_dir/usr/bin/</span></code> den Cross-Compiler <code class="codecolorer text default"><span class="text">arm-linux-gcc</span></code> sowie weitere Tools. Damit kann dann das erste Programm erstellt, kompiliert und mittels TFTP auf den SX-560 kopiert werden.</p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li>Keine verwandten Artikel</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2009/12/21/silex-sx-560-embedded-wlan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migration von LVM Volumes</title>
		<link>http://blog.ocrs.at/2009/12/10/migration-von-lvm-volumes/</link>
		<comments>http://blog.ocrs.at/2009/12/10/migration-von-lvm-volumes/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 15:33:04 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Informatik]]></category>
		<category><![CDATA[LVM]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=843</guid>
		<description><![CDATA[Eine kurze Anleitung, wie man von LVM Logical Volumes Snapshots erstellen kann, und wie man derartige Logical Volumes auf einen anderen Server migrieren kann.]]></description>
			<content:encoded><![CDATA[<p>Nachdem ich gerade damit beschäftigt bin, ein paar virtuelle Maschinen von einem Server auf einen anderen zu migrieren, und ich jedes Mal danach suche (und <a href="http://momotonic.com/2008/03/23/migrating-lvm-volumes-over-network-using-snapshots/">finde</a>), wie denn das mit dem Export von LVM Logical Volumes funktioniert, muss ich es hier einmal zusammenfassen.</p>
<p>Für Xen-Systeme ist es recht gängig, die einzelnen Partitionen als LVM Volumes einzurichten, da diese leicht auf mehrere physikalische Geräte verteilt und einfach vergrößert werden können. Ein zusätzliches wichtiges Feature für Server-Systeme ist es, dass mit LVM auch sehr einfach Snapshots eines (laufenden) Volumes erstellt werden können.</p>
<p>Um ein LVM Logical Volume zu kopieren (ohne dabei Einfluss auf die laufenden Systeme zu nehmen), sollte zuerst ein Snapshot von dem entsprechenden Volume gemacht werden. Um einen Snapshot zu erstellen, wird der Befehl <code class="codecolorer bash default"><span class="bash">lvcreate</span></code> verwendet, wobei der Parameter <code class="codecolorer bash default"><span class="bash"><span style="color: #660033;">-s</span></span></code> einen Snapshot erstellt. Mit dem Parameter <code class="codecolorer bash default"><span class="bash"><span style="color: #660033;">-n</span></span></code> wird der Name des Snapshot-Volumes angegeben (im Beispiel <code class="codecolorer bash default"><span class="bash">lv01-snapshot</span></code>), und als letzter Parameter das Volume, von dem der Snapshot erstellt werden soll (in diesem Fall <code class="codecolorer bash default"><span class="bash"><span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>vg0<span style="color: #000000; font-weight: bold;">/</span>lv01</span></code>). Zusätzlich muss noch die Größe des Volumes angegeben werden, da diese &#8211; aus für mich unerfindlichen Gründen &#8211; nicht automatisch übernommen wird. Diese Größe kann man mit <code class="codecolorer bash default"><span class="bash">lvdisplay <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>vg0<span style="color: #000000; font-weight: bold;">/</span>lv01</span></code> herausfinden (es ist das Attribut LV Size) und mit dem Parameter <code class="codecolorer bash default"><span class="bash"><span style="color: #660033;">-L</span></span></code> an lvcreate übergeben:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">src-system:~<span style="color: #666666; font-style: italic;"># lvdisplay /dev/vg0/lv01</span><br />
&nbsp; <span style="color: #660033;">---</span> Logical volume <span style="color: #660033;">---</span><br />
&nbsp; LV Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>vg0<span style="color: #000000; font-weight: bold;">/</span>lv01<br />
&nbsp; VG Name &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;lvmxen<br />
&nbsp; LV UUID &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;qhNjG9-IqN9-ISRR-uD17-TJyQ-HGcY-ZOq9pm<br />
&nbsp; LV Write Access &nbsp; &nbsp; &nbsp; &nbsp;read<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">write</span><br />
&nbsp; LV Status &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;available<br />
&nbsp; <span style="color: #666666; font-style: italic;"># open &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1</span><br />
&nbsp; LV Size &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #000000;">2.00</span> GB<br />
&nbsp; Current LE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">512</span><br />
&nbsp; Segments &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">1</span><br />
&nbsp; Allocation &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; inherit<br />
&nbsp; Read ahead sectors &nbsp; &nbsp; auto<br />
&nbsp; - currently <span style="color: #000000; font-weight: bold;">set</span> to &nbsp; &nbsp; <span style="color: #000000;">256</span><br />
&nbsp; Block device &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;">253</span>:<span style="color: #000000;">20</span><br />
src-systen:~<span style="color: #666666; font-style: italic;"># lvcreate -L2G -s -n lv01-snapshot /dev/vg0/lv01</span><br />
&nbsp; Logical volume <span style="color: #ff0000;">&quot;lv01-snapshot&quot;</span> created</div></div>
<p>Dieses Snapshot Volume kann nun über beliebige Methoden auf den Zielserver übertragen werden. Dazu muss zuerst ein DiskDump davon erstellt werden, der dann beispielsweise über HTTP oder SCP oder ähnliche Methoden auf das Zielsystem kopiert werden kann (eine elegante Methode wäre natürlich auch die Übertragung mittels netcat). Um einen DiskDump zu erstellen kann der folgende Befehl verwendet werden:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">src-system:~<span style="color: #666666; font-style: italic;"># dd if=/dev/vg0/lv01-snapshot conv=noerror,sync bs=256k | gzip -9 &gt; ~/lv01.dd.gz</span></div></div>
<p>Auf dem Zielsystem muss nun ein entsprechendes Logical Volume der passenden Größe erstellt werden. Auch dazu wird der Befehl lvcreate verwendet:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dst-system:~<span style="color: #666666; font-style: italic;"># lvcreate -L2G -n lv01 vg0</span><br />
&nbsp; Logical volume <span style="color: #ff0000;">&quot;lv01&quot;</span> created</div></div>
<p>Nachdem der Diskdump vom Quellsystem auf das Zielsystem übertragen wurde, kann dieser entsprechend auf das Logical Volume geschrieben werden:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">dst-system:~<span style="color: #666666; font-style: italic;"># cat lv01.dd.gz | gzip -d | dd of=/dev/vg0/lv01 bs=256k</span></div></div>
<p>Es ist natürlich genauso möglich, den Zwischenschritt über den DiskDump als Datei zu überspringen und das ganze direkt zu übertragen, beispielsweise über SCP (ideal wäre hier natürlich die Verwendung von netcat):</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">src-system:~<span style="color: #666666; font-style: italic;"># dd if=/dev/vg0/lv01-snapshot conv=noerror,sync bs=256k | gzip -9 | ssh root@dst-system 'gzip -d | dd of=/dev/vg0/lv01'</span></div></div>
<p>Bei einem hinreichend schnellen Netzwerk kann die Komprimierung mit gzip genausogut entfallen. Wobei hier vermutlich die Komprimierung weniger rechenintensiv ist, als die Verschlüsselung durch ssh.</p>
<p>Nachdem das Volume erfolgreich übertragen wurde, kann der Snapshot wieder gelöscht werden. Dies geschieht mit dem folgenden Befehl:</p>
<div class="codecolorer-container bash default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="bash codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">src-system:~<span style="color: #666666; font-style: italic;"># lvremove /dev/vg0/lv01-snapshot</span><br />
Do you really want to remove active logical volume <span style="color: #ff0000;">&quot;lv01-snapshot&quot;</span>? <span style="color: #7a0874; font-weight: bold;">&#91;</span>y<span style="color: #000000; font-weight: bold;">/</span>n<span style="color: #7a0874; font-weight: bold;">&#93;</span>: y<br />
&nbsp; Logical volume <span style="color: #ff0000;">&quot;lv01-snapshot&quot;</span> successfully removed</div></div>
<p>Wenn alle Volumes eines Xen-Gastsystems übertragen wurden, sollte sich dieses am Zielsystem genauso starten lassen, wie am Quellsystem. Es ist dabei jedoch eventuell darauf zu achten vorher die IP-Adressen zu aktualisieren.</p>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li>Keine verwandten Artikel</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2009/12/10/migration-von-lvm-volumes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Parkinson&#8217;s Law</title>
		<link>http://blog.ocrs.at/2009/11/29/parkinsons-law/</link>
		<comments>http://blog.ocrs.at/2009/11/29/parkinsons-law/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 18:12:03 +0000</pubDate>
		<dc:creator>Markus Schabel</dc:creator>
				<category><![CDATA[Sonstiges]]></category>
		<category><![CDATA[Wissenschaft]]></category>

		<guid isPermaLink="false">http://blog.ocrs.at/?p=825</guid>
		<description><![CDATA[Parkinsons Gesetz enthält eine oft übersehene Weisheit: "All work expands so as to fill all the time available for its completion." - auf modernes Projektmanagement angewendet lässt sich die erste Ableitung finden: "Management will always try to make a project late."]]></description>
			<content:encoded><![CDATA[<p>Über die Seite <a href="http://www.commonsense4commonpeople.net/">Common Sense 4 Common People</a> bzw. deren Artikel <a href="http://www.commonsense4commonpeople.net/2009/11/the-law-of-late-projects.html">The Law of Late Projects</a> bin ich auf einen Artikel aus dem Archiv von <a href="http://www.economist.com/">The Economist</a> gestoßen: <a href="http://www.economist.com/businessfinance/management/displaystory.cfm?story_id=14116121">Parkinson&#8217;s Law</a>.</p>
<p>Das Gesetz kurz zusammengefasst lautet:</p>
<blockquote><p>All work expands so as to fill all the time available for its completion.</p></blockquote>
<p>Das Gesetz führt dies vor allem auf die &#8220;Beamtenexplosion&#8221; zurück, die durch 2 Faktoren induziert wird:</p>
<ol>
<li><b>Jeder Beamte möchte lieber Untergebene als gleichrangige Mitarbeiter haben.</b>
<p>Wenn ein Beamter überarbeitet ist (sei es durch echte Arbeit oder nur als Illusion), dann hat er 3 Optionen zur Verfügung: er kann kündigen (das wird allerdings kaum einer freiwillig tun), er kann versuchen einen gleichrangigen Mitarbeiter zu bekommen mit dem er die Arbeit teilen kann (das wir er allerdings auch nicht tun, da dies seine Chance auf Beförderung verringert) oder er kann versuchen Untergebene zu erhalten.</p>
<p>Nun ist es jedoch so, dass er mindestens 2 Untergebene braucht, weil wenn er nur einen Untergebenen hätte, dann wäre das im Prinzip mit einem gleichrangigen Kollegen gleichzusetzen.Früher oder später wird das Überarbeitungsproblem auch einen der Untergebenen treffen, sodass hier weitere 2 Untergebene angestellt werden. Der ursprünglich überarbeitete Beamte hat damit eine ganze Hierarchie unter sich aufgebaut, wodurch wiederum seine Chancen auf Beförderung gestiegen sind.</li>
<li><b>Arbeit tendiert dazu, sich zu vervielfältigen.</b>
<p>Da nun mehrere Beamten das gleiche tun, was zuvor ein einziger getan hat, ist mehr Aufwand notwendig, um diese zu koordinieren. Wenn zum Beispiel der Chef irgendein Dokument bekommt, so wird er es einem seiner Untergebenen weiterleiten. Dieser kann nun behaupten, dass einer seiner Kollegen besser dazu geeignet ist, und das Dokument geht mit entsprechend immer mehr Memos im Kreis herum. Das führt dazu, dass weitaus mehr Leute weitaus länger brauchen, als wenn es gleich nur einer bearbeiten würde.</li>
</ol>
<p>Das Gesetz wird durch statistische Daten aus der britischen Regierung bestätigt. Es wird statistisch gezeigt, das die Anzahl der Beamten pro Jahr um etwa 5% steigt. Das ganze wird auch durch entsprechende Formeln unterlegt.</p>
<p>Der Ursprungsartikel <a href="http://www.commonsense4commonpeople.net/2009/11/the-law-of-late-projects.html">The Law for Late Projects</a> zeigt uns quasi die erste Ableitung des Gesetzes:</p>
<p>Wenn ein Manager ein Projekt betreut, und dieses ohne Probleme in der vorgegebenen Zeit umgesetzt werden kann, so bedeutet dies, dass der Manager das Team nicht genügend getreten hat, da das Projekt auch weitaus früher hätte fertig sein können (der Manager hat daher versagt, weil er Geld der Firma vergeudet hat). Wenn nun ein wissender diesem Manager vor Projektbeginn mitteilt, das das Projekt auch ein Monat schneller umgesetzt werden kann, so wird der Manager diesen kürzeren Termin wahrhaben. Falls das Projekt trotzdem noch in der Zeit durchgeführt werden kann, hat der Manager natürlich noch immer versagt, weil das Projekt eventuell noch schneller hätte fertig werden können.</p>
<p>Es liegt daher im Interesse der Manager die Deadlines für das Projekt unrealistisch kurz zu setzen, sodass diese nicht eingehalten werden, weil der Manager so garantiert nicht versagen kann (weil das Team ja offenbar gemanaget werden muss, da es sonst die Termine erst gar nicht einhalten kann).</p>
<p>Die Ableitung von Parkinsons Gesetz ist daher wie folgt definiert:</p>
<blockquote><p>Management will always try to make a project late.</p></blockquote>
<!-- PHP 5.x -->
	<h4>Verwandte Artikel</h4>
	<ul class="st-related-posts">
	<li>Keine verwandten Artikel</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://blog.ocrs.at/2009/11/29/parkinsons-law/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
