<?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>derUwe.de &#187; Secondlife</title>
	<atom:link href="http://deruwe.de/tag/secondlife/feed" rel="self" type="application/rss+xml" />
	<link>http://deruwe.de</link>
	<description>mein Streifzug durchs Web</description>
	<lastBuildDate>Sat, 26 Jun 2010 10:45:28 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Wenn Secondlife unter Linux nicht will</title>
		<link>http://deruwe.de/2009/11/wenn-secondlife-unter-linux-nicht-will.html</link>
		<comments>http://deruwe.de/2009/11/wenn-secondlife-unter-linux-nicht-will.html#comments</comments>
		<pubDate>Sat, 07 Nov 2009 11:10:30 +0000</pubDate>
		<dc:creator>Uwe</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Praxis]]></category>
		<category><![CDATA[Secondlife]]></category>

		<guid isPermaLink="false">http://deruwe.de/?p=416</guid>
		<description><![CDATA[Auf meiner Gentoo Maschine will der (Linux) Client für Secondlife mit folgender Fehlermeldung nicht starten. bin/do-not-directly-run-secondlife-bin: error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory Dies kommt daher das nur eine aktuellere Version der libjpeg installiert ist. In diesem Fall hilft ein einfacher Symlink auf die aktuelle Version. [...]]]></description>
			<content:encoded><![CDATA[<p>Auf meiner Gentoo Maschine will der (Linux) Client für Secondlife mit folgender Fehlermeldung nicht starten.</p>
<p><code>bin/do-not-directly-run-secondlife-bin: error while loading shared libraries:<br />
libjpeg.so.62: cannot open shared object file: No such file or directory</code></p>
<p>Dies kommt daher das nur eine aktuellere Version der libjpeg installiert ist. In diesem Fall hilft ein einfacher Symlink auf die aktuelle Version.</p>
<p><code># cd /usr/lib<br />
# ln -s libjpeg.so libjpeg.so.62</code></p>
<p>Zur Überprüfung sieht dann so aus:</p>
<p><code># ls -l libjpeg.so*<br />
lrwxrwxrwx 1 root root     16 2009-11-07 00:48 libjpeg.so -> libjpeg.so.7.0.0<br />
lrwxrwxrwx 1 root root     10 2009-11-07 11:05 libjpeg.so.62 -> libjpeg.so<br />
lrwxrwxrwx 1 root root     16 2009-11-07 00:48 libjpeg.so.7 -> libjpeg.so.7.0.0<br />
-rwxr-xr-x 1 root root 218628 2009-11-07 00:48 libjpeg.so.7.0.0</code></p>
<p>Fertig. Viel Spaß beim Spielen.</p>
]]></content:encoded>
			<wfw:commentRss>http://deruwe.de/2009/11/wenn-secondlife-unter-linux-nicht-will.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ein einfacher FIFO-Cache in LSL</title>
		<link>http://deruwe.de/2009/09/ein-einfacher-fifo-cache-in-lsl.html</link>
		<comments>http://deruwe.de/2009/09/ein-einfacher-fifo-cache-in-lsl.html#comments</comments>
		<pubDate>Tue, 08 Sep 2009 04:43:03 +0000</pubDate>
		<dc:creator>Uwe</dc:creator>
				<category><![CDATA[Praxis]]></category>
		<category><![CDATA[LSL]]></category>
		<category><![CDATA[Secondlife]]></category>

		<guid isPermaLink="false">http://deruwe.de/?p=397</guid>
		<description><![CDATA[FIFO geschreibt einen einfachen Algorithmus bei dem zuerst ankommende Daten auch als Erste verarbeitet werden (First In &#8211; First Out). Man kann es sich als einfache Warteschlange vorstellen. Hier ein einfacher FIFO-Cache in LSL (Linden Scripting Language) mit dem es möglich ist ankommende Daten zwischenzuspeichern um sie später sequenziell abzuarbeiten. Sinnvoll ist soetwas überall dort [...]]]></description>
			<content:encoded><![CDATA[<p>FIFO geschreibt einen einfachen Algorithmus bei dem zuerst ankommende Daten auch als Erste verarbeitet werden (First In &#8211; First Out). Man kann es sich als einfache Warteschlange vorstellen. </p>
<p>Hier ein einfacher FIFO-Cache in LSL (Linden Scripting Language) mit dem es möglich ist ankommende Daten zwischenzuspeichern um sie später sequenziell abzuarbeiten. <span id="more-397"></span> Sinnvoll ist soetwas überall dort wo es durch Ereignisse (z.B. Benutzereingaben oder Sensoren) recht schnell viele Daten entstehen können, die man jedoch (durch Beschränkungen in LSL) nur relativ langsam abarbeiten kann. Man schafft sich damit einen Buffer bei &#8220;Lastspitzen&#8221;.</p>
<p>Je nach Datentyp muss das Script entsprechend angepaßt werden, dieses Beispiel ist für Keys. </p>
<p><code>list&nbsp;LIST_KEYS;<br />
&nbsp;<br />
addCache(key&nbsp;uuid)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;integer&nbsp;found&nbsp;=&nbsp;llListFindList(LIST_KEYS,&nbsp;[uuid]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(found&nbsp;&lt;&nbsp;0)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIST_KEYS&nbsp;+=&nbsp;[uuid];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
&nbsp;<br />
key&nbsp;getCache()&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(llGetListLength(LIST_KEYS))&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;key&nbsp;result&nbsp;=&nbsp;llList2Key(LIST_KEYS,0);&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LIST_KEYS&nbsp;=&nbsp;llDeleteSubList(LIST_KEYS,&nbsp;0,&nbsp;1);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;NULL_KEY;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}<br />
</code></p>
<p>Die Benutzung ist recht einfacht. Mit addCache(key) wird ein Key in den Cache geschrieben und mit getCache() der nächste Key aus dem Cache geholt (und dort gelöscht). Ist der Cache leer wird NULL_KEY zurückgegeben. </p>
<p>In addCache() befindet sich zudem eine Prüfung ob der Schlüssel schon im Cache vorhanden ist. Diese IF-Adfrage kann auch weggelassen werden, kann aber auch recht sinnvoll sein um z.B. nur Schlüssel in den Cache einzufügen die noch nicht dort vorhanden sind (z.B. um Doppelbestellungen durch falsches Klicken bei Vendoren zu verhindern)</p>
<p>Man sollte beachten, der Speicher bei einem LSL Script ist beschränkt. Die Anzahl der maximalen Einträge im Cache (bevor es zu einem Speicherüberlauf) kommt kann recht unterschiedlich sein. Daher sollte der Cache immer schnellstmöglich abgearbeitet werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://deruwe.de/2009/09/ein-einfacher-fifo-cache-in-lsl.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
