<?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; OS X</title>
	<atom:link href="http://blog.mro.name/tag/osx/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>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>Tooltip: doxygen &amp; graphviz (OS X)</title>
		<link>http://blog.mro.name/2010/04/tooltip-doxygen-graphviz-os-x/</link>
		<comments>http://blog.mro.name/2010/04/tooltip-doxygen-graphviz-os-x/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 15:17:09 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[dot]]></category>
		<category><![CDATA[Doxygen]]></category>
		<category><![CDATA[Graphviz]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1721</guid>
		<description><![CDATA[ever seen error messages like this when generating doxygen docs for an iPhone/Mac Objective C project: .../build/doxygen/html/a00136.png' produced by dot is not a valid PNG! You should either select a different format (DOT_IMAGE_FORMAT in the config file) or install a more recent version of graphviz (1.7+) ? Happened to me this morning when running doxygen [...]]]></description>
			<content:encoded><![CDATA[<p>ever seen error messages like this when generating doxygen docs for an iPhone/Mac Objective C project:</p>
<pre>.../build/doxygen/html/a00136.png' produced by dot is not a valid PNG!
You should either select a different format (DOT_IMAGE_FORMAT in the config file) or install a more recent version of graphviz (1.7+)</pre>
<p>?</p>
<p>Happened to me this morning when running <a href="http://www.doxygen.org">doxygen</a> on another box. The <a href="http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc">doxygen dmg</a> was installed in <code>/Applications</code>, I even added the <a href="http://graphviz.darwinports.com/">graphviz macport</a>, so WTF.</p>
<p>It turned out, that</p>
<ul>
<li>the doxygen dmg brings everything it needs, including graphviz,</li>
<li><em>but</em>: the full path to the dot executable has to be set <em>inside</em> the <a href="http://www.stack.nl/~dimitri/doxygen/config.html#cfg_dot_path">doxygen config</a>.</li>
</ul>
<p>So, when using the dot from the doxygen dmg, it has to be set to</p>
<pre>/Applications/Doxygen.app/Contents/Resources</pre>
<p>I fixed <a href="http://wiki.mro.name/orga/xcode_project_setup#makefile">my generic Makefile</a> and make a good guess now while keeping things configurable per user as the Makefile and doxygen config are committed sources and should not contain user specific settings.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/04/tooltip-doxygen-graphviz-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Binary Search NSArray</title>
		<link>http://blog.mro.name/2010/01/binary-search-nsarray/</link>
		<comments>http://blog.mro.name/2010/01/binary-search-nsarray/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 22:02:07 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Binary]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[gist]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[NSArray]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Search]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1652</guid>
		<description><![CDATA[Though CFArray comes with binary search capability, NSArray does not &#8211; at least not within the iPhone SDK. The indexOfObject:inSortedRange:options:usingComparator: can&#8217;t be found. Plus the CFArrayBSearchValues doesn&#8217;t tell you whether the key actually is part of the list or not. That&#8217;s what the Java JDK does, so let&#8217;s implement some category methods -&#40;NSInteger&#41;binarySearch:&#40;id&#41;key; -&#40;NSInteger&#41;binarySearch:&#40;id&#41;key usingSelector:&#40;SEL&#41;comparator; [...]]]></description>
			<content:encoded><![CDATA[<p>Though <a href="http://developer.apple.com/mac/library/DOCUMENTATION/CoreFoundation/Reference/CFArrayRef/index.html">CFArray</a> comes with <a href="http://en.wikipedia.org/wiki/Binary_search_algorithm#Iterative">binary search</a> capability, <a href="http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html">NSArray</a> does not &#8211; at least not within the iPhone SDK. The <a href="http://developer.apple.com/mac/library/documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html#//apple_ref/occ/instm/NSArray/indexOfObject:inSortedRange:options:usingComparator:">indexOfObject:inSortedRange:options:usingComparator:</a> can&#8217;t be found.</p>
<p>Plus the <a href="http://developer.apple.com/mac/library/DOCUMENTATION/CoreFoundation/Reference/CFArrayRef/Reference/reference.html#//apple_ref/doc/uid/20001192-CH201-F10956">CFArrayBSearchValues</a> doesn&#8217;t tell you whether the key actually is part of the list or not. That&#8217;s what the <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/Arrays.html#binarySearch(T[],%20T,%20java.util.Comparator)">Java JDK</a> does, so let&#8217;s implement some <a href="http://developer.apple.com/mac/library/documentation/General/Conceptual/DevPedia-CocoaCore/Category.html">category</a> methods</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingSelector<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">SEL</span><span style="color: #002200;">&#41;</span>comparator;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingSelector<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">SEL</span><span style="color: #002200;">&#41;</span>comparator inRange<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRange</span><span style="color: #002200;">&#41;</span>range;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingFunction<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>NSInteger <span style="color: #002200;">&#40;</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span>, <span style="color: #a61390;">id</span>, <span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>comparator context<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>context;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingFunction<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>NSInteger <span style="color: #002200;">&#40;</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span>, <span style="color: #a61390;">id</span>, <span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>comparator context<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>context inRange<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRange</span><span style="color: #002200;">&#41;</span>range;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingDescriptors<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>sortDescriptors;
<span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingDescriptors<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #400080;">NSArray</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>sortDescriptors inRange<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRange</span><span style="color: #002200;">&#41;</span>range;</pre></div></div>

<p>ourselves, like</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>NSInteger<span style="color: #002200;">&#41;</span>binarySearch<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span><span style="color: #002200;">&#41;</span>key usingFunction<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span>NSInteger <span style="color: #002200;">&#40;</span><span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">id</span>, <span style="color: #a61390;">id</span>, <span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>comparator context<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span> <span style="color: #002200;">*</span><span style="color: #002200;">&#41;</span>context inRange<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">NSRange</span><span style="color: #002200;">&#41;</span>range
<span style="color: #002200;">&#123;</span>
    NSLogD<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;[NSArray(MroBinarySearch) binarySearch:%@ usingFunction:]&quot;</span>, key<span style="color: #002200;">&#41;</span>;
    <span style="color: #a61390;">if</span><span style="color: #002200;">&#40;</span>self.count <span style="color: #002200;">==</span> <span style="color: #2400d9;">0</span> || key <span style="color: #002200;">==</span> <span style="color: #a61390;">nil</span> || comparator <span style="color: #002200;">==</span> <span style="color: #a61390;">NULL</span><span style="color: #002200;">&#41;</span>
        <span style="color: #a61390;">return</span> <span style="color: #002200;">&#91;</span>self binarySearch<span style="color: #002200;">:</span>key usingSelector<span style="color: #002200;">:</span><span style="color: #a61390;">nil</span> inRange<span style="color: #002200;">:</span>range<span style="color: #002200;">&#93;</span>;
&nbsp;
<span style="color: #11740a; font-style: italic;">//	check overflow?</span>
    NSInteger min <span style="color: #002200;">=</span> range.location;
    NSInteger max <span style="color: #002200;">=</span> range.location <span style="color: #002200;">+</span> range.length <span style="color: #002200;">-</span> <span style="color: #2400d9;">1</span>;
&nbsp;
    <span style="color: #a61390;">while</span> <span style="color: #002200;">&#40;</span>min <span style="color: #002200;">&amp;</span>lt; <span style="color: #002200;">=</span> max<span style="color: #002200;">&#41;</span>
    <span style="color: #002200;">&#123;</span>
        <span style="color: #11740a; font-style: italic;">// http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html</span>
        <span style="color: #a61390;">const</span> NSInteger mid <span style="color: #002200;">=</span> min <span style="color: #002200;">+</span> <span style="color: #002200;">&#40;</span>max <span style="color: #002200;">-</span> min<span style="color: #002200;">&#41;</span> <span style="color: #002200;">/</span> <span style="color: #2400d9;">2</span>;
        <span style="color: #a61390;">switch</span> <span style="color: #002200;">&#40;</span>comparator<span style="color: #002200;">&#40;</span>key, <span style="color: #002200;">&#91;</span>self objectAtIndex<span style="color: #002200;">:</span>mid<span style="color: #002200;">&#93;</span>, context<span style="color: #002200;">&#41;</span><span style="color: #002200;">&#41;</span>
        <span style="color: #002200;">&#123;</span>
            <span style="color: #a61390;">case</span> NSOrderedSame<span style="color: #002200;">:</span>
                <span style="color: #a61390;">return</span> mid;
            <span style="color: #a61390;">case</span> NSOrderedDescending<span style="color: #002200;">:</span>
                min <span style="color: #002200;">=</span> mid <span style="color: #002200;">+</span> <span style="color: #2400d9;">1</span>;
                <span style="color: #a61390;">break</span>;
            <span style="color: #a61390;">case</span> NSOrderedAscending<span style="color: #002200;">:</span>
                max <span style="color: #002200;">=</span> mid <span style="color: #002200;">-</span> <span style="color: #2400d9;">1</span>;
                <span style="color: #a61390;">break</span>;
        <span style="color: #002200;">&#125;</span>
    <span style="color: #002200;">&#125;</span>
    <span style="color: #a61390;">return</span> <span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span>min <span style="color: #002200;">+</span> <span style="color: #2400d9;">1</span><span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>See the <a href="http://gist.github.com/275631/">full interface + implementation + testcase without html encoding dirt at github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2010/01/binary-search-nsarray/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NSDateFormatter case sensitive trap</title>
		<link>http://blog.mro.name/2009/12/nsdateformatter-case-sensitive-trap/</link>
		<comments>http://blog.mro.name/2009/12/nsdateformatter-case-sensitive-trap/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 14:05:24 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[NSDateFormatter]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[SenTestingKit]]></category>
		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=1427</guid>
		<description><![CDATA[Though NSDateFormatter behaves slightly different than documented, the following might even be correct, as strange as it might look (mind the last two lines): -&#40;void&#41;testNSDateFormatterTrap &#123; NSDateFormatter *lower = &#91;&#91;&#91;NSDateFormatter alloc&#93; init&#93; autorelease&#93;; lower.dateFormat = @&#34;yyyy-MM-dd HH:mm:SS ZZZ&#34;; &#160; NSDateFormatter *upper = &#91;&#91;&#91;NSDateFormatter alloc&#93; init&#93; autorelease&#93;; upper.dateFormat = @&#34;YYYY-MM-dd HH:mm:SS ZZZ&#34;; &#160; lower.timeZone = upper.timeZone [...]]]></description>
			<content:encoded><![CDATA[<p>Though <a href="http://blog.mro.name/2009/08/nsdateformatter-http-header/">NSDateFormatter behaves slightly different than documented</a>, the following might even be correct, as strange as it might look (mind the last two lines):</p>

<div class="wp_syntax"><div class="code"><pre class="objc" style="font-family:monospace;"><span style="color: #002200;">-</span><span style="color: #002200;">&#40;</span><span style="color: #a61390;">void</span><span style="color: #002200;">&#41;</span>testNSDateFormatterTrap
<span style="color: #002200;">&#123;</span>
    <span style="color: #400080;">NSDateFormatter</span> <span style="color: #002200;">*</span>lower <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSDateFormatter</span> alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span> autorelease<span style="color: #002200;">&#93;</span>;
    lower.dateFormat <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;yyyy-MM-dd HH:mm:SS ZZZ&quot;</span>;
&nbsp;
    <span style="color: #400080;">NSDateFormatter</span> <span style="color: #002200;">*</span>upper <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #002200;">&#91;</span><span style="color: #400080;">NSDateFormatter</span> alloc<span style="color: #002200;">&#93;</span> init<span style="color: #002200;">&#93;</span> autorelease<span style="color: #002200;">&#93;</span>;
    upper.dateFormat <span style="color: #002200;">=</span> <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;YYYY-MM-dd HH:mm:SS ZZZ&quot;</span>;
&nbsp;
    lower.timeZone <span style="color: #002200;">=</span> upper.timeZone <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span><span style="color: #400080;">NSTimeZone</span> timeZoneForSecondsFromGMT<span style="color: #002200;">:</span><span style="color: #2400d9;">0</span><span style="color: #002200;">&#93;</span>;
&nbsp;
    <span style="color: #400080;">NSDate</span> <span style="color: #002200;">*</span>d <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>lower dateFromString<span style="color: #002200;">:</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;1970-01-01 00:00:00 +0000&quot;</span><span style="color: #002200;">&#93;</span>;
    STAssertEqualObjects<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;1970-01-01 00:00:00 +0000&quot;</span>, <span style="color: #002200;">&#91;</span>lower stringFromDate<span style="color: #002200;">:</span>d<span style="color: #002200;">&#93;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;lower iso wrong&quot;</span><span style="color: #002200;">&#41;</span>;
    STAssertEqualObjects<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;1970-01-01 00:00:00 +0000&quot;</span>, <span style="color: #002200;">&#91;</span>upper stringFromDate<span style="color: #002200;">:</span>d<span style="color: #002200;">&#93;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;upper iso wrong&quot;</span><span style="color: #002200;">&#41;</span>;
&nbsp;
    d <span style="color: #002200;">=</span> <span style="color: #002200;">&#91;</span>d addTimeInterval<span style="color: #002200;">:</span><span style="color: #002200;">&#40;</span><span style="color: #002200;">-</span><span style="color: #2400d9;">60</span><span style="color: #002200;">*</span><span style="color: #2400d9;">60</span><span style="color: #002200;">&#41;</span><span style="color: #002200;">&#93;</span>;
&nbsp;
    STAssertEqualObjects<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;1969-12-31 23:00:00 +0000&quot;</span>, <span style="color: #002200;">&#91;</span>lower stringFromDate<span style="color: #002200;">:</span>d<span style="color: #002200;">&#93;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;lower iso wrong&quot;</span><span style="color: #002200;">&#41;</span>;
    STAssertEqualObjects<span style="color: #002200;">&#40;</span><span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;1970-12-31 23:00:00 +0000&quot;</span>, <span style="color: #002200;">&#91;</span>upper stringFromDate<span style="color: #002200;">:</span>d<span style="color: #002200;">&#93;</span>, <span style="color: #bf1d1a;">@</span><span style="color: #bf1d1a;">&quot;upper iso wrong&quot;</span><span style="color: #002200;">&#41;</span>;
<span style="color: #002200;">&#125;</span></pre></div></div>

<p>The <a href="http://unicode.org/reports/tr35/tr35-6.html#Date_Field_Symbol_Table">Unicode Format Pattern Documentation</a> explains the difference of the upper- and lowercase year format &#8211; but frankly I don&#8217;t get the &#8220;Year of week of year&#8221; idea.</p>
<p>But that subtracting one hour in fact <strong>adds almost a whole year</strong> &#8211; that&#8217;s odd to me.</p>
<p>So I rather stay away from the uppercase form &#8211; be it correct or buggy.</p>
<p>Seen with iPhone SDK 3.1.2 and XCode 3.2.1 on Snow Leopard.</p>
<p><strong>Update:</strong></p>
<p>I think I got it! Uppercase YYYY makes sense only in combination with a calendar week &#8211; and not months or quarters.</p>
<p>Look at January 1st 2010. It belongs to calendar week 53 of 2009. Week 1/2010 starts on Jan 4th.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/12/nsdateformatter-case-sensitive-trap/feed/</wfw:commentRss>
		<slash:comments>0</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>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>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>Transfer Phone Numbers from gammu to the Mac Adressbook</title>
		<link>http://blog.mro.name/2009/03/transfer-phone-numbers-from-gammu-to-the-mac-adressbook/</link>
		<comments>http://blog.mro.name/2009/03/transfer-phone-numbers-from-gammu-to-the-mac-adressbook/#comments</comments>
		<pubDate>Tue, 31 Mar 2009 13:34:28 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Articles in english]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[6610]]></category>
		<category><![CDATA[Addressbook]]></category>
		<category><![CDATA[gammu]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[vCard]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=761</guid>
		<description><![CDATA[ok, make yourself comfortable, fasten your seatbelt and stop smoking. This will be quite a journey: Get gammu and backup the phone data: $ gammu backup phonedata.txt -yes open phonedata.txt and save it in &#8220;MacRoman&#8221; encoding with Unix line endings run it through this ruby script: #!/usr/bin/ruby -w -- &#160; # http://www.rubycentral.com/pickaxe/ # http://homepage.mac.com/phrogz/CSV2vCard_v2.html &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>ok, make yourself comfortable, fasten your seatbelt and stop smoking. This will be quite a journey:</p>
<p><span id="more-761"></span></p>
<ol>
<li>Get <a href="http://gammu.org">gammu</a> and backup the phone data:<br />
<code>$ gammu backup phonedata.txt -yes</code></li>
<li>open <code>phonedata.txt</code> and save it in &#8220;MacRoman&#8221; encoding with Unix line endings</li>
<li>run it through this <a href="http://www.rubycentral.com/pickaxe/">ruby</a> script:

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/ruby -w -- </span>
&nbsp;
<span style="color:#008000; font-style:italic;"># http://www.rubycentral.com/pickaxe/</span>
<span style="color:#008000; font-style:italic;"># http://homepage.mac.com/phrogz/CSV2vCard_v2.html</span>
&nbsp;
records = <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
fields = <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
eor = <span style="color:#006600; font-weight:bold;">/</span>^<span style="color:#006600; font-weight:bold;">&#91;</span> \t<span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">*</span>$<span style="color:#006600; font-weight:bold;">/</span>
bor = <span style="color:#006600; font-weight:bold;">/</span>^\<span style="color:#006600; font-weight:bold;">&#91;</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;">&#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;">&#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;">&#93;</span>$<span style="color:#006600; font-weight:bold;">/</span>
etype = <span style="color:#006600; font-weight:bold;">/</span>^Entry<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>Type\s<span style="color:#006600; font-weight:bold;">+</span>=\s<span style="color:#006600; font-weight:bold;">+</span><span style="color:#006600; font-weight:bold;">&#40;</span>\S<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>
etext = <span style="color:#006600; font-weight:bold;">/</span>^Entry<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>Text\s<span style="color:#006600; font-weight:bold;">+</span>=\s<span style="color:#006600; font-weight:bold;">+</span><span style="color:#996600;">&quot;(.*)&quot;</span><span style="color:#006600; font-weight:bold;">/</span>
&nbsp;
record_type = <span style="color:#0000FF; font-weight:bold;">nil</span>
entry_type = <span style="color:#0000FF; font-weight:bold;">nil</span>
tmp = <span style="color:#0000FF; font-weight:bold;">nil</span>
&nbsp;
<span style="color:#ff6633; font-weight:bold;">$stdin</span>.<span style="color:#9900CC;">each</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>
	<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#006600; font-weight:bold;">&#40;</span>eor =~ l<span style="color:#006600; font-weight:bold;">&#41;</span> == <span style="color:#006666;">0</span>
		records<span style="color:#006600; font-weight:bold;">&#91;</span>record_type<span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#93;</span> <span style="color:#9966CC; font-weight:bold;">if</span> records<span style="color:#006600; font-weight:bold;">&#91;</span>record_type<span style="color:#006600; font-weight:bold;">&#93;</span>.<span style="color:#0000FF; font-weight:bold;">nil</span>?
		records<span style="color:#006600; font-weight:bold;">&#91;</span>record_type<span style="color:#006600; font-weight:bold;">&#93;</span> <span style="color:#006600; font-weight:bold;">&amp;</span>lt;<span style="color:#006600; font-weight:bold;">&amp;</span>lt; tmp <span style="color:#9966CC; font-weight:bold;">if</span> tmp
<span style="color:#008000; font-style:italic;">#		puts '-- EOR --'</span>
		record_type = entry_type = tmp = <span style="color:#0000FF; font-weight:bold;">nil</span>
		<span style="color:#9966CC; font-weight:bold;">next</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
	m = bor.<span style="color:#9900CC;">match</span> l
	<span style="color:#9966CC; font-weight:bold;">if</span> m
<span style="color:#008000; font-style:italic;">#		puts &quot;#{m[1]} - #{m[2]}&quot;</span>
		record_type = <span style="color:#996600;">&quot;#{m[1]}&quot;</span>
		tmp = <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">&#125;</span>
		<span style="color:#9966CC; font-weight:bold;">next</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
	<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#996600;">'PhonePBK'</span> == record_type
		m = etype.<span style="color:#9900CC;">match</span> l
<span style="color:#008000; font-style:italic;">#		raise &quot;Parse Error: #{l}&quot; if entry_type.nil? &amp;amp;&amp;amp; m.nil?</span>
		<span style="color:#9966CC; font-weight:bold;">if</span> m
			entry_type = <span style="color:#996600;">&quot;#{m[2]}&quot;</span>
		<span style="color:#9966CC; font-weight:bold;">else</span>
			m = etext.<span style="color:#9900CC;">match</span> l
			<span style="color:#9966CC; font-weight:bold;">if</span> m
				<span style="color:#CC0066; font-weight:bold;">raise</span> <span style="color:#996600;">'Parse Error'</span> <span style="color:#9966CC; font-weight:bold;">if</span> entry_type.<span style="color:#0000FF; font-weight:bold;">nil</span>?
				<span style="color:#9966CC; font-weight:bold;">if</span> <span style="color:#996600;">'Name'</span> == entry_type
					name = <span style="color:#996600;">&quot;#{m[2]}&quot;</span>.<span style="color:#CC0066; font-weight:bold;">split</span> <span style="color:#996600;">' '</span>
					tmp<span style="color:#006600; font-weight:bold;">&#91;</span>entry_type = <span style="color:#996600;">'LastName'</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#996600;">&quot;#{name[name.length-1]}&quot;</span>
					fields<span style="color:#006600; font-weight:bold;">&#91;</span>entry_type<span style="color:#006600; font-weight:bold;">&#93;</span> = entry_type
					name<span style="color:#006600; font-weight:bold;">&#91;</span>name.<span style="color:#9900CC;">length</span><span style="color:#006600; font-weight:bold;">-</span><span style="color:#006666;">1</span><span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#0000FF; font-weight:bold;">nil</span>
					name.<span style="color:#9900CC;">compact</span>!
&nbsp;
					count = <span style="color:#006666;">0</span>
					name.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>tn<span style="color:#006600; font-weight:bold;">|</span>
						tmp<span style="color:#006600; font-weight:bold;">&#91;</span>entry_type = <span style="color:#996600;">&quot;Name_#{count}&quot;</span><span style="color:#006600; font-weight:bold;">&#93;</span> = tn
						fields<span style="color:#006600; font-weight:bold;">&#91;</span>entry_type<span style="color:#006600; font-weight:bold;">&#93;</span> = entry_type
						count <span style="color:#006600; font-weight:bold;">+</span>= <span style="color:#006666;">1</span>
					<span style="color:#9966CC; font-weight:bold;">end</span>
				<span style="color:#9966CC; font-weight:bold;">else</span>
					fields<span style="color:#006600; font-weight:bold;">&#91;</span>entry_type<span style="color:#006600; font-weight:bold;">&#93;</span> = entry_type
<span style="color:#008000; font-style:italic;">#					puts &quot;#{entry_type} = #{m[2]}&quot;</span>
					tmp<span style="color:#006600; font-weight:bold;">&#91;</span>entry_type<span style="color:#006600; font-weight:bold;">&#93;</span> = <span style="color:#996600;">&quot;#{m[2]}&quot;</span>
				<span style="color:#9966CC; font-weight:bold;">end</span>
				entry_type = <span style="color:#0000FF; font-weight:bold;">nil</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>
&nbsp;
keys = fields.<span style="color:#9900CC;">keys</span>.<span style="color:#9900CC;">sort</span>
sep = <span style="color:#996600;">','</span>
<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">&quot;<span style="color:#000099;">\#</span>#{keys.join(sep)}&quot;</span>
records<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#996600;">'PhonePBK'</span><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>item<span style="color:#006600; font-weight:bold;">|</span>
	tmp = <span style="color:#996600;">''</span>
	keys.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>key<span style="color:#006600; font-weight:bold;">|</span>
		v = item<span style="color:#006600; font-weight:bold;">&#91;</span>key<span style="color:#006600; font-weight:bold;">&#93;</span>
		v = <span style="color:#996600;">''</span> <span style="color:#9966CC; font-weight:bold;">if</span> v.<span style="color:#0000FF; font-weight:bold;">nil</span>?
		v.<span style="color:#CC0066; font-weight:bold;">gsub!</span> <span style="color:#996600;">&quot;'&quot;</span>, <span style="color:#996600;">&quot;''&quot;</span>
		tmp = <span style="color:#996600;">&quot;#{tmp}'#{v}'#{sep}&quot;</span>
	<span style="color:#9966CC; font-weight:bold;">end</span>
	<span style="color:#CC0066; font-weight:bold;">puts</span> tmp
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

</li>
<li>run the result through a <a href="http://homepage.mac.com/phrogz/CSV2vCard_v2.html">csv to vcard converter</a>,</li>
<li>remove all single quotes <code>'</code> from the vcards,</li>
<li>import the vcards into the osx addressbook.</li>
</ol>
<p>And guess what &#8211; that really works! The script is quite a hack but does the job. I thought about rewriting it using closures prior publishing but left it as a homework to you.</p>
<p>[<strong>Update</strong>] Maybe <a href="http://europe.nokia.com/get-support-and-software/product-support/isync">iSync</a> would have done the trick, too.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/03/transfer-phone-numbers-from-gammu-to-the-mac-adressbook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lftp OSX dmg</title>
		<link>http://blog.mro.name/2009/02/lftp-osx-dmg/</link>
		<comments>http://blog.mro.name/2009/02/lftp-osx-dmg/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 12:19:22 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[OS X]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=488</guid>
		<description><![CDATA[Da&#8217;s für lftp zwar einen Darwinport gibt, aber kein Disk Image (was unbedarfte Seelen durchaus von der Installation abhalten kann), habe ich ein solches gebaut und hier zum Download lftp-3.7.6-1.dmg verlinkt. Leider ist das Binary nicht statisch gelinkt, drum hat das ganze wenig Sinn. Details siehe unten im &#8220;Nachtrag&#8221;. Wie und wo genau das sich [...]]]></description>
			<content:encoded><![CDATA[<p>Da&#8217;s für <a href="http://de.wikipedia.org/wiki/Lftp">lftp </a>zwar einen <a href="http://lftp.darwinports.com/">Darwinport</a> gibt, aber kein <a href="http://de.wikipedia.org/wiki/Disk_Image_%28Apple%29">Disk Image</a> (was unbedarfte Seelen durchaus von der Installation abhalten kann), habe ich ein solches gebaut und hier zum</p>
<p style="text-align: center;"><strong><a href="/wp-content/2009/02/lftp-376-1.dmg">Download lftp-3.7.6-1.dmg<br />
</a></strong></p>
<p>verlinkt. Leider ist das Binary nicht statisch gelinkt, drum hat das ganze wenig Sinn. Details siehe unten im &#8220;Nachtrag&#8221;.</p>
<p>Wie und wo genau das sich dann installiert weiß ich nicht &#8211; ich selbst benutze ja den Darwinport</p>
<h4>Zur Benutzung nur 2 kurze Anmerkungen:</h4>
<p>Ich finde es bequem (wenn auch von Sicherheitsseite nicht die reine Lehre) die FTP Zugangsdaten zu den meistbenutzten Servern in der <a href="http://manpages.unixforum.co.uk/man-pages/unix/solaris-10-11_06/4/netrc-man-page.html" target="_blank"><code>$HOME/.netrc</code></a> abzulegen. <strong>Vorsicht:</strong> die Datei muß folgende Rechte haben (bzw. nicht haben):</p>
<pre>$ chmod 600 $HOME/.netrc</pre>
<p>Außerdem habe ich folgende Einstellungen in der <code>$HOME/.lftp/rc</code> Konfiguration:</p>
<pre>set ftp:list-options -a
set net:limit-total-rate 0,15360&amp;</pre>
<p>Viel Spaß damit!</p>
<h2>Nachtrag</h2>
<p>Leider funktioniert das so nicht, da das Binary nicht statisch gelinkt ist &#8211; was leider nicht geht:</p>
<ul>
<li><a href="http://dev.ultravelours.com/ports/enblend/index.html#static-builds">http://dev.ultravelours.com/ports/enblend/index.html#static-builds</a></li>
<li><a href="http://el-tramo.be/guides/darcs-static-osx">http://el-tramo.be/guides/darcs-static-osx</a></li>
<li><a href="http://developer.apple.com/qa/qa2001/qa1118.html">http://developer.apple.com/qa/qa2001/qa1118.html</a></li>
</ul>
<p>Noch dazu sind die dynamisch gelinkten Macport Libs sämtlich auch als Teil von OSX selbst vorhanden. Sehr ärgerlich.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2009/02/lftp-osx-dmg/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scanner Mustek 1200 CU unter Mac OS X 10.5</title>
		<link>http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/</link>
		<comments>http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 14:07:21 +0000</pubDate>
		<dc:creator>mro</dc:creator>
				<category><![CDATA[Artikel auf deutsch]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[Mustek]]></category>
		<category><![CDATA[OS X]]></category>
		<category><![CDATA[SANE]]></category>
		<category><![CDATA[Scanner]]></category>
		<category><![CDATA[Twain]]></category>

		<guid isPermaLink="false">http://blog.mro.name/?p=276</guid>
		<description><![CDATA[Ein aktueller Mac mag den alten Scanner zwar nicht von Haus aus, läßt sich aber dazu überreden: Scanner Mustek 1200 CU unter Mac OS X 10.5 verweist auf TWAIN SANE Interface for MacOS X: libusb SANE backends SANE Preference Pane TWAIN SANE Interface]]></description>
			<content:encoded><![CDATA[<p>Ein aktueller Mac mag den alten Scanner</p>
<div class="wp-caption aligncenter" style="width: 210px"><img title="Scanner Mustek 1200 CU" src="http://images.ciao.com/ide/images/products/normal/587/product-1248587.jpg" alt="Scanner Mustek 1200 CU" width="200" height="150" /><p class="wp-caption-text">Scanner Mustek 1200 CU</p></div>
<p>zwar nicht von Haus aus, läßt sich aber dazu überreden: <a href="http://blog.davidgraesser.de/?p=58">Scanner Mustek 1200 CU unter Mac OS X 10.5</a> verweist auf <a href="http://www.ellert.se/twain-sane/">TWAIN SANE Interface for MacOS X</a>:</p>
<ol>
<li>libusb</li>
<li>SANE backends</li>
<li>SANE Preference Pane</li>
<li>TWAIN SANE Interface</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://blog.mro.name/2008/12/scanner-mustek-1200-cu-unter-mac-os-x-105/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
