<?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/"
>
<channel>
	<title>pberndt.com: Ein paar Tools</title>
	<link>http://www.pberndt.com/_Newsdata/iwebd2-privbind-etc.html</link>
	<description>Summary of iwebd2-privbind-etc.html</description>
	<pubDate>Fri, 27 Mar 2015 13:26:06 +0000</pubDate>
	<language>de</language>
	<ttl>2880</ttl>
	<item>
	<title>Ein paar Tools </title>
	<link>http://www.pberndt.com/_Newsdata/iwebd2-privbind-etc.html</link>
	<comments>http://www.pberndt.com/_Newsdata/iwebd2-privbind-etc.html</comments>
	<description><![CDATA[ 
		<p>
			<img src="python.jpg?ct=raw" alt="Python" class="float"/>
			Ich habe in letzter Zeit wieder einige praktische Scripte in <a
			href="https://github.com/phillipberndt/scripts">mein Repository</a>
			übernommen, die vielleicht praktisch sein könnten. Daher stelle 
			ich dir mal kurz vor:
		</p>
		<ul><li><a href="/iwebd.html">iwebd</a> und den Vorgänger
			<a href="/iftpd.html">iftpd</a> hatte ich hier schon erwähnt. Ich habe zwischenzeitlich
			beide verworfen und <a href="https://github.com/phillipberndt/scripts/tree/master/iwebd">ein großes Rewrite</a>
			daraus gemacht. Der neue iwebd kann neben HTTP und FTP auch WebDAV, SSL,
			HTTP-Uploads per Drag &amp; Drop in Verzeichnisansichten und kündigt sich
			im lokalen Netz per Avahi an. Transparente Kompression, CGI und
			Passwortschutz per Digest-Authentifizierung kann er auch.  Und er läuft
			übrigens auch auf Android einwandfrei, wenn man Python installiert hat.
			Also eine kleine eierlegende Wollmichsau, wenn man auf die Schnelle Dateien
			austauschen muss ;) HTTP/2 folgt vermutlich irgendwann.</li>
		<li><a href="https://github.com/phillipberndt/scripts/tree/master/libprivbind">libprivbind</a>
			ist ein Python-Modul, um an priviligierte Ports zu binden. Ich weiß, dass es <a href="https://github.com/JiriHorky/privbind">privbind</a>
			und authbind gibt - das Modul verfolgt aber einen anderen Ansatz. Statt zu versuchen, generell <code>bind()</code> Aufrufe
			abzufangen und damit Prozessen transparent die Möglichkeit zu geben,
			priviligierte Ports zu verwenden, bietet es einen eigenen Aufruf, der
			Sockets an priviligierte Ports bindet. Das funktioniert, indem der
			Dateideskriptor an einen Prozess mit <code>cap_net_bind_service</code>
			übergeben wird; im Gegensatz zu den älteren Ansätzen nicht kompliziert per
			<code>sendmsg</code> über ein UNIX-Socket, sondern einfach, indem das
			Socket vor dem <code>execv</code> Aufruf nicht geschlossen wird.</li>
		<li><a href="https://github.com/phillipberndt/scripts/tree/master/pydoce">pydoce</a> öffnet beliebigen Python-Code
			im Editor. <code>pydoce os.path.isfile</code> öffnet z.B. das path Modul gleich an der richtigen Zeile.</li>
		<li><a href="https://github.com/phillipberndt/scripts/tree/master/livereload">livereload</a> ist eine Python-Implementierung
			des livereload-Standards. Es gibt so etwas massig, aber meistens für Ruby oder mit aberwitzigen Abhängigkeiten. Diese
			Version braucht "nur" Tornado.</li>
		</ul>
		<p>Schon älter ist, und nichts mit Python zu tun hat, <a
		href="https://github.com/phillipberndt/scripts/tree/master/gdo">gdo</a>. Ich
		benutze das so wahnsinnig viel, dass ich das noch einmal verlinken musste: Das ist ein Tool, das
		i.W. <code>find -regextype pcre -iregex "$1" -exec "$2" \;</code> entspricht.</p>
		
	 ]]></description>
	<pubDate>Thu, 26 Mar 2015 23:00:00 +0000</pubDate>
	</item>
</channel>
</rss>
