<?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>experimentalworks &#187; Uncategorized</title>
	<atom:link href="http://blog.experimentalworks.net/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.experimentalworks.net</link>
	<description></description>
	<lastBuildDate>Fri, 27 Jan 2012 10:07:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Moving to a new server</title>
		<link>http://blog.experimentalworks.net/2009/11/moving-to-a-new-server/</link>
		<comments>http://blog.experimentalworks.net/2009/11/moving-to-a-new-server/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 00:34:28 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.experimentalworks.net/2009/11/moving-to-a-new-server/</guid>
		<description><![CDATA[I'm currently moving my blog and everything on experimentalworks to a new server. The new server is running latest OpenSolaris with all the fancy stuff in it. Enjoy.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m currently moving my blog and everything on experimentalworks to a new server. The new server is running latest OpenSolaris with all the fancy stuff in it. Enjoy.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=317&amp;md5=61d3c8218f953770fd8e7b06a2b82087" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2009/11/moving-to-a-new-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ask a Droid</title>
		<link>http://blog.experimentalworks.net/2009/09/ask-a-droid/</link>
		<comments>http://blog.experimentalworks.net/2009/09/ask-a-droid/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 18:04:09 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.experimentalworks.net/?p=308</guid>
		<description><![CDATA[I bought a G1 dev phone six month ago. Not because I seriously wanted to write applications for the android platform, but because it was the only way to get an Android based phone in Europe. Nevertheless, the complete Android platform is really appealing to me, mainly because it's more open than an iPhone, ...]]></description>
			<content:encoded><![CDATA[<p>I bought a G1 dev phone six month ago. Not because I seriously wanted to write applications for the android platform, but because it was the only way to get an Android based phone in Europe. Nevertheless, the complete Android platform is really appealing to me, mainly because it&#8217;s more open than an iPhone, there are much more nerdy apps for it and &#8211; yeah I know what you think &#8211; it&#8217;s based on Java.</p>
<p><em>Warning this is a potential boring blog entry. Apprx writting time was about 5min</em></p>
<p>I once tried writing applications for the iPhone and started to like the concept of Obj-C while still I hate the syntax and I don&#8217;t like the API that much. Android makes things simple for me, and I guess for most people knowing a little bit java. It implements big parts of the Java standard (although it doesn&#8217;t claim to be standard compatible) which makes it easy to start writing apps if you know the libraries a little bit. Android also includes the powerful HTTP libraries of the Apache project as well as Json and XML parsers.</p>
<p>Having said this, the most important factor why I started to love my phone and the Android system: I can easily deploy apps on my phone, I debug it on my phone, I have nearly the complete power of the java framework and I totaly enjoy seeing my first app starting on the actual phone after 1 hour of coding. The app itself is fairly simple. It&#8217;s a basic search interface phpMyFAQs upcoming Rest API.<br />
So you can search an existing phpMyFAQ installation for a search term and display the result. Although the app needs phpMyFAQ 2.6.0-alpha it&#8217;s already available in the Android Market. So feel free to check it out. You can test it with the URL: <em>http://faq.phpmyfaq.de/</em>. The source can be found at <a href="http://github.com/thorsten/pmfMobileKit">http://github.com/thorsten/pmfMobileKit</a>. Expect more updates to the app soon.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=308&amp;md5=cda5eeb27fb44c0cbd3b841c1a8e87b0" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2009/09/ask-a-droid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Birthday</title>
		<link>http://blog.experimentalworks.net/2009/08/birthday/</link>
		<comments>http://blog.experimentalworks.net/2009/08/birthday/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 23:10:50 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[nonsense]]></category>

		<guid isPermaLink="false">http://blog.experimentalworks.net/?p=298</guid>
		<description><![CDATA[Ups, I nearly missed the third birthday of my blog. Happy birthday experimentalworks blog.]]></description>
			<content:encoded><![CDATA[<p>Ups, I nearly missed the <a href="http://blog.experimentalworks.net/2006/07/about-open-source-and-business/">third</a> birthday of my blog. Happy birthday experimentalworks blog.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=298&amp;md5=aac772216aecbeca0e86d06671fe985a" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2009/08/birthday/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CRE</title>
		<link>http://blog.experimentalworks.net/2009/08/cre/</link>
		<comments>http://blog.experimentalworks.net/2009/08/cre/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 22:45:29 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[chaosradio]]></category>
		<category><![CDATA[radio]]></category>

		<guid isPermaLink="false">http://blog.experimentalworks.net/?p=283</guid>
		<description><![CDATA[Ich bin mir gar nicht mehr sicher, wann ich das Chaosradio entdeckt habe. Es wird so ca. vor zwei Jahren gewesen sein, als der Begriff Podcast geschaffen wurde und die ersten deutsprachigen Podcasts das Licht der Welt erblickt haben. Als technologieverliebter Nerd stößt man so unweigerlich früher oder später auf das Chaosradio. Während ich ...]]></description>
			<content:encoded><![CDATA[<p>Ich bin mir gar nicht mehr sicher, wann ich das <a href="http://chaosradio.ccc.de">Chaosradio</a> entdeckt habe. Es wird so ca. vor zwei Jahren gewesen sein, als der Begriff <a href="http://de.wikipedia.org/wiki/Podcasting">Podcast</a> geschaffen wurde und die ersten deutsprachigen Podcasts das Licht der Welt erblickt haben. Als technologieverliebter Nerd stößt man so unweigerlich früher oder später auf das Chaosradio. Während ich anfangs eher das dreistündige Chaosradio, das auch auf Fritz ausgestrahlt wird, anhörte, bin ich doch relativ schnell dazu übergegangen <a href="http://tim.geekheim.de/2009/08/09/cre-kettenblogging-fr-den-weltfrieden/">Pritloves</a> Express-Variante zu abonnieren. Denn sind wir mal ehrlich, zwar sind die Anrufer bei Chaosradio manchmal ganz amüsant, doch zum Großteil eher nervend. Die kompakten und meistens inhaltlich guten Folgende des CREs machen da deutlich mehr Spaß.</p>
<p>Inhaltlich ist das CRE eher technisch aufgestellt und befasst sich mit allem was den Nerd erfreut, sozusagen die Cub-Mate des audiophilen Tekki. CRE ist also gut für die Geek-Gesundheit, liefert einen Blick über den Tellerrand und, hepp, befasst sich sogar mit <a href="http://chaosradio.ccc.de/cre131.html">Soziologie</a> und <a href="http://chaosradio.ccc.de/cre118.html">Politik</a>. Und manchmal werden sogar <a href="http://chaosradio.ccc.de/cre130.html">langjährige Wünsche</a> erfüllt.</p>
<p>Absolute Highlights sind natürlich Folgen wie die Bayrische Hackerpost, Internet Memes und der Mifare-Hack. So ist es kaum verwunderlich, dass man nach späterstens zwei Wochen CRE freie Zeit anfängt unruhig den CRE Blog anzusurfen und den Podcast Feed zu abonnieren. Leider fehlt immer noch was zum Thema PHP, aber das ist ja per se uncool, deswegen wird das wohl auch nichts mehr. Schade eigentlich, vielleicht gibts ja nochmal was dediziertes zum Thema Flamewars, da kann man PHP dann immer gerne einstreuen. Überhaupt gibt CRE immer Anlass zur Diskussion, meistens weil ein Detail in irgendeinem Nebensatz nicht stimmte oder allgemein der Gast inkompetent war, aber eh klar: man selbst ist immer der bessere Experte (vorallem wenn es um DVCS geht, wo&#8217;s vielleicht sogar stimmen würde *rant*). Aber auch &#8220;ranten&#8221; gehört zur Informatikerausbildung. Also immer brav CRE hören.</p>
<p><a href="http://presently.de/374/chaosradio-express/">Was man am CRE verbessern kann?</a>:<br />
Ich finde die Idee mit einem Photo pro Podcast eigentlich ganz gut. Mehr fällt mir auch nicht ein.</p>
<p>Und jetzt weiter in der von <a href="http://tim.geekheim.de/2009/08/09/cre-kettenblogging-fr-den-weltfrieden/">Tim initiierten</a> Blogkette:<br />
<a href="http://meet-unix.org/blog/wordpress/?p=131">Zurück zu Nummer 12 in der Blogkette</a>.<br />
<a href="http://www.hardturm.ch/luz/2009/08/uber-cre-chaosradio-express/">Weiter zu Nummer 14 in der Blogkette</a>.</p>
<p>und jetzt weitermachen!</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=283&amp;md5=682659cee88c7c87e30db8013cd53aad" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2009/08/cre/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>This is&#8230;.</title>
		<link>http://blog.experimentalworks.net/2009/02/this-is/</link>
		<comments>http://blog.experimentalworks.net/2009/02/this-is/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 01:02:33 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.experimentalworks.net/2009/02/this-is/</guid>
		<description><![CDATA[Sind mir €0.99 min. 2h gute Laune wert? Mir schon.]]></description>
			<content:encoded><![CDATA[<p>Sind mir €0.99 min. 2h gute Laune wert? Mir schon.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=155&amp;md5=791726178aee20e7ad7c678ad14f3d15" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2009/02/this-is/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>distcc with Ubuntu and Gentoo &#8211; Knowing your defaults</title>
		<link>http://blog.experimentalworks.net/2008/10/distcc-with-ubuntu-and-gentoo-knowing-your-defaults/</link>
		<comments>http://blog.experimentalworks.net/2008/10/distcc-with-ubuntu-and-gentoo-knowing-your-defaults/#comments</comments>
		<pubDate>Sun, 19 Oct 2008 11:15:23 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp.experimentalworks.net/?p=77</guid>
		<description><![CDATA[I didn't use distcc for quite a while. Usually modern dual or quad CPUs are fast in enough to compile in a reasonable time, but after compiling PHP 100 times, I wanted to make things faster and use distcc with my server which otherwise just idles around. My laptop, where I usually compile PHP, ...]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t use <a href="http://http://code.google.com/p/distcc/" >distcc</a> for quite a while. Usually modern dual or quad CPUs are fast in enough to compile in a reasonable time, but after compiling <a href="http://php.net" >PHP</a> 100 times, I wanted to make things faster and use distcc with my server which otherwise just idles around. My laptop, where I usually compile PHP, is a 1.2Ghz dual core with 2gb ram running <a href="http://www.ubuntu.com/testing/intrepid/beta" >Ubuntu 8.10 beta</a>. The server is an up-to-date Gentoo on a 2.7 Ghz dual core with 4GB ram. If you install distcc, which is pretty straight forward, and start compiling you might run into the following error:</p>
<blockquote><p>
/usr/include/bits/stdio2.h:98: undefined reference to `__builtin_va_arg_pack&#8217;
</p></blockquote>
<p><span id="more-77"></span><br />
At that moment just one thing came into my mind: WTF! Well but as usually, the web knows the answer, as long as you know how to find it.</p>
<p>So let&#8217;s go back and start over how to setup distcc on both machines:</p>
<blockquote><p>
ubuntu $ sudo apt-get install distcc<br />
gentoo $ emerge distcc<br />
gentoo $ rc-update add distccd default<br />
gentoo $ vi /etc/conf.d/distccd<br />
<i>and set DISTCCD_OPTS=&#8221;${DISTCCD_OPTS} &#8211;allow 192.168.1.0/24&#8243;<br />
save the file and quit vi.</i><br />
gentoo $ /etc/init.d/distccd start
</p></blockquote>
<p>Get PHP and extract it on the ubuntu machine:</p>
<blockquote><p>
ubuntu $ wget &#8220;http://www.php.net/get/php-5.2.6.tar.bz2/from/www.php.net/mirror&#8221;<br />
ubuntu $ tar xjvf php-5.2.6.tar.bz2<br />
ubuntu $ cd php-5.2.6/
</p></blockquote>
<p>So know here is the <b>trick</b>. The <i>undefined reference</i> error occurs as <i>gcc(1)</i> on ubuntu compiles with <i>-fstack-protector</i>, which is not enabled by default on Gentoo. We have to set it during configure so that the option is passed to the gentoo machine and the compilation fits:</p>
<blockquote><p>
ubuntu $ ./configure CC=&#8221;distcc&#8221; CFLAGS=&#8221;-fstack-protector&#8221;<br />
ubuntu $ export DISTCC_HOSTS=&#8221;localhost gentoo&#8221;<br />
ubuntu $ make -j6
</p></blockquote>
<p>And it works! Compilation is done!</p>
<p>and now the boring stats:</p>
<blockquote><p>
<strong>make -j3  without distcc</strong><br />
198,27s user 43,41s system 184% cpu 2:11,10 total<br />
<strong>make -j6  with distcc</strong><br />
62,69s user 38,02s system 186% cpu 54,044 total
</p></blockquote>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=77&amp;md5=572a10aebe4bac0648eda0946bc70bb1" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2008/10/distcc-with-ubuntu-and-gentoo-knowing-your-defaults/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Lighttpd and luasockets</title>
		<link>http://blog.experimentalworks.net/2008/01/lighttpd-and-luasockets/</link>
		<comments>http://blog.experimentalworks.net/2008/01/lighttpd-and-luasockets/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 20:56:45 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp.experimentalworks.net/?p=53</guid>
		<description><![CDATA[A few days ago I got nice task. Jo discovered a nice bug while playing around with memcached, lighttpd and Lua.When lighttpd got a request it can call a Lua script before the fcgi take over the request. The lua script is able to modify the complete request handling. Jo tried to use this ...]]></description>
			<content:encoded><![CDATA[<p>A few days ago I got nice task. Jo <a href="http://blog.egolab.de/archives/50-Die-Xenjo-Cache-Registry-Part-II.html#extended" >discovered a nice bug</a> while playing around with <a href="http://www.danga.com/memcached" >memcached</a>, <a href="http://blog.lighttpd.net/articles/2006/09/16/a-new-power-magnet" >lighttpd</a> and <a href="http://en.wikipedia.org/wiki/Lua_%28programming_language%29" >Lua.</a>
<p/>When lighttpd got a request it can call a Lua script before the fcgi take over the request. The lua script is able to modify the complete request handling. Jo tried to use this abillity to make a cache decision in lua and therefore save the PHP + FCGI overhead by serving the cache if available. As this approach usually makes sense on high traffic sites, people want to use a distributed caching system like memcached. The cache can be run on a complete other machine and requested over network. To interact with memcached Jo used the Memcache.lua bindings, which are quite similar to other language bindings like the PHP bindings. Unfortunatly when calling <em>Memcached.Connect</em> from lighty, it crashed silently. If you tried to call memcached from the standalone lua interpreter, everything worked fine. So what happend?<span id="more-53"></span>In fact not the memcache bindings caused the problems, but the underlaying luasockets library. I discovered that luasockets fails while initializing the tcp socket and setting up a buffer with the information to send through the socket. First I thought it was a problem with the way lighty handles sockets. Maybe this could confuse luasockets. Apparently it doesnot. The socket gets perfectly allocated by the system and returned. </p>
<p/>I was pretty confused as I tried to look at the exact point where the execution stopped. The buffer_init method which was called returned a invalid pointer, even the function itself was so clear, that I cannot break the library. Everytime I tried to step into the mysterious buffer_init method of luasocket gdb seems to jump to a wrong line and not to the buffer_init method. Deciding to renew my source directories in gdb actually made my day. Suddently gdb switched into lighty&#8217;s buffer_init script.</p>
<p/>Pretty obvious: lighttpd also has a buffer_init method. When loading the luasocket library as a shared module, it&#8217;s buffer_init method address gets overwritten by lighty&#8217;s buffer_init. Therefore the luasocket always used light&#8217;s function which initialized the buffer in an unexpected way and caused the luasocket to get a null pointer instead of a correct initialized value. As luasocket doesnot check this, it fails when trying to access the pointer and segfaults (together with lighty). </p>
<p/>So the actual fix is to prefix all of luasockets exported functions as well as their references and recompile. </p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=53&amp;md5=7326bc6d2fdb0d1ecd4d5559387e4e0e" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2008/01/lighttpd-and-luasockets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schwarz</title>
		<link>http://blog.experimentalworks.net/2008/01/schwarz/</link>
		<comments>http://blog.experimentalworks.net/2008/01/schwarz/#comments</comments>
		<pubDate>Thu, 17 Jan 2008 23:04:05 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp.experimentalworks.net/?p=52</guid>
		<description><![CDATA[Weiß, schwarz und grün. Ist doch alles immer nur das Gleiche, nur in blau. Aber macht auch nichts, reicht ja um immer munter loszupinseln, und bitte nichts vermischen. Könnte ja hässliche Flecken bilden, oder Bilder, oder was auch immer. Ist ja alles das gleiche, sagte er, dachte ich, meinte Bernhard über die Verstümmelten. Man ...]]></description>
			<content:encoded><![CDATA[<p>Weiß, schwarz und grün. Ist doch alles immer nur das Gleiche, nur in blau. Aber macht auch nichts, reicht ja um immer munter loszupinseln, und bitte nichts vermischen. Könnte ja hässliche Flecken bilden, oder Bilder, oder was auch immer. Ist ja alles das gleiche, sagte er, dachte ich, meinte Bernhard über die Verstümmelten. Man kann natürlich auch immer den anderen Pinseln, dann sieht man wohl bald aus, wie der Kahlköpfige von nebenan. Fast so, wie bei looser, nur mit weniger Poesie. Macht auch nichts, denn man krankt in tiefer Welt. Fast schon wie bei Faldbakken. Nur ganz ohne Porno und weniger Musik, sonst wäre man ja Wertheimer. Die Nachbarn über uns kennen das auch. Wie ein Sommerwiese, fast genauso langweilig.</p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=52&amp;md5=6f1979fb2d97601ca6f4dc09587dc9af" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2008/01/schwarz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vcap porting</title>
		<link>http://blog.experimentalworks.net/2008/01/vcap-porting/</link>
		<comments>http://blog.experimentalworks.net/2008/01/vcap-porting/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 00:32:59 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://wp.experimentalworks.net/?p=51</guid>
		<description><![CDATA[I used 24C3 to do some work on vcap. I started porting the source to BSD as I want to continue working on my FreeBSD machine.  Thanks to the support of the BSD TCP stack in Linux I was able to port it very fast. Just some adjustments of the includes and settings ...]]></description>
			<content:encoded><![CDATA[<p>I used 24C3 to do some work on vcap. I started porting the source to BSD as I want to continue working on my FreeBSD machine.  Thanks to the support of the BSD TCP stack in Linux I was able to port it very fast. Just some adjustments of the includes and settings a few constant it compiled well on BSD. I also added IPv6 support as 24C3 was a perfect network to do some realtime testings on that.</p>
<p>Well sadly I still have some various crashes based on race conditions during startup. I didnot have the time yet to fix that, but next time I take<br />
hands on vcap, that will be fixed.</p>
<p><em>What is vcap?<br />
Vcap captures ethernet packages like tcpdump or wireshark and displays statistik about them using modern visualization techniques. At the moment the statstics are drawn using a sunburst algorithm. It aims to give you a much fast overview about the network statstiks than tcpdump or netstat or something similiar does. It&#8217;s GTK based. Vcap is not yet stable and it is known that it has some issues that causes vcap to fault. But work goes on.</em></p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=51&amp;md5=c1adf4169956c1a7c90e1985051ae2ce" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2008/01/vcap-porting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inofficial PHP GIT repositories &#8211; Importing large trees</title>
		<link>http://blog.experimentalworks.net/2008/01/inofficial-php-git-repositories-importing-large-trees/</link>
		<comments>http://blog.experimentalworks.net/2008/01/inofficial-php-git-repositories-importing-large-trees/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 20:44:50 +0000</pubDate>
		<dc:creator>dsp</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Version Control]]></category>

		<guid isPermaLink="false">http://wp.experimentalworks.net/?p=50</guid>
		<description><![CDATA[A few month ago Johannes Schlüter and I started discussing about GIT and other decentralized version control systems. During our exploration of GIT we thought about importing the PHP CVS tree into git. A few weeks later and a lot of wasted cpu time, we finally managed to provide an inofficial GIT mirror of ...]]></description>
			<content:encoded><![CDATA[<p>A few month ago Johannes Schlüter and I started discussing about GIT and other decentralized version control systems. During our exploration of GIT we thought about importing the PHP CVS tree into git. A few weeks later and a lot of wasted cpu time, we finally managed to provide an inofficial GIT mirror of the PHP CVS repository. It&#8217;s provided by Johannes Schlüter and mirrored by me.<br />
<span id="more-50"></span>Back in late Oct 2007 <a href="http://schlueters.de" >Johannes</a> and <a href="http://experimentalworks.net" >I</a> started discussing about <a href="http://git.or.cz" >GIT</a>. We both like GIT and the decentralized approch and started working with GIT on our private projects. But the major features of GIT are revealed in <a href="http://kernel.org" >bigger projects</a> with more than just one or two contributers. As Johannes is a well-known <a href="http://marc.info/?l=php-internals&#038;m=119108074315532&#038;w=2" >PHP core developer </a>and I contribute to PHP myself from time to time, we soon came up with the idea of providing a GIT repository for PHP. Since then we both tried to import the CVS repository of PHP from time to time into a GIT repository. </p>
<p />
Our first approach was using <a href="http://www.kernel.org/pub/software/scm/git/docs/git-cvsimport.html" >git-cvsimport</a> which ships with the GIT distribution. git-cvsimport is based on <a href="http://www.cobite.com/cvsps/" >cvsps</a> which parses the output of rlogs on a current working copy and receives all revision for all files in the working copy and imports them into a git repository. It turns out that git-cvsimport works quite well for small projects, but for large and complex CVS repositories like the PHP one, git-cvsimport fails. It imports most of the files but from time to time it messes up with the import of revisions or even complete branches. That leads to a broken repository that was not able to compile anymore. This behaviour seems to be a result of the cvsps import mechanism based on rlogs which doesn&#8217;t have enough information to make all mappings of files to branchnes.
<p />
Therefore we tried <a href="http://gitweb.freedesktop.org/?p=users/keithp/parsecvs.git" >parsecvs</a>. Instead of git-cvsimport, parsecvs works on ,v <a href="http://de.wikipedia.org/wiki/Revision_Control_System" >RCS</a> files from the CVSROOT. It parses them and imports the revisions into GIT. As php.net provides an <a href="rsync://rsync.php.net" >rsync</a> mirror to get the CVSROOT sources (thanks to <a href="http://www.derickrethans.nl/"  title="null">Derick</a> for adding ZendEngine2 to the rsyncs), we were able to import the PHP repository into GIT. But we still run into troubles. The PHP CVS obviously has a branch name <em>dev/</em>. That branchname is passed to git-update-ref by parsecvs. This git command is based on git refspecs which uses slashes to separate names. As the slash in dev/ was not escaped right, we needed to patch <a href="http://git.experimentalworks.net/?p=parsecvs.git;a=summary" >parsecvs ourselfs</a> to escape (in fact use ~ for /) that character. Besides that fix, which was done by me, Johannes fixes some other issues in our own parsecvs branch. </p>
<p />
Thanks to our parsecvs we finally got a working GIT repository imported from CVS. It was just about 2,2 Gb big. A mail from the git mailinglist concerning the GCC GIT repository leads us to the right solution to get that repository smaller by recalculating the revision deltas using git-repack, which tooks just about 3 hours. That attemp leads to a perfect and small 94MB repository.</p>
<p />
This <a href="http://www.schlueters.de/~johannes/git/?p=php/php-src.git;a=summary" >inofficial GIT repository</a> is updated from the official PHP CVS 2 times per day. It is served by Johannes Schlüter, who also provides imports for <a href="http://www.schlueters.de/~johannes/git/?p=php/ZendEngine2.git;a=summary" >ZendEngine2</a> and <a href="http://www.schlueters.de/~johannes/git/?p=php/TSRM.git;a=summary" >TSRM</a> which are needed to compile PHP. You find a mirror of these repositories on <a href="http://git.experimentalworks.net" >my GIT site</a>. </p>
<p />
[LINK] The inofficial <a href="http://www.schlueters.de/~johannes/git/?p=php/php-src.git;a=summary" >GIT PHP</a> repository.<br />
[LINK] The inofficial <a href="http://www.schlueters.de/~johannes/git/?p=php/TSRM.git;a=summary" >GIT TSRM</a> repository.<br />
[LINK] The inofficial <a href="http://www.schlueters.de/~johannes/git/?p=php/ZendEngine2.git;a=summary" >GIT ZendEngine2</a> repository.</p>
<p />
<em>Feel free to pull the repositories and send patches to us using GIT. Feel free to drop me a comment. </em></p>
<p class="wp-flattr-button"></p> <p><a href="http://blog.experimentalworks.net/?flattrss_redirect&amp;id=50&amp;md5=511bc52c2b19aec07b31dce5fb37250c" title="Flattr" target="_blank"><img src="http://blog.experimentalworks.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.experimentalworks.net/2008/01/inofficial-php-git-repositories-importing-large-trees/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

