<?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>Christian Lechner &#187; Programmierung</title>
	<atom:link href="http://www.christianlechner.com/category/programmierung/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.christianlechner.com</link>
	<description>Was mich interessiert.</description>
	<lastBuildDate>Sat, 31 Dec 2011 19:07:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WordPress unter IIS&#8230;</title>
		<link>http://www.christianlechner.com/programmierung/wordpress-unter-iis/</link>
		<comments>http://www.christianlechner.com/programmierung/wordpress-unter-iis/#comments</comments>
		<pubDate>Thu, 23 Oct 2008 17:26:32 +0000</pubDate>
		<dc:creator>Christian Lechner</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://christianlechner.com/?p=54</guid>
		<description><![CDATA[Wer ein WordPress Blog unter einem IIS-Webserver laufen lassen will, hat eigentlich keine Probleme damit, außer mit mod_rewrite. Doch wie bringt man dem IIS das URL-Rewriting bei? Mit Bordmitteln ist das leider nicht so einfach, da man in der Web.config leider nur statische Adressen &#8220;rewriten&#8221; kann, nennt sich in dem Fall UrlMapping. Eine eigene Funktion [...]]]></description>
			<content:encoded><![CDATA[<p>Wer ein WordPress Blog unter einem IIS-Webserver laufen lassen will, hat eigentlich keine Probleme damit, außer mit mod_rewrite. Doch wie bringt man dem IIS das URL-Rewriting bei?<br />
<span id="more-54"></span><!--adsense--><br />
Mit Bordmitteln ist das leider nicht so einfach, da man in der Web.config leider nur statische Adressen &#8220;rewriten&#8221; kann, nennt sich in dem Fall UrlMapping. Eine eigene Funktion in der global.asax Datei wäre auch möglich oder gar ein eigenes Modul, wozu man natürlich Admin-Rechte benötigt.</p>
<p>Was macht nun aber jemand, der z.B. Webspace auf einem IIS hat und dort ein WP installieren möchte?<br />
Die Lösung ist einfach und genial:<br />
eine PHP-Seite, die als Standard-404-Fehler-Seite definiert wird:</p>
<pre lang="php">< ?php
$qs = $_SERVER['QUERY_STRING'];
$pos = strrpos($qs, '://');
$pos = strpos($qs, '/', $pos + 4);
$_SERVER['REQUEST_URI'] = substr($qs, $pos);
$_SERVER['PATH_INFO'] = $_SERVER['REQUEST_URI'];
include('index.php');
?></pre>
<p>In den neueren Versionen von WP (glaube &gt;= 2.0) kann der Pfad, so aussehen:<br />
entweder mit ID: <em>index.php?p=123</em><br />
ohne URL-Rewrite: <em>index.php/2008/01/02/Titel-des-Posts/</em><br />
mit URL-Rewrite: <em>/2008/01/02/Titel-des-Posts/</em></p>
<p>Das obige Script wird aufgerufen, wenn ein physikalisches Verzeichnis nicht existiert, liest den Query-String ein, setzt die Server-Variable und inkludiert die index.php von WP.<br />
Nun erfüllt das Script die selbe Funktion wie mod_rewrite.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.christianlechner.com/programmierung/wordpress-unter-iis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Homepage des KG-Söll fertig!</title>
		<link>http://www.christianlechner.com/internet/homepage-des-kg-soll-fertig/</link>
		<comments>http://www.christianlechner.com/internet/homepage-des-kg-soll-fertig/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 20:30:05 +0000</pubDate>
		<dc:creator>Christian Lechner</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://christianlechner.com/?p=38</guid>
		<description><![CDATA[Das ist nun die Typo3 Seite die ich schon mal erwähnt hatte: kg-soell.tsn.at Es handelt sich um die Homepage des Kindergarten Söll. Auf der Seite finden Sie alles rund um die Aktivitäten des Kindergartens. Haben Sie irgendwelche Fragen zur Umsetzung der Seite oder sonstige Anregungen, hinterlassen Sie einfach ein Kommentar oder nutzen die Gästebuch-Funktion auf [...]]]></description>
			<content:encoded><![CDATA[<p>Das ist nun die Typo3 Seite die ich schon mal erwähnt hatte: <a href="http://kg-soell.tsn.at" target="_blank">kg-soell.tsn.at</a><br />
<img style="float:left; margin:5px" src="http://christianlechner.com/wp-content/images/kg-soell.png" alt="" />Es handelt sich um die Homepage des Kindergarten Söll. Auf der Seite finden Sie alles rund um die Aktivitäten des Kindergartens.<br />
Haben Sie irgendwelche Fragen zur Umsetzung der Seite oder sonstige Anregungen, hinterlassen Sie einfach ein Kommentar oder nutzen die Gästebuch-Funktion auf der KG-Page.<br />
<br style="clear:both"/></p>
]]></content:encoded>
			<wfw:commentRss>http://www.christianlechner.com/internet/homepage-des-kg-soll-fertig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Googles AppEngine &#8230;</title>
		<link>http://www.christianlechner.com/allgemein/googles-appengine/</link>
		<comments>http://www.christianlechner.com/allgemein/googles-appengine/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 19:29:09 +0000</pubDate>
		<dc:creator>Christian Lechner</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://christianlechner.com/?p=32</guid>
		<description><![CDATA[Bin vor kurzem auf die Google AppEngine gestoßen. Nun, was ist das? &#8220;Run your web applications on Google&#8217;s infrastructure.&#8221; Man kann also seine Webanwendungen bei Google hosten. Hört sich gut an, doch alles ist noch nicht so rosig, denn es gibt (noch) ein paar Wermutstropfen: Beschränkung der Skriptsprache auf Python (wird wahrscheinlich bald auf PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Bin vor kurzem auf die Google AppEngine gestoßen. Nun, was ist das? &#8220;Run your web applications on Google&#8217;s infrastructure.&#8221; Man kann also seine Webanwendungen bei Google hosten.<br />
Hört sich gut an, doch alles ist noch nicht so rosig, denn es gibt (noch) ein paar Wermutstropfen:</p>
<p><span id="more-32"></span><!--adsense--></p>
<ul>
<li><strong>Beschränkung der Skriptsprache auf Python</strong> (wird wahrscheinlich bald auf PHP ausgeweitet)</li>
<li><strong>das ganze unterliegt einer Sandbox</strong> ( die Software wird vom Rest des Systems abgeschirmt, quasi in den Sandkasten gesetzt, in dem sie einerseits keinen Schaden anrichten kann und andererseits die Wirkungen der Software aufgezeichnet werden können)</li>
<li><strong>kein SQL </strong>(es wird eine eigene Query für den Datastore verwendet: GQL)</li>
<li><strong>500 MB Speicherplatz</strong></li>
<li><strong>Traffic für 5 Mio. Seitenaufrufe</strong></li>
</ul>
<p>Natürlich ist es ein großer Anreiz, Googles Infrastruktur zum Hosten eigener Anwendungen zu verwenden. Es gibt zwar noch ein paar Dinge die einem Sauer aufstoßen können, vor allem die Beschränkung auf Python, allerdings verrät ein Blick in die <em>app.yaml </em>Datei, welche jede Applikation im root-Verzeichnis haben muss, dass die Beschränkung bald fallen wird:</p>
<pre lang="php">application: test
version: 1
runtime: python
api_version: 1
handlers:
- url: /images
static_dir: images
- url: /.*
script: erste_ausgabe.py</pre>
<p>Das Attribut <em>runtime </em>gibt den Hinweis dazu.</p>
<p>Für den ganzen Rest (Datenbank, Mail, &#8230;) gibt&#8217;s immer eine eigene API:</p>
<ul>
<li>Python Runtime</li>
<li>Datastore API</li>
<li>Images API</li>
<li>Mail API</li>
<li>Memcahe API</li>
<li>URL Fetch API</li>
<li>Users API</li>
</ul>
<p>Natürlich hat Google ein SDK beigepackt und es finden sich auch schon zahlreiche (wenn oft auch sinnlose <img src='http://www.christianlechner.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) <a title="AppGallery" href="http://appgallery.appspot.com/" target="_blank">Anwendungen</a> in der AppEngine.</p>
<p><a href="http://code.google.com/appengine" target="_blank">Hier geht&#8217;s los!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.christianlechner.com/allgemein/googles-appengine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SmoothGallery und Umlaute &#8230;</title>
		<link>http://www.christianlechner.com/programmierung/smoothgallery-und-umlaute/</link>
		<comments>http://www.christianlechner.com/programmierung/smoothgallery-und-umlaute/#comments</comments>
		<pubDate>Wed, 30 Jul 2008 18:17:54 +0000</pubDate>
		<dc:creator>Christian Lechner</dc:creator>
				<category><![CDATA[Programmierung]]></category>

		<guid isPermaLink="false">http://christianlechner.com/?p=31</guid>
		<description><![CDATA[Da ich gerade an einer Typo3 Seite arbeite (nicht diese Seite hier ) und ich dazu eine Galerie benötige, habe ich einige Extensions durchprobiert. Meine Wahl ist schlussendlich auf die SmoothGallery gefallen, da sie folgendes bietet: Thumbnail-Erstellung, Slideshow-Funktion, Lightbox, &#8230; Doch da die Dateinamen der Bilder Umlaute enthalten, tut sich der Apache-Server etwas schwer (böse [...]]]></description>
			<content:encoded><![CDATA[<p>Da ich gerade an einer Typo3 Seite arbeite (nicht diese Seite hier <img src='http://www.christianlechner.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) und ich dazu eine Galerie benötige, habe ich einige Extensions durchprobiert. Meine Wahl ist schlussendlich auf die SmoothGallery gefallen, da sie folgendes bietet: Thumbnail-Erstellung, Slideshow-Funktion, Lightbox, &#8230;<br />
<span id="more-31"></span><!--adsense--><br />
Doch da die Dateinamen der Bilder Umlaute enthalten, tut sich der Apache-Server etwas schwer (böse Umlaute! <img src='http://www.christianlechner.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ).<br />
Um ihm auf die Sprünge zu helfen setzen wir im Ordner der Galerie, standardmäßig <em>rgsmoothgallery</em> im Unterordner <em>pi1</em> in der Datei <em>class.tx_rgsmoothgallery_pi1.php</em> die folgende Funktion ein:</p>
<pre lang="php">// Ergänzung: Umlaute!
function umlaute($path)
{
$umlaute = array(
"Ä" => "%c4",
"ä" => "%e4",
"Ö" => "%d6",
"ö" => "%f6",
"Ü" => "%dc",
"ü" => "%fc",
"ß" => "%df"
);
foreach ($umlaute as $umlaut => $ok)
{
$path = str_replace($umlaut, $ok, $path);
}
return $path;
}</pre>
<p>Diese Funktion muss nun vier mal aufgerufen werden:</p>
<p>1. für die Lightbox: <strong>$lightbox = umlaute($lightbox);</strong></p>
<pre lang="php">$lightbox =  ($lightbox=='#' || $lightbox=='' || $this->config['lightbox']!=1) ? 'javascript:void(0)' :  $this->cObj->IMG_RESOURCE($imgTSConfigLightbox);
$lightbox = str_replace(' ', '%20', $lightbox); // search for empty chars, thx maxhb
$lightbox = umlaute($lightbox);
$lightBoxImage='<a href="'.$lightbox.'" title="'.$this->pi_getLL('textOpenImage').'" class="open"></a>';</pre>
<p>2. für die Thumbnails: <strong>$thumbImage = &#8216;&lt;img src=&#8221;&#8216;.umlaute($this-/>cObj->IMG_RESOURCE($imgTSConfigThumb)).&#8217;&#8221; </strong></p>
<pre lang="php">
if ($thumb) {
$imgTSConfigThumb = $this->conf['thumb.'];
$imgTSConfigThumb['file'] = $path;
$thumbImage = '<img src="'.umlaute($this-/>cObj->IMG_RESOURCE($imgTSConfigThumb)).'" class="thumbnail" />';
}
</pre>
<p>3. und 4. für das große Bild, einmal wenn&#8217;s nur ein einziges Bild gibt und ein zweites Mal falls es doch mehr Bilder gibt <img src='http://www.christianlechner.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  : <strong>$bigImage = umlaute($bigImage);</strong></p>
<pre lang="php">
// if just 1 image should be returned
    if ($limitImages==1) {
	$bigImage = umlaute($bigImage);
    	return '<img src="'.$bigImage.'" class="full" />';
    }
    $bigImage = umlaute($bigImage);
    // build the image element
    $singleImage .= '
<div class="imageElement">'.$text.
        $lightBoxImage.'
        <img src="'.$bigImage.'" class="full" />
        '.$thumbImage.'
      </div>

';
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.christianlechner.com/programmierung/smoothgallery-und-umlaute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

