<?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/"
	>

<channel>
	<title>sixserv blog</title>
	<atom:link href="http://sixserv.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://sixserv.org</link>
	<description>welcome to teh #sixserv!</description>
	<pubDate>Fri, 26 Dec 2008 20:11:30 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Das Fnordlicht</title>
		<link>http://sixserv.org/2008/12/03/das-fnordlicht/</link>
		<comments>http://sixserv.org/2008/12/03/das-fnordlicht/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 18:13:45 +0000</pubDate>
		<dc:creator>apoc</dc:creator>
		
		<category><![CDATA[hardware]]></category>

		<category><![CDATA[atmel]]></category>

		<category><![CDATA[avr]]></category>

		<category><![CDATA[fnordlicht]]></category>

		<category><![CDATA[led]]></category>

		<category><![CDATA[microcontroller]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=130</guid>
		<description><![CDATA[Ich und Elektronik? Ohje ich bin ja gewissermaßen eher der Softwerker aber ermutigt davon, dass es bereits ITler vor mir geschafft haben sollen, das geniale MoodFnordlicht zum laufen zu kriegen, mache ich mich daran, in den nächsten Tagen selbst ein Fnordlicht zu bauen. Wer noch nicht davon gehört hat, kann das ganze z.B. schon mal [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_133" class="wp-caption alignleft" style="width: 310px"><a href="http://sixserv.org/wp-content/uploads/2008/12/fnordlicht.jpg" rel="lightbox[130]"><img class="size-medium wp-image-133" title="fnordlicht" src="http://sixserv.org/wp-content/uploads/2008/12/fnordlicht-300x199.jpg" alt="Das Fnordlicht in Aktion." width="300" height="199" /></a><p class="wp-caption-text">Das Fnordlicht in Aktion.</p></div>
<p>Ich und Elektronik? Ohje ich bin ja gewissermaßen eher der Softwerker aber ermutigt davon, dass es bereits ITler vor mir geschafft haben sollen, das geniale <span style="text-decoration: line-through;">Mood</span><a href="http://www.lochraster.org/fnordlicht/">Fnordlicht</a> zum laufen zu kriegen, mache ich mich daran, in den nächsten Tagen selbst ein Fnordlicht zu bauen. Wer noch nicht davon gehört hat, kann das ganze z.B. schon mal auf (<a href="http://wiki.lochraster.org/wiki/Fnordlicht">wiki.</a>)<a href="http://www.lochraster.org/fnordlicht/">lochraster.org</a> begutachten. Nebenbei sei erwähnt das der Erfinder, fd0 auch andere interessante Projekte entwickelt hat, z.B. das <a href="http://www.lochraster.org/etherrape/">Etherrape</a> eine kleine Platine mit(mehr oder weniger) vollwertigem Webserver. All das läuft mit dem <a href="http://de.wikipedia.org/wiki/Atmel_AVR">Atmel AVR Microcontroller</a>(ATmega-Serie), darüber bin ich schon mehrfach bei einigen meiner Stamm-Podcasts gestolpert, schon vor einiger Zeit gab es beim <a href="http://chaosradio.ccc.de/chaosradio_express.html">Chaosradio Express</a> eine Sendung zum Thema(<a href="http://chaosradio.ccc.de/cre067.html">CRE067: Microcontroller</a>, mit fd0), sowie erst vor kurzem mit mef die <a href="http://ulm.ccc.de/dev/radio/detail?id=117">Nummer 117</a> von <a href="http://ulm.ccc.de/dev/radio/">/dev/radio</a>. fd0 hat übrigens zum Thema auch 2 Vorträge auf dem <a href="ftp://ftp.ccc.de/congress/2005/lectures/video/mp4-avc/320x240/22C3-482-de-atmel_avr_for_dummies.m4v">22c3</a> und <a href="ftp://ftp.ccc.de/congress/2006/video/23C3-1554-de-ethernet_mit_mikrocontrollern.m4v">23c3</a> gehalten.<br />
Ich hoffe das sich meine (Löt-)Unfälle in Grenzen halten werden und ich in nächsten Tagen genauer darüber berichten kann.</p>
<p><strong>Weitere Links zum Thema:</strong></p>
<ul>
<li><a href="http://www.mikrocontroller.net/articles/AVR-Tutorial">Klasse Tutorial auf Mikrocontroller.net</a></li>
<li><a href="http://www.roboternetz.de/wissen/index.php/AVR-Einstieg_leicht_gemacht">Noch ein Tutorial, von Roboternetz.de</a></li>
<li><a href="http://www.trust-us.ch/ds/88/026.htm">und der Datenschleuder Artikel zum Fnordlicht</a></li>
<li><a href="http://wiki.lochraster.org/wiki/Sebastian_Fnordlicht_Doku">Anleitung zum Fnordlicht</a></li>
<li><a href="https://wiki.koeln.ccc.de/index.php/U23_2005/Fnordlicht_quickstart_howto">Noch eine nützliche Hilfe</a></li>
<li><a href="http://koeln.ccc.de/ablage/fnordlicht/">Projektseite auf Kölner CCC-Seite mit Bestückungsliste(die fehlt bei lochraster.org?)</a></li>
</ul>
<p>Update: Ganz vergessen zu aktualisieren. Das Fnordlicht leuchtet jetzt! später mehr.</p>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/12/03/das-fnordlicht/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Wordpress 2.7: &#8220;Volldampf Voraus&#8221;</title>
		<link>http://sixserv.org/2008/10/08/wordpress-27-volldampf-voraus/</link>
		<comments>http://sixserv.org/2008/10/08/wordpress-27-volldampf-voraus/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 15:34:00 +0000</pubDate>
		<dc:creator>apoc</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[wordpress]]></category>

		<category><![CDATA[backend]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=122</guid>
		<description><![CDATA[Bereits 2.6 machte einen großen Schritt, das Backend wurde umgestaltet, Versionierung der Artikel, Google Gears Unterstützung, zahlreiche Verbesserungen der Usability und sonstige Neuerungen machten Wordpress noch ein Stück mehr zu einen der besten Weblog-Applikationen die es gibt. Mit 2.7 setzen die Entwickler noch eins drauf, die Funktion zum Update eines Plugins direkt vom Backend aus [...]]]></description>
			<content:encoded><![CDATA[<p>Bereits 2.6 machte einen großen Schritt, das Backend wurde umgestaltet, Versionierung der Artikel, <a href="http://gears.google.com/">Google Gears </a>Unterstützung, zahlreiche Verbesserungen der Usability und sonstige Neuerungen machten Wordpress noch ein Stück mehr zu einen der besten Weblog-Applikationen die es gibt. Mit 2.7 setzen die Entwickler noch eins drauf, die Funktion zum Update eines Plugins direkt vom Backend aus war ja schon erster Schritt, doch mit 2.7 wird es möglich das gesamte Wordpress direkt vom Backend aus zu upgraden.</p>
<div id="attachment_124" class="wp-caption aligncenter" style="width: 310px"><a href="http://sixserv.org/wp-content/uploads/2008/10/new_wp27_feature2.png" rel="lightbox[122]"><img class="size-medium wp-image-124" title="new_wp27_feature2" src="http://sixserv.org/wp-content/uploads/2008/10/new_wp27_feature2-300x196.png" alt="Core Update" width="300" height="196" /></a><p class="wp-caption-text">Core Update</p></div>
<p>Ebenfalls ist nun eine Plugin-Suche direkt im Backend integriert und neue Plugins können mit einem einzigen Klick installiert werden. Außerdem soll in Zukunft ein neuer Code-Editor für Theme und Plugin-Dateien, Syntax-Highlighting unterstützen, davon ist jedoch in der aktuellen Entwickler-Version noch nicht viel zu sehen.</p>
<div id="attachment_123" class="wp-caption aligncenter" style="width: 310px"><a href="http://sixserv.org/wp-content/uploads/2008/10/new_wp27_feature1.png" rel="lightbox[122]"><img class="size-medium wp-image-123" title="new_wp27_feature1" src="http://sixserv.org/wp-content/uploads/2008/10/new_wp27_feature1-300x189.png" alt="Plugin Suche" width="300" height="189" /></a><p class="wp-caption-text">Plugin Suche</p></div>
<p><a href="http://wordpress-deutschland.org/">Wordpress-Deutschland</a> hat <a href="http://blog.wordpress-deutschland.org/2008/08/04/wordpress-27-zielsetzungen.html">die Agenda</a> der wohl erfolgreichsten Weblog-Software, <a href="http://www.wordpress.org">Wordpress</a> zusammengestellt. Außerdem gibt es ein <a href="http://blog.wordpress-deutschland.org/2008/10/06/wordpress-27-screencast-teil-1.html">Screencast</a> vom neuen Backend.</p>
<p>Update: Am Design des Backends hat sich noch viel geändert aber es ist Grundlegend in die neue WP Version 2.7 eingegangen. Ich finde es ist sogar noch gelungener geworden wie die Entwickler-Version vermuten lies.</p>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/10/08/wordpress-27-volldampf-voraus/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Captchas</title>
		<link>http://sixserv.org/2008/09/27/captchas/</link>
		<comments>http://sixserv.org/2008/09/27/captchas/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 15:20:49 +0000</pubDate>
		<dc:creator>apoc</dc:creator>
		
		<category><![CDATA[web]]></category>

		<category><![CDATA[captcha]]></category>

		<category><![CDATA[ocr]]></category>

		<category><![CDATA[segmentation]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=116</guid>
		<description><![CDATA[Captchas, diese kleinen Bilder als Zugriffsbeschränkung, die verunstaltete Buchstaben mit teils zufälligen Hintergründen darstellen. Erst nach abtippen der Richtigen Buchstaben wird man als Mensch klassifiziert und man darf Formulare Senden oder den vor Software-Robotern(Bots) geschützten Bereich betreten. CAPTCHAS: Completely Automated Public Turing test to tell Computers and Humans Apart. Ein verdrehter Turing Test, ein Mechanismus [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom: 0in;"><a href="http://en.wikipedia.org/wiki/Captchas">Captchas</a>, diese kleinen Bilder als Zugriffsbeschränkung, die verunstaltete Buchstaben mit teils zufälligen Hintergründen darstellen. Erst nach abtippen der Richtigen Buchstaben wird man als Mensch klassifiziert und man darf Formulare Senden oder den vor Software-Robotern(Bots) geschützten Bereich betreten. CAPTCHAS: <strong>C</strong>ompletely <strong>A</strong>utomated <strong>P</strong>ublic <strong>T</strong>uring test to tell <strong>C</strong>omputers and <strong>H</strong>umans <strong>A</strong>part. Ein verdrehter <a href="http://en.wikipedia.org/wiki/Turing_Test">Turing Test</a>, ein Mechanismus der Voraussetzt das Menschen den Text lesen können und Computer nicht.</p>
<p style="margin-bottom: 0in;">Doch Captchas sind lohnend. Es existiert ein richter <a href="http://www.freelance-projects.info/data-entry/need-captcha-entry-team-by-urigarin/">Markt</a> für das Erkennen von Captchas, die Spammer und andere zweifelhafte Gestalten zahlen zwischen $0.70 und $1.00 je 1000 erkannten Captcha. Doch längst gibt es nicht mehr nur Text-based-Captchas, von Audio-Captchas die verrauscht einzelne Buchstaben aufsagen, bis hin zu Rechenaufgaben die es zu lösen gilt oder das finden der Frau/Mann auf einem Bild:</p>
<div id="attachment_117" class="wp-caption aligncenter" style="width: 463px"><img class="size-full wp-image-117" title="male_female_captcha" src="http://sixserv.org/wp-content/uploads/2008/09/male_female_captcha.png" alt="Kreativer-Captcha: Wie heisst der Mann auf dem Bild?" width="453" height="161" /><p class="wp-caption-text">Kreativer-Captcha: Wie heißt der Mann auf dem Bild?</p></div>
<div id="attachment_118" class="wp-caption aligncenter" style="width: 159px"><img class="size-full wp-image-118" title="math_captcha" src="http://sixserv.org/wp-content/uploads/2008/09/math_captcha.png" alt="Rechenaufgaben als Captcha" width="149" height="78" /><p class="wp-caption-text">Rechenaufgaben als Captcha</p></div>
<p style="margin-bottom: 0in;">Diese kreativen Captchas haben den Vorteil das erst jemand ein gezielten Angriff schreiben müsste, dann jedoch offenbart sich nach kurzen überlegen die Schwachstellen, die Rechenaufgabe ist einfach per OCR zu erkennen, und war nicht Google ein hervorragender Taschenrechner? Auch die Bilder der Personen-Konturen offenbaren dummerweise nach einigen Reloaden immerwieder die exakt gleichen Konturen, und auch hier ist die Schrift einfach zu erkennen. Die Frage ob ein Captcha sicher ist oder nicht kann nicht so leicht beantwortet werden. Mit genügend Motivation und Technischer Finesse kann sogut wie alles gelöst werden. Dabei reicht eine Erkennungsrate von 10% völlig aus, bei 1000 abgesetzten Spam-Versuchen kommen so immer noch 100 durch. Klassisch läuft ein Angriff auf ein Captcha in 3 Phasen:</p>
<ol>
<li>
<p style="margin-bottom: 0in;">Vorverarbeiten des Bildes, 	entfernen von Hintergrundbilder, Kontrast erhöhen, etc.</p>
</li>
<li>
<p style="margin-bottom: 0in;">Segmentation: Die Buchstaben 	werden voneinander getrennt.</p>
</li>
<li>
<p style="margin-bottom: 0in;">Recognizion: Jeder Buchstabe wird 	per OCR erkannt.</p>
</li>
</ol>
<p style="margin-bottom: 0in;">Mittlerweile haben wir überaus fortschrittliche OCR-Software zur Verfügung, die freie alternative gocr usw. Einige wie z.B. Finereader erlauben zudem das antrainieren einer bestimmten Schriftsorte, perfekt für ein erkennen von Captchas. Moderne Captchas setzen deshalb bereits eine Stufe früher an. Das Schwierigste ist nämlich die Segementation, wo ein Mensch nicht die geringsten Probleme hat Buchstaben voneinander zutrennen, ist diese Aufgabe für den Computer fast unmöglich. Deshalb setzen gute Captchas daran das <a href="http://en.wikipedia.org/wiki/Segmentation_(image_processing)">Segementieren</a> möglichst Schwierig zu gestalten:</p>
<div id="attachment_119" class="wp-caption aligncenter" style="width: 300px"><img class="size-full wp-image-119" title="captcha_heavy_segementation" src="http://sixserv.org/wp-content/uploads/2008/09/captcha_heavy_segementation.gif" alt="Segmentierung fast unmöglich" width="290" height="60" /><p class="wp-caption-text">Segmentierung fast unmöglich</p></div>
<div id="attachment_120" class="wp-caption aligncenter" style="width: 310px"><img class="size-full wp-image-120" title="captcha_heavy_segementation2" src="http://sixserv.org/wp-content/uploads/2008/09/captcha_heavy_segementation2.jpg" alt="Der Strich verbindet die Buchstaben und macht Segementierung sogut wie unmöglich" width="300" height="57" /><p class="wp-caption-text">Ein Strich verbindet die Buchstaben und macht die Segmentierung schwer</p></div>
<p style="margin-bottom: 0in; text-align: left;">Teilweise werden auch neue Schriftarten kreiert die nur dem Captcha Generator zur Verfügung stehen um OCR-Software zu überfordern. Captchas sind seit langem Forschungsgegenstand, es gibt einige Papers die neue Algorthmen und Möglichkeiten beschreiben Captchas zu entschlüsseln oder die Zeichen zu segmentieren. Genauso wie es Aufsätze über das Erstellen von besonders sicheren Captchas gibt.</p>
<p style="margin-bottom: 0in; text-align: left;">Eine weitere Möglichkeit Captchas zu entschlüsseln ist sie auf eigenen Seiten unterzubringen. Diese Relay-Attacke bindet das Captcha einer Fremden Seite auf einer eigenen Seite ein wo Besucher das entschlüsseln des Captchas übernehmen. Es gibt keine Möglichkeit diesen Angriff wirkungsvoll zu verhindern.</p>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/09/27/captchas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>opengl-background unter compiz</title>
		<link>http://sixserv.org/2008/09/19/opengl-background-unter-compiz/</link>
		<comments>http://sixserv.org/2008/09/19/opengl-background-unter-compiz/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 15:53:50 +0000</pubDate>
		<dc:creator>nks</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[compiz]]></category>

		<category><![CDATA[eye-candy]]></category>

		<category><![CDATA[mplayer]]></category>

		<category><![CDATA[opengl]]></category>

		<category><![CDATA[xscreensaver]]></category>

		<category><![CDATA[xwinwrap]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=103</guid>
		<description><![CDATA[eine weitere nette spielerei fuer menschen mit zu viel ressourcen  
ich hab sie nicht aber das ganze laeuft auch auf einem 700Mhz Duron fluessig.
ihr benoetigt &#8220;xscreensaver&#8221; (und auch das paket &#8220;fireflies&#8221; falls ihr es wie auf den screenshots haben wollt, wobei sich &#8220;pong&#8221; auch ganz gut macht) und &#8220;xwinwrap&#8221; (xwinwrap does teh magic)
nks@hydra ~ [...]]]></description>
			<content:encoded><![CDATA[<p>eine weitere nette spielerei fuer menschen mit zu viel ressourcen <img src='http://sixserv.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>ich hab sie nicht aber das ganze laeuft auch auf einem 700Mhz Duron fluessig.</p>
<p>ihr benoetigt &#8220;xscreensaver&#8221; (und auch das paket &#8220;fireflies&#8221; falls ihr es wie auf den screenshots haben wollt, wobei sich &#8220;pong&#8221; auch ganz gut macht) und &#8220;xwinwrap&#8221; (xwinwrap does teh magic)</p>
<blockquote><p>nks@hydra ~ $ nice -n 15 /usr/bin/xwinwrap -ni -argb -fs -s -st -sp -b -nf &#8212; /usr/lib/misc/xscreensaver/fireflies -window-id WID</p></blockquote>
<p>das ganze sieht dann so aus:</p>
<p><a href="http://sixserv.org/wp-content/uploads/2008/09/screenshot.jpeg" rel="lightbox[103]"><img class="alignnone size-thumbnail wp-image-106" title="screenshot" src="http://sixserv.org/wp-content/uploads/2008/09/screenshot.jpeg" alt="" width="150" height="120" /></a><a href="http://sixserv.org/wp-content/uploads/2008/09/screenshot2.jpeg" rel="lightbox[103]"><img class="alignnone size-medium wp-image-107" title="screenshot2" src="http://sixserv.org/wp-content/uploads/2008/09/screenshot2.jpeg" alt="" width="149" height="120" /></a><a href="http://sixserv.org/wp-content/uploads/2008/09/screenshot3.jpeg" rel="lightbox[103]"><img class="alignnone size-thumbnail wp-image-108" title="screenshot3" src="http://sixserv.org/wp-content/uploads/2008/09/screenshot3.jpeg" alt="" width="150" height="120" /> </a></p>
<p>fuer mehr infos:</p>
<ul>
<li><a href="http://swik.net/xwinwrap">http://swik.net/xwinwrap</a></li>
</ul>
<p>man kann neben xscreensaver auch videos als hintergrund laufen lassen</p>
<p>nks</p>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/09/19/opengl-background-unter-compiz/feed/</wfw:commentRss>
		</item>
		<item>
		<title>software-kvm mit synergy</title>
		<link>http://sixserv.org/2008/09/19/software-kvm-mit-synergy/</link>
		<comments>http://sixserv.org/2008/09/19/software-kvm-mit-synergy/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 14:54:05 +0000</pubDate>
		<dc:creator>nks</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[eee]]></category>

		<category><![CDATA[fernbedienung]]></category>

		<category><![CDATA[geek]]></category>

		<category><![CDATA[kvm]]></category>

		<category><![CDATA[remote]]></category>

		<category><![CDATA[synergy]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=98</guid>
		<description><![CDATA[mir ist gestern die fernbedienung meiner sourround-anlage auf den boden gefallen - jetzt ist sie unbrauchbar. also dachte ich mir: &#8220;hey, mach doch den eee-pc zu deiner neuen fernbedienung!&#8221;.
also wenn ich im bett liege und die lautstaerke regeln will, schnell per ssh auf den rechner verbinden und alsamixer nutzen. aber dafuer is der eee ja [...]]]></description>
			<content:encoded><![CDATA[<p>mir ist gestern die fernbedienung meiner sourround-anlage auf den boden gefallen - jetzt ist sie unbrauchbar. also dachte ich mir: &#8220;hey, mach doch den eee-pc zu deiner neuen fernbedienung!&#8221;.</p>
<p>also wenn ich im bett liege und die lautstaerke regeln will, schnell per ssh auf den rechner verbinden und alsamixer nutzen. aber dafuer is der eee ja schon bisl overkill. dann erinnerte ich mich an meine experimente vor einem jahr die beiden desktop-pcs miteinander zu verbinden.</p>
<p>ich hatte es auch mit synergy versucht, aber es war ziemlich buggy. aber die neue version laeuft wesentlich stabiler. also schnell auf allen 3 boxen synergy gemerged und ab an die config:</p>
<blockquote><p># nks&#8217;s synergy configuration file<br />
# eeerr0r is the synergy-server<br />
# infected and hydra are the clients</p>
<p>section: screens<br />
infected:<br />
hydra:<br />
eeerr0r:<br />
end</p>
<p>section: links<br />
# larry is to the right of moe and curly is above moe<br />
infected:<br />
right = eeerr0r<br />
eeerr0r:<br />
left = infected<br />
right = hydra<br />
hydra:<br />
left = eeerr0r<br />
end<br />
section: aliases<br />
infected:<br />
192.168.178.30<br />
hydra:<br />
192.168.178.32<br />
eeerr0r:<br />
192.168.178.25<br />
end</p></blockquote>
<p>das ganze dann auf dem system welches tastatur und maus bereitstellen soll unter &#8220;/etc/synergy.conf&#8221;<br />
und dann ab in die shell:</p>
<blockquote><p>nks@eeerr0r ~ $ synergys -f &#8211;config /etc/synergy.conf</p></blockquote>
<blockquote><p>nks@infected ~ $ synergyc -f eeerr0r</p></blockquote>
<blockquote><p>nks@hydra ~ $ synergyc -f eeerr0r</p></blockquote>
<p>und schon kann ich vom eee-pc aus beide rechner kvm-style fernsteuern <img src='http://sixserv.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
das ganze funktioniert auch unter windows und mac os.</p>
<p>besonders schoen is das ganze in kombination mit compiz weil man dann vom bett/anywhere aus ranzoomen kann <img src='http://sixserv.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>informationen &amp; links:</p>
<ul>
<li><a href="http://synergy2.sourceforge.net/">http://synergy2.sourceforge.net/</a></li>
<li><a href="http://de.wikipedia.org/wiki/Synergy">http://de.wikipedia.org/wiki/Synergy</a></li>
</ul>
<p>ps: apoc ich werd das mit dem gross/klein-schreiben ueberarbeiten <img src='http://sixserv.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>pps: <a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&amp;friendID=50002989">chase &amp; status</a> releasen demnaechst ihr neues album, zwar ziemlich die uk-kommerz schiene, aber &#8220;hurt you&#8221; und &#8220;pieces&#8221; laufen atm ja fast in jedem set, also man kann gespannt sein (wobei &#8220;hurt you&#8221; auch auf dem neuem album ist)</p>
<p>ppps: ich hatte damals auch mit xdmx rumexperimentiert, hehe.. vll. probier ich demnaechst auch wieder etwas damit rum, allerdings mit compiz etwas zu lahm, in kombination mit <a href="http://chromium.sourceforge.net/">chromium</a> funktioniert es vll besser.</p>
<p>nks</p>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/09/19/software-kvm-mit-synergy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rbot Remote</title>
		<link>http://sixserv.org/2008/09/15/rbot-remote/</link>
		<comments>http://sixserv.org/2008/09/15/rbot-remote/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 21:14:48 +0000</pubDate>
		<dc:creator>apoc</dc:creator>
		
		<category><![CDATA[rbot]]></category>

		<category><![CDATA[ruby]]></category>

		<category><![CDATA[bot]]></category>

		<category><![CDATA[drb]]></category>

		<category><![CDATA[irc]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=90</guid>
		<description><![CDATA[Ich setze schon lange den grandiosen IRC-Bot &#8220;rbot&#8221; ein. Ein überaus vielseitiger und einfach zu erweiternder Bot, der dazu auch noch in meiner lieblings Script-Sprache Ruby geschrieben ist. Vielleicht komme ich dazu einige meiner Plugins, die ich für ihn geschrieben habe, hier zu Veröffentlichen.
Eines der Features von rbot welches ich erst kürzlich entdeckt habe und [...]]]></description>
			<content:encoded><![CDATA[<p>Ich setze schon lange den grandiosen IRC-Bot &#8220;<a href="http://ruby-rbot.org/">rbot</a>&#8221; ein. Ein überaus vielseitiger und einfach zu erweiternder Bot, der dazu auch noch in meiner lieblings Script-Sprache <a href="http://www.ruby-lang.org/">Ruby</a> geschrieben ist. Vielleicht komme ich dazu einige meiner Plugins, die ich für ihn geschrieben habe, hier zu Veröffentlichen.</p>
<p>Eines der Features von rbot welches ich erst kürzlich entdeckt habe und was absolut genial ist, ist das <a href="http://ruby-rbot.org/rbot-trac/wiki/RbotRemote">Rbot Remote Interface</a>. Per Default hört der Bot nämlich auf Port 7268(127.0.0.1) und stellt dort ein <a href="http://segment7.net/projects/ruby/drb/">DRb(Distributed Ruby)</a> Interface zur Verfügung. Dieses erlaubt es von Außen den Bot zu steuern und beispielsweise Funktionen eines Plugins auszuführen. RbotRemote kann z.B. dazu genutzt werden bei neuen SVN-Commits im RSS Plugin das Updaten eines Commit-Feeds zu starten. Denkbar ist dies natürlich auch für neue Blog-Posts innerhalb von Wordpress etc.</p>
<p>Da DRb logischerweise nur für Ruby zur Verfügung steht muss bspw. eine PHP-Webapplikation ein Ruby-Skript starten welches die gewünschte Aktionen am rbot auslöst. Hier als Beispiel-Skript wird eine Nachricht an #sixserv(btw: im Freenode) gesendet:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/ruby</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'drb'</span>
&nbsp;
rbot = DRbObject.<span style="color:#9900CC;">new_with_uri</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;druby://localhost:7268&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
id = rbot.<span style="color:#9900CC;">delegate</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">nil</span>, <span style="color:#996600;">&quot;remote login owner [Owner/Auth Passwort]&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:return</span><span style="color:#006600; font-weight:bold;">&#93;</span>
rbot.<span style="color:#9900CC;">delegate</span><span style="color:#006600; font-weight:bold;">&#40;</span>id, <span style="color:#996600;">&quot;dispatch say #sixserv Hallo Welt!&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>In <a href="http://ruby-rbot.org/rbot-trac/browser/bin/rbot-remote">/bin/rbot-remote</a> gibt es ein ähnliches, etwas komplexeres Beispiel welches die Eingaben von stdin erwartet.</p>
<p>Eine weitere Möglichkeit ist wie schon erwähnt eine Methode eines Plugins zu starten. Hier ein ganz einfaches rbot-Plugin:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby ruby" style="font-family:monospace;"><span style="color:#9966CC; font-weight:bold;">class</span> SimplePlugin <span style="color:#006600; font-weight:bold;">&lt;</span> Plugin
  <span style="color:#9966CC; font-weight:bold;">def</span> sayfoo<span style="color:#006600; font-weight:bold;">&#40;</span>m, params<span style="color:#006600; font-weight:bold;">&#41;</span>
    <span style="color:#0066ff; font-weight:bold;">@bot</span>.<span style="color:#9900CC;">say</span> <span style="color:#996600;">'#sixserv'</span>, <span style="color:#996600;">'foo'</span>
    <span style="color:#9966CC; font-weight:bold;">if</span> params.<span style="color:#9900CC;">has_key</span>?<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:bar</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#9966CC; font-weight:bold;">then</span>
      <span style="color:#0066ff; font-weight:bold;">@bot</span>.<span style="color:#9900CC;">say</span> <span style="color:#996600;">'#sixserv'</span>, params<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:bar</span><span style="color:#006600; font-weight:bold;">&#93;</span>
    <span style="color:#9966CC; font-weight:bold;">end</span>
  <span style="color:#9966CC; font-weight:bold;">end</span>
<span style="color:#9966CC; font-weight:bold;">end</span>
&nbsp;
plugin = SimplePlugin.<span style="color:#9900CC;">new</span>
plugin.<span style="color:#9900CC;">map</span> <span style="color:#996600;">'sayfoo'</span>
plugin.<span style="color:#9900CC;">map</span> <span style="color:#996600;">'sayfoo :bar'</span></pre></div></div>

<p>Wird die Methode extern aufgerufen kann man natürlich kein m.reply verwenden, wenn die Nachricht im Channel landen soll, ich habe das hier ganz einfach gelöst indem ich den Channel fest eingebunden habe. Hier noch das Skript welches sayfoo mit Parameter aufruft:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/ruby</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'drb'</span>
&nbsp;
rbot = DRbObject.<span style="color:#9900CC;">new_with_uri</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;druby://localhost:7268&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
id = rbot.<span style="color:#9900CC;">delegate</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#0000FF; font-weight:bold;">nil</span>, <span style="color:#996600;">&quot;remote login owner [Owner/Auth Passwort]&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#ff3333; font-weight:bold;">:return</span><span style="color:#006600; font-weight:bold;">&#93;</span>
rbot.<span style="color:#9900CC;">delegate</span><span style="color:#006600; font-weight:bold;">&#40;</span>id, <span style="color:#996600;">&quot;dispatch sayfoo bar&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/09/15/rbot-remote/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Corporate Blogging mit User-Subdomains</title>
		<link>http://sixserv.org/2008/09/02/corporate-blogging-mit-user-subdomains/</link>
		<comments>http://sixserv.org/2008/09/02/corporate-blogging-mit-user-subdomains/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 00:44:07 +0000</pubDate>
		<dc:creator>apoc</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[meta]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[wordpress]]></category>

		<category><![CDATA[apache]]></category>

		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=75</guid>
		<description><![CDATA[Das Sixserv Blog ist ein Multiuser-Blog(d.h. Mehrere Autoren verfassen Artikel), unter der Hauptdomain(sixserv.org) sollten alle Artikel angezeigt werden. Wir wollten allerdings zusätzliche Subdomains(z.B. apoc.sixserv.org) die die Artikel des jeweiligen Autors anzeigt. Besonders wichtig dabei war das es möglich ist pro Subdomain unterschiedliche Themes zu verwenden.
Als Grundlage für dieses Vorhaben verwendete ich das Wordpress-Plugin Domain-Mirror von [...]]]></description>
			<content:encoded><![CDATA[<p>Das Sixserv Blog ist ein Multiuser-Blog(d.h. Mehrere Autoren verfassen Artikel), unter der Hauptdomain(sixserv.org) sollten alle Artikel angezeigt werden. Wir wollten allerdings zusätzliche Subdomains(z.B. <a href="http://apoc.sixserv.org/blog">apoc.sixserv.org</a>) die die Artikel des jeweiligen Autors anzeigt. Besonders wichtig dabei war das es möglich ist pro Subdomain unterschiedliche Themes zu verwenden.<br />
Als Grundlage für dieses Vorhaben verwendete ich das Wordpress-Plugin <a href="http://mcaleavy.org/code/domain-mirror/">Domain-Mirror</a> von <a href="http://mcaleavy.org/">Dave McAleavy</a>. Ich ergänzte es um die Möglichkeit pro Domain einen Benutzer sowie Theme eingeben zu können:<span id="more-75"></span></p>
<p style="text-align: center;">
<div id="attachment_84" class="wp-caption aligncenter" style="width: 605px"><img class="size-full wp-image-84" title="domain_mirror_settings1" src="http://sixserv.org/wp-content/uploads/2008/09/domain_mirror_settings1.png" alt="Zeigt die neuen Einstellungsmöglichkeiten von Domain Mirror." width="595" height="437" /><p class="wp-caption-text">Zeigt die neuen Einstellungsmöglichkeiten von Domain Mirror.</p></div>
<p>In der Apache Konfiguration des jeweiligen vHost der Subdomain genügt ein:</p>
<blockquote>
<pre>Alias /blog "&lt;Wordpress-Pfad&gt;"</pre>
</blockquote>
<p>Sofern kein Unterorder verwendet werden soll, äquivalent ein DocumentRoot mit Installations-Pfad. Dann kann man sich ebenfalls das anpassen der Rewrite Regeln in der .htaccess-Datei im Wordpress-Ordner sparen. Standardmäsig werden die Permalinks nämlich auf /index.php geroutet, was bei den Subdomains in unserem Fall nicht funktioniert, und entsprechend angepasst werden muss:</p>
<blockquote>
<pre>RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Wenn ohne Subdomain dann Standard Rewrite...
RewriteCond %{HTTP_HOST} ^sixserv.org$
RewriteRule . /index.php [L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Hier mit Subdomain also mit /blog
RewriteCond %{HTTP_HOST} ^(^.*)\.sixserv.org$
RewriteRule . /blog/index.php [L]</pre>
</blockquote>
<p>Ihr könnt die erweiterte Version von Domain-Mirror hier herunterladen: <a href="http://sixserv.org/wp-content/uploads/2008/09/domain-mirror11_patched1.zip">domain-mirror1.1_patched1.zip</a> [<a href="http://sixserv.org/wp-content/uploads/2008/09/domain-mirror11_patched1.patch">Patch-File</a> für 1.1]</p>
<p>/<br />
This is a customized Version of Domain-Mirror. I added the Feature to specifies the Theme and User per Domain-Entry. You can download the Patched Version of Domain Mirror 1.1 here: <a href="http://sixserv.org/wp-content/uploads/2008/09/domain-mirror11_patched1.zip">domain-mirror1.1_patched1.zip</a> [<a href="http://sixserv.org/wp-content/uploads/2008/09/domain-mirror11_patched1.patch">Patch-File</a> for 1.1]<br />
\</p>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/09/02/corporate-blogging-mit-user-subdomains/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WPA_Supplicant für Windows</title>
		<link>http://sixserv.org/2008/09/01/wpa_supplicant-fur-windows/</link>
		<comments>http://sixserv.org/2008/09/01/wpa_supplicant-fur-windows/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 17:39:08 +0000</pubDate>
		<dc:creator>apoc</dc:creator>
		
		<category><![CDATA[windows]]></category>

		<category><![CDATA[wep]]></category>

		<category><![CDATA[wlan]]></category>

		<category><![CDATA[wpa]]></category>

		<category><![CDATA[wpa_supplicant]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=69</guid>
		<description><![CDATA[Gestern stand ich vor dem Problem ein neues WLAN-Netzwerk unter Windows XP einzurichten, soweit ja kein Problem werdet ihr sagen, allerdings wurde vorher das unsichere WEP eingesetzt und eine der verwendeten WLAN-PCMCIA Karten unterstützt kein WPA. Dazu kommt noch das der letzte Treiber von 2004 ist. Es handelt sich um eine “Acer WLAN 11g PCMCIA(wlan-g-pc2)”.
Gelöst [...]]]></description>
			<content:encoded><![CDATA[<p>Gestern stand ich vor dem Problem ein neues WLAN-Netzwerk unter Windows XP einzurichten, soweit ja kein Problem werdet ihr sagen, allerdings wurde vorher das unsichere WEP eingesetzt und eine der verwendeten WLAN-PCMCIA Karten unterstützt kein WPA. Dazu kommt noch das der letzte Treiber von 2004 ist. Es handelt sich um eine “Acer WLAN 11g PCMCIA(wlan-g-pc2)”.</p>
<p>Gelöst habe ich das Problem letztendlich mit <a href="http://hostap.epitest.fi/wpa_supplicant/">wpa_supplicant</a> <a href="http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=blob_plain;f=wpa_supplicant/README-Windows.txt">für Windows</a>, welches nach einigen Testen auch durchaus stabil läuft. Das ganze wirkt schon ein wenig abenteuerlich(<a href="http://www.winpcap.org/">Winpcap</a> wird z.B. benötigt um an die Pakete und das Interface zu gelangen), allerdings ist es schnell eingerichtet(läuft über die gleiche wpa_supplicant.conf wie unter Linux) und unterstützt dann auch tatsächlich alle Protokolle die Supplicant unterstützt.<br />
Zusätzlich gibt es eine spezielle Version(wpasvc.exe) die man als Dienst(Service) registrieren kann. Nachteil ist allerdings das sie ihre Konfiguration aus der Registry bezieht, was wie bekannt ein wenig umständlich ist.</p>
<p>Trotzdem ist es eine wunderbare Möglichkeit ältere WLAN-Adapter unter Windows für WPA Fit zu machen.</p>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/09/01/wpa_supplicant-fur-windows/feed/</wfw:commentRss>
		</item>
		<item>
		<title>kernel mode sockets part 2 (the clean way)</title>
		<link>http://sixserv.org/2008/08/30/kernel-mode-sockets-part-2-the-clean-way/</link>
		<comments>http://sixserv.org/2008/08/30/kernel-mode-sockets-part-2-the-clean-way/#comments</comments>
		<pubDate>Sat, 30 Aug 2008 00:34:27 +0000</pubDate>
		<dc:creator>nks</dc:creator>
		
		<category><![CDATA[coding]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[kernel]]></category>

		<category><![CDATA[networking]]></category>

		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=10</guid>
		<description><![CDATA[version 0.1 -  30.08.2008
willkommen zu teil 2 der linux kernel mode socket serie. nun befassen wir uns mit einem sauberem weg der socketcalls vom kernel aus. auch hierfuer gibt es noch andere wege. in einem der naechstem teile bauen wir uns eine socket()-funktion selber, aber nun zum sauberem socket  
auch hier muessen wir wieder [...]]]></description>
			<content:encoded><![CDATA[<p>version 0.1 -  30.08.2008</p>
<p>willkommen zu teil 2 der linux kernel mode socket serie. nun befassen wir uns mit einem sauberem weg der socketcalls vom kernel aus. auch hierfuer gibt es noch andere wege. in einem der naechstem teile bauen wir uns eine socket()-funktion selber, aber nun zum sauberem socket <img src='http://sixserv.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>auch hier muessen wir wieder set_fs/get_fs (man kann sie auch weglassen, aber in diesem fall garantiere ich fuer NICHTS, bzw das modul laesst sih kompilieren aber die funktion funktioniert im besten fall nicht&#8230;) nutzen da file-operationen im kernelmode nicht gestattet sind, der zugriff auf sockets ist ein dateizugriff. die funktion inet_addr muessen wir uns nicht extra schreiben, hab ich zwischenzeitlich rausgfeunden in der &#8220;linux/inet.h&#8221; gibt es in_aton() <img src='http://sixserv.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>die hauptschwierigkeit besteht in den neuen strukturen <a href="http://docs.sun.com/app/docs/doc/819-2257/iovec-9s?a=view">iovec</a> und <a href="http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/structmsghdr.html">msghdr</a>. die ich allerdings anhand von kommentaren erklaeren werde, soweit wichtig, bzw unter den beiden links steht alles was man wissen muss (obwohl es nich spezifisch um die linux strukturen geht).</p>
<p>kommen wir nun zum code:</p>
<blockquote>
<pre class="PROGRAMLISTING">/*
* lkm_clean_socket.c - nks
*/

#include &lt;linux/module.h&gt;
#include &lt;linux/kernel.h&gt;
#include &lt;linux/socket.h&gt;
#include &lt;linux/net.h&gt;
#include &lt;linux/in.h&gt;
#include &lt;linux/inet.h&gt;
#include &lt;net/sock.h&gt;
#include &lt;asm/uaccess.h&gt;

int init_module(void)
{
struct socket *socket;
struct sockaddr_in saddr;
int errno;
char buffer[1024];
struct msghdr msg;
struct iovec iov;
mm_segment_t old_fs;

printk(KERN_INFO "#sixserv/sixserv.org presents:\n");
printk(KERN_INFO "simple &amp; clean kernel mode socket - nks\n");

if ((errno = sock_create(PF_INET,SOCK_STREAM,IPPROTO_TCP,&amp;socket))&lt;0)
{
printk(KERN_INFO "-- Kernel Mode Socket ERROR...\n");
printk(KERN_INFO "-- ERRNO: %d..\n",errno);
return 0;
}
else
{
printk(KERN_INFO "++ Kernel Mode Socket is up ...\n");
printk(KERN_INFO "++ ERRNO: %d..\n",errno);
}

saddr.sin_addr.s_addr = in_aton("79.140.33.153");
saddr.sin_port = htons(80);
saddr.sin_family = AF_INET;

if ((errno = socket-&gt;ops-&gt;connect(socket,(struct sockaddr*)&amp;saddr,sizeof(saddr),0))&lt;0)
{
printk(KERN_INFO "-- Kernel Mode Socket ERROR...\n");
printk(KERN_INFO "-- ERRNO: %d..\n",errno);
return 0;
}
else
{
printk(KERN_INFO "++ Kernel Mode Socket is up an connected...\n");
printk(KERN_INFO "++ ERRNO: %d..\n",errno);
}

iov.iov_base = "GET / HTTP/1.0\r\n\r\n";
iov.iov_len = sizeof("GET / HTTP/1.0\r\n\r\n");

msg.msg_iov = &amp;iov;
msg.msg_iovlen = 1;  /* anzahl der elemente in iov */
msg.msg_control = NULL;
msg.msg_controllen = 0;
msg.msg_name = NULL;
msg.msg_namelen = 0;
msg.msg_flags    = 0;

old_fs = get_fs();
set_fs(KERNEL_DS);

if ((errno = sock_sendmsg(socket,&amp;msg,sizeof("GET / HTTP/1.0\r\n\r\n")))&lt;0)
{
printk(KERN_INFO "-- Kernel Mode Socket ERROR...\n");
printk(KERN_INFO "-- ERRNO: %d..\n",errno);
set_fs(old_fs);
return 0;
}
else
{
printk(KERN_INFO "++ Kernel Mode Socket is sending stuff...\n");
printk(KERN_INFO "++ ERRNO: %d..\n",errno);
set_fs(old_fs);
}

iov.iov_base = buffer;
iov.iov_len = 1024;

msg.msg_iov = &amp;iov;
msg.msg_iovlen = 1;  /* anzahl der elemente in iov */
msg.msg_control = NULL;
msg.msg_name = NULL;
msg.msg_namelen = 0;

old_fs = get_fs();
set_fs(KERNEL_DS);

set_fs(old_fs);

if ((errno = sock_recvmsg(socket,&amp;msg,1024,0))&lt;0)
{
printk(KERN_INFO "-- Kernel Mode Socket ERROR...\n");
printk(KERN_INFO "++ ERRNO: %d..\n",errno);
set_fs(old_fs);
return 0;
}
else
{
printk(KERN_INFO "++ Kernel Mode Socket is recieving stuff...\n");
printk(KERN_INFO "++ ERRNO: %d..\n",errno);
printk(KERN_INFO "++ Recieved: %s..\n",buffer);
set_fs(old_fs);

}
return 0;
}

void cleanup_module(void)
{
printk(KERN_INFO "Goodbye world.\n");
}

MODULE_LICENSE("GPL");</pre>
</blockquote>
<p>ein weiteres mal passen wir unsere Makfeile an:</p>
<blockquote>
<pre class="PROGRAMLISTING">obj-m += lkm_clean_socket.o

all:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules

clean:
	make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean</pre>
</blockquote>
<p>nach einem make ist das modul fertig und liegt unter dem namen &#8220;lkm_clean_socket.ko&#8221; im aktuellem verzeichnis.<br />
wenn alles geklappt hat machen wir folgendes:</p>
<blockquote>
<pre class="PROGRAMLISTING"># modinfo lkm_clean_socket.ko
filename:       lkm_clean_socket.ko
license:        GPL
depends:
vermagic:       2.6.25-gentoo-r7 SMP mod_unload PENTIUM4
# insmod lkm_clean_socket.ko
# dmesg
....

++ Kernel Mode Socket is up ...
++ ERRNO: 0..
++ Kernel Mode Socket is up an connected...
++ ERRNO: 0..
++ Kernel Mode Socket is sending stuff...
++ ERRNO: 19..
++ Kernel Mode Socket is recieving stuff...
++ ERRNO: 1024..
++ Recieved: HTTP/1.1 200 OK
Date: Sat, 30 Aug 2008 00:18:58 GMT
Server: Apache
X-Powered-By: PHP/5.2.0-8+etch11
X-Pingback: http://sixserv.org/xmlrpc.php
Connection: close
Content-Type: text/html; charset=UTF-8

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="de-DE"&gt;
&lt;head profile="http://gmpg.org/xfn/11"&gt;
&lt;title&gt;sixserv blog&lt;/title&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
&lt;meta name="description" content="welcome to teh #sixserv!" /&gt;
&lt;meta name="generator" content="WordPress 2.6.1" /&gt; &lt;!-- leave this for stats please --&gt;
&lt;link href="http://sixserv.org/wp-content/themes/journalist/style.css" rel="stylesheet" type="text/css" media="screen" /&gt;
&lt;link rel="alternate" type="application/rss+xml" title="sixserv blog RSS Feed" href="http://sixserv.org/feed/" /&gt;
&lt;link rel="shortcut icon" type="image/x-png" href="http://sixserv.org/wp-content/the
....
# rmmod lkm_clean_socket.ko</pre>
</blockquote>
<p>wie man sehen kann ist unser buffer ein wenig zu klein, und die errnos kann man sich eigtl auch sparen wenn kein fehler auftritt.</p>
<p>seid gespannt auf den naechsten teil der kernel mode serie <img src='http://sixserv.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>nks</p>
<p>quellen:</p>
<blockquote>
<ul>
<li><a href="http://mail.nl.linux.org/kernelnewbies/2001-10/msg00079.html">http://mail.nl.linux.org/kernelnewbies/2001-10/msg00079.html</a></li>
<li><a href="http://docs.sun.com/app/docs/doc/819-2257/iovec-9s?a=view">http://docs.sun.com/app/docs/doc/819-2257/iovec-9s?a=view</a></li>
<li><a href="http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/structmsghdr.html">http://www.dre.vanderbilt.edu/Doxygen/Stable/ace/structmsghdr.html</a></li>
<li><a href="http://qos.ittc.ku.edu/netlink/html/node7.html">http://qos.ittc.ku.edu/netlink/html/node7.html</a></li>
<li><a href="http://google.com/codesearch?hl=de&amp;q=show:ZmG4IsUMEpU:6VNQw9NOang:byMdVv2i9V8&amp;sa=N&amp;ct=rd&amp;cs_p=http://kernel.org/pub/linux/kernel/v2.4/linux-2.4.34.1.tar.bz2&amp;cs_f=linux-2.4.34.1/net/khttpd/sockets.c">linux-2.4.34.1/ net/ khttpd/*</a></li>
<li>include/linux/net.h</li>
<li>/usr/src/linux/*</li>
</ul>
</blockquote>
<p>ps:<br />
<a href="javascript:window.external.AddSearchProvider(&quot;http://www.cuil.com/static/plugin.xml&quot;);">cuil.com</a> und <a href="javascript:window.sidebar.addSearchEngine(&quot;http://www.metager2.de/mozilla/metager2.src&quot;,&quot;http://www.metager2.de/mozilla/metager2.gif&quot;,&quot;MetaGer2&quot;,&quot;deutschsprachige%20Meta-Suchmaschine&quot;);">metager2.de</a> lassen sich beide in die suchleiste oben integrieren (klickt einfach auf den namen dann fragt euch FF). nach einigem testen gefaellt mir metager2 wesentlich besser weil es VIEL mehr findet. allerdings gefaellt mir die aufmachung von cuil.com, ich sehe noch einiges an potenzial.</p>
<p>pps:<br />
mal wieder ein musikalischer tipp<br />
<a href="http://www.myspace.com/blue_nine">http://www.myspace.com/blue_nine</a></p>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/08/30/kernel-mode-sockets-part-2-the-clean-way/feed/</wfw:commentRss>
		</item>
		<item>
		<title>bitlet.org privacy</title>
		<link>http://sixserv.org/2008/08/29/bitletorg-privacy/</link>
		<comments>http://sixserv.org/2008/08/29/bitletorg-privacy/#comments</comments>
		<pubDate>Fri, 29 Aug 2008 00:19:51 +0000</pubDate>
		<dc:creator>nks</dc:creator>
		
		<category><![CDATA[java]]></category>

		<category><![CDATA[torrent]]></category>

		<category><![CDATA[bittorrent]]></category>

		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://sixserv.org/?p=48</guid>
		<description><![CDATA[ich nutze gerne den bittorrent-client “BitLet”. wirklich genial und einfach. zeigt sehr schoen wie man mit Java auch nicht resourcenfressende ressourcen-schonende torrent-clients schreiben kann, im gegensatz zu Azureus/Vuze. ich nutze BitLet recht haeufig jedoch bereitet mir schon seit laengerem sorgen, dass auf der startseite eine history der letzten torrents liegt. das ist natuerlich sehr prakitsch [...]]]></description>
			<content:encoded><![CDATA[<p>ich nutze gerne den bittorrent-client “<a href="http://bitlet.org">BitLet</a>”. wirklich genial und einfach. zeigt sehr schoen wie man mit Java auch <span style="text-decoration: line-through;">nicht resourcenfressende</span> ressourcen-schonende torrent-clients schreiben kann, im gegensatz zu <a href="http://www.vuze.com">Azureus/Vuze</a>. ich nutze BitLet recht haeufig jedoch bereitet mir schon seit laengerem sorgen, dass auf der startseite eine history der letzten torrents liegt. das ist natuerlich sehr prakitsch fuers resumen bzw um den aktuellen stand des downloads zu sehen und ihn bei bedarf zu loeschen oder zu resumen, allerdings liegen diese daten auf dem server von BitLet.org.<br />
BitLet hat somit auf ihren servern eine datenbank laufen die die IPs logt mit denen die user ihre downloads taetigen und die entsprechenden namen der .torrent-Files (mit ausgelesenen meta-daten und download-fortschritt). das wird vermutlich ueber ein cookie realisiert.</p>
<p>also ab und zu mal cookies loeschen&#8230;</p>
<p>bleibt abzuwarten was sich daraus ergibt.</p>
<p>nks</p>
<p>links:</p>
<blockquote>
<ul>
<li><a href="http://bitlet.org">http://bitlet.org</a></li>
<li><a href="http://vuze.com">http://vuze.com</a></li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sixserv.org/2008/08/29/bitletorg-privacy/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
