<?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>Thomas Falkner &#187; Coding</title>
	<atom:link href="http://blog.thomas-falkner.de/tag/coding/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.thomas-falkner.de</link>
	<description>Marginalien zu  Linux, Webdesign und Softwareentwicklung</description>
	<lastBuildDate>Sun, 24 Apr 2011 12:11:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Tom goes C#</title>
		<link>http://blog.thomas-falkner.de/2007/09/23/tom-goes-c/</link>
		<comments>http://blog.thomas-falkner.de/2007/09/23/tom-goes-c/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 17:13:19 +0000</pubDate>
		<dc:creator>Thomas Falkner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://blog.thomas-falkner.de/2007/09/23/tom-goes-c/</guid>
		<description><![CDATA[Ich arbeite mich momentan in C# ein und bin von der Sprache begeistert. Sie bietet alle Merkmale, die ich mir von einer modernen, objektorientierten Programmiersprache w&#252;nsche und bringt in der .NET-Umgebung Standardbibliotheken f&#252;r nahezu alle Probleme mit, die sich im Alltag eines Programmierers stellen. Da ich &#8211; vor allem bedingt durch mein Studium &#8211; ge&#252;bt [...]]]></description>
			<content:encoded><![CDATA[<p>Ich arbeite mich momentan in C# ein und bin von der Sprache begeistert. Sie bietet alle Merkmale, die ich mir von einer modernen, objektorientierten Programmiersprache w&#252;nsche und bringt in der .NET-Umgebung Standardbibliotheken f&#252;r nahezu alle Probleme mit, die sich im Alltag eines Programmierers stellen.<br />
Da ich &#8211; vor allem bedingt durch mein Studium &#8211; ge&#252;bt im Umgang mit Java bin, brauchte ich nicht mehr als dieses Wochenende, um mich mit Syntax und Konzepten von C# vertraut zu machen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomas-falkner.de/2007/09/23/tom-goes-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>wget aufbohren: dotfiles per &#8211;mirror mitkopieren</title>
		<link>http://blog.thomas-falkner.de/2007/04/21/wget-aufbohren-dotfiles-per-mirror-mitkopieren/</link>
		<comments>http://blog.thomas-falkner.de/2007/04/21/wget-aufbohren-dotfiles-per-mirror-mitkopieren/#comments</comments>
		<pubDate>Sat, 21 Apr 2007 14:15:34 +0000</pubDate>
		<dc:creator>Thomas Falkner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[rootserver]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://blog.thomas-falkner.de/2007/04/21/wget-aufbohren-dotfiles-per-mirror-mitkopieren/</guid>
		<description><![CDATA[Ich benutze GNU wget gerne um verschiedene Websites per FTP mit dem Parameter --mirror zu spiegeln. Leider werden dabei versteckte Dateien (so genannte dotfiles) wie etwa .htaccess nicht ber&#252;cksichtigt. Nach eingehendem Studium der manpage stellte ich entt&#228;uscht fest, dass wget tats&#228;chlich keine Option zur L&#246;sung des Problem vorsieht. Aber zum Gl&#252;ck l&#228;sst sich GNU wget [...]]]></description>
			<content:encoded><![CDATA[<p>Ich benutze <a href="http://www.gnu.org/software/wget/wget.html">GNU wget</a> gerne um verschiedene Websites per FTP mit dem Parameter <tt>--mirror</tt> zu spiegeln. Leider werden dabei <em>versteckte</em> Dateien (so genannte dotfiles) wie etwa <tt>.htaccess</tt> nicht ber&#252;cksichtigt. Nach eingehendem Studium der manpage stellte ich entt&#228;uscht fest, dass wget tats&#228;chlich keine Option zur L&#246;sung des Problem vorsieht. </p>
<p>Aber zum Gl&#252;ck l&#228;sst sich GNU wget als Open-Source-Software an die eigenen Bed&#252;rfnisse anpassen, so dass ich folgenden <a href="http://www.catb.org/~esr/jargon/html/Q/quick-and-dirty.html">q&#038;d </a>Patch "entwickelte". </p>
<div class="igBar"><span id="lcode-1"><a href="#" onclick="javascript:showPlainTxt('code-1'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-1">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">--- wget-<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">10</span>.<span style="color:#800000;color:#800000;">2</span>_orig/src/ftp-basic.<span style="">c</span>&nbsp; &nbsp; &nbsp;<span style="color:#800000;color:#800000;">2005</span>-<span style="color:#800000;color:#800000;">06</span>-<span style="color:#800000;color:#800000;">19</span> <span style="color:#800000;color:#800000;">15</span>:<span style="color:#800000;color:#800000;">47</span>:<span style="color:#800000;color:#800000;">10</span>.<span style="color:#800000;color:#800000;">000000000</span> +<span style="color:#800000;color:#800000;">0200</span></div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">+++ wget-<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">10</span>.<span style="color:#800000;color:#800000;">2</span>/src/ftp-basic.<span style="">c</span> <span style="color:#800000;color:#800000;">2007</span>-<span style="color:#800000;color:#800000;">04</span>-<span style="color:#800000;color:#800000;">21</span> <span style="color:#800000;color:#800000;">14</span>:<span style="color:#800000;color:#800000;">17</span>:<span style="color:#800000;color:#800000;">33</span>.<span style="color:#800000;color:#800000;">000000000</span> +<span style="color:#800000;color:#800000;">0200</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">@@ -<span style="color:#800000;color:#800000;">977</span>,<span style="color:#800000;color:#800000;">7</span> +<span style="color:#800000;color:#800000;">977</span>,<span style="color:#800000;color:#800000;">7</span> @@</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;uerr_t err;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;<span style="color:#008000;">/* Send LIST request.&nbsp; */</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">-&nbsp; request = ftp_request <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"LIST"</span>, file<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">+&nbsp; request = ftp_request <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"LIST -a"</span>, file<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;nwritten = fd_write <span style="color:#006600; font-weight:bold;">&#40;</span>csock, request, strlen <span style="color:#006600; font-weight:bold;">&#40;</span>request<span style="color:#006600; font-weight:bold;">&#41;</span>, -<span style="color:#800000;color:#800000;">1</span>.<span style="color:#800000;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp;if <span style="color:#006600; font-weight:bold;">&#40;</span>nwritten &lt;<span style="color:#800000;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp;<span style="color:#006600; font-weight:bold;">&#123;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><code><br />
wget ftp://ftp.gnu.org/pub/gnu/wget/wget-1.10.2.tar.gz<br />
tar -xzf wget-1.10.2.tar.gz<br />
patch -p0 < wget-1.10.2_dotfiles<br />
./configure<br />
make<br />
make install<br />
</code></p>
<p>Es gen&#252;gt also <tt>LIST -a</tt> anstatt <tt>LIST</tt> an den FTP-Server zu senden, um wget zu &#252;berreden auch dotfiles rekursiv zu kopieren.<br />
Der Patch ist - wie gesagt - ein &#252;bler Hack, der mir zur schnellen L&#246;sung eines Problems dienen solle. F&#252;r mich funktioniert er gut. Perspektivisch w&#228;re es jedoch w&#252;nschenswert durch einen Parameter zwischen <tt>LIST</tt> und  <tt>LIST -a</tt> w&#228;hlen zu k&#246;nnen. Nach meiner m&#252;ndlichen Diplompr&#252;fung werde ich das sauber implementieren und als Feature vorschlagen.    </p>
<p>EDIT 16:40: <a href="http://www.unixwiz.net/techtips/wget-dotfiles.html">Hier</a> gibt es einen sauberen Patch, allerdings nur f&#252;r Version 1.9.1. Doch es sollte nicht allzu schwer fallen ihn auf die aktuelle Version zu portieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomas-falkner.de/2007/04/21/wget-aufbohren-dotfiles-per-mirror-mitkopieren/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ultimate Tag Warrior: URL-Rewriting</title>
		<link>http://blog.thomas-falkner.de/2007/04/08/ultimate-tag-warrior-url-rewriting/</link>
		<comments>http://blog.thomas-falkner.de/2007/04/08/ultimate-tag-warrior-url-rewriting/#comments</comments>
		<pubDate>Sun, 08 Apr 2007 12:26:51 +0000</pubDate>
		<dc:creator>Thomas Falkner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.thomas-falkner.de/2007/04/08/ultimate-tag-warrior-url-rewriting/</guid>
		<description><![CDATA[UTW ist ein tolles Plugin f&#252;r WordPress, um Postings mit Tags zu versehen und Tagclouds als Navigationsmittel zu erzeugen. Dabei ist sogar eine Option vorgesehen, mit der sich sch&#246;ne URL in Form von BASEURL/tag/tag erzeugen lassen. Bislang blieb diese Funktionalit&#228;t meiner WordPress Installation jedoch versagt. Zwar konnte ich die Option aktivieren, die Tag Links verweisen [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.neato.co.nz/ultimate-tag-warrior"><acronym title="Ultimate Tag Warrior">UTW</acronym></a> ist ein tolles Plugin f&#252;r WordPress, um Postings mit Tags zu versehen und <a href="http://de.wikipedia.org/wiki/Wortwolke">Tagclouds</a> als Navigationsmittel zu erzeugen. Dabei ist sogar eine Option vorgesehen, mit der sich sch&#246;ne URL in Form von <tt>BASEURL/tag/tag</tt> erzeugen lassen. Bislang blieb diese Funktionalit&#228;t meiner WordPress Installation jedoch versagt. Zwar konnte ich die Option aktivieren, die Tag Links verweisen auch auf URLs wie <tt>BASEURL/tag/linux</tt>, aber WordPress vermochte sie nicht auf den eigentliche URL <tt>BASEURL/index.php?tag=linux</tt> umzuschreiben.<br />
Des R&#228;tsels L&#246;sung fand ich w&#228;hrend ich mich in das Rewriting von WordPress einarbeitete.<br />
Wenn Permalinks (so der von WordPress gew&#228;hlte Name f&#252;r scheinbar statische, saubere URLs) aktiviert werden, schreibt WordPress eine <tt>.htaccess</tt> mit folgendem Inhalt (gek&#252;rzt):</p>
<div class="igBar"><span id="lcode-4"><a href="#" onclick="javascript:showPlainTxt('code-4'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-4">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RewriteEngine On</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RewriteBase /</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RewriteCond %<span style="color:#006600; font-weight:bold;">&#123;</span>REQUEST_FILENAME<span style="color:#006600; font-weight:bold;">&#125;</span> !-f</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RewriteCond %<span style="color:#006600; font-weight:bold;">&#123;</span>REQUEST_FILENAME<span style="color:#006600; font-weight:bold;">&#125;</span> !-d</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">RewriteRule . /index.<span style="">php</span> <span style="color:#006600; font-weight:bold;">&#91;</span>L<span style="color:#006600; font-weight:bold;">&#93;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Sofern es sich bei der angeforderten Ressource nicht um ein tats&#228;chlich auf dem Webspace vorhandenes Verzeichnis oder File handelt, wird die Anfrage auf die <tt>index.php</tt> umgeschrieben.<br />
Hier &#252;bernimmt dann die Klasse <tt>WP_Rewrite</tt>, die mit eigenen Regelwerk die sonst an <a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html">mod_rewrite</a> delegierte Aufgabe &#252;bernimmt statische URLs in dynamische umzusetzen. Geparster PHP-Code ist zwar nicht ansatzweise so effizient wie das in C implementiere und bew&#228;hrte mod_rewrite, bringt aber den entscheidenden Vorteil einer durch Plugins nutzbaren API mit sich. Von der macht der Entwickler des Ultimate Tag Warrior auch Gebrauch, indem er in der Funktion <tt>ultimate_rewrite_rules</tt> (zu finden in der Datei <tt>ultimate-tag-warrior-actions.php</tt>) ein neues Rewrite-Tag registriert und zwei neue Rewrite-Regeln hinzuf&#252;gt. </p>
<div class="igBar"><span id="lphp-5"><a href="#" onclick="javascript:showPlainTxt('php-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-5">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$wp_rewrite</span>-&gt;<span style="color:#006600;">add_rewrite_tag</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'%tag%'</span>, <span style="color:#FF0000;">'([^/]+)'</span>, <span style="color:#FF0000;">'tag='</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// without trailing slash</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$rules</span> += <span style="color:#0000FF;">$wp_rewrite</span>-&gt;<span style="color:#006600;">generate_rewrite_rules</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$baseurl</span> . <span style="color:#FF0000;">"%tag%"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// with trailing slash</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$rules</span> += <span style="color:#0000FF;">$wp_rewrite</span>-&gt;<span style="color:#006600;">generate_rewrite_rules</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$baseurl</span> . <span style="color:#FF0000;">"%tag%/"</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Soweit so gut, funktioniert nur leider nicht. Ich vermutete, dass die von UTW registrierte Rewrite-Regel mit anderen, zuvor hinterlegten, kollidierte. Darum passte ich versuchsweise den Code dahingehend an, dass die UTW-Rewrite-Regeln vor allen anderen abgearbeitete w&#252;rden.</p>
<div class="igBar"><span id="lphp-6"><a href="#" onclick="javascript:showPlainTxt('php-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-6">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$wp_rewrite</span>-&gt;<span style="color:#006600;">add_rewrite_tag</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#FF0000;">'%tag%'</span>, <span style="color:#FF0000;">'([^/]+)'</span>, <span style="color:#FF0000;">'tag='</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// without trailing slash</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$rules</span> = <span style="color:#0000FF;">$wp_rewrite</span>-&gt;<span style="color:#006600;">generate_rewrite_rules</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$baseurl</span> . <span style="color:#FF0000;">"%tag%"</span><span style="color:#006600; font-weight:bold;">&#41;</span> + <span style="color:#0000FF;">$rules</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// with trailing slash</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$rules</span> = <span style="color:#0000FF;">$wp_rewrite</span>-&gt;<span style="color:#006600;">generate_rewrite_rules</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF;">$baseurl</span> . <span style="color:#FF0000;">"%tag%/"</span><span style="color:#006600; font-weight:bold;">&#41;</span> + <span style="color:#0000FF;">$rules</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Und tats&#228;chlich: Nun sind auch saubere URLs mit dem Ultimate Tag Warrior m&#246;glich. Alles andere scheint auch zu funktionieren. Jedoch ist das weder eine saubere noch befriedigende L&#246;sung. Ich w&#252;sste gerne, warum und mit welchen Regeln die von UTW registrierten zusammensto&#223;en. Mir fehlt es momentan allerdings an Zeit und Lust den Code zu debuggen - zumal ich mir nicht sicher bin, ob UTW kaputt ist, <tt>WP_Rewrite</tt> oder mir nur ein anderes Plugin in die Quere kommt. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomas-falkner.de/2007/04/08/ultimate-tag-warrior-url-rewriting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhoto Plugins programmieren</title>
		<link>http://blog.thomas-falkner.de/2007/03/15/iphoto-plugins-programmieren/</link>
		<comments>http://blog.thomas-falkner.de/2007/03/15/iphoto-plugins-programmieren/#comments</comments>
		<pubDate>Thu, 15 Mar 2007 00:11:11 +0000</pubDate>
		<dc:creator>Thomas Falkner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://blog.thomas-falkner.de/2007/03/15/iphoto-plugins-programmieren/</guid>
		<description><![CDATA[Hier und dort gibt es die passenden Anleitungen - und ich stehe jetzt in Zugzwang mit meinem Flickrplugin. Allerdings bin ich mir noch unsicher, inwieweit die Anweisungen noch kompatibel zu iPhoto 6 sind. Jedenfalls w&#228;re es w&#252;nschenswert, wenn Apple iPhoto 7 zum Anlass nehmen w&#252;rde, endlich die API zu dokumentieren. Damit w&#252;rden sich Apple vor [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.stone.com/The_Cocoa_Files/Writing_PlugIns.html">Hier</a> und <a href="http://cuboidal.org/computers/mac/iphoto/exportplugins/">dort</a> gibt es die passenden Anleitungen - und ich stehe jetzt in Zugzwang mit meinem Flickrplugin. <img src='http://blog.thomas-falkner.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Allerdings bin ich mir noch unsicher, inwieweit die Anweisungen noch kompatibel zu iPhoto 6 sind. Jedenfalls w&#228;re es w&#252;nschenswert, wenn Apple iPhoto 7 zum Anlass nehmen w&#252;rde, endlich die API zu dokumentieren. Damit w&#252;rden sich Apple vor allem selbst einen Gefallen tun: Denn letztlich wird die Anbindung an beliebige Fotodienste entscheidend f&#252;r die Akzeptanz von iPhoto sein. Eine Software, die von Haus aus nur f&#252;r die Dienste und in die Formate des Herstellers exportiert, sollte zumindest die M&#246;glichkeit bieten mit geringen Aufwand eigene Exportfilter zu entwickeln.  </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomas-falkner.de/2007/03/15/iphoto-plugins-programmieren/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Rubybuch f&#252;r lau</title>
		<link>http://blog.thomas-falkner.de/2007/03/06/rubybuch-fuer-lau/</link>
		<comments>http://blog.thomas-falkner.de/2007/03/06/rubybuch-fuer-lau/#comments</comments>
		<pubDate>Tue, 06 Mar 2007 22:05:19 +0000</pubDate>
		<dc:creator>Thomas Falkner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[programmieren]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.thomas-falkner.de/2007/03/06/rubybuch-fuer-lau/</guid>
		<description><![CDATA[Ruby ist eine sehr m&#228;chtige objektorientierte Programmiersprache, die aufgrund des ihr innewohnenden Prinzips der geringsten &#220;berraschung im direkten Vergleich mit &#228;hnlich leistungsf&#228;higen Sprachen leicht erlernbar ist. Wem dazu die exzellente Dokumentation nicht gen&#252;gt, erh&#228;lt mit Mr. Neighborly’s Humble Little Ruby Book gegen eine kostenlose Registrierung ein didaktisch gut aufgebautes Lehrbuch. Wer lieber auf toten B&#228;ume [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ruby-lang.org/de/">Ruby</a> ist eine sehr m&#228;chtige objektorientierte Programmiersprache, die aufgrund des ihr innewohnenden Prinzips der geringsten &#220;berraschung im direkten Vergleich mit &#228;hnlich leistungsf&#228;higen Sprachen leicht erlernbar ist. Wem dazu die exzellente <a href="http://www.ruby-lang.org/de/documentation/">Dokumentation</a> nicht gen&#252;gt, erh&#228;lt mit <a href="http://www.infoq.com/minibooks/ruby/">Mr. Neighborly’s Humble Little Ruby Book</a> gegen eine kostenlose Registrierung ein didaktisch gut aufgebautes Lehrbuch.</p>
<p>Wer lieber auf toten B&#228;ume liest, kann das Buch &#252;brigens auch <a href="http://www.lulu.com/content/433384">kaufen</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomas-falkner.de/2007/03/06/rubybuch-fuer-lau/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Das PHP-Manual l&#252;gt</title>
		<link>http://blog.thomas-falkner.de/2007/03/06/das-php-manual-luegt/</link>
		<comments>http://blog.thomas-falkner.de/2007/03/06/das-php-manual-luegt/#comments</comments>
		<pubDate>Mon, 05 Mar 2007 23:11:29 +0000</pubDate>
		<dc:creator>Thomas Falkner</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://blog.thomas-falkner.de/2007/03/06/das-php-manual-luegt/</guid>
		<description><![CDATA[Gehen wir von folgendem Codeschnippsel aus: PLAIN TEXT PHP: $a = 'a'; $a++; echo $a; &#160; $b = 'a'; $b = $b + 1; echo $b; Wer vermag ohne Ausprobieren zu sagen, welchen Wert $a und welchen Wert $b hat? W&#228;re PHP eine konsistente Programmiersprache, sollten $a und $b den gleiche Wert haben. Gem&#228;&#223; der [...]]]></description>
			<content:encoded><![CDATA[<p>Gehen wir von folgendem Codeschnippsel aus:</p>
<div class="igBar"><span id="lphp-8"><a href="#" onclick="javascript:showPlainTxt('php-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">PHP:</span>
<div id="php-8">
<div class="php">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$a</span> = <span style="color:#FF0000;">'a'</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$a</span>++;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$a</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$b</span> = <span style="color:#FF0000;">'a'</span>;</div>
</li>
<li style="font-weight: bold;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#0000FF;">$b</span> = <span style="color:#0000FF;">$b</span> + <span style="color:#CC66CC;color:#800000;">1</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:PROJECT;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><a href="http://www.php.net/echo"><span style="color:#000066;">echo</span></a> <span style="color:#0000FF;">$b</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Wer vermag ohne Ausprobieren zu sagen, welchen Wert $a und welchen Wert $b hat?<br />
W&#228;re PHP eine konsistente Programmiersprache, sollten $a und $b den gleiche Wert haben. Gem&#228;&#223; der Logik von PHP ist jedoch <code>a == 'b'</code> und <code>b == 1</code>.<br />
Eine Sprache, die zu solchen &#220;berraschungen f&#252;hrt, wird tats&#228;chlich als besonders einsteigerfreundlich gehandelt. Als Argument f&#252;r PHP wird neben der flachen Lernkurve immer wieder auf die hervorragende Dokumentation verwiesen. Wie gut kann wohl ein Manual sein, dass zu oben genannten Ph&#228;nomen folgendes <a href="http://de.php.net/manual/en/language.operators.increment.php">verkl&#228;rt</a>?</p>
<blockquote><p>PHP follows Perl's convention when dealing with arithmetic operations on character variables and not C's. For example, in Perl 'Z'+1 turns into 'AA', while in C 'Z'+1 turns into '[' ( ord('Z') == 90, ord('[') == 91 ). Note that character variables can be incremented but not decremented and even so only plain ASCII characters (a-z and A-Z) are supported.</p></blockquote>
<p>Dass 'Z'+1 'AA' ergeben soll, halte ich f&#252;r eine L&#252;ge.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.thomas-falkner.de/2007/03/06/das-php-manual-luegt/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

