<?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>Flos Spielwiese</title>
	<atom:link href="http://www.donuz.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.donuz.de</link>
	<description></description>
	<lastBuildDate>Mon, 15 Feb 2010 18:05:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Shaback</title>
		<link>http://www.donuz.de/2010/02/13/shaback-2/</link>
		<comments>http://www.donuz.de/2010/02/13/shaback-2/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 11:20:59 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.donuz.de/?p=91</guid>
		<description><![CDATA[Nun ist es soweit, ich möchte die erste alpha-Version meines neuen Backuptools shaback veröffentlichen. Die Idee hinter diesem Tool habe ich hier schon einmal umrissen: Blogeintrag.
Das Programm habe ich als Prototyp zunächst in Python 2.6 geschrieben. Wenn es sich bewährt, werde ich das vielleicht später noch in C++ umsetzen. Das würde sich dann aber nur [...]]]></description>
			<content:encoded><![CDATA[<p>Nun ist es soweit, ich möchte die erste alpha-Version meines neuen Backuptools <a href="/software/shaback/"><em>shaback</em></a> veröffentlichen. Die Idee hinter diesem Tool habe ich hier schon einmal umrissen: <a href="/2010/02/09/idee-fur-backup-tool">Blogeintrag</a>.</p>
<p>Das Programm habe ich als Prototyp zunächst in Python 2.6 geschrieben. Wenn es sich bewährt, werde ich das vielleicht später noch in C++ umsetzen. Das würde sich dann aber nur lohnen, wenn es dadurch auch deutlich schneller wird&#8230;</p>
<p><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://www.donuz.de/download/shaback/shaback-0.5.1.py" onclick="wpfilebase_dlclick(4, 'download/shaback/shaback-0.5.1.py')" title="Download Shaback"><img align="middle" src="http://www.donuz.de/wp-includes/images/crystal/default.png" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://www.donuz.de/download/shaback/shaback-0.5.1.py" onclick="wpfilebase_dlclick(4, 'download/shaback/shaback-0.5.1.py')" title="Download Shaback">Shaback</a>
   shaback-0.5.1.py
   Version: 0.5.1
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails2" style="display: none;">
  
  <table border="0">
   
   <tr><th>Author:</th><td>Florian Wolff</td></tr>
   
   
   <tr><th>Category:</th><td>shaback</td></tr>
   
   <tr><th>Date:</th><td>November 30, 1999</td></tr>
   
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  25.5 KiB
  13 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(2);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.donuz.de/2010/02/13/shaback-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Idee für Backup-Tool</title>
		<link>http://www.donuz.de/2010/02/09/idee-fur-backup-tool/</link>
		<comments>http://www.donuz.de/2010/02/09/idee-fur-backup-tool/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 13:41:42 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Ideen]]></category>

		<guid isPermaLink="false">http://www.donuz.de/?p=56</guid>
		<description><![CDATA[Seit einer ganzen Weile beschäftigt mich die Fragestellung, wie man am besten Backups von all seinen Rechner anfertigt. Diese Backups müssen natürlich endweder physisch beweglich gespeichert werden, damit man sie z.B. auch räumlich getrennt lagern kann. Oder aber, man sichert gleich alles über das Internet auf einem entfernten Rechner, der z.B. irgendwo in einem Rechenzentrum [...]]]></description>
			<content:encoded><![CDATA[<p>Seit einer ganzen Weile beschäftigt mich die Fragestellung, wie man am besten Backups von all seinen Rechner anfertigt. Diese Backups müssen natürlich endweder physisch beweglich gespeichert werden, damit man sie z.B. auch räumlich getrennt lagern kann. Oder aber, man sichert gleich alles über das Internet auf einem entfernten Rechner, der z.B. irgendwo in einem Rechenzentrum für diesen Zweck gemietet wurde.<br />
Gerade bei Datensicherungen über langsame Netzwerkverbindungen muss man natürlich besonders die dabei zu übertragende Datenmenge im Auge behalten. Wenn man viele Rechner auf einen Backupserver sichern will, muss man auch sehr auf den absoluten Platzbedarf achten. Vor allem möchte man hier auch doppelt vorhandene Dateien nach Möglichkeit nur einmal aufbewahren müssen.</p>
<p>Was man eigentlich generell vom Backup-Tool seines Vertrauens erwartet:</p>
<ul>
<li>Inkrementelle Sicherung, damit nicht immer alles hin- und herkopiert werden muss</li>
<li>Aufbewahren mehrerer Snapshots, damit man nicht nur eine Kopie hat, sondern eben auch noch den Stand von gestern, vorgestern und vor einem Monat.</li>
<li>Die Sicherung muss wenigstens insofern platzsparend erfolgen, als dass Dateien, die sich nicht geändert haben, nicht erneut abgelegt werden.</li>
<li>Besser wäre es, wenn das auch für verschobene bzw. umbenannte Dateien gilt, deren Inhalt gleich geblieben ist.</li>
<li>Noch besser wäre es, wenn eine Datei selbst dann nur einmal abgelegt werden muss, wenn sie in verschiedenen Backupsets vorkommt, wenn also mehrere Rechner die inhaltlich gleiche Datei sichern wollen. Gerade wenn das ganze Betriebssystem mitgesichert wird, dürfte der Anteil der mehrfach vorhandenen Dateien recht groß sein.</li>
<li>Wenn man auch Diskimages von virtuellen Maschinen (z.B. vmdk-Dateien bei VmWare) sichern will, wäre es sehr hilfreich, wenn man auch die Änderungen innerhalb einer einzelnen Datei inkrementell sichern könnte. Diskimages sind sehr groß, ändern sich aber gewöhnlich immer nur blockweise, so dass auch immer große Bereiche unverändert bleiben.</li>
<li>Für Offsite-Backups muss man die gesicherten Dateien verschlüsseln können.</li>
<li>Oftmals ist es auch wünschenswert, dass eine einfache Komprimierung der Dateien erfolgt. Bestimmte Dateitypen sollte man davon aber ausnehmen können, da sich eine Komprimierung nicht für alle Dateitypen lohnen wird.</li>
</ul>
<h2>Snapshots mit rsync</h2>
<p>rsync bietet von Hause aus eine wunderbare Möglichkeit, platzsparend Snapshots zu speichern. Dabei werden dann nur neue oder geänderte Dateien kopiert. Für bereits im letzten Snapshot existierende Dateien legt rsync einfach einen Hardlink auf die bereits vorhandene Kopie an. Ändert sich jedoch der Pfad oder Name einer Datei, kann rsync keine Zuordnung mehr herstellen und legt eine neue Kopie an.</p>
<p>Apple verwendet in seiner Timemachine<sup>TM</sup> ebenfalls diesen Hardlink-Trick.</p>
<h2>Noch mehr Platz sparen mit Message-Digests</h2>
<p>Als ich mir den <a href="http://chaosradio.ccc.de/cre130.html" target="_blank">Chaos Radio Express-Podcast</a> über das Versionsverwaltungssystem <a href="http://git-scm.com" target="_blank"><em>git</em></a> anhörte, kam mir folgende Idee:</p>
<p>git hat nämlich ein ganz ähnliches Problem wie ein Backuptool: Es muss zum einen entscheiden, ob sich eine Datei gegenüber einer Vorgängerversion geändert hat, und es muss diese Datei sichern, falls sich der Inhalt geändert hat. In git wird dieses Problem auf eine sehr einfache und elegante Art und Weise gelöst. Für jede Datei wird einfach ein Hash-Wert (in diesem Fall <a href="http://de.wikipedia.org/wiki/Secure_Hash_Algorithm" target="_blank">sha1</a>) berechnet. Im Repository wird der Inhalt der Datei dann in einer Datei abgelegt, deren Name dem Hash-Wert entspricht. Gibt es diese Datei bereits im Repository, wurde diese Version der Datei offensichtlich bereits gesichert. Oder aber es gibt bereits eine andere Datei, die genau den gleichen Inhalt hat. Auch in diesem Fall ist ja eine weitere Sicherung nicht mehr erforderlich. Somit müssen Datei auch nicht mehrfach gesichert werden, wenn sie unterschiedliche Namen oder Pfade haben.</p>
<p>Diese Idee habe ich in Form eines in Python geschriebenen Prototypen umgesetzt, den ich hier in Kürze vorstellen werde.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donuz.de/2010/02/09/idee-fur-backup-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jakelib2-2.0.3</title>
		<link>http://www.donuz.de/2010/01/20/jakelib2-2-0-3/</link>
		<comments>http://www.donuz.de/2010/01/20/jakelib2-2-0-3/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 16:55:24 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[jakelib2]]></category>

		<guid isPermaLink="false">http://www.donuz.de/?p=28</guid>
		<description><![CDATA[Nach gaaaanz langer Zeit habe ich endlich einmal wieder ein kleines Update meiner jakelib2 veröffentlicht. Die einzige Verbesserung ist, dass sich das Ding jetzt auch wieder unter Mac OS X 10.6 bauen lässt.

 
 
  
   jakelib2-2.0.3
   jakelib2-2.0.3.tar.gz
   Version: 2.0.3
   
  
  
  [...]]]></description>
			<content:encoded><![CDATA[<p>Nach gaaaanz langer Zeit habe ich endlich einmal wieder ein kleines Update meiner <a href="software/jakelib2">jakelib2</a> veröffentlicht. Die einzige Verbesserung ist, dass sich das Ding jetzt auch wieder unter Mac OS X 10.6 bauen lässt.</p>
<p><div class="wpfilebase-attachment">
 <div class="wpfilebase-fileicon"><a href="http://www.donuz.de/download/jakelib2/jakelib2-2.0.3.tar.gz" onclick="wpfilebase_dlclick(1, 'download/jakelib2/jakelib2-2.0.3.tar.gz')" title="Download jakelib2-2.0.3"><img align="middle" src="http://www.donuz.de/wp-includes/images/crystal/archive.png" /></a></div>
 <div class="wpfilebase-rightcol">
  <div class="wpfilebase-filetitle">
   <a href="http://www.donuz.de/download/jakelib2/jakelib2-2.0.3.tar.gz" onclick="wpfilebase_dlclick(1, 'download/jakelib2/jakelib2-2.0.3.tar.gz')" title="Download jakelib2-2.0.3">jakelib2-2.0.3</a>
   jakelib2-2.0.3.tar.gz
   Version: 2.0.3
   
  </div>
  <div class="wpfilebase-filedetails" id="wpfilebase-filedetails4" style="display: none;">
  
  <table border="0">
   
   <tr><th>Author:</th><td>Florian Wolff</td></tr>
   <tr><th>Platforms:</th><td>Cross Platform</td></tr>
   
   <tr><th>Category:</th><td>Jakelib2</td></tr>
   <tr><th>License:</th><td>GNU General Public License</td></tr>
   <tr><th>Date:</th><td>January 20, 2010</td></tr>
   
  </table>
  </div>
 </div>
 <div class="wpfilebase-fileinfo">
  919.3 KiB
  10 Downloads
  <a href="#" onclick="return wpfilebase_filedetails(4);">Details...</a>
 </div>
 <div style="clear: both;"></div>
</div></p>
]]></content:encoded>
			<wfw:commentRss>http://www.donuz.de/2010/01/20/jakelib2-2-0-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vom iPhone</title>
		<link>http://www.donuz.de/2010/01/16/vom-iphone/</link>
		<comments>http://www.donuz.de/2010/01/16/vom-iphone/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 06:28:34 +0000</pubDate>
		<dc:creator>flo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.donuz.de/2010/01/16/vom-iphone/</guid>
		<description><![CDATA[Ich habe mir eben die iPhone-App &#8220;Wordpress 2&#8243; installiert. Damit kann ich nun auch bequem unterwegs Posten  
]]></description>
			<content:encoded><![CDATA[<p>Ich habe mir eben die iPhone-App &#8220;Wordpress 2&#8243; installiert. Damit kann ich nun auch bequem unterwegs Posten <img src='http://www.donuz.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.donuz.de/2010/01/16/vom-iphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
