<?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>Leben des wolf-u.li &#187; IT</title>
	<atom:link href="http://wolf-u.li/category/it/feed/" rel="self" type="application/rss+xml" />
	<link>http://wolf-u.li</link>
	<description>This and That.</description>
	<lastBuildDate>Wed, 10 Mar 2010 21:25:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>H&#228;ufung von Fehler &#8220;Unerreichbar&#8221; in Google Webmaster Tools aufgrund von Global Translator und Parameter replytocom</title>
		<link>http://wolf-u.li/3365/haeufung-von-fehler-unerreichbar-in-google-webmaster-tools-aufgrund-von-global-translator-und-parameter-replytocom/</link>
		<comments>http://wolf-u.li/3365/haeufung-von-fehler-unerreichbar-in-google-webmaster-tools-aufgrund-von-global-translator-und-parameter-replytocom/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 21:25:03 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3365</guid>
		<description><![CDATA[In den letzten Tagen haben sich bei mir in den Google Webmaster-Tools sehr viele &#8220;Unerreichbar&#8221;-Fehler aufgrund des dynamischen &#8220;replytocom&#8221;-Parameters angeh&#228;uft. Dieser wird bei, von Global Translator &#252;bersetzten, Seiten an verlinkungen der Kommentare angeh&#228;ngt, was Google wohl nicht so gut verpackt.
Die L&#246;sung ist sehr einfach: Man gehe in die betroffene Seite, klicke links auf &#8220;Website-Konfiguration&#8221; und [...]]]></description>
			<content:encoded><![CDATA[<p>In den letzten Tagen haben sich bei mir in den Google Webmaster-Tools sehr viele &#8220;Unerreichbar&#8221;-Fehler aufgrund des dynamischen &#8220;replytocom&#8221;-Parameters angeh&#228;uft. Dieser wird bei, von Global Translator &#252;bersetzten, Seiten an verlinkungen der Kommentare angeh&#228;ngt, was Google wohl nicht so gut verpackt.</p>
<p>Die L&#246;sung ist sehr einfach: Man gehe in die betroffene Seite, klicke links auf &#8220;Website-Konfiguration&#8221; und anschlie&#223;end &#8220;Einstellungen&#8221;. Dort tr&#228;gt man am Ende der Seite unter &#8220;Parameterbehandlung&#8221; den Parameter &#8220;replytocom&#8221; mit der Aktion &#8220;Ignorieren&#8221; ein.<br />
<span id="more-3365"></span><br />
Sieht dann so aus:<br />
<a rel="lightbox" href="http://wolf-u.li/upload/2010/03/3365-Google-Parameter-ignorieren.png"><img src="http://wolf-u.li/upload/2010/03/3365-Google-Parameter-ignorieren-500x91.png" alt="Parametereinstellungen in Google Webmaster Tools" title="Parametereinstellungen in Google Webmaster Tools" width="500" height="91" class="aligncenter size-medium wp-image-3366" /></a></p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> &#8211; This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3365/haeufung-von-fehler-unerreichbar-in-google-webmaster-tools-aufgrund-von-global-translator-und-parameter-replytocom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bildercache f&#252;r den Webserver nginx am Beispiel von Gravatar-Icons</title>
		<link>http://wolf-u.li/3348/bildercache-fuer-den-webserver-nginx-am-beispiel-von-gravatar-icons/</link>
		<comments>http://wolf-u.li/3348/bildercache-fuer-den-webserver-nginx-am-beispiel-von-gravatar-icons/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 18:57:57 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Webserver]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3348</guid>
		<description><![CDATA[Dieser Artikel ist Teil einer Reihe zum Webserver nginx.Schau dir auch die anderen Artikel an: Zum Leitartikel
Vor einigen Tagen schrieb ich bereits &#252;ber eine M&#246;glichkeit, die Gravatar-Icons lokal zwischen zu speichern. Leider wurde dabei bei jedem Aufruf eines Bildes immer einen php-call gemacht, was mir bei manchen Beitr&#228;gen das Blog in die Knie zwingen w&#252;rde [...]]]></description>
			<content:encoded><![CDATA[<div class="wolfuliannounce">Dieser Artikel ist Teil einer Reihe zum Webserver nginx.<br />Schau dir auch die anderen Artikel an: <a href="http://wolf-u.li/3137/leitartikel-zur-konfiguration-und-installation-des-webservers-nginx/">Zum Leitartikel</a></div>
<p>Vor einigen Tagen <a href="http://wolf-u.li/3347/auslieferung-von-gravatar-icons-aus-einem-lokalen-cache-download-per-curl/">schrieb</a> ich bereits &#252;ber eine M&#246;glichkeit, die Gravatar-Icons lokal zwischen zu speichern. Leider wurde dabei bei jedem Aufruf eines Bildes immer einen php-call gemacht, was mir bei manchen Beitr&#228;gen das Blog in die Knie zwingen w&#252;rde und dem eigentlich gew&#252;nschten Effekt (Beschleunigung) entgegenstehen w&#252;rde. Daher habe ich mir mal die Funktionen meines Webservers nginx angesehen und dabei festgestellt, dass dieser die folgende Pr&#252;fung erlaubt:</p>
<ul>
<li>Ist das Bild vorhanden?
<ul>
<li>Wenn ja: Direkte Auslieferung</li>
<li>Wenn nein: Aufruf einer PHP-Datei zum Download des Bildes</li>
</ul>
</li>
</ul>
<p><span id="more-3348"></span><br />
Die Umsetzung war dann einfach:</p>
<p>Das ist die Konfigurationsdatei f&#252;r den vHost in nginx:</p>
<div class="igBar"><span id="lcode-5"><a href="#" onclick="javascript:showPlainTxt('code-5'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-5">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">server <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; listen&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#800000;color:#800000;">80</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; server_name&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;img.<span style="">yourdomain</span>.<span style="">tld</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; error_log&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/path/to/your/logs/error/img.<span style="">yourdomain</span>.<span style="">tld</span>.<span style="">log</span> warn;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; root&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; /path/to/your/document/root/;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; location ~ \.<span style="">php</span>$ <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; fastcgi_pass&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#800000;color:#800000;">127</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">1</span>:<span style="color:#800000;color:#800000;">1234</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; include&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;/etc/nginx/fastcgi_params;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; location / <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; index&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;cdn.<span style="">php</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; # if the requested file exists, return it immediately</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; if <span style="color:#006600; font-weight:bold;">&#40;</span>-f $request_filename<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; break;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; # all other requests go to CDN-PHP-File</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; if <span style="color:#006600; font-weight:bold;">&#40;</span>!-e $request_filename<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; rewrite ^<span style="color:#006600; font-weight:bold;">&#40;</span>.+<span style="color:#006600; font-weight:bold;">&#41;</span>$ /cdn.<span style="">php</span> last;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Nun speichert man in <code>/path/to/your/document/root/</code> die Datei cdn.php mit folgendem Inhalt:</p>
<div class="igBar"><span id="lcode-6"><a href="#" onclick="javascript:showPlainTxt('code-6'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-6">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;?php</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Script by Uli Wolf - http://wolf-u.li</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Modify the settings below according to your needs:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Size of the gravatar-images:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gimagesize = <span style="color:#800000;color:#800000;">32</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// If the mailadress was not found, you can get various images:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - identicon</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - monsterid</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - wavatar</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$mailnotfound = <span style="color:#CC0000;">"identicon"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$removefromurl = array<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"/g/"</span>,<span style="color:#CC0000;">"/"</span>,<span style="color:#CC0000;">".png"</span>,<span style="color:#CC0000;">".jpg"</span>,<span style="color:#CC0000;">".gif"</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gravatar_hash = str_replace<span style="color:#006600; font-weight:bold;">&#40;</span>strtolower<span style="color:#006600; font-weight:bold;">&#40;</span>$removefromurl<span style="color:#006600; font-weight:bold;">&#41;</span>,<span style="color:#CC0000;">""</span>,$_SERVER<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">"REQUEST_URI"</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gravatar_hash = preg_replace<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"/[^a-z0-9<span style="color:#000099; font-weight:bold;">\s</span>]/"</span>, <span style="color:#CC0000;">""</span>, $gravatar_hash<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">if<span style="color:#006600; font-weight:bold;">&#40;</span>strlen<span style="color:#006600; font-weight:bold;">&#40;</span>$gravatar_hash<span style="color:#006600; font-weight:bold;">&#41;</span>!=<span style="color:#800000;color:#800000;">32</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>exit;<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$grav_img = <span style="color:#CC0000;">"http://www.gravatar.com/avatar/"</span> . $gravatar_hash . <span style="color:#CC0000;">"?s="</span> . $gimagesize . <span style="color:#CC0000;">"&amp;d="</span> . $mailnotfound . <span style="color:#CC0000;">"&amp;r=G"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">if<span style="color:#006600; font-weight:bold;">&#40;</span>extension_loaded<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'curl'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $gch = curl_init<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $gcurl_options = array<span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_URL =&gt; $grav_img,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_HEADER =&gt; false,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_RETURNTRANSFER =&gt; true,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_TIMEOUT =&gt; <span style="color:#800000;color:#800000;">20</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_BINARYTRANSFER =&gt; true,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_MAXREDIRS =&gt; <span style="color:#800000;color:#800000;">2</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; curl_setopt_array<span style="color:#006600; font-weight:bold;">&#40;</span>$gch, $gcurl_options<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $gdata = curl_exec<span style="color:#006600; font-weight:bold;">&#40;</span>$gch<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; curl_close <span style="color:#006600; font-weight:bold;">&#40;</span>$gch<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$gch<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> else <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ob_start<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $gfilehandle_url = fopen<span style="color:#006600; font-weight:bold;">&#40;</span>$grav_img, <span style="color:#CC0000;">"rb"</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; fpassthru<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_url<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; fclose<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_url<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $gdata = ob_get_contents<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ob_end_clean<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_url<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gfilehandle_img = fopen<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"g/"</span> . $gravatar_hash . <span style="color:#CC0000;">".png"</span>, <span style="color:#CC0000;">"wb+"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">fwrite<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_img, $gdata<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">fclose<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_img<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">unset<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_img<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">header<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'content-type: image/png'</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo $gdata;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">?&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Was macht diese Datei?</p>
<p>Oben kann man zun&#228;chst einstellen, wie gro&#223; die Bilder sein sollen und welches Bild angezeigt werden soll, wenn nix hinterlegt ist. Anschlie&#223;end wird eine Pr&#252;fung der URL durchgef&#252;hrt, die einige m&#246;gliche Angriffsvektoren ausfiltern soll. Dabei bleiben dann nur Strings mit 32 Zeichen in Gro&#223;- und Kleinbuchstaben &#252;brig, andernfalls wird das Script beendet. Im Anschluss wird dann das Bild geholt (per curl, wenn m&#246;glich), gespeichert und ausgegeben. Das verzeichnis /path/to/your/document/root/<strong>g/</strong> sollte hierzu vorhanden sein.</p>
<p>Warum der Unterordner /g/? Ich wollte mir damit offen halten, verschiedene Bildertypen zu cachen. Das habe ich gel&#246;st, indem ich meinen Bilderhashes ein "<code>/g/</code>" vorstelle, welches diese als Gravatar-Bilder markiert. F&#228;llt mir also irgendwann mal ein, dass ich beispielsweise gerne noch <a href="http://pavatar.com/">Pavatar</a> (wie auch immer geartet) cachen m&#246;chte, dann kann ich dies hier einbauen.</p>
<p>Meine Url sieht also am Ende so aus:</p>
<blockquote><p><code>http://img.yourdomain.tld/g/a9ec4695d424a6dcb6f896afb0ee22bc.png</code></p></blockquote>
<p>und wird bei ersten Aufruf gecached mittels php und anschlie&#223;end in den weiteren Aufrufen immer statisch durch den Webserver ausgegeben. M&#246;chte man nun regelm&#228;&#223;ig die Bilder aktualisieren, empfiehlt es sich, das <a href="http://wolf-u.li/3347/auslieferung-von-gravatar-icons-aus-einem-lokalen-cache-download-per-curl/">hier</a> bereits vorgestellte Script in regelm&#228;&#223;igen Abst&#228;nden laufen zu lassen.</p>
<p>F&#252;r den Einbau in Wordpress ist das ganze auch recht einfach. Man &#246;ffnet die comments.php und sucht darin den Aufruf:</p>
<div class="igBar"><span id="lcode-7"><a href="#" onclick="javascript:showPlainTxt('code-7'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-7">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;?php echo get_avatar<span style="color:#006600; font-weight:bold;">&#40;</span> $comment, <span style="color:#800000;color:#800000;">32</span><span style="color:#006600; font-weight:bold;">&#41;</span>; ?&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Diesen ersetzt man dann durch:</p>
<div class="igBar"><span id="lcode-8"><a href="#" onclick="javascript:showPlainTxt('code-8'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-8">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;?php echo <span style="color:#CC0000;">"&lt;img src='http://img.yourdomain.tld/g/"</span> . <span style="">md5</span><span style="color:#006600; font-weight:bold;">&#40;</span>strtolower<span style="color:#006600; font-weight:bold;">&#40;</span>get_comment_author_email<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> . <span style="color:#CC0000;">".png' height='32' width='32'&gt;"</span>; ?&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Wobei die Domain und die Gr&#246;&#223;e nat&#252;rlich austauschbar sind.</p>
<p>Zu guter letzt noch ein Hinweis f&#252;r Apache-Nutzer: Das PHP-Script l&#228;sst sich nat&#252;rlich auch mit diesem Webserver nutzen.</p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3348/bildercache-fuer-den-webserver-nginx-am-beispiel-von-gravatar-icons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>All ebuilds that could satisfy &#8220;dev-java/sun-jdk&#8221; have been masked: dlj-1.1 license(s)</title>
		<link>http://wolf-u.li/3352/all-ebuilds-that-could-satisfy-dev-javasun-jdk-have-been-masked-dlj-1-1-licenses/</link>
		<comments>http://wolf-u.li/3352/all-ebuilds-that-could-satisfy-dev-javasun-jdk-have-been-masked-dlj-1-1-licenses/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 18:10:03 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Gentoo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Lizenz]]></category>
		<category><![CDATA[Lösung]]></category>
		<category><![CDATA[Problem]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3352</guid>
		<description><![CDATA[Vor einigen Tagen ist mir beim Update der Java-Version meines Servers der folgende Fehler untergekommen:
!!! The following installed packages are masked:
- dev-java/sun-jdk-1.6.0.17 (masked by: dlj-1.1 license(s))
A copy of the 'dlj-1.1' license is located at '/usr/portage/licenses/dlj-1.1'.
- dev-java/sun-jdk-1.5.0.22 (masked by: dlj-1.1 license(s))
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einigen Tagen ist mir beim Update der Java-Version meines Servers der folgende Fehler untergekommen:</p>
<blockquote><p><code>!!! The following installed packages are masked:<br />
- dev-java/sun-jdk-1.6.0.17 (masked by: dlj-1.1 license(s))<br />
A copy of the 'dlj-1.1' license is located at '/usr/portage/licenses/dlj-1.1'.</p>
<p>- dev-java/sun-jdk-1.5.0.22 (masked by: dlj-1.1 license(s))<br />
For more information, see the MASKED PACKAGES section in the emerge<br />
man page or refer to the Gentoo Handbook.</p>
<p>!!! All ebuilds that could satisfy "dev-java/sun-jdk" have been masked.<br />
!!! One of the following masked packages is required to complete your request:<br />
- dev-java/sun-jdk-1.6.0.18-r1 (masked by: dlj-1.1 license(s), ~x86 keyword)<br />
A copy of the 'dlj-1.1' license is located at '/usr/portage/licenses/dlj-1.1'.</p>
<p>- dev-java/sun-jdk-1.6.0.18 (masked by: dlj-1.1 license(s), ~x86 keyword)<br />
- dev-java/sun-jdk-1.6.0.17 (masked by: dlj-1.1 license(s))<br />
- dev-java/sun-jdk-1.5.0.22 (masked by: dlj-1.1 license(s))</code></p></blockquote>
<p>Die L&#246;sung war das akzeptieren der Lizenz, wie bereits schon in der Meldung gesagt. Jedoch gibt es da verschiedene M&#246;glichkeiten:</p>
<ol>
<li>Systemweites akzeptieren aller Lizenzen:<br />F&#252;ge in der Datei <code>/etc/make.conf</code> die folgende Zeile hinzu:<br /><code>ACCEPT-LICENSE="*"<br />
</code></li>
<li>Systemweites akzeptieren einer oder mehrer spezifischer Lizenzen:<br />F&#252;ge in der Datei <code>/etc/make.conf</code> die folgende Zeile hinzu:<br /><code>ACCEPT_LICENSE="dlj-1.1</code></li>
<li>Akzeptieren einer Lizenz f&#252;r ein Paket:<br />F&#252;ge in der Datei <code>/etc/portage/package.license</code> die folgende Zeile hinzu:<br /><code>dev-java/sun-jdk dlj-1.1</code></li>
</ol>
<p>Ich habe mich f&#252;r letzteres entschieden:</p>
<blockquote><p><code>echo "dev-java/sun-jdk dlj-1.1" >> /etc/portage/package.license</code></p></blockquote>
<p>Und schon war das Problem gel&#246;st <img src='http://wolf-u.li/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3352/all-ebuilds-that-could-satisfy-dev-javasun-jdk-have-been-masked-dlj-1-1-licenses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Auslieferung von Gravatar-Icons aus einem lokalen Cache &#8211; Download per curl</title>
		<link>http://wolf-u.li/3347/auslieferung-von-gravatar-icons-aus-einem-lokalen-cache-download-per-curl/</link>
		<comments>http://wolf-u.li/3347/auslieferung-von-gravatar-icons-aus-einem-lokalen-cache-download-per-curl/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 10:25:17 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3347</guid>
		<description><![CDATA[Vor einigen Tagen bin ich &#252;ber Crazytoast auf einem Blog auf die Idee der Auslieferung der Gravatar-Bilder aus einem lokalen Cache gesto&#223;en. Prinzipiell fand ich das keine schlechte Idee, da auch bei mir einige Ladezeit von Gravatar verursacht wird. Auch der regelm&#228;&#223;ige Refresh erschien mir als durchaus sinnvoll. Lediglich die Art der Einbindung wollte mir [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einigen Tagen bin ich &#252;ber <a href="http://www.crazytoast.de/2010/02/bloggen/gravatar-cache-fuer-wordpress-ohne-plugin.html">Crazytoast</a> auf einem <a href="http://www.plerzelwupp.de/wordpress-gravatare-cachen/">Blog</a> auf die Idee der Auslieferung der Gravatar-Bilder aus einem lokalen Cache gesto&#223;en. Prinzipiell fand ich das keine schlechte Idee, da auch bei mir einige Ladezeit von Gravatar verursacht wird. Auch der regelm&#228;&#223;ige Refresh erschien mir als durchaus sinnvoll. Lediglich die Art der Einbindung wollte mir noch nicht so recht gefallen. Auch programmiertechnisch fehlten mir einige Dinge.<br />
<span id="more-3347"></span><br />
So wurde beispielsweise als einzige M&#246;glichkeit des Herunterladen der Bilder die Funktion <em>fopen()</em> angeboten, welche jedoch bei den meisten Hostern deaktiviert (<em>allow_url_fopen=0</em>) wird, da es durchaus gen&#252;gend Beispiele f&#252;r Sicherheitsl&#252;cken welche durch die unkluge Nutzung dieser Funktion gibt. Aus <a href="http://dev.piwik.org/trac/ticket/793">meinem</a> <a href="http://wolf-u.li/3141/piwik-0-4-3-ist-erschienen/">Patch</a> f&#252;r Piwik habe ich daher einen Teil des Codes extrahiert, welcher es mir erlaubt, <em>curl</em> zu benutzen.</p>
<p>Wie bei Plerzelwupp beschrieben muss man zun&#228;chst die comments.php &#246;ffnen und die folgende Zeile suchen:</p>
<div class="igBar"><span id="lcode-12"><a href="#" onclick="javascript:showPlainTxt('code-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-12">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;?php echo get_avatar<span style="color:#006600; font-weight:bold;">&#40;</span> $comment, <span style="color:#800000;color:#800000;">60</span><span style="color:#006600; font-weight:bold;">&#41;</span>; ?&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Das zweite Argument der Gr&#246;&#223;e k&#246;nnte bei euch auch durchaus anders aussehen!</p>
<p>Wie auch immer, man l&#246;scht jedenfalls diese Zeile und setzt daf&#252;r den folgenden Code ein:</p>
<div class="igBar"><span id="lcode-13"><a href="#" onclick="javascript:showPlainTxt('code-13'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-13">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;?php</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Script originally from:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// http://www.plerzelwupp.de/wordpress-gravatare-cachen/</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Modified by Uli from http://wolf-u.li:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - Translation</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - Cleanup</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - Added curl</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Modify the settings below according to your needs:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Path to the cache-directory of the gravatar images:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gimagecachedir &nbsp; &nbsp; &nbsp; &nbsp; = <span style="color:#CC0000;">"upload/g/"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Path of the directory of the gravatar-images:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gimageurldomain = <span style="color:#CC0000;">"http://wolf-u.li/upload/g/"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Size of the gravatar-images:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gimagesize = <span style="color:#800000;color:#800000;">64</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// If the mailadress was not found, you can get various images:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - identicon</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - monsterid</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - wavatar</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$mailnotfound = <span style="color:#CC0000;">"identicon"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Do not modify the code below:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gravatar_hash = md5<span style="color:#006600; font-weight:bold;">&#40;</span>strtolower<span style="color:#006600; font-weight:bold;">&#40;</span>get_comment_author_email<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gcachetime = <span style="color:#800000;color:#800000;">40320</span> * <span style="color:#800000;color:#800000;">60</span>; <span style="color:#FF9933; font-style:italic;">// 40320 = 4 Weeks</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$gimage = $gimagecachedir . <span style="color:#CC0000;">"/"</span> . $gravatar_hash . <span style="color:#CC0000;">".png"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">if <span style="color:#006600; font-weight:bold;">&#40;</span>!file_exists<span style="color:#006600; font-weight:bold;">&#40;</span>$gimage<span style="color:#006600; font-weight:bold;">&#41;</span> || <span style="color:#006600; font-weight:bold;">&#40;</span>time<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> - $gcachetime&gt; filemtime<span style="color:#006600; font-weight:bold;">&#40;</span>$gimage<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; ob_start<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $grav_img = <span style="color:#CC0000;">"http://www.gravatar.com/avatar/"</span> . $gravatar_hash . <span style="color:#CC0000;">"?s="</span> . $gimagesize . <span style="color:#CC0000;">"&amp;d="</span> . $mailnotfound . <span style="color:#CC0000;">"&amp;r=G"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; if<span style="color:#006600; font-weight:bold;">&#40;</span>extension_loaded<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'curl'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $gch = @curl_init<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $gcurl_options = array<span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_URL =&gt; $grav_img,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_HEADER =&gt; false,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_RETURNTRANSFER =&gt; true,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_TIMEOUT =&gt; <span style="color:#800000;color:#800000;">20</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_BINARYTRANSFER =&gt; is_resource<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_FOLLOWLOCATION =&gt; true,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_MAXREDIRS =&gt; <span style="color:#800000;color:#800000;">2</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @curl_setopt_array<span style="color:#006600; font-weight:bold;">&#40;</span>$gch, $gcurl_options<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $gdata = @curl_exec<span style="color:#006600; font-weight:bold;">&#40;</span>$gch<span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; @curl_close <span style="color:#006600; font-weight:bold;">&#40;</span>$gch<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$gch<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> else <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; ob_start<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $gfilehandle_url = fopen<span style="color:#006600; font-weight:bold;">&#40;</span>$grav_img, <span style="color:#CC0000;">"rb"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; fpassthru<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_url<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; fclose<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_url<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $gdata = ob_get_contents<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; ob_end_clean<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_url<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $gfilehandle_img = fopen<span style="color:#006600; font-weight:bold;">&#40;</span>$gimage, <span style="color:#CC0000;">"wb+"</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; fwrite<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_img, $gdata<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; fclose<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_img<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$gfilehandle_img<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$gdata<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">echo <span style="color:#CC0000;">"&lt;img src='"</span> . $gimageurldomain . $gravatar_hash . <span style="color:#CC0000;">".png' height='"</span> . $gimagesize . <span style="color:#CC0000;">"' width='"</span> . $gimagesize . <span style="color:#CC0000;">"'&gt;"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">?&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
&#220;ber die Einstellungen im Kopf des Codes kann man nun das Cacheverzeichnis festlegen. Die darauffolgende URL ist die URL, so wie sie zum Bild zeigen w&#252;rde. Darunter befindet sich die Gr&#246;&#223;e.</p>
<p>Die konkreten &#196;nderungen gegen&#252;ber der Version des Blogs:</p>
<ul>
<li>&#220;bersetzung des Codes auf Englisch (sorry, ich steh da drauf)</li>
<li>Cleanup, Entfernung &#252;berfl&#252;ssiger Codest&#252;cke</li>
<li>Einbau von Curl als pr&#228;ferierte Downloadoption</li>
<li>Entfernung der Erstellung von HTML-Dateien, da dies nicht ben&#246;tigt wird</li>
</ul>
<p>Soweit so gut. Nun habe ich noch das CronJob-Script von <a href="http://infoblog.li/wordpress-gravatar-cache-mit-automatischer-aktualisierung/">diesem Blogeintrag auf infoblog.li</a> kurz aufger&#228;umt:</p>
<div class="igBar"><span id="lcode-14"><a href="#" onclick="javascript:showPlainTxt('code-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-14">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;?php </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Script originally from:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// http://infoblog.li/wordpress-gravatar-cache-mit-automatischer-aktualisierung/</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Modified by Uli from http://wolf-u.li:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - Translation</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - Cleanup</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - Added curl</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Modify the settings below according to your needs:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Path to the cache-directory of the gravatar images:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$imagecachedir &nbsp;&nbsp;= <span style="color:#CC0000;">"blog/cdn-g/"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Size of the gravatar-images:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$imagesize = <span style="color:#800000;color:#800000;">64</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Update files older than this time:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$maxcacheage = <span style="color:#800000;color:#800000;">604800</span>; <span style="color:#FF9933; font-style:italic;">// 7 * 24 * 3600 = 7 Days</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// If the mailadress was not found, you can get various images:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - identicon</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - monsterid</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// - wavatar</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$mailnotfound = <span style="color:#CC0000;">"identicon"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// Do not modify the code below:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$handle= opendir<span style="color:#006600; font-weight:bold;">&#40;</span>$imagecachedir<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">while <span style="color:#006600; font-weight:bold;">&#40;</span>$file = readdir <span style="color:#006600; font-weight:bold;">&#40;</span>$handle<span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// Einzelne Pfade und Dateinamen auslesen</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $gravatar_hash&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; =&nbsp; &nbsp;substr<span style="color:#006600; font-weight:bold;">&#40;</span>$file, <span style="color:#800000;color:#800000;">0</span>, <span style="color:#800000;color:#800000;">32</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $gravatarimg&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; = &nbsp; $imagecachedir . $file ;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; if <span style="color:#006600; font-weight:bold;">&#40;</span>$gravatar_hash != <span style="color:#CC0000;">".."</span> &amp;&amp; $gravatar_hash != <span style="color:#CC0000;">"."</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#FF9933; font-style:italic;">// Update only if timestamp of the file is older than $maxcacheage</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $cachedtime = filemtime<span style="color:#006600; font-weight:bold;">&#40;</span>$gravatarimg<span style="color:#006600; font-weight:bold;">&#41;</span> - time<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; if <span style="color:#006600; font-weight:bold;">&#40;</span>$cachedtime&gt; $maxcacheage<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $grav_img = <span style="color:#CC0000;">"http://www.gravatar.com/avatar/"</span>.$gravatar_hash.<span style="color:#CC0000;">"?s="</span> . $imagesize . <span style="color:#CC0000;">"&amp;d="</span> . $mailnotfound . <span style="color:#CC0000;">"&amp;r=G"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if<span style="color:#006600; font-weight:bold;">&#40;</span>extension_loaded<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'curl'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;$ch = @curl_init<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $curl_options = array<span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_URL =&gt; $grav_img,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_HEADER =&gt; false,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_RETURNTRANSFER =&gt; true,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_TIMEOUT =&gt; <span style="color:#800000;color:#800000;">20</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_BINARYTRANSFER =&gt; true,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_FOLLOWLOCATION =&gt; true,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CURLOPT_MAXREDIRS =&gt; <span style="color:#800000;color:#800000;">2</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @curl_setopt_array<span style="color:#006600; font-weight:bold;">&#40;</span>$ch, $curl_options<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $data = @curl_exec<span style="color:#006600; font-weight:bold;">&#40;</span>$ch<span style="color:#006600; font-weight:bold;">&#41;</span>;&nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @curl_close <span style="color:#006600; font-weight:bold;">&#40;</span>$ch<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$ch<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> else <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;ob_start<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;$filehandle_url = fopen<span style="color:#006600; font-weight:bold;">&#40;</span>$grav_img, <span style="color:#CC0000;">"rb"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;fpassthru<span style="color:#006600; font-weight:bold;">&#40;</span>$filehandle_url<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;fclose<span style="color:#006600; font-weight:bold;">&#40;</span>$filehandle_url<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;$data = ob_get_contents<span style="color:#006600; font-weight:bold;">&#40;</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;ob_end_clean<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp;unset<span style="color:#006600; font-weight:bold;">&#40;</span>$filehandle_url<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; $filehandle_img = fopen<span style="color:#006600; font-weight:bold;">&#40;</span>$gravatarimg, <span style="color:#CC0000;">"wb+"</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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fwrite<span style="color:#006600; font-weight:bold;">&#40;</span>$filehandle_img, $data<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fclose<span style="color:#006600; font-weight:bold;">&#40;</span>$filehandle_img<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$filehandle_img<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; unset<span style="color:#006600; font-weight:bold;">&#40;</span>$data<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">closedir<span style="color:#006600; font-weight:bold;">&#40;</span>$handle<span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Was macht dieses Script? Es aktualisiert alle 7 Tage die Gravatars, die bereits im Cache liegen. Auch dieses Script wurde auf curl umgestellt und ein bisschen aufger&#228;umt. Ich rate dazu, das Script wenigstens alle Stunde einmal ausf&#252;hren zu lassen, um die Anzahl der gleichzeitig zu aktualisierenden Gravatare so gering wie m&#246;glich zu halten. Dies kann entweder per lokalem CronJob, oder einem CronJob-Dienst aus dem Internet wie beispielsweise <a href="http://www.cronjob.de/">cronjob.de</a> ausgef&#252;hrt werden (<a href="http://infoblog.li/script-mit-hilfe-von-cronjob-de-automatisch-ausfuehren-lassen/">HowTo f&#252;r letzteren Fall</a>).</p>
<p>Meine letzten Hinweise zur Performance: Man sollte sich im klaren sein, dass bei gr&#246;&#223;eren Kommentaranzahlen (sagen wir mal 300) auch bei jedem Kommentar gepr&#252;ft wird, ob die Datei vorhanden ist (d.h. 300 Dateisystemaufrufe). Das kann definitiv bremsen.</p>
<p>Daher habe ich mir eine andere Methode der Auslieferung &#252;berlegt, welche ich in einem weiteren Artikel beschreiben werde.</p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3347/auslieferung-von-gravatar-icons-aus-einem-lokalen-cache-download-per-curl/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Crash von fdisk unter busybox mit Fehler &#8220;Segmentation fault&#8221;</title>
		<link>http://wolf-u.li/3346/crash-von-fdisk-unter-busybox-mit-fehler-segmentation-fault/</link>
		<comments>http://wolf-u.li/3346/crash-von-fdisk-unter-busybox-mit-fehler-segmentation-fault/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 16:27:57 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Befehl]]></category>
		<category><![CDATA[Fehler]]></category>
		<category><![CDATA[fun_plug]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Lösung]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3346</guid>
		<description><![CDATA[Seit langer Zeit melden sich immer wieder Leser bei mir, dass bei ihnen bei bestimmten USB-Sticks das Programm fdisk mit der Meldung, dass es auf einen "Segmentation fault" gesto&#223;en sei, abgest&#252;rzt sei.
Anscheinend ist dies ein Bug des Input-Handlings, weshalb mir ein Leser den folgenden Weg f&#252;r den Aufruf von fdisk schickte:
cat &#124; fdisk /dev/sdc
So bescheuert [...]]]></description>
			<content:encoded><![CDATA[<p>Seit langer Zeit melden sich immer wieder Leser bei mir, dass bei ihnen bei bestimmten USB-Sticks das Programm fdisk mit der Meldung, dass es auf einen "Segmentation fault" gesto&#223;en sei, abgest&#252;rzt sei.</p>
<p>Anscheinend ist dies ein Bug des Input-Handlings, weshalb mir ein Leser den folgenden Weg f&#252;r den Aufruf von fdisk schickte:</p>
<blockquote><p><code>cat | fdisk /dev/sdc</code></p></blockquote>
<p>So bescheuert wie dieser Aufruf aussieht, er behebt den Fehler interessanterweise.</p>
<p>Danke an Martin K.!</p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3346/crash-von-fdisk-unter-busybox-mit-fehler-segmentation-fault/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installation des fun_plug 0.5 auf dem Acer easystore NAS</title>
		<link>http://wolf-u.li/3314/installation-des-fun_plug-0-5-auf-dem-acer-easystore-nas/</link>
		<comments>http://wolf-u.li/3314/installation-des-fun_plug-0-5-auf-dem-acer-easystore-nas/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 17:58:51 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Acer]]></category>
		<category><![CDATA[easystore]]></category>
		<category><![CDATA[fun_plug]]></category>
		<category><![CDATA[NAS]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3314</guid>
		<description><![CDATA[Auf dem Acer easystore NAS l&#228;sst sich, wie schon beim Conceptronic CH3SNAS und CH3MNAS, D-Link DNS-323 und vielen anderen "Home-NAS"-Systemen das sogenannte fun_plug aufspielen. Die Herstelle haben in diese Ger&#228;te eine Funktion eingebaut, die nach Start des Betriebssystems die Ausf&#252;hrung einer Datei auf der Festplatte erm&#246;glicht. Diese Datei heisst bei den meisten Herstellen eben fun_plug [...]]]></description>
			<content:encoded><![CDATA[<p>Auf dem Acer easystore NAS l&#228;sst sich, wie schon beim Conceptronic CH3SNAS und CH3MNAS, D-Link DNS-323 und vielen anderen "Home-NAS"-Systemen das sogenannte fun_plug aufspielen. Die Herstelle haben in diese Ger&#228;te eine Funktion eingebaut, die nach Start des Betriebssystems die Ausf&#252;hrung einer Datei auf der Festplatte erm&#246;glicht. Diese Datei heisst bei den meisten Herstellen eben <em>fun_plug</em> und liegt auf der ersten Festplatte im System. Im Falle von Acer lautet diese abweichend <em>es_plug</em>, erf&#252;llt aber die gleiche Funktion. Ein Entwickler namens fonz hat daf&#252;r das ffp (fonz fun_plug) 0.5 entwickelt, welches &#252;ber diese Datei weitere Funktionen, wie beispielsweise SSH-Server, Webserver oder mehr erlaubt. Mein Kollege Martin hat die Installation bereits <a href="http://blog.chmielewski-martin.de/installation-des-fun_plug-auf-dem-acer-easystore-nas/">zusammengefasst</a>, hier die ausf&#252;hrliche Version.<br />
<span id="more-3314"></span><br />
<strong>Ich stelle nachfolgend meine pers&#246;nlichen Erfahrungen beim Einsatz dieses fun_plugs sowie eine eingedeutsche Installationsanweisung bereit. Zudem weise ich darauf hin, dass ich nicht f&#252;r eventuelle Sch&#228;den, Datenverluste oder andere Probleme haften werde. Das Verwenden dieses Artikels geschieht auf eigene Gefahr!</strong><br />
Zun&#228;chst muss sichergestellt sein, dass das NAS &#252;ber eine g&#252;ltige Netzwerkkonfiguration ("<em>Setup</em>" -> "<em>LAN</em>") mit Gateway &#038; DNS-Server verf&#252;gt. Wird die IP-Adresse automatisch bezogen, ist das im Regelfall korrekt eingestellt.<br />
Nun muss man das fun_plug heruntergeladen wurden. Dieses ist &#252;ber das <a href="http://www.inreto.de/dns323/fun-plug/0.5/">Repository</a> zu beziehen. F&#252;r die Installation werden zwei Dateien ben&#246;tigt: <a href="http://www.inreto.de/dns323/fun-plug/0.5/fun_plug">fun_plug</a> und <a href="http://www.inreto.de/dns323/fun-plug/0.5/fun_plug.tgz">fun_plug.tgz</a>. Ich raten zum Lesen der <a href="http://www.inreto.de/dns323/fun-plug/0.5/README.txt">README</a> mit einer ausf&#252;hrlichen Installationsanweisung.</p>
<p>Los gehts mit dem kopieren der beiden Dateien <em>fun_plug</em> und <em>fun_plug.tgz</em> auf das Volume_1 des NAS. Nun wird die Datei fun_plug (NUR DIE DATEI!) in es_plug umbenannt und das NAS neugestartet.</p>
<p><a rel="lightbox[telnet]" href='http://wolf-u.li/upload/2008/07/1426-login-as-root.png'><img src="http://wolf-u.li/upload/2008/07/1426-login-as-root-150x150.png" alt="" title="1426-login-as-root" width="150" height="150" class="alignleft size-thumbnail wp-image-1656" /></a>Nach dem Reboot ist automatisch telnet aktiviert. Zun&#228;chst sollte man sich nun mit einem geeigneten Telnet-Programm (unter Linux einfach nur "ssh" mit korrektem Port, unter Windows verwende ich <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html ">Putty</a> mit der Protokolleinstellung "telnet") auf dem NAS einloggen. Bitte f&#252;r den folgenden Schritt einfach mal das Bild links ansehen.</p>
<blockquote><p><code>/ #</code></p></blockquote>
<p>Wenn das obige erscheint, ist man eingeloggt und kann fortfahren.</p>
<p><a name="passwd"></a>Als eine der ersten Aktionen wird nun /etc/shadow mittels pwconv erstellt. Das Passwort wird anschlie&#223;end mittels "passwd" ge&#228;ndert:</p>
<div class="igBar"><span id="lcode-25"><a href="#" onclick="javascript:showPlainTxt('code-25'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-25">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">pwconv</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">passwd </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Wenn das neue Passwort zweimal eingegeben wurde, muss man dem root-User noch eine andere Shell zuweisen:</p>
<div class="igBar"><span id="lcode-26"><a href="#" onclick="javascript:showPlainTxt('code-26'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-26">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">usermod -s /ffp/bin/sh root </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Nun kann man den Login testen. Hierzu gibt man:</p>
<div class="igBar"><span id="lcode-27"><a href="#" onclick="javascript:showPlainTxt('code-27'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-27">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">login </div>
</li>
</ol>
</div>
</div>
</div>
<p>
ein. Wenns nicht klappt, einfach die Prozedur ab "passwd" wiederholen.</p>
<p>Wenn die obigen Schritte erfolgreich waren, muss man nun das Passwort in den internen Flash-Speicher speichern. Hierzu gibt es das Script store-passwd.sh. Leider ist das mitgelieferte Script bei diesem NAS nicht funktionst&#252;chtig, weshalb man hier zun&#228;chst mit einem modifizierten Script nachhelfen muss:</p>
<div class="igBar"><span id="lcode-28"><a href="#" onclick="javascript:showPlainTxt('code-28'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-28">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">wget http:<span style="color:#FF9933; font-style:italic;">//wolf-u.li/u/121 -O /ffp/sbin/store-passwd.sh</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">store-passwd.<span style="">sh</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Damit sind die ge&#228;nderten Nutzereinstellungen gespeichert.</p>
<p>Nun wird der SSH-Server aktiviert, da Telnet bereits als sehr unsicher (v.a. aufgrund des unverschl&#252;sselten Verkehrs) bekannt ist:</p>
<div class="igBar"><span id="lcode-29"><a href="#" onclick="javascript:showPlainTxt('code-29'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-29">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">chmod a+x /ffp/start/sshd.<span style="">sh</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">sh /ffp/start/sshd.<span style="">sh</span> start </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Der erste Start des SSH-Servers kann etwas dauern und wirft lustige Zeichen in der Kommandozeile. <strong>Nun den Telnet-Client nicht schlie&#223;en!</strong> &#214;ffne gleichzeitig eine SSH-Session (z.B. per Putty) und versuche eine Verbindung zum NAS. Wenn das erfolgreich war, kann der Telnetserver deaktiviert werden:</p>
<div class="igBar"><span id="lcode-30"><a href="#" onclick="javascript:showPlainTxt('code-30'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-30">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">chmod -x /ffp/start/telnetd.<span style="">sh</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Auf der Festplatte ist ein Verzeichnis namens "ffp" angelegt worden. Darin befindet sich ein Unterverzeichnis "start", in dem verschiedene Startdateien f&#252;r diverse Dienste liegen. Typischerweise weisen davon nur wenige das Attribut <em>X</em>, also <em>Executable</em>. Nur diese werden auch beim Start des fun_plug ausgef&#252;hrt. Ein paar Zeilen weiter oben habe ich "<code>chmod +x sshd.sh</code>" angeordnet. Diese Anweisung markiert eine Datei als ausf&#252;hrbar. Alle Dateien im <em>Start</em>-Ordner, die als executable markiert sind, werden vom fun_plug aufgerufen.</p>
<p><a name="packagesync"></a>Weitere Software von fonz kann man nun einfach installieren:</p>
<div class="igBar"><span id="lcode-31"><a href="#" onclick="javascript:showPlainTxt('code-31'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-31">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">mkdir /ffp/pkg/</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">cd /ffp/pkg/</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">rsync -av inreto.<span style="">de</span>::<span style="">dns323</span>/fun-plug/<span style="color:#800000;color:#800000;">0</span>.<span style="color:#800000;color:#800000;">5</span>/packages .</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="">cd</span> packages </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Mit diesen Befehlen habe ich einen Ordner namens "<em>pkg</em>" im Ordner "<em>ffp</em>" erstellt. Zus&#228;tzlich wurde nun der Ordner "<em>packages</em>" angelegt, der alle kompilierten Pakete von fonz enth&#228;lt. </p>
<p>Nun sollte man zuerst ein Upgrade des funpkg machen, um keine Kompatibilit&#228;tsprobleme zu haben:</p>
<div class="igBar"><span id="lcode-32"><a href="#" onclick="javascript:showPlainTxt('code-32'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-32">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">funpkg -u funpkg*.<span style="">tgz</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Nun kann man Pakete installieren. Entweder man installiert nun einzelne Pakete (Achtung Abh&#228;ngigkeiten beachten!):</p>
<div class="igBar"><span id="lcode-33"><a href="#" onclick="javascript:showPlainTxt('code-33'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-33">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">funpkg -i paketname.<span style="">tgz</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Oder einfach alle installieren, damit sind dann alle Abh&#228;ngigkeiten gel&#246;st:</p>
<div class="igBar"><span id="lcode-34"><a href="#" onclick="javascript:showPlainTxt('code-34'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-34">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">cd /ffp/pkg/packages/</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">funpkg -i *.<span style="">tgz</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p><a href="http://wolf-u.li/2146/ulis-paket-repository-fuer-das-conceptronic-ch3snas-bzw-d-link-dns-323/">Zus&#228;tzliche Pakete</a> habe ich dann sp&#228;ter im Verzeichnis <code>/ffp/pkg/additional</code> abgelegt. F&#252;r weitere Anleitungen habe ich hier eine <a href="http://wolf-u.li/ch3snas/">Seite</a> zusammengestellt. Die Anleitungen f&#252;r das Conceptronic CH3SNAS bzw. D-Link DNS-323 gelten auch f&#252;r das Acer easystore NAS.</p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3314/installation-des-fun_plug-0-5-auf-dem-acer-easystore-nas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Entfernung der Erinnerungen bzw. Alarme von Geburtstagen und Jahrestagen in Outlook per VBA</title>
		<link>http://wolf-u.li/3311/entfernung-der-erinnerungen-bzw-alarme-von-geburtstagen-und-jahrestagen-in-outlook/</link>
		<comments>http://wolf-u.li/3311/entfernung-der-erinnerungen-bzw-alarme-von-geburtstagen-und-jahrestagen-in-outlook/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 00:01:14 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Outlook]]></category>
		<category><![CDATA[Smartphone]]></category>
		<category><![CDATA[Visual Basic for Applications]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3311</guid>
		<description><![CDATA[Seit Jahren gehen mir die automatisch von Outlook erstellten Erinnerungen f&#252;r Geburtstage und Jahrestage auf den Keks, da diese in der Standardeinstellung um 23:45 Uhr ausgel&#246;st werden. Da man doch ab und zu mal um diese Uhrzeit schon schlafen geht, habe ich mich entschlossen alle Erinnerungen per VBA abschalten zu lassen.

Wie &#252;blich findet man nix [...]]]></description>
			<content:encoded><![CDATA[<p>Seit Jahren gehen mir die automatisch von Outlook erstellten Erinnerungen f&#252;r Geburtstage und Jahrestage auf den Keks, da diese in der Standardeinstellung um 23:45 Uhr ausgel&#246;st werden. Da man doch ab und zu mal um diese Uhrzeit schon schlafen geht, habe ich mich entschlossen alle Erinnerungen per VBA abschalten zu lassen.<br />
<span id="more-3311"></span><br />
Wie &#252;blich findet man nix auf die schnelle, wenn mans sucht, daher hier der Code, damit ich nicht mehr suchen muss <img src='http://wolf-u.li/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Selbst geschrieben und grad ausprobiert, funktioniert einwandfrei.</p>
<div class="wolfuliannouncement">Die folgenden Schritte sind nur f&#252;r Experten empfohlen. Es kann schief gehen! Ich &#252;bernehme keinerlei Verantwortung f&#252;r die eventuelle Datenverluste, brennende Computer oder sonstige jegliche Probleme.</div>
<div class="igBar"><span id="lcode-36"><a href="#" onclick="javascript:showPlainTxt('code-36'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-36">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Sub RemoveReminderOfAllBirthdayAndAnniversary<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; Set myOlApp = New Outlook.<span style="">Application</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; Set myNameSpace = myOlApp.<span style="">GetNamespace</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"MAPI"</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; Set myFolder = myNameSpace.<span style="">GetDefaultFolder</span><span style="color:#006600; font-weight:bold;">&#40;</span>olFolderCalendar<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:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; Set myItems = myFolder.<span style="">Items</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; For i = myFolder.<span style="">Items</span>.<span style="">Count</span> To <span style="color:#800000;color:#800000;">1</span> Step -<span style="color:#800000;color:#800000;">1</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; If InStr<span style="color:#006600; font-weight:bold;">&#40;</span>myItems<span style="color:#006600; font-weight:bold;">&#40;</span>i<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">Subject</span>, <span style="color:#CC0000;">"Geburtstag"</span><span style="color:#006600; font-weight:bold;">&#41;</span>&gt; <span style="color:#800000;color:#800000;">0</span> Or InStr<span style="color:#006600; font-weight:bold;">&#40;</span>myItems<span style="color:#006600; font-weight:bold;">&#40;</span>i<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">Subject</span>, <span style="color:#CC0000;">"Jahrestag"</span><span style="color:#006600; font-weight:bold;">&#41;</span>&gt; <span style="color:#800000;color:#800000;">0</span> Then</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myItems<span style="color:#006600; font-weight:bold;">&#40;</span>i<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">ReminderSet</span> = False</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; myItems<span style="color:#006600; font-weight:bold;">&#40;</span>i<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">Save</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; End If</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; Next</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">End Sub </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Eingef&#252;gt wird dieser ganz einfach:</p>
<ul>
<li><strong>Tempor&#228;r</strong>: Outlook &#246;ffnen, Tastenkombination ALT+F11 dr&#252;cken, auf "DieseOutlookSitzung"/"ThisOutlookSession" doppelt klicken. Dort Code einf&#252;gen und einmal auf den Pfeil in der Men&#252;leiste dr&#252;cken.</li>
<li><strong>Dauerhaft</strong>: Outlook &#246;ffnen, Tastenkombination ALT+F11 dr&#252;cken, "Einf&#252;gen"->Modul w&#228;hlen. Dort Code einf&#252;gen und dann auf den Pfeil in der Men&#252;leiste dr&#252;cken.</li>
</ul>
<p>Sch&#246;n w&#228;re noch nen Knopf f&#252;r diese Funktion in der Men&#252;leiste, aber ich habe ihn bis jetzt nicht gebraucht <img src='http://wolf-u.li/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3311/entfernung-der-erinnerungen-bzw-alarme-von-geburtstagen-und-jahrestagen-in-outlook/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Oracle Critical Patch Updates Januar 2010 ist erschienen</title>
		<link>http://wolf-u.li/3279/oracle-critical-patch-updates-januar-2010-ist-erschienen/</link>
		<comments>http://wolf-u.li/3279/oracle-critical-patch-updates-januar-2010-ist-erschienen/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 06:30:08 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Update]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3279</guid>
		<description><![CDATA[Oracle hat heute das Announcement f&#252;r das aktuelle Critical Patch Update ver&#246;ffentlicht, welches 24 Sicherheitsl&#252;cken in "hunderten" von Oracle Produkten behebt. Von Oracle Database sind konkret die folgenden Versionen betroffen:

Oracle Database 11g, version 11.1.0.7
Oracle Database 10g Release 2, versions 10.2.0.3, 10.2.0.4
Oracle Database 10g, version 10.1.0.5
Oracle Database 9i Release 2, versions 9.2.0.8, 9.2.0.8DV


Die Schwachstellen wurden nach [...]]]></description>
			<content:encoded><![CDATA[<p>Oracle hat heute das Announcement f&#252;r das aktuelle Critical Patch Update <a href="http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpujan2010.html">ver&#246;ffentlicht</a>, welches 24 Sicherheitsl&#252;cken in "hunderten" von Oracle Produkten behebt. Von Oracle Database sind konkret die folgenden Versionen betroffen:</p>
<ul>
<li>Oracle Database 11g, version 11.1.0.7</li>
<li>Oracle Database 10g Release 2, versions 10.2.0.3, 10.2.0.4</li>
<li>Oracle Database 10g, version 10.1.0.5</li>
<li>Oracle Database 9i Release 2, versions 9.2.0.8, 9.2.0.8DV</li>
</ul>
<p><span id="more-3279"></span><br />
Die Schwachstellen wurden nach dem CVSS 2.0 <a href="http://www.oracle.com/technology/deploy/security/cpu/cvssscoringsystem.htm">bewertet</a>, ihr h&#246;chster Wert f&#252;r Oracle Database ist 10,0 f&#252;r alle Plattformen. Betroffen sind in Oracle Database diesmal die folgenden Teile:</p>
<ul>
<li>Application Express Application Builder</li>
<li>Core RDBMS</li>
<li>Listener</li>
<li>Oracle Data Pump</li>
<li>Oracle OLAP</li>
<li>Oracle Secure Backup</li>
<li>Oracle Spatial</li>
<li>Oracle Universal Installer</li>
</ul>
<p>Das Update beinhaltet Fixes f&#252;r 10 Schwachstellen in Oracle Database, eine davon wurde in Oracle Secure Backup geschlossen. Davon sind 2 von entfernten Rechnern ohne Authentifizierung auszunutzen, ben&#246;tigen also keinen g&#252;ltigen Nutzerzugang. Keiner der Fixes ist f&#252;r Client-Installationenm bei denen keinen Datenbank installiert wurde, n&#246;tig.</p>
<p>Das gesamte Announcement ist <a href="http://www.oracle.com/technology/deploy/security/critical-patch-updates/cpujan2010.html">hier</a> zu finden.</p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3279/oracle-critical-patch-updates-januar-2010-ist-erschienen/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Speicher eines Memcached-Servers mittels Bash leeren</title>
		<link>http://wolf-u.li/3283/speicher-eines-memcached-servers-mittels-bash-leeren/</link>
		<comments>http://wolf-u.li/3283/speicher-eines-memcached-servers-mittels-bash-leeren/#comments</comments>
		<pubDate>Sun, 10 Jan 2010 02:54:10 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Memcached]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3283</guid>
		<description><![CDATA[M&#246;chte man die aktuellen Inhalte eines Memcached-Servers leeren, so gen&#252;gt ein kurzer Befehl in der Kommandozeile:
echo "flush_all" &#124; nc -q 2 127.0.0.1 11211
Voraussetzung ist nat&#252;rlich, dass netcat installiert ist. Auf machen Systemen hei&#223;t das Binary dieses Programms statt "nc" evtl. auch "netcat".
&#169; 2005-2009 by Uli Wolf - This Content is distributed under the Creative Commons [...]]]></description>
			<content:encoded><![CDATA[<p>M&#246;chte man die aktuellen Inhalte eines Memcached-Servers leeren, so gen&#252;gt ein kurzer Befehl in der Kommandozeile:</p>
<blockquote><p><code>echo "flush_all" | nc -q 2 127.0.0.1 11211</code></p></blockquote>
<p>Voraussetzung ist nat&#252;rlich, dass <a href="http://netcat.sourceforge.net/">netcat</a> installiert ist. Auf machen Systemen hei&#223;t das Binary dieses Programms statt "nc" evtl. auch "netcat".</p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3283/speicher-eines-memcached-servers-mittels-bash-leeren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HowTo: Empfang &#246;ffentlich-rechtlicher Sender mit T-Home Entertainment auf dem PC</title>
		<link>http://wolf-u.li/3234/howto-empfang-oeffentlich-rechtlicher-sender-mit-t-home-entertainment-auf-dem-pc/</link>
		<comments>http://wolf-u.li/3234/howto-empfang-oeffentlich-rechtlicher-sender-mit-t-home-entertainment-auf-dem-pc/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 13:10:58 +0000</pubDate>
		<dc:creator>Uli</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Entertain]]></category>
		<category><![CDATA[T-Home]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[VideoLanClient]]></category>

		<guid isPermaLink="false">http://wolf-u.li/?p=3234</guid>
		<description><![CDATA[ Seit einigen Tagen habe ich T-Home Entertain auf meinem Anschluss und habe dazu einen MR300-Receiver f&#252;r das Betrachten der Sender erhalten. Heute habe ich ein wenig nachgelesen, wie die Technik des Entertain-Pakets funktioniert und habe dabei gelesen, dass man die &#246;ffentlich-rechtlichen Sender sogar auf dem PC ansehen kann, da diese unverschl&#252;sselt per DVB-IPI senden. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://wolf-u.li/u/119"><img src="http://ad.zanox.com/ppv/?14321178C578986116" align="right" width="88" height="31" border="0" hspace="1" alt="T-Home"></a> Seit einigen Tagen habe ich <img src="http://ad.zanox.com/ppv/?14321150C1453058139" align="bottom" width="1" height="1" border="0" hspace="1"><a href="http://wolf-u.li/u/119">T-Home Entertain</a> auf meinem Anschluss und habe dazu einen MR300-Receiver f&#252;r das Betrachten der Sender erhalten. Heute habe ich ein wenig nachgelesen, wie die <a href="http://de.wikipedia.org/wiki/T-Home_Entertain">Technik des Entertain-Pakets</a> funktioniert und habe dabei gelesen, dass man die &#246;ffentlich-rechtlichen Sender sogar auf dem PC ansehen kann, da diese unverschl&#252;sselt per <a href="http://de.wikipedia.org/wiki/DVB-IPTV">DVB-IPI</a> senden. Diese Anleitung ist (Stand 31.12.2009) nur mit den speziellen IPTV-Anschluss von Arcor/Vodafone, HanseNet/Alice und T-Home durchf&#252;hrbar, auf den regul&#228;ren Anschl&#252;ssen ist kein Empfang gegeben.<br />
<span id="more-3234"></span><br />
Hierzu ben&#246;tigt man zun&#228;chst den VideoLanClient (VLC), welchen man <a href="http://www.videolan.org/vlc/">hier beziehen</a> kann. Anschlie&#223;end l&#228;dt man sich die aktuelle Senderliste als *.m3u-Datei von <a href="http://www.ard-digital.de/Empfang--Technik/IPTV/Software-Download/Software-Download">hier</a> herunter und &#246;ffnet diese im VLC. Dies geht beispielsweise per Datei &#246;ffnen und Auswahl der Playlist. Bei entsprechender Dateitypverkn&#252;pfung geht dies nat&#252;rlich auch per direktem Doppelklick.</p>
<p>&#220;brigens kann man sich auch eine direkte Verkn&#252;pfung zur Playlist (ohne Dateitypverkn&#252;pfung) oder sogar den Sendern direkt schaffen. Zur Playlist muss man schlicht und einfach eine Verkn&#252;pfung zum VLC anlegen und nach dem Pfad zum Executable zus&#228;tzlich den Pfad zur Playlist anh&#228;ngen. Das sieht dann f&#252;r Windows-Nutzer beispielsweise so aus:</p>
<div class="igBar"><span id="lcode-39"><a href="#" onclick="javascript:showPlainTxt('code-39'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-39">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">"C:<span style="color:#000099; font-weight:bold;">\P</span>rogram Files (x86)<span style="color:#000099; font-weight:bold;">\V</span>ideoLAN<span style="color:#000099; font-weight:bold;">\V</span>LC<span style="color:#000099; font-weight:bold;">\v</span>lc.exe"</span> <span style="color:#CC0000;">"C:<span style="color:#000099; font-weight:bold;">\U</span>sers<span style="color:#000099; font-weight:bold;">\U</span>li<span style="color:#000099; font-weight:bold;">\V</span>ideos<span style="color:#000099; font-weight:bold;">\T</span>-Home_vlc09x.m3u"</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
<small><em>Hinweis: Ein Klick auf <strong>PLAIN TEXT</strong> bringt die Ansicht ohne Syntaxhevorhebung</em></small></p>
<p>M&#246;chte man lieber einen Sender direkt in der Verkn&#252;pfung anlegen, so muss man sich dessen Multicast-Adresse hier raussuchen, den Port dran h&#228;ngen und dies dann in der Verkn&#252;pfung angeben. Dies sieht beispielsweise momentan (Stand 31.12.2009) f&#252;r ZDF so aus:</p>
<div class="igBar"><span id="lcode-40"><a href="#" onclick="javascript:showPlainTxt('code-40'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-40">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#CC0000;">"C:<span style="color:#000099; font-weight:bold;">\P</span>rogram Files (x86)<span style="color:#000099; font-weight:bold;">\V</span>ideoLAN<span style="color:#000099; font-weight:bold;">\V</span>LC<span style="color:#000099; font-weight:bold;">\v</span>lc.exe"</span> <span style="color:#CC0000;">"rtp://@239.35.86.11:10000"</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<hr /><small><center>&copy; 2005-2009 by <a href='http://wolf-u.li/'>Uli Wolf</a> - This Content is distributed under the <a href='http://wolf-u.li/pwnd-faq/'>Creative Commons License</a><br /> This feed is for personal, non-commercial use only. <br /> The use of this feed on other websites without attribution to the author and notification of the author breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:  d2a576b5311479d89eff39b7ca886f6b)</center></small>]]></content:encoded>
			<wfw:commentRss>http://wolf-u.li/3234/howto-empfang-oeffentlich-rechtlicher-sender-mit-t-home-entertainment-auf-dem-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 3.438 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2010-03-12 21:21:06 -->
