<?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>kip&#039;s blog &#187; osx</title>
	<atom:link href="http://blog.kips-world.de/tag/osx/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kips-world.de</link>
	<description>nothing too important</description>
	<lastBuildDate>Fri, 09 Jul 2010 20:27:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Bloggen mit Textmate</title>
		<link>http://blog.kips-world.de/bloggen-mit-textmate/</link>
		<comments>http://blog.kips-world.de/bloggen-mit-textmate/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 00:14:07 +0000</pubDate>
		<dc:creator>blog.kips-world.de</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[mac osx]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[textmate]]></category>

		<guid isPermaLink="false">http://blog.kips-world.de/?p=325</guid>
		<description><![CDATA[

Ich habe vor einigen Wochen Textmate für mich entdeckt. Das ist wirklich eines der besten Tools für den Mac, ich weiß nicht wie ich die ganze Zeit ohne diesen genialen Editor ausgekommen bin.

Die wohl größte Stärke von Textmate ist seine Anpassbarkeit und die Möglichkeit die Funktionen des Editors über die so genannten Bundles fast beliebig [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.kips-world.de/wp-content/uploads/2010/06/textmate_logo.png" alt="Textmate Logo" /></p>

<p>Ich habe vor einigen Wochen <a href="http://macromates.com/" title="Textmate">Textmate</a> für mich entdeckt. Das ist wirklich eines der besten Tools für den Mac, ich weiß nicht wie ich die ganze Zeit ohne diesen genialen Editor ausgekommen bin.</p>

<p>Die wohl größte Stärke von <a href="http://macromates.com/" title="Textmate">Textmate</a> ist seine Anpassbarkeit und die Möglichkeit die Funktionen des Editors über die so genannten Bundles fast beliebig zu erweitern. Zum Beispiel gibt es für Textmate auch ein Blogging-Bundle, mit dem ich gerade diesen Blog-Eintrag schreibe. Das Bundle unterstützt sogar das Hochladen von Bildern direkt über Textmate. Dazu ziehe ich das Bild vom Finder einfach in den Texteditor an die passende Stelle, vergebe einen Titel und den Rest übernimmt Textmate.</p>

<p><a href="http://blog.kips-world.de/wp-content/uploads/2010/06/bloggen_mit_textmate1.PNG"><img src="http://blog.kips-world.de/thumb.php?file=http://blog.kips-world.de/wp-content/uploads/2010/06/bloggen_mit_textmate1.PNG" alt="Bloggen mit Textmate" /></a></p>

<p>Einziger Wermutstropfen: Die Bilder werden von Textmate nur hochgeladen, es werden leider nicht automatisch Thumbnails erstellt. Aber Moment, ich habe doch gerade Textmate dafür gelobt wie flexibel es ist, also einfach selbst eine Lösung dafür basteln.</p>

<p><span id="more-325"></span>
Ein Weg wäre das Blogging Bundle zu ändern und diese Funkion nachzurüsten, allerdings implementiert Textmate die Metablog API um mit möglichst vielen Blogplattformen kompatibel zu sein und ein Eingriff an dieser Stelle würde damit wohl brechen.</p>

<p><a href="http://blog.kips-world.de/wp-content/uploads/2010/06/bundle_editor.PNG"><img src="http://blog.kips-world.de/thumb.php?file=http://blog.kips-world.de/wp-content/uploads/2010/06/bundle_editor.PNG" alt="Bundle Editor" /></a></p>

<p>Deshalb habe ich einen anderen Ansatz gewählt. Zunächst habe ich mir im Blogging Bundle von Textmate ein neues <code>Command</code> angelegt (Bundles > Bundle Editor > Show Bundle Editor). Dieses Command wende ich auf eingefügte Bilder an. Es ist ein kleines Ruby-Script, welches den Code für das eingefügte Bild umformatiert und einen Link auf ein PHP Script erzeugt. Diesem PHP Script übergebe ich über einen Parameter die URL des Original Bildes (der komplette Code hierfür wird automatisch durch das Command erzeugt). Das PHP Script schaut nun auf dem Server ob für das Bild schon ein Thumbnail existiert. Falls ja, gibt das Script einfach das Thumbnail aus. Falls nein, erzeugt das Script ein Thumbnail in passender Größe und gibt dieses anschließend aus. D.h. der gesamte Ablauf zum Einfügen des Bildes inklusive Thumbnail sieht folgendermaßen aus:</p>

<ol>
<li>Bild vom Finder in Textmate ziehen</li>
<li>Command aufrufen (STRG+Q bei mir)</li>
<li>Fertig!</li>
</ol>

<p>Diese Methode hat auch ein paar Nachteile, aber hier erstmal der Code für das Command (die anderen Einstellungen für das Command bitte aus dem Screenshot entnehmen):</p>

<div><pre class="brush:ruby">
#!/usr/bin/ruby

txt = STDIN.read
md = /\!\[([\w\s]*)\]\((http:[\/\.\w-]*)/.match(txt)
if (md != nil)
    puts "[![#{md[1]}](http://blog.kips-world.de/thumb.php?file=#{md[2]})](#{md[2]})"
end
</pre></div>

<p><i>Achtung:</i> Ich benutze Markdown zum schreiben von Blogposts. Das Script funktioniert in dieser Form nur mit Markdown, nicht mit HTML!</p>

<p>Und hier noch der Quellcode des PHP Scripts auf dem Server:</p>

<div><pre class="brush:php">
    $path = dirname(__FILE__).'/wp-content/uploads';

    $f = $_GET['file'];
    $name = basename($f);
    $dir = dirname($f);
    preg_match('/.*\/([a-zA-Z0-9]*)\/([a-zA-Z0-9]*)/', $dir, $s);
    $p = $path.'/'.$s[1].'/'.$s[2];

    preg_match('/(.*)\.([a-zA-Z]{2,3})/', $name, $res);
    
    $thumb = $res[1].'_thumb.'.$res[2];
    $_thumb = $p.'/'.$thumb;

    if (!file_exists($_thumb)) {
        
        copy($p.'/'.$name, $_thumb);
        // this needs imagemagick!
        shell_exec('/usr/bin/convert '.$_thumb.' -thumbnail \'600\' '.$_thumb);     
    }
    header('Last-Modified: '.date('r'));
    header('Content-Type: image/'.strtolower($res[2]));
    readfile($_thumb);
</pre></div>

<p>Jetzt zu den Nachteilen. Ich erstelle bei dieser Methode die Thumbnails <code>an Wordpress vorbei</code>. D.h. Wordpress weiß nichts über diese Thumbnails und man kann sie deshalb auch nicht über Wordpress verwalten. Wenn man jedoch etwas mehr Mühe in das Script zur Generierung der Thumbs steckt bin ich mir sicher, dass man das erreichen kann (einfach die entsprechenden Funktionen von WP zur Erstellung von Thumbs hijacken).</p>

<p>Vorteile hat diese Methode aber auch. Sollte man mal das Layout seines Blogs ändern (und deshalb vllt. eine andere Thumbnail-Größe benötigen), muss man nur das Thumbnail Script entsprechen anpassen und alle Thumbnails auf dem Server löschen. Sobald jemand auf die Thumbnails zugreift werden sie dann automatisch neu erstellt &#8211; in der richtigen Größe.</p>

<p>Hier noch ein paar nützliche Textmate Ressourcen:</p>

<ul>
<li><a href="http://dl.kips-world.de/misc/TextMate%20(Web)%20Developer's%20Cheat%20Sheet.pdf">Developer Cheat Sheet</a> mit den wichtigsten Tastatur-Shortcuts</li>
<li><a href="http://macromates.com/screencasts">Offizielle Textmate Screencasts</a> (sehr Informativ!)</li>
</ul>

<p>(werde im Laufe der Zeit noch ein paar mehr hinzufügen)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kips-world.de/bloggen-mit-textmate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exposé und mehrere Monitore</title>
		<link>http://blog.kips-world.de/expose-und-mehrere-monitore/</link>
		<comments>http://blog.kips-world.de/expose-und-mehrere-monitore/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 22:13:59 +0000</pubDate>
		<dc:creator>blog.kips-world.de</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[mac osx]]></category>
		<category><![CDATA[expose]]></category>
		<category><![CDATA[multi monitor]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://blog.kips-world.de/?p=241</guid>
		<description><![CDATA[
Ich bin ein großer Fan von Exposé unter OSX. Die Hauptfunktion von Exposé ist das schnelle Finden eines bestimmten Fensters. Klingt simpel und wenig spektakulär, aber wenn man oft sehr viele Fenster und Anwendungen gleichzeitig geöffnet hat lernt man Exposé sehr zu schätzen. Ich benutze hauptsächlich die Funktionen &#8220;Alle Fenster anzeigen&#8221;, &#8220;Alle Fenster des aktuellen [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.kips-world.de/wp-content/uploads/2010/01/expose-alle-fenster.jpg"><img src="http://blog.kips-world.de/wp-content/uploads/2010/01/expose-alle-fenster-500x250.jpg" alt="expose-alle-fenster" title="expose-alle-fenster" width="500" height="250" class="aligncenter size-thumbnail wp-image-255" /></a>
Ich bin ein großer Fan von Exposé unter OSX. Die Hauptfunktion von Exposé ist das schnelle Finden eines bestimmten Fensters. Klingt simpel und wenig spektakulär, aber wenn man oft sehr viele Fenster und Anwendungen gleichzeitig geöffnet hat lernt man Exposé sehr zu schätzen. Ich benutze hauptsächlich die Funktionen &#8220;Alle Fenster anzeigen&#8221;, &#8220;Alle Fenster des aktuellen Programms anzeigen&#8221; und &#8220;Desktop anzeigen&#8221;. 
<span id="more-241"></span>
Diese drei Funktionen kann man sehr einfach durch eine Mausbewegung aufrufen. Ich muss den Mauszeiger dafür nur in eine der Ecken meines Desktop&#8217;s bewegen und die dort verknüpfte Funktion wird aufgerufen. Solange man nur einen Monitor hat funktioniert das mit den vier Ecken des Desktop wunderbar:</p>

<p><a href="http://blog.kips-world.de/wp-content/uploads/2010/01/multi-monitor-01.png"><img src="http://blog.kips-world.de/wp-content/uploads/2010/01/multi-monitor-01-500x250.png" alt="multi-monitor-01" title="multi-monitor-01" width="500" height="250" class="aligncenter size-thumbnail wp-image-258" /></a></p>

<p>Schließt man an seinen Mac aber einen weiteren Monitor an, verbindet OSX die beiden Desktops zu einer einzigen großen Arbeitsfläche. Das Problem: Die &#8220;inneren&#8221; Ecken der beiden Monitore sind dann keine Ecken des Desktops mehr. Wenn ich mit diesen Einstellungen die Funktion der Ecke #4 aufrufen möchte, muss ich mit dem Mauszeiger in die rechte untere Ecke des 2. Monitors fahren.</p>

<p><a href="http://blog.kips-world.de/wp-content/uploads/2010/01/multi-monitor-02.png"><img src="http://blog.kips-world.de/wp-content/uploads/2010/01/multi-monitor-02-500x250.png" alt="multi-monitor-02" title="multi-monitor-02" width="500" height="250" class="aligncenter size-thumbnail wp-image-259" /></a></p>

<p>Wenn man die Funktion so häufig nutzt wie ich ist man von diesem Verhalten seitens OSX schnell genervt. Abhilfe schafft hier ein kleiner Trick von <a href="http://www.macosxhints.com/article.php?story=20041106031749738">Macosxhints.com</a>. Man öffnet dazu in den Systemeinstellungen den Dialog &#8220;Monitore&#8221; und wechselt zum Reiter &#8220;Anordnen&#8221;. Dort klickt man auf einen der beiden Desktop und verschiebt ihn mit gedrückter Maustaste ein wenig nach oben oder unten. Da beide Desktops nun nicht mehr bündig sind, entsteht eine zusätzliche Ecke auf der Arbeitsfläche, die mit der gleichen Funktion wie die entsprechende Ecke auf der anderen Arbeitsfläche belegt ist. Im Bild sollte dies deutlicher werden:</p>

<p><a href="http://blog.kips-world.de/wp-content/uploads/2010/01/multi-monitor-03.png"><img src="http://blog.kips-world.de/wp-content/uploads/2010/01/multi-monitor-03-500x250.png" alt="multi-monitor-03" title="multi-monitor-03" width="500" height="250" class="aligncenter size-thumbnail wp-image-263" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kips-world.de/expose-und-mehrere-monitore/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
