<?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>LinuxDoku&#039;s Notizblog</title>
	<atom:link href="http://linux-doku.de/feed" rel="self" type="application/rss+xml" />
	<link>http://linux-doku.de</link>
	<description>Simple is beautiful! ~ since 2007</description>
	<lastBuildDate>Fri, 27 Aug 2010 17:20:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>WordPress wieder extrem Langsam</title>
		<link>http://linux-doku.de/614/wordpress-wieder-extrem-langsam</link>
		<comments>http://linux-doku.de/614/wordpress-wieder-extrem-langsam#comments</comments>
		<pubDate>Fri, 27 Aug 2010 17:16:20 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Datenbank]]></category>
		<category><![CDATA[Geld]]></category>
		<category><![CDATA[Hoster]]></category>
		<category><![CDATA[Langsam]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[LinuxDoku]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=614</guid>
		<description><![CDATA[Wie ihr es vielleicht schon bemerkt habt, ist LinuxDoku in den letzter Zeit wiedermal total langsam. Ich bitte dieses Verhalten zu entschuldigen. Ich weiß nicht was ich an WordPress noch alles ändern soll, ich habe bereits Code ausgemistet, Plugins rausgeschmissen und Caches eingerichtet, aber WordPress lahmt immer noch sehr. Am Hoster sollte es auch nicht [...]


Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/398/browsergames-welche-last-verursachen-diese' rel='bookmark' title='Permanent Link: Browsergames &#8211; Welche Last verursachen diese?'>Browsergames &#8211; Welche Last verursachen diese?</a></li>
<li><a href='http://linux-doku.de/572/php_fcgi_children-spar-dir-den-ram' rel='bookmark' title='Permanent Link: PHP_FCGI_CHILDREN &#8211; spar dir den Ram!'>PHP_FCGI_CHILDREN &#8211; spar dir den Ram!</a></li>
<li><a href='http://linux-doku.de/171/openatrium-projektmanagement-auf-drupal-basis' rel='bookmark' title='Permanent Link: OpenAtrium: Projektmanagement auf Drupal Basis'>OpenAtrium: Projektmanagement auf Drupal Basis</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Wie ihr es vielleicht schon bemerkt habt, ist LinuxDoku in den letzter Zeit wiedermal total langsam. Ich bitte dieses Verhalten zu entschuldigen.</p>
<p>Ich weiß nicht was ich an WordPress noch alles ändern soll, ich  habe bereits Code ausgemistet, Plugins rausgeschmissen und Caches eingerichtet, aber WordPress lahmt immer noch sehr. Am Hoster sollte es auch nicht liegen, da auf selbigem ein schnelles Drupal mit einigen Modulen läuft. Die Datenbank arbeitet für die Monatliche Miete auch relativ performant (als Server Besitzer ist man ziemlich verwöhnt was das angeht <img src='http://linux-doku.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).</p>
<p><em>Warum ich die ganze Seite nicht auf meinen Server packe?</em><br />
Ganz einfach, über diesen Webspace laufen unter anderen meine Mail Adressen, Privates Wiki und Dateiablage, auf welche ich auch im Falle eines Serverausfalls gerne Zugriff hätte. Da mir bei diesem Hoster erst ein mal ein Ausfall in nun schon ganzen 3 Jahren untergekommen ist, denke ich ist das auch die beste Lösung.</p>
<p>Mal sehen evl steige ich ja irgendwann mal auf Serendipity, Drupal oder das <a href="http://www.freebg.de/wbb/board1-allgemeines/board12-news-ank%C3%BCndigungen/2064-litotex-0-8/">neue Litotex</a> um, um diese lästige WordPress Installation loszuwerden&#8230;</p>


<p>Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/398/browsergames-welche-last-verursachen-diese' rel='bookmark' title='Permanent Link: Browsergames &#8211; Welche Last verursachen diese?'>Browsergames &#8211; Welche Last verursachen diese?</a></li>
<li><a href='http://linux-doku.de/572/php_fcgi_children-spar-dir-den-ram' rel='bookmark' title='Permanent Link: PHP_FCGI_CHILDREN &#8211; spar dir den Ram!'>PHP_FCGI_CHILDREN &#8211; spar dir den Ram!</a></li>
<li><a href='http://linux-doku.de/171/openatrium-projektmanagement-auf-drupal-basis' rel='bookmark' title='Permanent Link: OpenAtrium: Projektmanagement auf Drupal Basis'>OpenAtrium: Projektmanagement auf Drupal Basis</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/614/wordpress-wieder-extrem-langsam/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>einfaches PHP Plugin System</title>
		<link>http://linux-doku.de/555/einfaches-php-plugin-system</link>
		<comments>http://linux-doku.de/555/einfaches-php-plugin-system#comments</comments>
		<pubDate>Tue, 17 Aug 2010 22:19:51 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Callback]]></category>
		<category><![CDATA[dynamisch]]></category>
		<category><![CDATA[Event Listener]]></category>
		<category><![CDATA[Module]]></category>
		<category><![CDATA[Pakete]]></category>
		<category><![CDATA[PHP; Plugins]]></category>
		<category><![CDATA[PLuginsystem]]></category>
		<category><![CDATA[Stack]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=555</guid>
		<description><![CDATA[Plugin Systeme, sie sind viel gefragt in der heutigen Zeit, jeder will seinen Code schön erweiterbar haben, doch viele haben entweder gar keinen Schimmer wie sie das am besten machen oder sie setzten es teils auf unglaubliche Weise um. Ich habe schon die verrücktesten Kostruktionen gesehen, die Code aus Datenbanken lesen oder wie die phpBB [...]


Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/276/jquery-mehrere-elemente-verbergen' rel='bookmark' title='Permanent Link: jQuery – Mehrere Elemente verbergen'>jQuery – Mehrere Elemente verbergen</a></li>
<li><a href='http://linux-doku.de/373/einfache-alternative-zu-php-template-engines' rel='bookmark' title='Permanent Link: Performante Alternative zu PHP Template Engines'>Performante Alternative zu PHP Template Engines</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Plugin Systeme, sie sind viel gefragt in der heutigen Zeit, jeder will seinen Code schön erweiterbar haben, doch viele haben entweder gar keinen Schimmer wie sie das am besten machen oder sie setzten es teils auf unglaubliche Weise um. Ich habe schon die verrücktesten Kostruktionen gesehen, die Code aus Datenbanken lesen oder wie die phpBB Jungs, die einen ganzen Parser geschrieben haben, der Core Dateien Modifiziert, um an bestimmten Stellen eigenen Code ausführen zu können. Für mich ist das alles Humbug, ein Plugin System muss flexibel und performant sein und nicht zuletzt sollte das ganze so umgesetzt werden, dass vom Benutzer selbst keinerlei Änderung am Code durchgeführt werden muss um ein Plugin einzubauen/zu laden.</p>
<p>Dem habe ich mir angenomen, und zwar habe ein an meinem <a href="http://github.com/LinuxDoku/SimpleLD/">SimpleLD Framework</a> angelehntes Plugin System (bzw. eine Klasse) geschrieben, die alle aufgezählten Punkte vereint. Folgende Funktionen hat das ganze:</p>
<ul>
<li>Überall einsetzbar &#8211; Es ist lediglich eine Klasse, welche in jedem PHP Projekt verwendet werde kann</li>
<li>Sie erlaubt es Code an vorher definierten Stellen im eigenem Programm einzuhängen und auszuführen. (mittels Hooks dt. Haken)</li>
<li>Die Plugins können ohne Programmier Kentnisse vom Benutzer einfach &#8220;installiert&#8221; werden. Denn dazu muss lediglich eine Klasse in ein vordefiniertes Verzeichnis kopiert werden.</li>
</ul>
<p>(Für die Ungeduldigen, hier gehts zum Github Repo: <a href="http://github.com/LinuxDoku/PHP-Plugin-System">PHP-Plugin-System @ Github</a>)<br />
Durch die geringe Anzahl an Code Zeilen (rund 100 mit Kommentaren) arbeitet das ganze System Performant. Allerdings wird es je nach Anzahl installierter Plugins langsamer, das kann aber durch einen Cache (siehe <a href="http://github.com/LinuxDoku/SimpleLD/">SimpleLD Framework</a>) umgangen werden.</p>
<p><strong>Wie funktioniert das ganze?</strong><br />
Die Funktionsweise ist ganz simpel. Plugins bestehen aus ganz normalen Klassen mit public Methoden, welche sich alle in einem von ihnen bestimmten Verzeichnis befinden. Von dort liest das Plugin System alle Klassen ein und speichert Methoden als sogenannte Hooks (dt. Haken) in einem Array. Falls im Code ein solcher Hook aufgerufen wird, werden alle Plugins mit einer passenden Methode herausgesucht und aufgerufen.</p>
<p><strong>Praktisches Beispiel</strong><br />
Plugin Klasse (sample.php)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> sample <span style="color: #009900;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> helloWorld<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">&quot;Hello World!&quot;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><em>Wichtig:</em> Die Klasse muss exakt so wie die Datei benannt werden! Alle Methoden ohne beginnendes _ werden als Hooks verwendet!</p>
<p>Datei in der das Plugin verwendet wird (index.php)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// laden des Plugin Systems</span>
<span style="color: #b1b100;">include</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'plugins.class.php'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// starten des Systems mit Übergabe des Plugin Verzeichnisses</span>
plugins<span style="color: #339933;">::</span><span style="color: #004000;">start</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'plugin/ordner/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// nun können wir einen Hook aufrufen</span>
plugins<span style="color: #339933;">::</span><span style="color: #004000;">call</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'helloWorld'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// dann noch einen anderen </span>
plugins<span style="color: #339933;">::</span><span style="color: #004000;">call</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'foo'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><strong>Mit Parametern</strong><br />
Natürlich kann an Hooks auch Parameter übergeben werden. Dies geschieht in Form eines Arrays:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">plugins<span style="color: #339933;">::</span><span style="color: #004000;">call</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'foo'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Parameter 1'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Parameter 2'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'Parameter 3'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Die Methode des Plugin sieht dann folgendermaßen aus:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> foo<span style="color: #009900;">&#40;</span><span style="color: #000088;">$parameter1</span><span style="color: #339933;">,</span> <span style="color: #000088;">$parameter2</span><span style="color: #339933;">,</span> <span style="color: #000088;">$parameter3</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// was auch immer wir tun möchten ...</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Dabei muss allerdings beachtet werden, dass die übergeben Parameter alle von der Methode entgegen genommen werden müssen, ansonsten bricht PHP mit einem Fehler ab.</p>
<p>Nimmt man Änderungen an der Parametern innerhalb des Hooks vor und will diese an den Orginal Code wieder &#8220;zurückgeben&#8221;, bzw mitteilen, setzt man einfach &#038; vor die Variable:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$var</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">&quot;foo&quot;</span><span style="color: #339933;">;</span>
plugins<span style="color: #339933;">::</span><span style="color: #004000;">call</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'foo'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$var</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// Inhalt nach Änderung durch den Hook foo</span>
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$var</span><span style="color: #339933;">;</span></pre></div></div>

<p>Die Methode des Plugin sieht dann folgendermaßen aus:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> foo<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span><span style="color: #000088;">$blub</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// hier können wir nun $blub ändern</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>Source Code beziehen</strong><br />
Der Code kann hier mit Beispielen in meinem Git Repo heruntergeladen werden:<br />
<a href="http://github.com/LinuxDoku/PHP-Plugin-System/">http://github.com/LinuxDoku/PHP-Plugin-System/</a><br />
oder für die faulen unter uns der Direktlink<br />
<a href="http://github.com/LinuxDoku/PHP-Plugin-System/zipball/master">&#8230; ich bin der Direktlink zur Zip Datei &#8230;</a></p>
<p><strong>Tipps&#8217;n Tricks</strong></p>
<ul>
<li>Der Verzeichnis Parser liest die Plugins nach altbekannten Regeln des Alphabets (dem ABC <img src='http://linux-doku.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) ein, demzufolge werden Hooks, deren Plugin Namen z.B. mit A beginnen vor Hooks, deren Plugin Namen mit M beginnen ausgeführt. Sollte dies nicht gewünscht sein, kann man sich an der Methode &#8220;load&#8221; des System zu schaffen gemacht werden.</li>
<li>Beim Starten des System muss dem Plugin Ordnername immer ein Endendes / (Slash) mitgegeben werden!</li>
<li>Es empfiehlt sich das System in einer Global verwendeten Datei zu Starten, da ansonsten ziemlich viele Ressourcen benötigt werden. Und ein mehrfacher Start unnötig ist.</li>
</ul>


<p>Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/276/jquery-mehrere-elemente-verbergen' rel='bookmark' title='Permanent Link: jQuery – Mehrere Elemente verbergen'>jQuery – Mehrere Elemente verbergen</a></li>
<li><a href='http://linux-doku.de/373/einfache-alternative-zu-php-template-engines' rel='bookmark' title='Permanent Link: Performante Alternative zu PHP Template Engines'>Performante Alternative zu PHP Template Engines</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/555/einfaches-php-plugin-system/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Timestamp heute?</title>
		<link>http://linux-doku.de/578/php-timestamp-heute</link>
		<comments>http://linux-doku.de/578/php-timestamp-heute#comments</comments>
		<pubDate>Sun, 15 Aug 2010 17:56:51 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Date]]></category>
		<category><![CDATA[Datum]]></category>
		<category><![CDATA[Funktion]]></category>
		<category><![CDATA[Heute]]></category>
		<category><![CDATA[Mktime]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Time]]></category>
		<category><![CDATA[Timestamp]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=578</guid>
		<description><![CDATA[Eben habe ich eine kleine Funktion geschrieben um zu Prüfen ob ein gegebener Timestamp heute ist, nichts gewaltiges aber nützlich. function isToday&#40;$time&#41; &#123; $begin = mktime&#40;0, 0, 0&#41;; $end = mktime&#40;23, 59, 59&#41;; // check if given time is between begin and end if&#40;$time &#62;= $begin &#38;&#38; $time &#60;= $end&#41; &#123; return true; &#125; else [...]


Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/242/javascript-und-str_replace' rel='bookmark' title='Permanent Link: JavaScript und str_replace()'>JavaScript und str_replace()</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Eben habe ich eine kleine Funktion geschrieben um zu Prüfen ob ein gegebener Timestamp heute ist, nichts gewaltiges aber nützlich.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> isToday<span style="color: #009900;">&#40;</span><span style="color: #000088;">$time</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$begin</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mktime</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$end</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mktime</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">23</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">59</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">59</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #666666; font-style: italic;">// check if given time is between begin and end</span>
  <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$time</span> <span style="color: #339933;">&gt;=</span> <span style="color: #000088;">$begin</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$time</span> <span style="color: #339933;">&lt;=</span> <span style="color: #000088;">$end</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Falls ab 23 Uhr Abends false zurückgegeben wird, sollten Sie mal nach ihrer Server Uhr schauen (Zeitzonen oder Sommer-/Winter- Zeit).</p>
<p>So wird unter anderem in Resigame eine Anzeige gesteuert, die Signalisiert ob ein User heute bereits Online war.</p>


<p>Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/242/javascript-und-str_replace' rel='bookmark' title='Permanent Link: JavaScript und str_replace()'>JavaScript und str_replace()</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/578/php-timestamp-heute/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP_FCGI_CHILDREN &#8211; spar dir den Ram!</title>
		<link>http://linux-doku.de/572/php_fcgi_children-spar-dir-den-ram</link>
		<comments>http://linux-doku.de/572/php_fcgi_children-spar-dir-den-ram#comments</comments>
		<pubDate>Sun, 15 Aug 2010 00:13:57 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Exim]]></category>
		<category><![CDATA[Fcgi]]></category>
		<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Tasks]]></category>
		<category><![CDATA[Webserver]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=572</guid>
		<description><![CDATA[Mein kleiner Debian Test Server hat die letzten Tage unwahrscheinlich viel Ram gezogen. Von 265MB welche verbaut sind, nutzte er bereits nach einem Neustart ganze 75% &#8211; das kann es ja nicht sein, schließlich laufen dort lediglich ein Lighttpd, MySQL, Exim4, Courier und SSH, also nichts weltbewegendes. Zu diesem Zeitpunkt griff ich auch nur mit [...]


Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/264/apache-klemmt' rel='bookmark' title='Permanent Link: Apache klemmt'>Apache klemmt</a></li>
<li><a href='http://linux-doku.de/398/browsergames-welche-last-verursachen-diese' rel='bookmark' title='Permanent Link: Browsergames &#8211; Welche Last verursachen diese?'>Browsergames &#8211; Welche Last verursachen diese?</a></li>
<li><a href='http://linux-doku.de/130/php-mail-funktion-an-smtp-authentifizieren' rel='bookmark' title='Permanent Link: PHP Mail Funktion an SMTP Authentifizieren'>PHP Mail Funktion an SMTP Authentifizieren</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Mein kleiner Debian Test Server hat die letzten Tage unwahrscheinlich viel Ram gezogen. Von 265MB welche verbaut sind, nutzte er bereits nach einem Neustart ganze 75% &#8211; das kann es ja nicht sein, schließlich laufen dort lediglich ein Lighttpd, MySQL, Exim4, Courier und SSH, also nichts weltbewegendes. Zu diesem Zeitpunkt griff ich auch nur mit 2 Rechnern auf meine PHP Anwendungen zu.</p>
<p>Also begann ich die vielen php5-cgi Prozesse genauer unter die Lupe zu nehmen, da diese am meisten Ram brauchten. Nach einigem unnützen hin und herstellen in der PHP.ini wagte ich mich noch an die FastCGI Konfiguration von Lighttpd, dort habe ich nur so zum Test die PHP_FCGI_CHILDREN heraus geschmissen und siehe da, der Server benötigt nach einem Neustart des Webservers Lighttpd nur noch gute 30 bis 50% Ram, wenn das mal kein befriedigendes Ergebnis ist.</p>
<p>Des weiteren habe ich nun anstatt 12 php5-fcgi Prozessen nur noch 4 Stück. Offenbar beendet PHP oder FastCGI die Geforkten Tasks nicht mehr richtig &#8230; </p>
<p>Laut PHP Bugtracker existiert dieser Bug schon seit gut 3,5 Jahren: <a href="http://bugs.php.net/40286">http://bugs.php.net/40286</a></p>


<p>Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/264/apache-klemmt' rel='bookmark' title='Permanent Link: Apache klemmt'>Apache klemmt</a></li>
<li><a href='http://linux-doku.de/398/browsergames-welche-last-verursachen-diese' rel='bookmark' title='Permanent Link: Browsergames &#8211; Welche Last verursachen diese?'>Browsergames &#8211; Welche Last verursachen diese?</a></li>
<li><a href='http://linux-doku.de/130/php-mail-funktion-an-smtp-authentifizieren' rel='bookmark' title='Permanent Link: PHP Mail Funktion an SMTP Authentifizieren'>PHP Mail Funktion an SMTP Authentifizieren</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/572/php_fcgi_children-spar-dir-den-ram/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery idTabs bei Seitenwechsel speichern</title>
		<link>http://linux-doku.de/535/jquery-idtabs-bei-seitenwechsel-speichern</link>
		<comments>http://linux-doku.de/535/jquery-idtabs-bei-seitenwechsel-speichern#comments</comments>
		<pubDate>Wed, 04 Aug 2010 14:37:25 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[BissyDesign]]></category>
		<category><![CDATA[idTabs]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Menü]]></category>
		<category><![CDATA[Resigame]]></category>
		<category><![CDATA[Tabs]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=535</guid>
		<description><![CDATA[In letzter Zeit beschäftige ich mich wieder verstärkt mit JavaScript, bzw. jQuery. Heute habe ich auf Basis von idTabs (@BissyDesign &#8211; Danke für den Tipp ) ein Horizontales Menü beflügelt, dessen Untermenüpunkte nun bei klick auf einen Obermenüpunkt ohne Seitenreload wechseln. Lange Rede kurzer Sinn: und so sieht es nach dem klick auf &#8220;Nachrichten&#8221; aus: [...]


Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/276/jquery-mehrere-elemente-verbergen' rel='bookmark' title='Permanent Link: jQuery – Mehrere Elemente verbergen'>jQuery – Mehrere Elemente verbergen</a></li>
<li><a href='http://linux-doku.de/503/jquery-element-blinken-lassen' rel='bookmark' title='Permanent Link: jQuery Element Blinken lassen'>jQuery Element Blinken lassen</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In letzter Zeit beschäftige ich mich wieder verstärkt mit JavaScript, bzw. jQuery. Heute habe ich auf Basis von idTabs (@BissyDesign &#8211; Danke für den Tipp <img src='http://linux-doku.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) ein Horizontales Menü beflügelt, dessen Untermenüpunkte nun bei klick auf einen Obermenüpunkt ohne Seitenreload wechseln. Lange Rede kurzer Sinn:<br />
<a href="http://linux-doku.de/535/jquery-idtabs-bei-seitenwechsel-speichern/menue1" rel="attachment wp-att-536"><img src="http://linux-doku.de/wp-content/uploads/2010/08/menue1.png" alt="" title="Menü 1" width="520" height="61" class="aligncenter size-full wp-image-536" /></a><br />
und so sieht es nach dem klick auf &#8220;Nachrichten&#8221; aus:<br />
<a href="http://linux-doku.de/535/jquery-idtabs-bei-seitenwechsel-speichern/menue2" rel="attachment wp-att-537"><img src="http://linux-doku.de/wp-content/uploads/2010/08/menue2.png" alt="" title="Menü 2" width="520" height="58" class="aligncenter size-full wp-image-537" /></a></p>
<p>Leider hat die Sache mit idTabs einen Haken, und zwar springt das Menü nach einem Seitenreload wieder zum ersten Tab zurück und bleibt nicht beim gewählten. Doch dafür habe ich eine ganz einfache Lösung gefunden.</p>
<p>Als erstes müssen wir das jQuery Cookie Plugin einbinden: <a href="http://plugins.jquery.com/project/cookie">http://plugins.jquery.com/project/cookie</a><br />
Nächster Schritt ist die Modifikation des idTabs Plugins, man suche folgende Stelle im Code (im Unkomprimierten Zeile 95):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">return</span> s.<span style="color: #660066;">change</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//Option for changing url</span></pre></div></div>

<p>und ändere dies zu:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #006600; font-style: italic;">// write to cookie</span>
$.<span style="color: #660066;">cookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'PAGENAME_menu'</span><span style="color: #339933;">,</span> id.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span> expires<span style="color: #339933;">:</span> <span style="color: #CC0000;">1</span> <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">return</span> s.<span style="color: #660066;">change</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">//Option for changing url</span></pre></div></div>

<p>(PAGENAME_menu ist der Cookie Name, welcher an die Gegebenheiten angepasst werden muss).</p>
<p>Anschließend muss noch der Funktionsaufruf von idTabs Modifiziert werden:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#menu ul&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">idTabs</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>zu</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">id <span style="color: #339933;">=</span> $.<span style="color: #660066;">cookie</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;PAGENAME_menu&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>id <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> id <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span> <span style="color: #006600; font-style: italic;">// failback if no cookie is availible</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#menu ul&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">idTabs</span><span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Nun wird bei jedem Tabwelchsel der aktuelle Tab in einen Cookie geschrieben. Beim neu laden der Seite wird dieser ausgelesen und dessen Wert (der letzte Tab) an idTabs als default Tab übergeben. Es muss lediglich beachtet werden, das keiner der Tabs das Attribut &#8220;class=&#8217;selected&#8217;&#8221; hat, da unser <del>Hack</del> Trick sonst nicht funktioniert.</p>


<p>Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/276/jquery-mehrere-elemente-verbergen' rel='bookmark' title='Permanent Link: jQuery – Mehrere Elemente verbergen'>jQuery – Mehrere Elemente verbergen</a></li>
<li><a href='http://linux-doku.de/503/jquery-element-blinken-lassen' rel='bookmark' title='Permanent Link: jQuery Element Blinken lassen'>jQuery Element Blinken lassen</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/535/jquery-idtabs-bei-seitenwechsel-speichern/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery Element Blinken lassen</title>
		<link>http://linux-doku.de/503/jquery-element-blinken-lassen</link>
		<comments>http://linux-doku.de/503/jquery-element-blinken-lassen#comments</comments>
		<pubDate>Tue, 03 Aug 2010 21:53:24 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Blinken]]></category>
		<category><![CDATA[Gif]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Programieret]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=503</guid>
		<description><![CDATA[Blinkende Gifs, man sieht sie nicht mehr allzu oft, aber dennoch sind sie manchmal brauchbar, um dem Benutzer etwas zu signalisieren. Leider kann man diese schlecht handhaben, denn ein mal erstellt, müsste man bei einer Änderung wieder von vorne beginnen. Warum also nicht JavaScript dazu verwenden? Mit dieser kleinen Funktion kann man ein Element blinken [...]


Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/276/jquery-mehrere-elemente-verbergen' rel='bookmark' title='Permanent Link: jQuery – Mehrere Elemente verbergen'>jQuery – Mehrere Elemente verbergen</a></li>
<li><a href='http://linux-doku.de/535/jquery-idtabs-bei-seitenwechsel-speichern' rel='bookmark' title='Permanent Link: jQuery idTabs bei Seitenwechsel speichern'>jQuery idTabs bei Seitenwechsel speichern</a></li>
<li><a href='http://linux-doku.de/242/javascript-und-str_replace' rel='bookmark' title='Permanent Link: JavaScript und str_replace()'>JavaScript und str_replace()</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Blinkende Gifs, man sieht sie nicht mehr allzu oft, aber dennoch sind sie manchmal brauchbar, um dem Benutzer etwas zu signalisieren. Leider kann man diese schlecht handhaben, denn ein mal erstellt, müsste man bei einer Änderung wieder von vorne beginnen.</p>
<p>Warum also nicht JavaScript dazu verwenden? Mit dieser kleinen Funktion kann man ein Element blinken lassen. Und zwar wird es erst versteckt und dann wieder eingeblendet (jQuery muss natürlich vorhanden sein):</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> blink<span style="color: #009900;">&#40;</span>elm<span style="color: #339933;">,</span> msec<span style="color: #339933;">,</span> speed<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  $<span style="color: #009900;">&#40;</span>elm<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  $<span style="color: #009900;">&#40;</span>elm<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">fadeIn</span><span style="color: #009900;">&#40;</span>speed<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  window.<span style="color: #660066;">setTimeout</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;blink('&quot;</span> <span style="color: #339933;">+</span> elm <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;', &quot;</span> <span style="color: #339933;">+</span> msec <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;, '&quot;</span> <span style="color: #339933;">+</span> speed <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;')&quot;</span><span style="color: #339933;">,</span> msec<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><b>elm</b> &#8211; sagt welches Element blinken soll, z.B. &#8220;#messageIcon&#8221;<br />
<b>msec</b> &#8211; die Anzahl der Milisekunden, bis die Funktion erneut aufgerufen wird. Hier sollte allerdings beachtet werden, das der Effekt auch eine gewisse Zeit benötigt, und der Nutzer durch schnelle Zeiten  gestört werden könnte.<br />
<b>speed</b> &#8211; gibt die Geschwindigkeit an, entweder &#8220;fast&#8221; oder &#8220;slow&#8221;.</p>


<p>Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/276/jquery-mehrere-elemente-verbergen' rel='bookmark' title='Permanent Link: jQuery – Mehrere Elemente verbergen'>jQuery – Mehrere Elemente verbergen</a></li>
<li><a href='http://linux-doku.de/535/jquery-idtabs-bei-seitenwechsel-speichern' rel='bookmark' title='Permanent Link: jQuery idTabs bei Seitenwechsel speichern'>jQuery idTabs bei Seitenwechsel speichern</a></li>
<li><a href='http://linux-doku.de/242/javascript-und-str_replace' rel='bookmark' title='Permanent Link: JavaScript und str_replace()'>JavaScript und str_replace()</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/503/jquery-element-blinken-lassen/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Brickfilm: Was siehst du?</title>
		<link>http://linux-doku.de/492/brickfilm-was-siehst-du</link>
		<comments>http://linux-doku.de/492/brickfilm-was-siehst-du#comments</comments>
		<pubDate>Wed, 28 Jul 2010 19:48:34 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Filme]]></category>
		<category><![CDATA[After Effects]]></category>
		<category><![CDATA[Animation]]></category>
		<category><![CDATA[Brick]]></category>
		<category><![CDATA[Brickboard]]></category>
		<category><![CDATA[Brickfilm]]></category>
		<category><![CDATA[Film]]></category>
		<category><![CDATA[Lego]]></category>
		<category><![CDATA[Premiere]]></category>
		<category><![CDATA[Videoschnitt]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=492</guid>
		<description><![CDATA[Heute habe ich im Brickboard ein echtes Meisterwerk gefunden, und zwar der Steinerei 2010 (Publikumspreis-)Gewinner &#8211; &#8220;Was siehst du?&#8221;. An dieser Stelle möchte ich den beiden &#8220;Machern&#8221; für diesen super Film Danken. Einen Brickfilm mit solch Grandioser Qualität, gefühlvoller Story und Sprechern, die ihre Rollen überzeugend sprechen sieht man selten. This video was embedded using [...]


Keine Ähnlichen Beiträge.]]></description>
			<content:encoded><![CDATA[<p>Heute habe ich im <a href="http://brickboard.de">Brickboard</a> ein echtes Meisterwerk gefunden, und zwar der <a href="http://steinerei.de">Steinerei</a> 2010 (Publikumspreis-)Gewinner &#8211; &#8220;Was siehst du?&#8221;. An dieser Stelle möchte ich den beiden &#8220;Machern&#8221; für diesen super Film Danken. Einen Brickfilm mit solch Grandioser Qualität, gefühlvoller Story und Sprechern, die ihre Rollen überzeugend sprechen sieht man selten.</p>
<p><object width="550" height="330" type="application/x-shockwave-flash" data="http://www.youtube.com/v/SAfik1jsSAo&amp;ap=%2526fmt%3D18"><param name="movie" value="http://www.youtube.com/v/SAfik1jsSAo&amp;ap=%2526fmt%3D18" />This video was embedded using the YouTuber plugin by <a href="http://www.roytanck.com">Roy Tanck</a>. Adobe Flash Player is required to view the video.</object></p>
<p>Die Geschichte handelt von einem kleinem Mädchen und einem Blinden Mann. Diesem erzählt das das Mädchen was sie sieht (deshalb auch der Titel <img src='http://linux-doku.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). Eine wunderschöne Welt, spielende Kinder, ein verliebtes paar und Menschen denen der Alltag Spaß bereitet. Am Ende des Films gibt es jedoch eine dramatische Wendung, offenbar wurde die schöne Welt in der alles in Ordnung ist durch einen Anschlag, Krieg oder ähnliches zerstört (wird im Film nicht erwähnt) und das Kind &#8220;spielt&#8221; dem älterem Herr etwas vor, indem sie eine Kassette mit Geräuschen &#8220;von früher&#8221; in ihrem Kassettenrekorder laufen lässt. Offenbar will sie dem Blinden die Wirklichkeit ersparen und ihr eine schöne &#8211; heile Welt vor Augen bringen.</p>
<p>Alles in allem Sehr gut Umgesetzt, sowohl die Kamera, als auch die überzeugende Synchronisation. Das ist wirklich großes Kino.</p>


<p>Keine Ähnlichen Beiträge.</p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/492/brickfilm-was-siehst-du/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FAT32 das alt bekannte Leid Lied</title>
		<link>http://linux-doku.de/487/fat32-das-alt-bekannte-lied</link>
		<comments>http://linux-doku.de/487/fat32-das-alt-bekannte-lied#comments</comments>
		<pubDate>Wed, 14 Jul 2010 19:16:03 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[ext3]]></category>
		<category><![CDATA[FAT32]]></category>
		<category><![CDATA[Filesystem]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NTFS]]></category>
		<category><![CDATA[Premiere]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=487</guid>
		<description><![CDATA[Soeben musste ich auf meinen 8GB USB Stick von meinem Windows Notebook aus einen Film kopieren, welcher nach dem export aus Adobe Premiere ganze 4,36GB umfasst. Eigentlich nicht weiter tragisch, wäre da nicht die Meldung &#8220;Das Zieldateisystem ist voll!&#8221; (oder so ähnlich ) obwohl der USB Stick leer ist. Was nun? Nach mehrmaligen probieren, sowie [...]


Keine Ähnlichen Beiträge.]]></description>
			<content:encoded><![CDATA[<p>Soeben musste ich auf meinen 8GB USB Stick von meinem Windows Notebook aus einen Film kopieren, welcher nach dem export aus Adobe Premiere ganze 4,36GB umfasst. Eigentlich nicht weiter tragisch, wäre da nicht die Meldung &#8220;Das Zieldateisystem ist voll!&#8221; (oder so ähnlich <img src='http://linux-doku.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) obwohl der USB Stick leer ist.</p>
<p>Was nun? Nach mehrmaligen probieren, sowie ein und ausstecken ist mir dann eingefallen, das die Maximale Dateigröße von FAT32 4GB ist. Kurz um, ich habe den USB Stick über den Arbeitsplatz zu NTFS umformatiert und schon klappt alles reibungslos &#8230; bis auf den Zugriff von Linux und Mac OS X aus, aber das ist eine andere Geschichte.</p>
<p>Randbemerkung: Warum kein Linux filesystem verwenden? Ganz einfach, auf dem Zielrechner, der mit für die Präsentation gestellt wird, habe ich keinen Admin Zugriff und kann somit keinen ext3 Treiber installieren.</p>


<p>Keine Ähnlichen Beiträge.</p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/487/fat32-das-alt-bekannte-lied/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Netcup Gutscheine für Alle!</title>
		<link>http://linux-doku.de/476/netcup-gutscheine-fur-alle</link>
		<comments>http://linux-doku.de/476/netcup-gutscheine-fur-alle#comments</comments>
		<pubDate>Fri, 09 Jul 2010 13:49:33 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Günstiger]]></category>
		<category><![CDATA[Gutschein]]></category>
		<category><![CDATA[Netcup]]></category>
		<category><![CDATA[Rabatt]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[vServer]]></category>
		<category><![CDATA[Webhosting]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=476</guid>
		<description><![CDATA[So ihr lieben heute habe ich ein paar Gutscheine für euch im Gepäck Es handelt sich hierbei um 10 Gutscheine des Webhosters Netcup im Wert von je 5€. Bei Netcup gibt es vom Einsteiger Webspace (ab 0,19€ / Monat) über vServer bis hin zu Managed vServer alles, was man für einen Gelungenen Webauftritt benötigt. Der [...]


Keine Ähnlichen Beiträge.]]></description>
			<content:encoded><![CDATA[<p>So ihr lieben heute habe ich ein paar Gutscheine für euch im Gepäck <img src='http://linux-doku.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Es handelt sich hierbei um 10 Gutscheine des Webhosters <a href="http://netcup.de">Netcup</a> im Wert von je 5€. Bei <a href="http://netcup.de">Netcup</a> gibt es vom Einsteiger Webspace (ab 0,19€ / Monat) über vServer bis hin zu Managed vServer alles, was man für einen Gelungenen Webauftritt benötigt. Der Gutschein Code kann einfach beim bestellen mit Angegeben werden und schon hat man 5€ gespart.</p>
<p>Hier die Gutscheincodes:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">36nc12786822950
36nc12786822951
36nc12786822952
36nc12786822953
36nc12786822954
36nc12786822955
36nc12786822956
36nc12786822957
36nc12786822958
36nc12786822959</pre></div></div>

<p>(falls alle Gutscheine aufgebracht sind, schreibt einen Kommentar, dann bekommt ihr neue)</p>
<p>Ein sonniges Wochenende euch allen.</p>


<p>Keine Ähnlichen Beiträge.</p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/476/netcup-gutscheine-fur-alle/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Twitter via PHP auslesen</title>
		<link>http://linux-doku.de/467/twitter-via-php-auslesen</link>
		<comments>http://linux-doku.de/467/twitter-via-php-auslesen#comments</comments>
		<pubDate>Wed, 07 Jul 2010 15:53:36 +0000</pubDate>
		<dc:creator>Martin</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[Nachrichten]]></category>
		<category><![CDATA[Parsen]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://linux-doku.de/?p=467</guid>
		<description><![CDATA[Ein Leser dieses Blogs hat vor kurzem den Wunsch nach einem Artikel geäußert, wie er eine Ähnliche &#8220;letzte Tweets Anzeige&#8221; wie auf www.Resigame.de bauen kann. Nun so schnell kann es gehen Da Twitter eine API bzw. von jedem Nutzer eine XML Datei mit Tweets und anderen Account Infos bereitstellt, haben wir leichtes Spiel an die [...]


Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/373/einfache-alternative-zu-php-template-engines' rel='bookmark' title='Permanent Link: Performante Alternative zu PHP Template Engines'>Performante Alternative zu PHP Template Engines</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Ein Leser dieses Blogs hat vor kurzem den Wunsch nach einem Artikel geäußert, wie er eine Ähnliche &#8220;letzte Tweets Anzeige&#8221; wie auf <a href="http://resigame.de">www.Resigame.de</a> bauen kann. Nun so schnell kann es gehen <img src='http://linux-doku.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Da Twitter eine API bzw. von jedem Nutzer eine XML Datei mit Tweets und anderen Account Infos bereitstellt, haben wir leichtes Spiel an die Daten zu kommen.</p>
<p>So können wir die Datei auslesen:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$tweets</span> <span style="color: #339933;">=</span> <span style="color: #990000;">simplexml_load_file</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.twitter.com/status/user_timeline/[NUTZERNAME].xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>[NUTZERNAME] muss natürlich mit dem Name des Twitteraccounts ersetzt werden, z.B. &#8220;Resigame&#8221;.</p>
<p>Aus dem Objekt $tweets können wir nun die letzte Nachricht auslesen:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$tweets</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">status</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">text</span><span style="color: #339933;">;</span></pre></div></div>

<p>Alle anderen verfügbaren Objekte kannst du herausfinden, indem du die XML Datei direkt im Browser aufrufst (Dort wird es sogar als Tree dargestellt).</p>
<p>Um auf ältere Nachrichten zuzugreifen kann hinter Status die Zahl angegeben werden, von der aus die Nachrichten &#8220;herab&#8221; gezählt werden (allerdings wird bei 0 begonnen!):</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">echo</span> <span style="color: #000088;">$tweets</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">status</span><span style="color: #009900;">&#123;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">text</span><span style="color: #339933;">;</span></pre></div></div>

<p>Dies würde uns Beispielsweise die 3. letzte Statusnachricht anzeigen.</p>
<p>Um nun die letzten 3 Nachrichten anzuzeigen verwenden wir einfach eine Schleife:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">while</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;=</span> <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$tweets</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">status</span><span style="color: #009900;">&#123;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">text</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&lt;br&gt;'</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$i</span><span style="color: #339933;">++;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>(mit for Schleifen hab ich es nicht so <img src='http://linux-doku.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p>Da nun aber bei jedem Aufruf der Seite die Twitter XML Datei neu heruntergeladen werden muss, was nicht gerade Traffic und Ressourcenschonend ist &#8211; Kleinvieh macht schließlich auch Mist &#8211; Cachen wir nun die Datei:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">filectime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter.xml'</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&lt;</span> <span style="color: #990000;">time</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">60</span><span style="color: #339933;">*</span><span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// download file</span>
  <span style="color: #000088;">$file</span> <span style="color: #339933;">=</span> <span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.twitter.com/status/user_timeline/[NUTZERNAME].xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter.xml'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$file</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000088;">$tweets</span> <span style="color: #339933;">=</span> <span style="color: #990000;">simplexml_load_file</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'twitter.xml'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Nun wird erst überprüft ob die Datei twitter.xml, welche im gleichen Ordner wie das Script liegt in den letzten 10 Minuten geändert wurde. Ist das der Fall wird das erneute Herunterladen übersprungen, wenn nicht (also wenn der Änderungszeitpunkt länger als 10 Minuten her ist), wird die XML von Twitter heruntergeladen und in unsere twitter.xml geschrieben.</p>
<p>Anschließend wird die twitter.xml geparst.</p>
<p>Das wäre es auch schon, in den nächsten Tagen zeige ich euch dann noch wie ihr die Twitter Nachrichten mittels jQuery schön als Newsticker laufen lassen könnt.</p>


<p>Ähnliche Beiträge:<ol><li><a href='http://linux-doku.de/373/einfache-alternative-zu-php-template-engines' rel='bookmark' title='Permanent Link: Performante Alternative zu PHP Template Engines'>Performante Alternative zu PHP Template Engines</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://linux-doku.de/467/twitter-via-php-auslesen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
