<?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>MRo Blog &#187; sysadmin</title>
	<atom:link href="http://blog.mro.name/category/sysadmin/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mro.name</link>
	<description>Marcus Rohrmoser mobile Software</description>
	<lastBuildDate>Wed, 23 Jun 2010 11:32:27 +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>Simple HTTP Access Authorisation</title>
		<link>http://blog.mro.name/2010/06/simple-http-access-authorisation/</link>
		<comments>http://blog.mro.name/2010/06/simple-http-access-authorisation/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 09:56:46 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[authorisation]]></category>
		<category><![CDATA[Basic Authentication]]></category>
		<category><![CDATA[Cram]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[HTTPS]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[restful]]></category>
		<category><![CDATA[RewriteCond]]></category>
		<category><![CDATA[RewriteRule]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1872</guid>
		<description><![CDATA[sometimes you may want to lock down RESTful APIs or plain HTTP GET resources for authorised access by your own client software only, without requiring authentication. You don&#8217;t know who (not authenticated), but you know she may access (is authorised). If the server has a valid SSL certificate based on a root certificate pre-installed on the [...]]]></description>
			<content:encoded><![CDATA[<p>sometimes you may want to lock down <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">RESTful APIs</a> or plain HTTP GET resources for <a href="http://en.wikipedia.org/wiki/Authorization">authorised access</a> by your own client software only, without requiring <a href="http://en.wikipedia.org/wiki/Authentication">authentication</a>. You don&#8217;t know who (not authenticated), but you know she may access (is authorised).</p>
<p>If the server has a valid <a href="http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html">SSL certificate</a> based on a root certificate pre-installed on the iPhone among the simplest ways to do it are:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/Basic_access_authentication">HTTP Basic Authentication</a> with static username + password. This requires just a <a href="http://httpd.apache.org/docs/2.0/mod/core.html#authtype"><code>.htaccess</code> configuration setting</a> and you&#8217;re done.</li>
<li>send a custom <a href="http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html">HTTP Request Header</a> with a secret token, also just a <code><a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html">.htaccess</a></code><a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html"> rewrite</a> setting required:

<div class="wp_syntax"><div class="code"><pre class="htaccess" style="font-family:monospace;">RewriteEngine On
RewriteCond %{HTTP:My-Secret-Token} !=WRdsWXwwTZjEIRrgD5tODVf0U
RewriteRule ^.*$ - [forbidden,last]
# Test: $  curl --header &quot;My-Secret-Token:WRdsWXwwTZjEIRrgD5tODVf0U&quot; http://myserver.example.com/demo/</pre></div></div>

</li>
</ul>
<p>Decompiling an App may raise the bar high enough though hard-coded secrets surely aren&#8217;t bulletproof Secret Service grade quality. If you don&#8217;t want the password or secret token as literal string inside the App, synthesize it at runtime.</p>
<p>If your transport channel isn&#8217;t confidential (e.g. plain HTTP, not HTTPS) you might think about <a href="http://en.wikipedia.org/wiki/Digest_access_authentication">Digest Authentication</a> or a custom implemented <a href="http://en.wikipedia.org/wiki/CRAM-MD5">CRAMish</a> mechanism which I will not go into in this post.</p>
<p>P.S.: <a href="http://www.evolt.org/ultimate_htaccess_examples">Here are some really nice <code>.htaccess</code> examples</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/06/simple-http-access-authorisation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatic gzip compression for Apache2 Webservers</title>
		<link>http://blog.mro.name/2010/06/automatic-gzip-compression-for-apache2-webservers/</link>
		<comments>http://blog.mro.name/2010/06/automatic-gzip-compression-for-apache2-webservers/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 11:55:25 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[gzip]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[mod_deflate]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1864</guid>
		<description><![CDATA[after failing and failing again in the last months, I finally got it with the help of http://www.debian-administration.org/articles/137 The .htaccess configuration AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript requires Apache&#8217;s mod_deflate enabled via $ a2enmod deflate Module deflate installed; run /etc/init.d/apache2 force-reload to enable. Check the result with http://www.gidnetwork.com/tools/gzip-test.php Caution: There seems to be an [...]]]></description>
			<content:encoded><![CDATA[<p>after failing and failing again in the last months, I finally got it with the help of <a href="http://www.debian-administration.org/articles/137">http://www.debian-administration.org/articles/137</a></p>
<p>The <code>.htaccess</code> configuration</p>

<div class="wp_syntax"><div class="code"><pre class="htaccess" style="font-family:monospace;">AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript</pre></div></div>

<p>requires Apache&#8217;s <code>mod_deflate</code> enabled via</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ a2enmod deflate
Module deflate installed; run <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 force-reload to enable.</pre></div></div>

<p>Check the result with <a href="http://www.gidnetwork.com/tools/gzip-test.php">http://www.gidnetwork.com/tools/gzip-test.php</a></p>
<p><strong>Caution:</strong> There seems to be an <a href="http://phpperformance.de/mod_gzip-mod_deflate-und-sonstige-komprimierungsverfahren-fuer-web-inhalte/#comment-17970">If-Modified-Since/Last-Modified HTTP 304 bug in mod_deflate</a>, so better don&#8217;t use it for large, rarely changing files.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/06/automatic-gzip-compression-for-apache2-webservers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>TextWrangler + tidy</title>
		<link>http://blog.mro.name/2010/05/textwrangler-tidy/</link>
		<comments>http://blog.mro.name/2010/05/textwrangler-tidy/#comments</comments>
		<pubDate>Mon, 17 May 2010 09:30:14 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[TextWrangler]]></category>
		<category><![CDATA[tidy]]></category>
		<category><![CDATA[utf8]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1751</guid>
		<description><![CDATA[as I didn&#8217;t get TidyService to work correctly with UTF8 umlauts, I created a UNIX Shell Script wrapper for html tidy as it comes with OS X that does the job at least for TextWrangler: open TextWranglers &#8220;Unix Filters Folder&#8221; create a file named e.g. &#8220;Tidy Html.sh&#8221;, paste the following lines into the file and [...]]]></description>
			<content:encoded><![CDATA[<p>as I didn&#8217;t get <a href="http://www.pixelfreak.net/tidy_service/">TidyService</a> to work correctly with <a href="http://en.wikipedia.org/wiki/UTF-8">UTF8 umlauts</a>, I created a <a href="http://en.wikipedia.org/wiki/Bourne_shell">UNIX Shell Script</a> wrapper for <a href="http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/tidy.1.html">html tidy as it comes with OS X</a> that does the job at least for <a href="http://www.barebones.com/products/textwrangler/">TextWrangler</a>:</p>
<ol>
<li>open TextWranglers &#8220;Unix Filters Folder&#8221;<a style="text-decoration: none;" href="http://blog.mro.name/wp-content/uploads/2010/05/Bildschirmfoto-2010-05-17-um-11.15.12.png"><img class="aligncenter size-medium wp-image-1752" title="Bildschirmfoto 2010-05-17 um 11.15.12" src="http://blog.mro.name/wp-content/uploads/2010/05/Bildschirmfoto-2010-05-17-um-11.15.12-300x211.png" alt="" width="300" height="211" /></a></li>
<li>create a file named e.g. &#8220;Tidy Html.sh&#8221;,</li>
<li>paste the following lines into the file and save it:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #666666; font-style: italic;"># run &quot;tidy&quot; on the file given as 1st (and only) parameter.</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>tidy <span style="color: #660033;">-utf8</span> <span style="color: #660033;">-asxhtml</span> <span style="color: #660033;">-indent</span> <span style="color: #660033;">-wrap</span> <span style="color: #000000;">100</span> <span style="color: #660033;">-quiet</span> <span style="color: #ff0000;">&quot;$1&quot;</span> <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null</pre></div></div>

</li>
<li>now you can run <a href="http://blog.mro.name/wp-content/uploads/2010/05/Bildschirmfoto-2010-05-20-um-20.25.44.png"><img class="aligncenter size-medium wp-image-1764" title="Bildschirmfoto 2010-05-20 um 20.25.44" src="http://blog.mro.name/wp-content/uploads/2010/05/Bildschirmfoto-2010-05-20-um-02.25.44-300x206.png" alt="" width="300" height="206" /></a>tidy on files opened in TextWrangler, even remote files.</li>
<li>assign a keyboard shortcut (I used CTRL-T in the shot above) via the &#8220;Unix Filters&#8221; Palette:<a href="http://blog.mro.name/wp-content/uploads/2010/05/Bildschirmfoto-2010-05-20-um-20.22.56.png"><img class="aligncenter size-medium wp-image-1762" title="Bildschirmfoto 2010-05-20 um 20.22.56" src="http://blog.mro.name/wp-content/uploads/2010/05/Bildschirmfoto-2010-05-20-um-02.22.56-300x160.png" alt="" width="300" height="160" /></a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/05/textwrangler-tidy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Email Benachrichtigungen</title>
		<link>http://blog.mro.name/2010/05/wordpress-email-benachrichtigungen/</link>
		<comments>http://blog.mro.name/2010/05/wordpress-email-benachrichtigungen/#comments</comments>
		<pubDate>Tue, 04 May 2010 09:36:13 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1734</guid>
		<description><![CDATA[ojeoje, ist das so abseitig oder hab&#8217; ich&#8217;s nicht verstanden? War jedenfalls komplizierter als erwartet: Die Konto Einstellungen für den Email Absender müssen von Hand in die DB geschrieben werden &#8211; die 4 mailserver_* Zeilen in der Tabelle wordpress_options, Absenderadresse und Nick dann noch per Plugin, fertig. Aber wieso so kompliziert?]]></description>
			<content:encoded><![CDATA[<p>ojeoje, ist das so abseitig oder hab&#8217; ich&#8217;s nicht verstanden? War jedenfalls komplizierter als erwartet:</p>
<ol>
<li>Die Konto Einstellungen für den Email Absender müssen von Hand in die DB geschrieben werden &#8211; die 4 <code>mailserver_*</code> Zeilen in der Tabelle <code>wordpress_options</code>,</li>
<li>Absenderadresse und Nick dann noch <a href="http://blog.kips-world.de/wp-email-absender-aendern/">per Plugin</a>,</li>
</ol>
<p>fertig. Aber wieso so kompliziert?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/05/wordpress-email-benachrichtigungen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Radio Geeky</title>
		<link>http://blog.mro.name/2010/03/radio-geeky/</link>
		<comments>http://blog.mro.name/2010/03/radio-geeky/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 12:05:02 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Bayern2]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mitschnitt]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[Radio]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[scrAPI]]></category>
		<category><![CDATA[Screen Scraping]]></category>
		<category><![CDATA[SQLite]]></category>
		<category><![CDATA[streamripper]]></category>
		<category><![CDATA[Zündfunk]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1714</guid>
		<description><![CDATA[wie schon in einem älteren Artikel angerissen möchte ich zeitgesteuert Radiosendungen aufnehmen &#8211; und zwar auf einem Rechner (mit Apache Webserver), der rund um die Uhr läuft. Nun habe ich kürzlich einem großen Zündfunk-Fan, der selten Zeit hat ihn zu hören, diesen Mitschnitt als Podcast zum Geburtstag geschenkt. Das ganze wurde aufwändiger als ich dachte [...]]]></description>
			<content:encoded><![CDATA[<p>wie schon in einem <a href="http://blog.mro.name/2009/12/radiomitschnitt-per-rezept/">älteren Artikel</a> angerissen möchte ich zeitgesteuert Radiosendungen aufnehmen &#8211; und zwar auf einem Rechner (mit Apache Webserver), der rund um die Uhr läuft.</p>
<p>Nun habe ich kürzlich einem großen <a href="http://www.br-online.de/bayern2/zuendfunk/">Zündfunk</a>-Fan, der selten Zeit hat ihn zu hören, diesen Mitschnitt als <a href="http://de.wikipedia.org/wiki/Podcast">Podcast</a> zum Geburtstag geschenkt. Das ganze wurde aufwändiger als ich dachte und setzt sich mittlerweile zusammen aus:</p>
<ol>
<li><a href="http://www.rechtzweinull.de/index.php?/archives/100-Screen-Scraping-Wann-ist-das-Auslesen-und-die-Veroeffentlichung-fremder-Daten-zulaessig.html">Screen Scraping</a> der <a href="http://www.br-online.de/br/jsp/global/funktion/programmvorschau/programmfahne.jsp?programm=B2">B2 Programmwebsite</a> mit <a href="http://blog.labnotes.org/tag/scrapi/">scrAPI</a> &#8211; incl. Datumskorrektur weil das Programm nicht um Mitternacht umbricht sondern um 5 Uhr früh,</li>
<li>diese Daten in einer <a href="http://www.sqlite.org/">SQLite</a> DB <a href="http://de.wikipedia.org/wiki/Cache">cachen</a> um nicht mehrmals am Tag zu scrapen (wenn man z.B. noch andere Sendungen aufnimmt),</li>
<li>per <a href="http://de.wikipedia.org/wiki/Cron">cron</a> einige Minuten vor Sendungsbeginn den <a href="http://de.wikipedia.org/wiki/Streamripper">streamripper</a> starten (<a href="http://sourceforge.net/projects/streamripper/files/streamripper%20%28older%20unix%29/1.62.3/streamripper-1.62.3.tar.gz/download">v1.62.3</a> wegen alter <a href="http://de.wikipedia.org/wiki/GLib">glib</a> auf <a href="http://de.wikipedia.org/wiki/Debian">Debian Linux</a>),
<ul>
<li>da der einige Zeit zum Starten braucht triggere ich Sendungsbeginn und -ende zeitlich exakt über ein <a href="http://code.google.com/p/xstreamripper/source/browse/trunk/streamripper/fetch_external_metadata.pl">Script, das Titelwechsel in den laufenden Streamripper injiziert</a> &#8211; der B2 Stream liefert selbst keine Sendungsinfos,</li>
</ul>
</li>
<li>falls der Stream zwischendurch unterbrochen wurde setzen wir die verschiedenen <a href="http://de.wikipedia.org/wiki/MP3">mp3</a> Dateien zu einer zusammen (ohne Überblendung per Holzhammer: <a href="http://en.wikipedia.org/wiki/Cat_(Unix)">cat</a>)</li>
<li>Sendungsinfos parallel zum mp3 als <a href="http://de.wikipedia.org/wiki/Extensible_Markup_Language">xml</a> speichern, um nach Aufnahmeende von der DB unabhängig zu sein,</li>
<li>aus allen vorhandenen mp3+xml Paaren ein <a href="http://de.wikipedia.org/wiki/RSS">Podcast RSS</a> bauen und mit <a href="http://www.gnu.org/software/gzip/">gzip</a> packen,</li>
<li>tägliche Gleitlöschung (mp3 älter als 3 Wochen) per cron+<a href="http://de.wikipedia.org/wiki/Find">find</a> damit die Platte nicht volläuft.</li>
</ol>
<p>Den Podcast abonniert man schließlich z.B. mit <a href="http://de.wikipedia.org/wiki/ITunes">iTunes</a> und bekommt direkt nach der Sendung die frische Zündfunkfolge incl. komplettem Text zur Sendung frei Haus.</p>
<p>Das komplette <a href="http://gist.github.com/345983">Ruby Script gibts bei github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/03/radio-geeky/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>hübsche Dropbox Links</title>
		<link>http://blog.mro.name/2010/01/hubsche-dropbox-links/</link>
		<comments>http://blog.mro.name/2010/01/hubsche-dropbox-links/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 13:09:31 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Dropbox]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[Netiquette]]></category>
		<category><![CDATA[Redirect]]></category>
		<category><![CDATA[RewriteEngine]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1633</guid>
		<description><![CDATA[Weil große Email Anhänge stinken, bietet sich z.B. die Dropbox als Dateiaustauschplatform an. Einfach die Datei in den (lokalen) Dropbox/Public Ordner verfrachten, syncen lassen und per &#8220;Rechte Maustaste -&#62; Copy Public Link&#8221; in die Mail kopieren. Redirect Nun sind solche Links nicht besonders hübsch (Branding!, Branding!, CI! ruft die Marketingabteilung) und  spätestens wenn man&#8217;s abtippen [...]]]></description>
			<content:encoded><![CDATA[<p>Weil <a href="http://friendfeed.com/akawee/10ab93b0/e-mail-missbrauch-teil-2-der-anhang-ist-oft-die">große Email Anhänge stinken</a>, bietet sich z.B. die <a href="http://friendfeed.com/webjuwelen/9ed5b1a9/skrupellose-werbung-fur-die-dropbox-dieser">Dropbox</a> als Dateiaustauschplatform an.</p>
<p>Einfach die Datei in den (lokalen) Dropbox/Public Ordner verfrachten, syncen lassen und per &#8220;Rechte Maustaste -&gt; Copy Public Link&#8221; in die Mail kopieren.</p>
<h3>Redirect</h3>
<p>Nun sind solche Links nicht besonders hübsch (Branding!, Branding!, CI! ruft die Marketingabteilung) und  spätestens wenn man&#8217;s abtippen muß oder per Telephon weitersagt wird&#8217;s gruslig.</p>
<p>Hat man aber eine eigene Website, lassen sich die <a href="http://www.cimitan.com/blog/2008/09/17/htaccess-to-redirect-on-dropboxs-public-folder/#">Dropbox Links aufhübschen</a> und eine Weiterleitung einrichten, dann wird aus</p>
<pre>http://dl.dropbox.com/u/1234567/BigDocument.pdf</pre>
<p>z.B.</p>
<pre>http://dropbox.mydomain.com/BigDocument.pdf</pre>
<p>und schon sind die Brandingfreunde happy.</p>
<h3>index.html</h3>
<p>Geht es nicht um eine einzelne Datei sondern um mehrere, will man evtl. eine Übersicht in einer index.html haben. So eine Übersicht legt z.B. mein <a href="http://www.ruby-lang.org/de/">ruby</a> Script <a href="http://gist.github.com/271223">htmlizedb</a> an. Das Script will im <a href="http://de.wikipedia.org/wiki/Bourne-again_shell">Terminal</a> in dem Verzeichnis gestartet werden, für das die Übersicht her soll.</p>
<h3>Redirect + index.html</h3>
<p>Bei Webservern ist allgemein üblich, daß man den Dateinamen index.html im Link weglassen kann. Der Webserver nimmt dann an man meint selbige. Die Dropbox verhält sich aber in dieser Hinsicht nicht wie ein normaler Webserver, sondern will immer den kompletten Dateinamen.</p>
<p>Hat man aber bereits den Redirect Trick in Benutzung, läßt sich die Redirect Steuerdatei (<code>.htaccess</code>) aufbohren, daß der Redirect die index.html Angabe ergänzt:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">on</span>
<span style="color: #adadad; font-style: italic;"># dropbox abbreviation:</span>
<span style="color: #adadad; font-style: italic;"># http://www.cimitan.com/blog/2008/09/17/htaccess-to-redirect-on-dropboxs-public-folder/#</span>
<span style="color: #adadad; font-style: italic;"># last path component has no dot -&amp;gt; redirect to index.html</span>
<span style="color: #00007f;">RewriteRule</span> ^(.+/)?([^./]+)/?$	http://dl.dropbox.com/u/<span style="color: #ff0000;">1234567</span>/$<span style="color: #ff0000;">1</span>$<span style="color: #ff0000;">2</span>/index.html	[last,qsappend]
<span style="color: #adadad; font-style: italic;"># everything else: redirect as is</span>
<span style="color: #00007f;">RewriteRule</span> ^(.+)$	http://dl.dropbox.com/u/<span style="color: #ff0000;">1234567</span>/$<span style="color: #ff0000;">1</span>	[last,qsappend]</pre></div></div>

<p>violá, nun wird von</p>
<pre>http://dropbox.mydomain.com/FolderWithBigFiles</pre>
<p>automatisch auf den Dropbox Link</p>
<pre>http://dl.dropbox.com/u/1234567/FolderWithBigFiles/index.html</pre>
<p>weitergeleitet.</p>
<p>Toll, nicht?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/01/hubsche-dropbox-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Radiomitschnitt per Rezept</title>
		<link>http://blog.mro.name/2009/12/radiomitschnitt-per-rezept/</link>
		<comments>http://blog.mro.name/2009/12/radiomitschnitt-per-rezept/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 00:08:22 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Bayern2]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[Cronjob]]></category>
		<category><![CDATA[id3v2]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mitschnitt]]></category>
		<category><![CDATA[Radio]]></category>
		<category><![CDATA[Stream]]></category>
		<category><![CDATA[streamripper]]></category>
		<category><![CDATA[vServer]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1619</guid>
		<description><![CDATA[Seit längerem schneide ich mir interessante Sendungen aus dem (Internet-)Radio mit, vor allem Hörspiele auf B2. Bisher mußte dazu immer mein alter (Linux-)Rechner laufen und den Mitschnitt mußte ich händisch starten &#8211; wie unbequem. Oder man ist unterwegs und verpaßt den Mitschnitt. Wie ärgerlich. Doch das ist ab jetzt vorbei, denn ab sofort schneidet mein [...]]]></description>
			<content:encoded><![CDATA[<p>Seit längerem schneide ich mir interessante Sendungen aus dem (Internet-)Radio mit, vor allem <a href="http://www.br-online.de/bayern2/hoerspiel-und-medienkunst/index.xml">Hörspiele auf B2</a>.</p>
<p>Bisher mußte dazu immer mein alter (Linux-)Rechner laufen und den Mitschnitt mußte ich händisch starten &#8211; wie unbequem. Oder man ist unterwegs und verpaßt den Mitschnitt. Wie ärgerlich.</p>
<p>Doch das ist ab jetzt vorbei, denn ab sofort schneidet mein vServer (läuft ja eh ständig) mit!</p>
<p>Und so geht&#8217;s:</p>
<ol>
<li>Ein Script auf dem vServer, das den Mitschnitt startet und beendet:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># id3v2 scheint Bilder nicht zu mögen:</span>
<span style="color: #666666; font-style: italic;"># - http://ubuntuforums.org/showthread.php?t=1353213</span>
<span style="color: #666666; font-style: italic;"># - readonly: http://id3v2.cvs.sourceforge.net/viewvc/id3v2/id3v2/id3v2.cpp?revision=1.17&amp;amp;view=markup#l_610</span>
<span style="color: #666666; font-style: italic;"># - http://www.id3.org/id3v2.4.0-frames Kapitel4.14.</span>
<span style="color: #666666; font-style: italic;"># erfolglos: id3v2 --APIC &quot;0\0image/jpeg\03hello\0`cat moby_dick.jpg`&quot; $file</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> <span style="color: #660033;">-lt</span> <span style="color: #000000;">3</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;rip audio streams to a local file.&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot; &quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage:&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot; &quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  $0 stream marker duration id3v2_tags&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;    stream     typically a URL, see 'man streamripper'&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;    marker     filename prefix&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;    seconds    how long will we dump&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;    id3v2_tags optional, tag the download with id3v2&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot; &quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Example:&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;  $0 http://gffstream.ic.llnwd.net/stream/gffstream_w11a bayern2 3660&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot; &quot;</span>
	<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #007800;">src</span>=$<span style="color: #000000;">1</span> ; <span style="color: #7a0874; font-weight: bold;">shift</span>
<span style="color: #007800;"><span style="color: #c20cb9; font-weight: bold;">basename</span></span>=$<span style="color: #000000;">1</span> ; <span style="color: #7a0874; font-weight: bold;">shift</span>
<span style="color: #007800;">seconds</span>=$<span style="color: #000000;">1</span> ; <span style="color: #7a0874; font-weight: bold;">shift</span>
&nbsp;
<span style="color: #007800;">dst</span>=<span style="color: #007800;">$basename</span>-<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> <span style="color: #660033;">--iso-8601</span>=seconds<span style="color: #000000; font-weight: bold;">`</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;dumping <span style="color: #007800;">$seconds</span> (sec) from <span style="color: #007800;">$src</span> to <span style="color: #007800;">$dst</span> ...&quot;</span>
&nbsp;
streamripper <span style="color: #007800;">$src</span> <span style="color: #660033;">-u</span> Mozilla <span style="color: #660033;">-i</span> <span style="color: #660033;">-a</span> <span style="color: #007800;">$dst</span> <span style="color: #660033;">-l</span> <span style="color: #007800;">$seconds</span>
<span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #007800;">$dst</span>.cue
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> <span style="color: #660033;">-gt</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
	id3v2 <span style="color: #ff0000;">&quot;$@&quot;</span> <span style="color: #007800;">$dst</span>.mp3
<span style="color: #000000; font-weight: bold;">fi</span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">chmod</span> a+r <span style="color: #007800;">$dst</span>.<span style="color: #000000; font-weight: bold;">*</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">echo</span> done.</pre></div></div>

</li>
<li>Ein Cronjob für jeden Mitschnitt:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">PATH</span>=<span style="color: #000000; font-weight: bold;">/</span>bin:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin
<span style="color: #007800;">HOME</span>=<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>USERNAME
&nbsp;
<span style="color: #666666; font-style: italic;"># Recorder</span>
&nbsp;
<span style="color: #007800;">rec_cmd</span>=<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>USERNAME<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>stream-rip
<span style="color: #007800;">rec_dir</span>=<span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>USERNAME<span style="color: #000000; font-weight: bold;">/</span>pub<span style="color: #000000; font-weight: bold;">/</span>recorder
&nbsp;
<span style="color: #007800;">ON3</span>=http:<span style="color: #000000; font-weight: bold;">//</span>gffstream.ic.llnwd.net<span style="color: #000000; font-weight: bold;">/</span>stream<span style="color: #000000; font-weight: bold;">/</span>gffstream_w9a
<span style="color: #007800;">BAYERN1</span>=http:<span style="color: #000000; font-weight: bold;">//</span>gffstream.ic.llnwd.net<span style="color: #000000; font-weight: bold;">/</span>stream<span style="color: #000000; font-weight: bold;">/</span>gffstream_w10a
<span style="color: #007800;">BAYERN2</span>=http:<span style="color: #000000; font-weight: bold;">//</span>gffstream.ic.llnwd.net<span style="color: #000000; font-weight: bold;">/</span>stream<span style="color: #000000; font-weight: bold;">/</span>gffstream_w11a
<span style="color: #007800;">M945</span>=http:<span style="color: #000000; font-weight: bold;">//</span>stream.m945.mwn.de:<span style="color: #000000;">80</span><span style="color: #000000; font-weight: bold;">/</span>m945-hq.mp3
&nbsp;
<span style="color: #666666; font-style: italic;"># B2 Krimihörspiel</span>
<span style="color: #000000;">29</span> <span style="color: #000000;">20</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000;">3</span> <span style="color: #007800;">$rec_cmd</span> <span style="color: #007800;">$BAYERN2</span> <span style="color: #007800;">$rec_dir</span><span style="color: #000000; font-weight: bold;">/</span>b2-krimi <span style="color: #000000;">3660</span> <span style="color: #660033;">-A</span> <span style="color: #ff0000;">&quot;B2 Krimi&quot;</span></pre></div></div>

</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/12/radiomitschnitt-per-rezept/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Upgrade to Snow Leopard</title>
		<link>http://blog.mro.name/2009/11/upgrade-to-snow-leopard/</link>
		<comments>http://blog.mro.name/2009/11/upgrade-to-snow-leopard/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 21:58:42 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Graphviz]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[SANE]]></category>
		<category><![CDATA[SenTestingKit]]></category>
		<category><![CDATA[Snow Leopard]]></category>
		<category><![CDATA[Twain]]></category>
		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1391</guid>
		<description><![CDATA[Mac OS X 10.6 Snow Leopard (partition 25G, HFS+ Journaled, Upper/Lower) Mac OS X 10.5 Leopard (partition 25G, HFS+ Journaled, Upper/Lower) partition userspace 100G, HFS+ Journaled, Upper/Lower $ cat /etc/fstab # mount partition &#34;userspace&#34; as /Users UUID=D016E3FD-E322-3006-A8F5-D2348C6A5B7B /Users hfs rw,auto create user &#8220;mig&#8221; TimeMachine restore Users + Settings delete user &#8220;mig&#8221; manually copy user &#8220;Shared&#8221; [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>Mac OS X 10.6 Snow Leopard (partition 25G, HFS+ Journaled, Upper/Lower)</li>
<li>Mac OS X 10.5 Leopard (partition 25G, HFS+ Journaled, Upper/Lower)</li>
<li>partition userspace 100G, HFS+ Journaled, Upper/Lower

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>fstab
<span style="color: #666666; font-style: italic;"># mount partition &quot;userspace&quot; as /Users</span>
<span style="color: #007800;">UUID</span>=D016E3FD-E322-<span style="color: #000000;">3006</span>-A8F5-D2348C6A5B7B	<span style="color: #000000; font-weight: bold;">/</span>Users	hfs	rw,auto</pre></div></div>

</li>
<li>create user &#8220;mig&#8221;</li>
<li>TimeMachine restore Users + Settings</li>
<li>delete user &#8220;mig&#8221;</li>
<li>manually copy user &#8220;Shared&#8221;</li>
<li>iPhone SDK 3.1.2 + XCode 3.2.1</li>
<li><a href="http://rentzsch.com/code/mogenerator_v1.5">modgenerator 1.5</a> plus <a href="http://aralbalkan.com/2152">trick</a>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">ln</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">/</span>Developer<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>momc <span style="color: #000000; font-weight: bold;">/</span>Developer<span style="color: #000000; font-weight: bold;">/</span>Library<span style="color: #000000; font-weight: bold;">/</span>Xcode<span style="color: #000000; font-weight: bold;">/</span>Plug-ins<span style="color: #000000; font-weight: bold;">/</span>XDCoreDataModel.xdplugin<span style="color: #000000; font-weight: bold;">/</span>Contents<span style="color: #000000; font-weight: bold;">/</span>Resources<span style="color: #000000; font-weight: bold;">/</span>momc</pre></div></div>

</li>
<li><a href="http://code.google.com/p/git-osx-installer/">git 1.6.5.2</a>, manually add to <code>.bash_profile</code>:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">export</span> <span style="color: #007800;">PATH</span>=<span style="color: #007800;">$PATH</span>:<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>bin</pre></div></div>

</li>
<li><a href="http://www.macports.org/install.php">Macports</a> / http://trac.macports.org/wiki/Migration

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port selfupdate
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #c20cb9; font-weight: bold;">install</span> bcpp pwgen <span style="color: #c20cb9; font-weight: bold;">wget</span> lftp fortune optipng graphviz ragel imagemagick
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port clean <span style="color: #660033;">--all</span> installed
$ <span style="color: #c20cb9; font-weight: bold;">sudo</span> port <span style="color: #660033;">-f</span> uninstall inactive</pre></div></div>

</li>
<li><a href="http://www.graphviz.org/Download_macos.php">graphviz-2.25.20091129.0545.pkg</a></li>
<li><a href="http://www.barebones.com/products/TextWrangler/">Textwrangler 3.0 (2538)</a></li>
<li><a href="http://gimp.lisanet.de/Website/Download.html">Gimp 2.6.7</a></li>
<li><a href="http://www.neooffice.org/neojava/de/mirrors.php?file=NeoOffice-3.0-Intel.dmg">NeoOffice 3.0.1</a></li>
<li><a href="http://www.evernote.com/about/intl/de/download/">Evernote 1.5.2 (62233)</a></li>
<li><a href="http://www.truecrypt.org/downloads">TrueCrypt 6.3a</a></li>
<li><a href="http://www.dropbox.com/">Dropbox v0.6.570</a></li>
<li><a href="http://skype.com/">Skype 2.8.0.722</a></li>
<li><a href="http://www.mozilla-europe.org/de/firefox/">Firefox 3.5,5</a></li>
<li><a href="http://www.getmiro.com/">Miro Video Player 2.5.3 (775f9134)</a></li>
<li><a href="http://sourceforge.net/projects/maxima/files/">wxMaxima-0.8.3 &amp; Maxima-5.19.2.dmg</a></li>
<li><a href="http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/">Twain SANE Scanner Support</a></li>
</ol>
<p>Remaining issues:</p>
<ol>
<li>SenTestingKit error highlighting not working.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/11/upgrade-to-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Was belegt eigentlich wieviel Plattenplatz?</title>
		<link>http://blog.mro.name/2009/11/was-belegt-eigentlich-wieviel-plattenplatz/</link>
		<comments>http://blog.mro.name/2009/11/was-belegt-eigentlich-wieviel-plattenplatz/#comments</comments>
		<pubDate>Fri, 27 Nov 2009 20:36:53 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jdiskreport]]></category>
		<category><![CDATA[Webstart]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1394</guid>
		<description><![CDATA[sagt einem JDiskReport (z.B. per Java Webstart) recht schön zum Durchklicken:]]></description>
			<content:encoded><![CDATA[<p>sagt einem <a href="http://www.jgoodies.com/freeware/jdiskreport/">JDiskReport</a> (z.B. <a href="http://www.jgoodies.com/download/jdiskreport/jdiskreport.jnlp">per Java Webstart</a>) recht schön zum Durchklicken:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.jgoodies.com/freeware/jdiskreport/images/jdiskreport_med.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/11/was-belegt-eigentlich-wieviel-plattenplatz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Email Sicherheit II &#8211; neue Zertifikate</title>
		<link>http://blog.mro.name/2009/11/email-sicherheit-ii-neue-zertifikate/</link>
		<comments>http://blog.mro.name/2009/11/email-sicherheit-ii-neue-zertifikate/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 00:09:28 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[CAcert]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[S/MIME]]></category>
		<category><![CDATA[Thawte]]></category>
		<category><![CDATA[X.509]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1371</guid>
		<description><![CDATA[Nachdem Thawte die Lust verloren hat kostenlose Email Zertifikate auszugeben, bin ich eben zu CAcert gewechselt. Schien mir sogar noch einfacher als damals bei Thawte. Ein kleiner Wermutstropfen ist, daß CAcert Zertifikate (leider) noch selten von Haus aus als vertrauenswürdig eingestuft werden. P.S.: Thunderbird zickt ein wenig wegen den Root-Zertifikate von CAcert, aber folgt man [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem <a href="http://www.heise.de/security/meldung/Thawte-stellt-Web-of-Trust-fuer-kostenlose-SSL-Zertifikate-ein-822145.html">Thawte die Lust verloren hat kostenlose Email Zertifikate auszugeben</a>, bin ich eben zu <a href="https://www.cacert.org/index.php?id=1">CAcert</a> gewechselt. Schien mir sogar noch einfacher als <a href="http://blog.mro.name/2009/03/email-sicherheit/">damals bei Thawte</a>.</p>
<p>Ein kleiner Wermutstropfen ist, daß <a href="http://de.wikipedia.org/wiki/CAcert#Vertrauensw.C3.BCrdigkeit">CAcert Zertifikate (leider) noch selten von Haus aus als vertrauenswürdig eingestuft werden</a>.</p>
<p>P.S.: Thunderbird zickt ein wenig wegen den Root-Zertifikate von CAcert, aber folgt man der <a href="http://wiki.cacert.org/ThunderBird">Anleitung  von CAcert</a> ist das auch fix vom Tisch.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/11/email-sicherheit-ii-neue-zertifikate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>T-Mobile Rechnungen auspacken und umbenennen</title>
		<link>http://blog.mro.name/2009/11/t-mobile-rechnungen-auspacken-umbenennen/</link>
		<comments>http://blog.mro.name/2009/11/t-mobile-rechnungen-auspacken-umbenennen/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 17:50:19 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[GnuPG]]></category>
		<category><![CDATA[gpg]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[T-Mobile]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1354</guid>
		<description><![CDATA[über T-Mobile RechnungOnline kann man sich die Rechnung als gpg-verschlüsselten Anhang per Mail schicken lassen &#8211; incl. Einzelverbindungsnachweis. Und obwohl&#8217;s nur 1x im Monat kommt, ist das Auspacken und Umbenennen in sinnvolle Dateinamen eine lästige Routinearbeit. Also &#8211; automatisieren. Das folgende Ruby-Script erledigt das, nachdem der Rechnungsanhang in einen der Ordner &#8220;Downloads&#8221; oder &#8220;Desktop&#8221; gelegt [...]]]></description>
			<content:encoded><![CDATA[<p>über <a href="http://www.t-mobile.de/faq/1,1951,18-_,00.html">T-Mobile RechnungOnline</a> kann man sich die Rechnung als <a href="http://www.gnupg.org/">gpg</a>-verschlüsselten Anhang per Mail schicken lassen &#8211; incl. Einzelverbindungsnachweis. Und obwohl&#8217;s nur 1x im Monat kommt, ist das Auspacken und Umbenennen in sinnvolle Dateinamen eine lästige Routinearbeit.</p>
<p>Also &#8211; automatisieren. Das folgende Ruby-Script erledigt das, nachdem der Rechnungsanhang in einen der Ordner &#8220;Downloads&#8221; oder &#8220;Desktop&#8221; gelegt wurde:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/ruby</span>
&nbsp;
dst=<span style="color:#996600;">&quot;#{ENV['HOME']}/Documents/tmobile&quot;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># 1. pull together all pgp crypted find Rechnung_15.10.2009.zip.pgp in Desktop, Downloads, local dir</span>
<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">&quot;#{ENV['HOME']}/Downloads&quot;</span>, <span style="color:#996600;">&quot;#{ENV['HOME']}/Desktop&quot;</span>, dst<span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>dir<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#CC00FF; font-weight:bold;">Dir</span>.<span style="color:#9900CC;">foreach</span><span style="color:#006600; font-weight:bold;">&#40;</span>dir<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>file<span style="color:#006600; font-weight:bold;">|</span>
    m = <span style="color:#006600; font-weight:bold;">/</span>Rechnung_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>\.<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>\.<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>\.<span style="color:#9900CC;">zip</span><span style="color:#006600; font-weight:bold;">&#40;</span>\.<span style="color:#9900CC;">pgp</span><span style="color:#006600; font-weight:bold;">|</span>\.<span style="color:#9900CC;">gpg</span><span style="color:#006600; font-weight:bold;">&#41;</span>?<span style="color:#006600; font-weight:bold;">/</span>.<span style="color:#9900CC;">match</span> file
    <span style="color:#9966CC; font-weight:bold;">if</span> m
      s = <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;mv #{dir}/#{file} #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}&quot;</span>
      s = <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;gpg #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#93;</span>
      <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;rm #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> s <span style="color:#006600; font-weight:bold;">&amp;&amp;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#93;</span>
      s = <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;unzip #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip&quot;</span>
      <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;rm #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> s
      <span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;de-crypted &amp; unpacked #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip&quot;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># 2. rename unpacked files accordingly</span>
<span style="color:#CC00FF; font-weight:bold;">Dir</span>.<span style="color:#9900CC;">foreach</span><span style="color:#006600; font-weight:bold;">&#40;</span>dst<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>file<span style="color:#006600; font-weight:bold;">|</span>
  m = <span style="color:#006600; font-weight:bold;">/</span>^Rechnung_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>_<span style="color:#006600; font-weight:bold;">&#40;</span>.<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#41;</span>$<span style="color:#006600; font-weight:bold;">/</span>.<span style="color:#9900CC;">match</span> file
  <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;mv #{dst}/#{file} #{dst}/#{m[1]}-#{m[2]}-bill-#{m[3]}&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> m
  m = <span style="color:#006600; font-weight:bold;">/</span>^Einzelverbindungsnachweis_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>_<span style="color:#006600; font-weight:bold;">&#40;</span>.<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#41;</span>$<span style="color:#006600; font-weight:bold;">/</span>.<span style="color:#9900CC;">match</span> file
  <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;mv #{dst}/#{file} #{dst}/#{m[1]}-#{m[2]}-evn--#{m[3]}&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> m
  m = <span style="color:#006600; font-weight:bold;">/</span>^Rechnung_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">5</span>,<span style="color:#006666;">20</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span>.<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#41;</span>$<span style="color:#006600; font-weight:bold;">/</span>.<span style="color:#9900CC;">match</span> file
  <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;mv #{dst}/#{file} #{dst}/#{m[3]}-#{m[2]}-bill-#{m[1]}#{m[4]}&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> m
  m = <span style="color:#006600; font-weight:bold;">/</span>^Einzelverbindungsnachweis_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">5</span>,<span style="color:#006666;">20</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>_<span style="color:#006600; font-weight:bold;">&#40;</span>\d<span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#40;</span>.<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#41;</span>$<span style="color:#006600; font-weight:bold;">/</span>.<span style="color:#9900CC;">match</span> file
  <span style="color:#CC0066; font-weight:bold;">system</span> <span style="color:#996600;">&quot;mv #{dst}/#{file} #{dst}/#{m[3]}-#{m[2]}-evn--#{m[1]}#{m[4]}&quot;</span> <span style="color:#9966CC; font-weight:bold;">if</span> m
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/11/t-mobile-rechnungen-auspacken-umbenennen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ist das zensursula?</title>
		<link>http://blog.mro.name/2009/10/ist-das-zensursula/</link>
		<comments>http://blog.mro.name/2009/10/ist-das-zensursula/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 21:59:04 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Root-Nameserver]]></category>
		<category><![CDATA[T-Online]]></category>
		<category><![CDATA[zensursula]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1306</guid>
		<description><![CDATA[Seit heute ca. 15:30 sind die Root-Nameserver für mich (T-Online Kunde) nicht mehr erreichbar: $ nslookup google.com - j.root-servers.net Server: j.root-servers.net Address: 192.58.128.30#53 Non-authoritative answer: *** Can't find google.com: No answer Ist das die Vorbereitung der China Wochen bei T-Online &#38; Co.? Bei Gelegenheit mal ausprobieren: eigene bind Nameserver Instanz. [Update]: Am rosa Riesen scheint&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>Seit heute ca. 15:30 sind die <a href="http://de.wikipedia.org/wiki/Root-Nameserver">Root-Nameserver</a> für mich (T-Online Kunde) nicht mehr erreichbar:</p>
<pre>$ nslookup google.com - j.root-servers.net
Server:		j.root-servers.net
Address:	192.58.128.30#53

Non-authoritative answer:
*** Can't find google.com: No answer</pre>
<p>Ist das die Vorbereitung der <a href="http://www.zdnet.de/news/wirtschaft_sicherheit_security_geheime_technische_details_zum_internetzensurgesetz_aufgetaucht_story-39001024-41515822-1.htm">China Wochen</a> bei T-Online &amp; Co.? Bei Gelegenheit mal ausprobieren: <a href="http://www.zdnet.de/sicherheit_in_der_praxis_sperre_von_freien_dns_servern_so_umgeht_man_die_blockade_story-39001543-41502966-1.htm">eigene bind Nameserver Instanz</a>.</p>
<p><strong>[Update]</strong>: Am rosa Riesen scheint&#8217;s nicht zu liegen &#8211; das Problem liegt wohl in <a href="http://de.wikipedia.org/wiki/OSI-Modell">Layer 8</a>.</p>
<pre>$ nslookup google.com - resolver1.opendns.com
Server:		resolver1.opendns.com
Address:	208.67.222.222#53

Non-authoritative answer:
Name:	google.com
Address: 74.125.67.100
Name:	google.com
Address: 74.125.45.100
Name:	google.com
Address: 74.125.53.100</pre>
<p>In Zukunft also nicht mehr mit den Root-Nameservern, sondern einem vom <a href="http://ccc.de/censorship/dns-howto/#dnsserver">CCC</a> empfohlenen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/10/ist-das-zensursula/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sane Batch Scan Workaround</title>
		<link>http://blog.mro.name/2009/07/sane-batch-scan-workaroun/</link>
		<comments>http://blog.mro.name/2009/07/sane-batch-scan-workaroun/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 14:29:36 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[ImageMagick]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[printf]]></category>
		<category><![CDATA[SANE]]></category>
		<category><![CDATA[scanimage]]></category>
		<category><![CDATA[Scanner]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1141</guid>
		<description><![CDATA[Obwohl scanimage aus dem SANE Werkzeugkasten in der (aktuellen?) OS X Version $ scanimage --version scanimage &#40;sane-backends&#41; 1.0.21cvs; backend version 1.0.21 (installiert nach http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/) beim Versuch per &#8220;batch&#8221; mehrere Seiten zu scannen jeweils nach Seite 1 aus der Kurve fliegt: $ scanimage --batch-start=45 --batch-count=16 --batch --batch-prompt \ --format=pnm --mode Color --resolution 300 ... Scanning page [...]]]></description>
			<content:encoded><![CDATA[<p>Obwohl <a href="http://www.sane-project.org/man/scanimage.1.html">scanimage</a> aus dem <a href="http://de.wikipedia.org/wiki/Scanner_Access_Now_Easy">SANE</a> Werkzeugkasten in der (aktuellen?) <a href="http://de.wikipedia.org/wiki/OS_X">OS X</a> Version</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ scanimage <span style="color: #660033;">--version</span>
scanimage <span style="color: #7a0874; font-weight: bold;">&#40;</span>sane-backends<span style="color: #7a0874; font-weight: bold;">&#41;</span> 1.0.21cvs; backend version 1.0.21</pre></div></div>

<p>(installiert nach <a href="http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/">http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/</a>) beim Versuch per &#8220;batch&#8221; mehrere Seiten zu scannen jeweils nach Seite 1 aus der Kurve fliegt:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ scanimage <span style="color: #660033;">--batch-start</span>=<span style="color: #000000;">45</span> <span style="color: #660033;">--batch-count</span>=<span style="color: #000000;">16</span> <span style="color: #660033;">--batch</span> <span style="color: #660033;">--batch-prompt</span> \
<span style="color: #660033;">--format</span>=pnm <span style="color: #660033;">--mode</span> Color <span style="color: #660033;">--resolution</span> <span style="color: #000000;">300</span>
...
Scanning page <span style="color: #000000;">46</span>
scanimage: sane_start: Invalid argument</pre></div></div>

<p>und das auch ein <a href="http://forum.ubuntuusers.de/topic/probleme-mit-scanner-im-batch-betrieb-scanima/?highlight=pag#post-761267">bekanntes Problem</a> zu sein scheint, gibt&#8217;s einen Workaround per selbstgebautem Shell-Script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #666666; font-style: italic;"># http://blog.mro.name/2009/07/sane-batch-scan-workaroun/</span>
<span style="color: #007800;">pre</span>=scan-<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">date</span> <span style="color: #ff0000;">&quot;+%Y-%m-%dT%H:%M&quot;</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;To create a pdf, call after scanning the pages:&quot;</span>
<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;    convert <span style="color: #007800;">$pre</span>*.png -despeckle -density 100x100 -compress JPEG -quality 50 -page a4 <span style="color: #007800;">$pre</span>.pdf&quot;</span>
<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #007800;">i</span>=<span style="color: #000000;">0</span>;i <span style="color: #000000; font-weight: bold;">&lt;</span> <span style="color: #000000;">100</span>;i++<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Place document no. <span style="color: #007800;">$i</span> on the scanner.&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Press &amp;lt;RETURN&amp;gt; to continue, &amp;lt;q&amp;gt; + &amp;lt;RETURN&amp;gt; to quit.&quot;</span>
	<span style="color: #7a0874; font-weight: bold;">echo</span> \\a
	<span style="color: #c20cb9; font-weight: bold;">read</span> key
	<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$key</span> == <span style="color: #ff0000;">&quot;q&quot;</span> <span style="color: #000000; font-weight: bold;">||</span> <span style="color: #007800;">$key</span> == <span style="color: #ff0000;">&quot;Q&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
		<span style="color: #7a0874; font-weight: bold;">break</span>
	<span style="color: #000000; font-weight: bold;">fi</span>
	<span style="color: #007800;">dst</span>=<span style="color: #007800;">$pre</span>-page$<span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">printf</span> <span style="color: #000000; font-weight: bold;">%</span>03d <span style="color: #007800;">$i</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
	scanimage <span style="color: #660033;">--mode</span> Gray <span style="color: #660033;">--resolution</span> <span style="color: #000000;">300</span> <span style="color: #660033;">--buffer-size</span>=<span style="color: #000000;">1024</span> <span style="color: #660033;">--progress</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #007800;">$dst</span>.pnm
	<span style="color: #666666; font-style: italic;"># background conversion:</span>
	<span style="color: #7a0874; font-weight: bold;">&#40;</span>convert <span style="color: #007800;">$dst</span>.pnm <span style="color: #660033;">-level</span> <span style="color: #000000;">15</span>,<span style="color: #000000;">85</span><span style="color: #000000; font-weight: bold;">%</span> <span style="color: #660033;">-density</span> 300x300 <span style="color: #660033;">-type</span> grayscale \
		<span style="color: #660033;">-resample</span> 100x100 <span style="color: #007800;">$dst</span>.png <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #007800;">$dst</span>.pnm<span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #000000; font-weight: bold;">&amp;</span>
<span style="color: #000000; font-weight: bold;">done</span>
<span style="color: #c20cb9; font-weight: bold;">ls</span> <span style="color: #660033;">-l</span> <span style="color: #007800;">$pre</span><span style="color: #000000; font-weight: bold;">*</span></pre></div></div>

<p>é voilá.</p>
<p>Um das ganze dann noch in ein PDF moderater Größe zu verwandeln genügt (<a href="http://www.imagemagick.org/script/binary-releases.php#macosx">ImageMagick z.B. via darwinport</a> vorausgesetzt):</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #000000; font-weight: bold;">time</span> convert <span style="color: #000000; font-weight: bold;">*</span>.png <span style="color: #660033;">-despeckle</span> <span style="color: #660033;">-density</span> 100x100 \
<span style="color: #660033;">-compress</span> JPEG <span style="color: #660033;">-quality</span> <span style="color: #000000;">75</span> <span style="color: #660033;">-page</span> a4 out.pdf
&nbsp;
real	3m39.867s
user	2m55.069s
sys	0m9.628s</pre></div></div>

<p>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/07/sane-batch-scan-workaroun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ruby: parse Apache Serverlogs</title>
		<link>http://blog.mro.name/2009/07/ruby-parse-apache-serverlogs/</link>
		<comments>http://blog.mro.name/2009/07/ruby-parse-apache-serverlogs/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 21:59:43 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[logfile]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[serverlogs]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1108</guid>
		<description><![CDATA[Yields a hashmap for every line: require 'date' &#160; class Apache def self.each_request&#40;src=$stdin&#41; ip_pat=/&#40;?:&#91;0-9&#93;+\.&#41;&#123;3&#125;&#91;0-9&#93;+/ date_pat=/\&#91;&#91;^\&#93;&#93;+\&#93;/ req_pat=/&#34;([A-Z]+)\s([^\s]+)\s([^\s]+)&#34;/ ref_pat=/&#34;([^&#34;&#93;+&#41;&#34;/ date_fmt = '[%d/%b/%Y:%H:%M:%S %Z]' apache_pat = Regexp.new( &#34;&#40;#{ip_pat})\s([^\s]+)\s([^\s]+)\s&#34; &#60; &#60; &#34;(#{date_pat})\s#{req_pat}\s([0-9]+)\s(-&#124;[0-9]+)\s#{ref_pat}\s#{ref_pat}&#34;&#41; src.each_line do &#124;l&#124; m = apache_pat.match l if m r = &#123; :ip =&#62; m&#91;1&#93;, :uid =&#62; m&#91;2&#93;, :auth =&#62; m&#91;3&#93;, :date =&#62; DateTime.strptime&#40;m&#91;4&#93;,date_fmt&#41;, :method =&#62; m&#91;5&#93;, [...]]]></description>
			<content:encoded><![CDATA[<p>Yields a hashmap for every line:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'date'</span>
&nbsp;
<span style="color:#9966CC; font-weight:bold;">class</span> Apache
  <span style="color:#9966CC; font-weight:bold;">def</span> <span style="color:#0000FF; font-weight:bold;">self</span>.<span style="color:#9900CC;">each_request</span><span style="color:#006600; font-weight:bold;">&#40;</span>src=$stdin<span style="color:#006600; font-weight:bold;">&#41;</span>
    ip_pat=<span style="color:#006600; font-weight:bold;">/</span><span style="color:#006600; font-weight:bold;">&#40;</span>?:<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">+</span>\.<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">0</span><span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">9</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">+/</span>
    date_pat=<span style="color:#006600; font-weight:bold;">/</span>\<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#91;</span>^\<span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">+</span>\<span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">/</span>
    req_pat=<span style="color:#006600; font-weight:bold;">/</span><span style="color:#996600;">&quot;([A-Z]+)<span style="color:#000099;">\s</span>([^<span style="color:#000099;">\s</span>]+)<span style="color:#000099;">\s</span>([^<span style="color:#000099;">\s</span>]+)&quot;</span><span style="color:#006600; font-weight:bold;">/</span>
    ref_pat=<span style="color:#006600; font-weight:bold;">/</span><span style="color:#996600;">&quot;([^&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#996600;">&quot;/
    date_fmt = '[%d/%b/%Y:%H:%M:%S %Z]'
    apache_pat = Regexp.new( &quot;</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#008000; font-style:italic;">#{ip_pat})\s([^\s]+)\s([^\s]+)\s&quot; &lt; &lt;</span>
      <span style="color:#996600;">&quot;(#{date_pat})<span style="color:#000099;">\s</span>#{req_pat}<span style="color:#000099;">\s</span>([0-9]+)<span style="color:#000099;">\s</span>(-|[0-9]+)<span style="color:#000099;">\s</span>#{ref_pat}<span style="color:#000099;">\s</span>#{ref_pat}&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
    src.<span style="color:#9900CC;">each_line</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>l<span style="color:#006600; font-weight:bold;">|</span>
      m = apache_pat.<span style="color:#9900CC;">match</span> l
      <span style="color:#9966CC; font-weight:bold;">if</span> m
        r = <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#ff3333; font-weight:bold;">:ip</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:uid</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:auth</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">3</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:date</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#CC00FF; font-weight:bold;">DateTime</span>.<span style="color:#9900CC;">strptime</span><span style="color:#006600; font-weight:bold;">&#40;</span>m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">4</span><span style="color:#006600; font-weight:bold;">&#93;</span>,date_fmt<span style="color:#006600; font-weight:bold;">&#41;</span>,
          <span style="color:#ff3333; font-weight:bold;">:method</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">5</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:url</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">6</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:http</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">7</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:status</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">8</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:bytes</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">9</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:referrer</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">10</span><span style="color:#006600; font-weight:bold;">&#93;</span>,
          <span style="color:#ff3333; font-weight:bold;">:agent</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> m<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006666;">11</span><span style="color:#006600; font-weight:bold;">&#93;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
        <span style="color:#9966CC; font-weight:bold;">yield</span> r
       <span style="color:#9966CC; font-weight:bold;">else</span>
        <span style="color:#ff6633; font-weight:bold;">$stderr</span>.<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;Unparseable line: '#{l}'&quot;</span>
      <span style="color:#9966CC; font-weight:bold;">end</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<p>maybe there are faster ways, but it&#8217;s quite convenient this way.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/07/ruby-parse-apache-serverlogs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seltsamer Internet-Teilausfall</title>
		<link>http://blog.mro.name/2009/06/seltsamer-internet-teilausfall/</link>
		<comments>http://blog.mro.name/2009/06/seltsamer-internet-teilausfall/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 12:32:48 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Ausfall]]></category>
		<category><![CDATA[BKA]]></category>
		<category><![CDATA[Outage]]></category>
		<category><![CDATA[T-DSL]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1102</guid>
		<description><![CDATA[Momentan gibt&#8217;s bei mir (via T-DSL / München) Probleme bei transatlantischen Zugriffen: Hat da wohl ein BKA Prakti falsch geklickt? Naja, immerhin keine Stop Seite vom antipornographischen Schutzwall. Nachtrag: Jetzt (14:51) geht&#8217;s wieder.]]></description>
			<content:encoded><![CDATA[<p>Momentan gibt&#8217;s bei mir (via T-DSL / München) Probleme bei transatlantischen Zugriffen:</p>
<div id="attachment_1103" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.mro.name/wp-content/2009/06/nix-transatlantik.png"><img class="size-medium wp-image-1103" title="nix-transatlantik" src="http://blog.mro.name/wp-content/2009/06/nix-transatlantik-300x173.png" alt=".com: nix - .de: ok" width="300" height="173" /></a><p class="wp-caption-text">.com: nix - .de: ok</p></div>
<p>Hat da wohl ein BKA Prakti falsch geklickt? Naja, immerhin keine <a href="http://files.getdropbox.com/u/965005/stop.html">Stop Seite vom antipornographischen Schutzwall</a>.</p>
<p>Nachtrag: Jetzt (14:51) geht&#8217;s wieder.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/06/seltsamer-internet-teilausfall/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>X11 Quertz</title>
		<link>http://blog.mro.name/2009/06/x11-quertz/</link>
		<comments>http://blog.mro.name/2009/06/x11-quertz/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 11:17:23 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[gentoo]]></category>
		<category><![CDATA[HAL]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Quertz]]></category>
		<category><![CDATA[Tastatur]]></category>
		<category><![CDATA[X11]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1059</guid>
		<description><![CDATA[Seltsamerweise hat mein gentoo Rechner vergessen, daß eine Quertz-Tastatur dranhängt. Die /etc/hal/fdi/policy/10-xinput-configuration.fdi Konfig-Datei hat komplett gefehlt; also wie hier beschrieben &#60; ?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&#62; &#60;!-- Section &#34;InputDevice&#34; Driver &#34;evdev&#34; Option &#34;XkbLayout&#34; &#34;de&#34; EndSection --&#62; &#160; &#60;deviceinfo version=&#34;0.2&#34;&#62; &#60;match key=&#34;info.capabilities&#34; contains=&#34;input.keyboard&#34;&#62; &#60;merge key=&#34;input.x11_options.XkbLayout&#34; type=&#34;string&#34;&#62;de&#60;/merge&#62; &#60;merge key=&#34;input.x11_options.XkbVariant&#34; type=&#34;string&#34;&#62;nodeadkeys&#60;/merge&#62; &#60;/match&#62; &#60;/deviceinfo&#62; eingetragen und alle sind glücklich.]]></description>
			<content:encoded><![CDATA[<p>Seltsamerweise hat mein <a href="http://de.wikipedia.org/wiki/Gentoo_Linux">gentoo Rechner</a> vergessen, daß eine <a href="http://de.wikipedia.org/wiki/Quertz">Quertz</a>-Tastatur dranhängt.</p>
<p><span id="more-1059"></span><br />
Die <code>/etc/hal/fdi/policy/10-xinput-configuration.fdi</code> Konfig-Datei hat komplett gefehlt; also wie <a href="http://de.gentoo-wiki.com/wiki/Xorg_1.5_Upgrade">hier beschrieben</a></p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;">&lt; ?xml <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #808080; font-style: italic;">&lt;!--</span>
<span style="color: #808080; font-style: italic;">Section &quot;InputDevice&quot;</span>
<span style="color: #808080; font-style: italic;">   Driver &quot;evdev&quot;</span>
<span style="color: #808080; font-style: italic;">   Option &quot;XkbLayout&quot; &quot;de&quot;</span>
<span style="color: #808080; font-style: italic;">EndSection</span>
<span style="color: #808080; font-style: italic;">--&gt;</span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;deviceinfo</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;0.2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;match</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;info.capabilities&quot;</span> <span style="color: #000066;">contains</span>=<span style="color: #ff0000;">&quot;input.keyboard&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;merge</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;input.x11_options.XkbLayout&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>de<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/merge<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;merge</span> <span style="color: #000066;">key</span>=<span style="color: #ff0000;">&quot;input.x11_options.XkbVariant&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;string&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>nodeadkeys<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/merge<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/match<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/deviceinfo<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>eingetragen und alle sind glücklich.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/06/x11-quertz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Übt die T-Kom schon Zensieren?</title>
		<link>http://blog.mro.name/2009/06/ubt-die-t-kom-schon-zensieren/</link>
		<comments>http://blog.mro.name/2009/06/ubt-die-t-kom-schon-zensieren/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 12:56:05 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[Nameserver]]></category>
		<category><![CDATA[T-Kom]]></category>
		<category><![CDATA[T-Online]]></category>
		<category><![CDATA[Zensur]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=984</guid>
		<description><![CDATA[&#8212; eben gesehen und an Zensur gedacht. Was soll das denn? Ich finde das mindestens sehr aufdringlich. Da ist bald ein anderer Nameserver fällig. (Oder verstehe ich das komplett falsch?)]]></description>
			<content:encoded><![CDATA[<div id="attachment_985" class="wp-caption alignleft" style="width: 160px"><a href="http://blog.mro.name/wp-content/2009/06/t-kom-annoyance.png"><img class="size-thumbnail wp-image-985" title="t-kom-annoyance" src="http://blog.mro.name/wp-content/2009/06/t-kom-annoyance.png" alt="Ist das schon die Vorstufe zum DNS Blocking?" width="150" height="150" /></a><p class="wp-caption-text">Ist das schon die Vorstufe zum DNS Blocking?</p></div>
<p>&mdash; eben gesehen und an Zensur gedacht.</p>
<p>Was soll das denn? Ich finde das mindestens sehr aufdringlich. Da ist bald ein anderer Nameserver fällig.</p>
<p>(Oder verstehe ich das komplett falsch?)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/06/ubt-die-t-kom-schon-zensieren/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>iTunes Mediathek aus dem Home Verzeichnis raus</title>
		<link>http://blog.mro.name/2009/06/itunes-mediathek-aus-dem-home-verzeichnis-raus/</link>
		<comments>http://blog.mro.name/2009/06/itunes-mediathek-aus-dem-home-verzeichnis-raus/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 18:25:27 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=962</guid>
		<description><![CDATA[Damit das Home-Verzeichnis meines Macbooks mehr Arbeit und weniger Ballast enthält nehme ich die MP3s raus: und jetzt noch umschaufeln, iTunes -> Ablage -> Mediathek: fertig!]]></description>
			<content:encoded><![CDATA[<p>Damit das Home-Verzeichnis meines Macbooks mehr Arbeit und weniger Ballast enthält nehme ich die MP3s raus:</p>
<p><span id="more-962"></span><br />
<div id="attachment_963" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-963" title="iTunes Mediathek zentral" src="http://blog.mro.name/wp-content/2009/06/bild-18.png" alt="iTunes Mediathek zentral" width="400"  /><p class="wp-caption-text">iTunes Mediathek zentral</p></div></p>
<p>und jetzt noch umschaufeln, iTunes -> Ablage -> Mediathek:</p>
<p><img src="http://blog.mro.name/wp-content/2009/06/bild-19.png" alt="bild-19" title="bild-19" width="328" height="168" class="aligncenter size-full wp-image-964" /></p>
<p>fertig!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/06/itunes-mediathek-aus-dem-home-verzeichnis-raus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HFS Filesystem Party</title>
		<link>http://blog.mro.name/2009/06/hfs-filesystem-spas/</link>
		<comments>http://blog.mro.name/2009/06/hfs-filesystem-spas/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 16:28:23 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[DiskUtility]]></category>
		<category><![CDATA[DiskWarrior]]></category>
		<category><![CDATA[FileVault]]></category>
		<category><![CDATA[HFS]]></category>
		<category><![CDATA[MacBook]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=942</guid>
		<description><![CDATA[Vorgestern Nacht hat &#8211; möglicherweise im Zusammenhang mit einem unaufmerksam durchgeführten Java Update &#8211; das Filesystem meines Macbooks einen Schuß bekommen. Folge: Die Maschine bootet, bootet, bootet &#8211; und schaltet sich kommentarlos aus (sic!). Alles sehr ergonomisch &#8211; ohne verwirrende Fehlermeldungen. Also das &#8220;Disk Utility&#8221; von der Installations DVD gefragt &#8211; das beim &#8220;Verify&#8221; aus [...]]]></description>
			<content:encoded><![CDATA[<p>Vorgestern Nacht hat &#8211; möglicherweise im Zusammenhang mit einem unaufmerksam durchgeführten <a href="http://www.golem.de/0906/67782.html">Java Update</a> &#8211; das <a href="http://de.wikipedia.org/wiki/Hierarchisches_Dateisystem">Filesystem meines Macbooks</a> einen Schuß bekommen. Folge: Die Maschine bootet, bootet, bootet &#8211; und schaltet sich kommentarlos aus (sic!). Alles sehr ergonomisch &#8211; ohne verwirrende Fehlermeldungen.</p>
<p><span id="more-942"></span><br />
<div id="attachment_950" class="wp-caption aligncenter" style="width: 410px"><img class="aligncenter size-full wp-image-950" title="osx java update" src="http://blog.mro.name/wp-content/2009/06/bild-1.png" alt="Das letzte Lebenszeichen" width="400" /><p class="wp-caption-text">Das letzte Lebenszeichen.</p></div></p>
<div id="attachment_960" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-960" title="road to hell." src="http://blog.mro.name/wp-content/2009/06/bild-12.png" alt="The Road to Hell..." width="400" /><p class="wp-caption-text">The Road to Hell...</p></div>
<p>Also das <a href="http://kb.wisc.edu/helpdesk/page.php?id=3810">&#8220;Disk Utility&#8221; von der Installations DVD</a> gefragt &#8211; das beim &#8220;Verify&#8221; aus der Kurve flog und das Filesystem auch nicht reparieren konnte (Stichwort <a href="http://www.google.com/search?q=%22invalid+key+length%22">&#8220;Invalid Key Length&#8221;</a> und <a href="http://www.google.com/search?q=%22invalid+node+structure%22">&#8220;Invalid Node Structure&#8221;</a>). Also hab&#8217; ich meine Freunde von <a href="http://okapi.de/">Okapi</a> kontaktiert, die hatten den <a href="http://www.alsoft.com/DiskWarrior/ ">DiskWarrior</a> rumliegen, abholen und wieder nach Hause.</p>
<p>Nur &#8211; wie kriege ich den Krieger gestartet? Regulär booten ging nicht, Single-Mode oder von der Installations-DVD bedeutet read-only Partitionen, das DVD Laufwerk ist belegt und USB Stick hatte ich keinen. Ach ja, vom CodeWarrior hatte ich eine Version vor Oktober 2008 &#8211; dessen DVD bootete mein Macbook nicht.</p>
<div id="attachment_952" class="wp-caption aligncenter" style="width: 410px"><img class="size-full wp-image-952" title="dw-fehler" src="http://blog.mro.name/wp-content/2009/06/dw-fehler.png" alt="DiskWarrior Problem, eines der vielen." width="400" /><p class="wp-caption-text">DiskWarrior Problem, eines der vielen.</p></div>
<p>Inzwischen war&#8217;s 16:30 und ich klagte mein Leid meinem Mac-Kumpel, der kurzerhand beschloß bei mir vorbeizukommen, seinerseits mit Macbook, externer Festplatte und einem USB-Fisch. Wäre ja gelacht.</p>
<p>Nach ca. einer Stunde erfolglosen Versuchen den Warrior auf den USB-Stick, den USB-Stick in&#8217;s Macbook und den Warrior gestartet zu bekommen riß uns der Geduldsfaden und wir entschlossen uns zur Radikallösung:</p>
<ul>
<li>Festplatte ausbauen und extern an&#8217;s 2. Macbook anschließen,</li>
<li>alle relevanten Dateien (im wesenlichen iTunes, Libary und ~/.* Files)  aus dem <a href="http://de.wikipedia.org/wiki/FileVault">FileVault</a> (ja, ich geb&#8217;s zu) heraus auf&#8217;s Macbook-II und weiter über LAN auf meinen Gentoo-Desktop kopieren,</li>
<li>Platte wieder einbauen, Löschen und frisches OS X installieren + Systemupdate,</li>
<li>Daten von Gentoo-Rechner wieder auf&#8217;s Macbook (diesmal ohne FileVault),</li>
<li>iPhone SDK wieder installieren,</li>
<li><a href="http://wiki.mro.name/orga/wahid">Dropbox, git, Skype, Firefox, macports, bcpp, lftp, Gimp, NeoOffice, Inkscape, pwgen, TrueCrypt, etc.</a> wieder installieren.</li>
</ul>
<p>Fazit: Kein Datenverlust, aber ein zwei Tage Arbeitsausfall. Das Backup (gibt&#8217;s, ist aber nicht komplett und nicht komfortabel wiederherzustellen) muß besser werden. <a href="http://www.apple.com/de/timecapsule/">Time-Capsule</a>, ich komme&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/06/hfs-filesystem-spas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone als Modem a.k.a. Tethering</title>
		<link>http://blog.mro.name/2009/06/iphone-als-modem-aka-tethering/</link>
		<comments>http://blog.mro.name/2009/06/iphone-als-modem-aka-tethering/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 15:17:55 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Modem]]></category>
		<category><![CDATA[Tethering]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=913</guid>
		<description><![CDATA[OS 3.0 und unsere Freunde aus Österreich machen&#8217;s möglich: mit dem iPhone http://help.benm.at ansteuern, das passende Profil aussuchen, &#8220;Internet Tethering&#8221; in &#8220;Einstellungen -&#62; Allgemein -&#62; Netzwerk&#8221; einschalten , iPhone per USB ankabeln, im aufpoppenden Netzwerkeinstellungsdialog &#8220;Anwenden&#8221; fertig: So geht&#8217;s zumindest technisch &#8211; ob das zu den Vertragsbedingungen paßt ist eher unwahrscheinlich und muß jeder in [...]]]></description>
			<content:encoded><![CDATA[<p>OS 3.0 und unsere Freunde aus Österreich machen&#8217;s möglich:</p>
<p><img title="img_0667" src="http://blog.mro.name/wp-content/2009/06/img_0667.png" alt="img_0667" width="200" /> <img title="img_0666" src="http://blog.mro.name/wp-content/2009/06/img_0666.png" alt="img_0666" width="200" /></p>
<p><span id="more-913"></span></p>
<ol>
<li>mit dem iPhone <a href="http://help.benm.at">http://help.benm.at</a> ansteuern,</li>
<li>das passende Profil aussuchen,</li>
<li>&#8220;Internet Tethering&#8221; in &#8220;Einstellungen -&gt; Allgemein -&gt; Netzwerk&#8221; einschalten<br />
<img title="img_0664" src="http://blog.mro.name/wp-content/2009/06/img_0664.png" alt="img_0664" width="200" /> <img title="img_0665" src="http://blog.mro.name/wp-content/2009/06/img_0665.png" alt="img_0665" width="200" />,</li>
<li> iPhone per USB ankabeln,</li>
<li>im aufpoppenden Netzwerkeinstellungsdialog &#8220;Anwenden&#8221;<img class="alignnone size-small wp-image-915" title="tethering-macbook" src="http://blog.mro.name/wp-content/2009/06/tethering-macbook.png" alt="tethering-macbook" width="400" /></li>
<li>fertig:</li>
</ol>
<div id="attachment_974" class="wp-caption aligncenter" style="width: 160px"><img class="size-full wp-image-974" title="tethering" src="http://blog.mro.name/wp-content/2009/06/tethering.png" alt="Tethering" width="150" /><p class="wp-caption-text">Tethering</p></div>
<p>So geht&#8217;s zumindest technisch &#8211; ob das zu den Vertragsbedingungen paßt ist <a href="http://www.apfelnews.eu/2009/03/19/iphone-os-30-tethering-iphone-als-modem-via-bluetooth-oder-usb/">eher unwahrscheinlich</a>  und muß jeder in seinem Vertrag selbst nachgucken.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/06/iphone-als-modem-aka-tethering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
