<?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:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml"
>

<channel>
	<title>Developer with some grey hairs &#187; hacking</title>
	<atom:link href="http://kai.system7.de/category/hacking/feed/" rel="self" type="application/rss+xml" />
	<link>http://kai.system7.de</link>
	<description></description>
	<pubDate>Fri, 21 Jan 2011 12:24:35 +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>26c3 - Here be dragons</title>
		<link>http://kai.system7.de/2009/12/31/26c3-here-be-dragons/</link>
		<comments>http://kai.system7.de/2009/12/31/26c3-here-be-dragons/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 11:09:20 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[berlin]]></category>

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

		<guid isPermaLink="false">http://kai.system7.de/?p=686</guid>
		<description><![CDATA[


Der Chaos Computer Congress war wie jedes Mal wieder ein lohnender Abschluss des Jahres. Ich war dieses Jahr nur einen Tag dort (3.Tag), was daran lag, dass nun das Berliner Congress Center endgültig unter der Masse an Teilnehmern zusammenbricht. Morgens um 11 Uhr war die Welt noch schön. Ich saß im halb vollem Saal 1 [...]]]></description>
			<content:encoded><![CDATA[<p><center><br />
<img src="http://kai.system7.de/images/26c3-1.jpg" alt="26c3" /><br />
</center></p>
<p>Der <a href="http://events.ccc.de/congress/2009/wiki/Main_Page">Chaos Computer Congress</a> war wie jedes Mal wieder ein lohnender Abschluss des Jahres. Ich war dieses Jahr nur einen Tag dort (<a href="http://events.ccc.de/congress/2009/Fahrplan/day_2009-12-29.en.html">3.Tag</a>), was daran lag, dass nun das <a href="http://www.bcc-berlin.de/">Berliner Congress Center</a> endgültig unter der Masse an Teilnehmern zusammenbricht. Morgens um 11 Uhr war die Welt noch schön. Ich saß im halb vollem Saal 1 und lauschte Markus Beckedahl und Falk Lueckes Vortrag über <a href="http://www.netzpolitik.org/2009/netzneutralitaet/">Netzneutralität</a>. Ein Thema das sicherlich 2010 in Europa und Deutschland diskutiert werden wird. Danach noch dem hervorragenden Vortrag über <a href="http://events.ccc.de/congress/2009/Fahrplan/events/3557.en.html">Kreationismus</a> von Kay Hamacher gefolgt. Nach diesem schönen Start in den Tag merkte ich so langsam wie von Stunde zu Stunde das BCC immer voller und voller wurde. Um 16:00 konnte ich noch angenehm den Namesgeber des diesjährigen CCC folgen. <a href="http://skeptoid.com/">Brian Dunnig</a> zeigte seinen sehr professionell gemachten Vortrag &#8220;The Lost Cosmonauts&#8221;. Seinen Podcast kann ich übrigens sehr empfehlen. </p>
<p><center><br />
<img src="http://kai.system7.de/images/26c3-2.jpg" alt="26c3" /><br />
</center></p>
<p>Gegen Abend kam es dann zu dem Showdown der 3 Könige des Kongresses. <a href="http://www.brepettis.com/">Bre Patis</a> gefolgt von <a href="http://blog.fefe.de/">Fefe</a> und <a href="http://frank.geekheim.de/">Frank Rieger</a>, die dann von <a href="http://de.wikipedia.org/wiki/Dan_Kaminsky">Dan Kaminsky</a> abgelöst wurden. Zwischen den Vorträgen hatte ein Security Mitarbeiter des Kongresses mit netten Witz probiert Ordnung zu schaffen. Die Sicherheitsregeln müssen halt bei solchen Menschenmassen dringend eingehalten werden. Schon das war schwierig. Aber als ich nach der Fnord New Show kurz den Saal 1 verlassen wollte, war der Schock gewaltig. Vor den Türen des Saales war die gesamte obere Etage des BCC brechend voll mit Menschen die nicht reinkammen und nun versuchten wenigstens etwas von Kaminskys zu sehen. Da Hacker intelligente und höfliche Menschen sind lief das alles ohne großen Ärger und Rangelleien ab. Es schmerzt das schreiben zu müssen, aber der CCC benötigt einen neuen Veranstaltungsort.</p>
<p><center><br />
<img src="http://kai.system7.de/images/26c3-3.jpg" alt="26c3" /><br />
</center></p>
<p>Schön zu sehen war das in der Hackergemeinde Macs nicht mehr so beliebt sind wie noch vor 2 Jahren. Der Trend zum Netbook mit Linux war deutlich zu sehen. Auch Android Handys waren stark im Vormarsch. Sogar ein <a href="http://www.youtube.com/watch?v=1CJFdG-MARw">Nexus</a> wurde wohl schon gesichtet. </p>
<p>Allen einen guten Rutsch ins (neue) Jahr 1984.</p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2009/12/31/26c3-here-be-dragons/feed/</wfw:commentRss>
		<georss:point featurename="Berlin, Alexanderplatz">52.5223116 13.4140997</georss:point>
	</item>
		<item>
		<title>Ubuntu 9.10 and the Google Go Emacs Mode</title>
		<link>http://kai.system7.de/2009/11/24/ubuntu-910-and-the-google-go-emacs-mode/</link>
		<comments>http://kai.system7.de/2009/11/24/ubuntu-910-and-the-google-go-emacs-mode/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 11:00:13 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[english]]></category>

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

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

		<category><![CDATA[open source]]></category>

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

		<guid isPermaLink="false">http://kai.system7.de/?p=645</guid>
		<description><![CDATA[After some hours with google go I recognize the emacs mode in the source directory of the current distribution.
It is easy to install the mode for ubuntu 9.10 (karmic). First install the emacs with
sudo apt-get install emacs23
After that copy the the two .el files from you google ~/go/misc/emacs directory to
/usr/share/emacs/23.1/lisp
Now create a .emacs file in [...]]]></description>
			<content:encoded><![CDATA[<p>After some hours with google go I recognize the emacs mode in the source directory of the current distribution.</p>
<p>It is easy to install the mode for ubuntu 9.10 (karmic). First install the emacs with</p>
<p><strong>sudo apt-get install emacs23</strong></p>
<p>After that copy the the two .el files from you google ~/go/misc/emacs directory to</p>
<p><strong>/usr/share/emacs/23.1/lisp</strong></p>
<p>Now create a .emacs file in you home directory and add the following to lines.</p>
<p><code>(add-to-list ‘load-path “/usr/share/emacs/23.1/lisp” t)<br />
(require ‘go-mode-load)</code></p>
<p>Now the google mode is activated after loading a .go file.</p>
<p><center><br />
<img src="http://kai.system7.de/images/emacs-go.jpg" alt="Emacs with go mode"/><br />
</center></p>
<p><script type="text/javascript">var dzone_url = 'http://kai.system7.de/2009/11/24/ubuntu-910-and-the-google-go-emacs-mode/';</script><br />
<script type="text/javascript">var dzone_title = 'Ubuntu 9.10 and the Google Go Emacs Mode';</script><br />
<script type="text/javascript">var dzone_blurb = 'Installing go emacs mode in ubuntu';</script><br />
<script type="text/javascript">var dzone_style = '2';</script><br />
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2009/11/24/ubuntu-910-and-the-google-go-emacs-mode/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Go and the Mandelbrot Set Part II</title>
		<link>http://kai.system7.de/2009/11/17/google-go-and-the-mandelbrot-set-part-ii/</link>
		<comments>http://kai.system7.de/2009/11/17/google-go-and-the-mandelbrot-set-part-ii/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 10:22:33 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[english]]></category>

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

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

		<guid isPermaLink="false">http://kai.system7.de/?p=620</guid>
		<description><![CDATA[The following code is my solution for parallel calculation of a mandelbrot set with google go.

package main

import ( "image";
        "image/png";
	"bufio";
	"fmt";
	"os";
	"math";
	"time"; )

type PixelCalc struct {  x int;
     	                 [...]]]></description>
			<content:encoded><![CDATA[<p>The following code is my solution for parallel calculation of a mandelbrot set with <a href="http://golang.org/">google go</a>.</p>
<pre class="code">
package main

import ( "image";
        "image/png";
	"bufio";
	"fmt";
	"os";
	"math";
	"time"; )

type PixelCalc struct {  x int;
     	                 y int;
                         cx float64;
	                 cy float64; }

func PointIteration(in chan *PixelCalc,ready chan int,img *image.RGBA){

	for {
		pixelCalc :=  &lt;- in; 

		xt := float64(0);
		yt := float64(0);
		x := float64(0);
		y := float64(0);
		quadValue := float64(0);
		iter := 0;

		for quadValue &lt;= 255.0 &#038;&#038; iter < 255 {
			xt= ( x * x ) - ( y * y) + pixelCalc.cx;
			yt= ( float64(2.0) * x * y ) + pixelCalc.cy;
			x = xt;
			y = yt;
			iter++;

			quadValue = ( x * x ) + ( y * y );
		}

		color := new(image.NRGBAColor);
		color.A = 255;
		iter8 := uint8(iter);
		color.R = iter8;
		color.G = iter8;
		color.B = iter8;
		img.Set(pixelCalc.x,pixelCalc.y,color);

		ready &lt;- 1;
	}
}

func main(){
	start := time.Seconds();

	const pictureSize = 1000;

	img := image.NewRGBA(pictureSize,pictureSize);

	f, err := os.Open("mandel.png", os.O_WRONLY|os.O_CREAT, 0666);
	if err != nil {
		fmt.Printf("Can't create picture file\n");
	}

	calc := make(chan *PixelCalc,pictureSize*pictureSize);
	out := make(chan int,pictureSize*pictureSize);

	for i:=0;i&lt;4;i++{
		go PointIteration(calc,out,img);
	}

	deltaX := math.Fabs(float64(-2.0 - 1.0)) / float64(pictureSize);
        deltaY := math.Fabs(float64(-1.0 - 1.0)) / float64(pictureSize);

	cx := float64(-2.0);

	for x:=0;x&lt;pictureSize;x++{
		cx+=deltaX;
		cy := float64(-1.0);

		for y:=0;y&lt;pictureSize;y++{
	    		cy+=deltaY;
			pixelCalc := new(PixelCalc);
			pixelCalc.cx = cx;
			pixelCalc.cy = cy;
			pixelCalc.x  = x;
			pixelCalc.y  = y;

			calc &lt;- pixelCalc;
		}
	}	

	for i:=0;i&lt;pictureSize*pictureSize;i++{
		&lt;- out;
	}

  	w := bufio.NewWriter(f);
	png.Encode(w,img);
	w.Flush();

	fmt.Printf("Seconds needed %d\n",time.Seconds() - start);
}
</pre>
<p>At this time the go compiler has some bugs regarding the multiprocessor support. But sometimes I can see the use of my two processors.</p>
<p><img src="http://kai.system7.de/images/processor-load.jpg" alt="processor load" /></p>
<p>I hope there will fix that bug fast. The first workaround for that bug is the GOMAXPROCS environment variable. I set this to 2. But this did&#8217;nt help everytime. </p>
<p><a href="http://kai.system7.de/2009/11/13/google-go-and-the-mandelbrot-set/">Link to part 1</a></p>
<p><script type="text/javascript">var dzone_url = 'http://kai.system7.de/2009/11/17/google-go-and-the-mandelbrot-set-part-ii/';</script><br />
<script type="text/javascript">var dzone_title = 'Google Go and the Mandelbrot Set Part II';</script><br />
<script type="text/javascript">var dzone_blurb = '';</script><br />
<script type="text/javascript">var dzone_style = '2';</script><br />
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2009/11/17/google-go-and-the-mandelbrot-set-part-ii/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Go and the Mandelbrot Set</title>
		<link>http://kai.system7.de/2009/11/13/google-go-and-the-mandelbrot-set/</link>
		<comments>http://kai.system7.de/2009/11/13/google-go-and-the-mandelbrot-set/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 10:30:08 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[english]]></category>

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

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

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

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

		<guid isPermaLink="false">http://kai.system7.de/?p=591</guid>
		<description><![CDATA[Learning a new programming language is fun. Here is my version of calculating the mandelbrot set and save the result as a PNG picture with Google Go. 

package main

import (   "image";
           "image/png";
           "bufio";
	 [...]]]></description>
			<content:encoded><![CDATA[<p>Learning a new programming language is fun. Here is my version of calculating the mandelbrot set and save the result as a PNG picture with <a href="http://golang.org">Google Go</a>. </p>
<pre class="code">
package main

import (   "image";
           "image/png";
           "bufio";
	   "fmt";
	   "os";
           "math";
           "time"; )

func PointIteration( cx, cy, maxValue float64, maxIter uint8) uint8{
     quadValue := float64(0.0);
     iter := uint8(0);
     x := float64(0.0);
     y := float64(0.0);

    for quadValue &lt;= maxValue &#038;&#038; iter &lt; maxIter {
        xt:= ( x * x ) - ( y * y) + cx;
        yt:= ( float64(2.0) * x * y ) + cy;
        x = xt;
        y = yt;
        iter++;
        quadValue = ( x * x ) + ( y * y );
    }
    return iter;
}

func main(){
    start := time.Seconds();     

    const pictureSize = 500;
    img := image.NewRGBA(pictureSize,pictureSize);

    f, err := os.Open("mandel.png", os.O_WRONLY|os.O_CREAT, 0666);
    if err != nil {
       fmt.Printf("Can't create picture file\n");
    }

    deltaX := math.Fabs(float64(-2.0 - 1.0)) / float64(pictureSize);
    deltaY := math.Fabs(float64(-1.0 - 1.0)) / float64(pictureSize);

    cx := float64(-2.0);
    for x:=0;x&lt;pictureSize;x++{
        cx+=deltaX;
        cy := float64(-1.0);
        for y:=0;y&lt;pictureSize;y++{
           cy+=deltaY;
           iter := PointIteration(cx,cy,255.0,255);

           color := new(image.NRGBAColor);
           color.A = 255;
           color.R = iter;
           color.G = iter;
           color.B = iter;
           img.Set(x,y,color);
	}
     }

     w := bufio.NewWriter(f);
     png.Encode(w,img);
     w.Flush();

     fmt.Printf("Seconds needed %d\n",time.Seconds() - start);
}
</pre>
<p>And here the result. <img src='http://kai.system7.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://kai.system7.de/images/mandel.png" alt="Mandelbrot Set - calculated with google go" /></p>
<p>Next step is trying to improve the speed by using <a href="http://golang.org/doc/effective_go.html#goroutines">goroutines</a> and <a href="http://golang.org/doc/effective_go.html#channels">channels</a>. </p>
<p><script type="text/javascript">var dzone_url = 'http://kai.system7.de/2009/11/13/google-go-and-the-mandelbrot-set/';</script><br />
<script type="text/javascript">var dzone_title = 'Google Go and the Mandelbrot Set Part I';</script><br />
<script type="text/javascript">var dzone_blurb = '';</script><br />
<script type="text/javascript">var dzone_style = '2';</script><br />
<script language="javascript" src="http://widgets.dzone.com/links/widgets/zoneit.js"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2009/11/13/google-go-and-the-mandelbrot-set/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Motodrone 2008</title>
		<link>http://kai.system7.de/2008/09/21/motodrone-2008/</link>
		<comments>http://kai.system7.de/2008/09/21/motodrone-2008/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 18:13:28 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[berlin]]></category>

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

		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://kai.system7.de/?p=153</guid>
		<description><![CDATA[


Am 20.09.2008 lud der Verein Motodrone eV zur seinen ersten internationalen Open Source Meisterschaften für Autonome Flugobjekte ein. Leider war der Zuschauer- und Mitmacherandrang nicht so hoch wie erwartet. Reporter gab es übrigens interessanterweise massenhaft. Trotz der schwachen Teilnehmerfeldes gab es einige neue Drohnen zu sehen.



Eine Drohne die auch einen Verfolgungsmodus beherrscht. Zu der Drohne [...]]]></description>
			<content:encoded><![CDATA[<p><center><br />
<img src="http://kai.system7.de/images/motodrone1.jpg" alt="Motodrone 1" /><br />
</center><br />
Am 20.09.2008 lud der<a href="http://www.motodrone.org/"> Verein Motodrone eV</a> zur seinen ersten internationalen Open Source Meisterschaften für Autonome Flugobjekte ein. Leider war der Zuschauer- und Mitmacherandrang nicht so hoch wie erwartet. Reporter gab es übrigens interessanterweise massenhaft. Trotz der schwachen Teilnehmerfeldes gab es einige neue Drohnen zu sehen.<br />
<center><br />
<img src="http://kai.system7.de/images/motodrone2.jpg" alt="Motodrone 2" /><br />
</center><br />
Eine Drohne die auch einen Verfolgungsmodus beherrscht. Zu der Drohne gibt es einen kleinen Sender. Bewegt sich der Sender, folgt die Drohne den aktuellen Halter des Senders.<br />
<center><br />
<img src="http://kai.system7.de/images/motodrone3.jpg" alt="Motodrone 3" /><br />
</center><br />
Für 500 € konnte sich jeder vor Ort ein Bauset für den spontanen Selbstbau erwerben und dann gleich unter Anleitung zusammenbauen.<br />
<center><br />
<img src="http://kai.system7.de/images/motodrone5.jpg" alt="Motodrone 5" /><br />
</center><br />
Eins der Highlights war das Paparazzi Team. Dieses Team baut im Gegensatz zu den meisten anderen Drohnenbauer keine Hubschrauber ähnlichen Geräte, sondern Flugzeuge. Diese werden einfach aus der Hand gestartet und fliegen bis auf die Start- und Landphase völlig autark.<br />
<center><br />
<img src="http://kai.system7.de/images/motodrone4.jpg" alt="Motodrone 4" /><br />
</center><br />
Es war äußerst beeindruckend wie hoch die einfachen Styroporflieger flogen und dabei wie selbstverständlich den Platz fast lautlos in ca. 100 - 200 Meter Höhe umkreisen. Auf einen Monitor könnte dazu noch live der Flug mitverfolgt werden. Das ganze Gerät kostet nicht mehr als 1000 €. Mehr Infos dazu gibt es unter der Webseite des <a href="http://paparazzi.enac.fr/wiki/index.php/Main_Page">Paparazzi Projektes</a> und diesen <a href="http://www.spiegel.de/wissenschaft/mensch/0,1518,525696,00.html">Spiegel Artikel</a>.<br />
<br />
Die Veranstaltung fand auf dem Gelände des <a href="http://www.kiezportal-hohenschoenhausen.de/galerien-flugzeugmuseum-finow-7.html">Flugzeugmuseums bei Finowfurt</a> statt. Ein recht interessantes Museum mit mehreren alten Flugzeugen, hautpsächlich aus der ehemaligen Sowjetunion und der DDR. Dies war übrigens auch der Platz für das <a href="http://kai.system7.de/2007/08/13/chaos-communication-camp-2007/">Chaos Communication Camp</a> im letzten Sommer. </p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2008/09/21/motodrone-2008/feed/</wfw:commentRss>
		<georss:point featurename="52.8317, 13.6779">52.8317 13.6779</georss:point>
	</item>
		<item>
		<title>Hug a developer today</title>
		<link>http://kai.system7.de/2008/09/10/hug-a-developer-today/</link>
		<comments>http://kai.system7.de/2008/09/10/hug-a-developer-today/#comments</comments>
		<pubDate>Wed, 10 Sep 2008 11:56:44 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[english]]></category>

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

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

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

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

		<guid isPermaLink="false">http://kai.system7.de/?p=151</guid>
		<description><![CDATA[																											
																		Click to play						
												       play_blip_movie_1067270();																						
I need a hug..  
]]></description>
			<content:encoded><![CDATA[<p><center>																					<script type="text/javascript" src="http://blip.tv/scripts/pokkariPlayer.js?ver=2008010901"></script>						<script type="text/javascript" src="http://blip.tv/syndication/write_player?skin=js&#038;posts_id=1067270&#038;source=3&#038;autoplay=false&#038;file_type=flv&#038;player_width=640&#038;player_height=360"></script>
<div id="blip_movie_content_1067270">						<a rel="enclosure" href="http://blip.tv/file/get/Cfitzpatrick-HugADeveloperToday681.flv" onclick="play_blip_movie_1067270(); return false;"><img title="Click to play" alt="Video thumbnail. Click to play." src="http://blip.tv/file/get/Cfitzpatrick-HugADeveloperToday681.flv.jpg" border="0" title="Click to play" /></a>						<br />						<a rel="enclosure" href="http://blip.tv/file/get/Cfitzpatrick-HugADeveloperToday681.flv" onclick="play_blip_movie_1067270(); return false;">Click to play</a>						</div>
<p>						<script type="text/javascript">						       play_blip_movie_1067270();							</script>															</center></p>
<p>I need a hug.. <img src='http://kai.system7.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2008/09/10/hug-a-developer-today/feed/</wfw:commentRss>
<enclosure url="http://blip.tv/file/get/Cfitzpatrick-HugADeveloperToday681.flv" length="6609886" type="video/x-flv" />
		</item>
		<item>
		<title>Überwachung mit freundlichen Mitteln überlisten</title>
		<link>http://kai.system7.de/2008/07/31/uberwachung-mit-freundlichen-mittel-uberlisten/</link>
		<comments>http://kai.system7.de/2008/07/31/uberwachung-mit-freundlichen-mittel-uberlisten/#comments</comments>
		<pubDate>Thu, 31 Jul 2008 10:42:11 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://kai.system7.de/?p=136</guid>
		<description><![CDATA[


Wahrlich nachahmenswert. Eine Arbeit von William Lamson. 
]]></description>
			<content:encoded><![CDATA[<p><center><br />
<img src="http://kai.system7.de/images/BallonCamera.jpg" alt="Camera Ballon" /><br />
</center></p>
<p>Wahrlich nachahmenswert. Eine Arbeit von <a href="http://www.williamlamson.com/#/work/intervention/works/1">William Lamson</a>. </p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2008/07/31/uberwachung-mit-freundlichen-mittel-uberlisten/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Hashtable vs. List</title>
		<link>http://kai.system7.de/2008/01/25/hashtable-vs-list/</link>
		<comments>http://kai.system7.de/2008/01/25/hashtable-vs-list/#comments</comments>
		<pubDate>Fri, 25 Jan 2008 16:47:53 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[english]]></category>

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

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

		<guid isPermaLink="false">http://kai.system7.de/2008/01/25/hashtable-vs-list/</guid>
		<description><![CDATA[Like every student of computer science, I had a course with the title „algorithm and data structures“. That is one of the classic subjects in informatics. You are learn things like linked list, tree&#8217;s and so on. Also different algorithm for searching. Sequential search, binary search and top-down 2-3-4 trees. It is a nice and [...]]]></description>
			<content:encoded><![CDATA[<p>Like every student of computer science, I had a course with the title „algorithm and data structures“. That is one of the classic subjects in informatics. You are learn things like linked list, tree&#8217;s and so on. Also different algorithm for searching. Sequential search, binary search and top-down 2-3-4 trees. It is a nice and important subject. Today we have frameworks like Java,.NET,Python and they all have build in data structures like lists and hashtables. With these technics it is quite easy to use a list. Here is a small and nice example in Python:</p>
<div class="hlcode">
<div class="syntax">
<pre><span class="nb">list</span> <span class="o">=</span> <span class="p">[]</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mf">10000</span><span class="p">):</span>
   <span class="n">rand</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="mf">50000</span><span class="p">)</span>
   <span class="k">if</span> <span class="ow">not</span> <span class="n">rand</span> <span class="ow">in</span> <span class="nb">list</span><span class="p">:</span>
      <span class="nb">list</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">rand</span><span class="p">)</span>
</pre>
</div>
</div>
<p>Now we have a list with up to 10000 random and unique entries. Very easy to program, but you also see the performance problem. In line 4 is a check for the uniqueness of the possible new entry. To check for existence of an element in a list, the framework runs through all elements of the list.  That is a sequential search, the slowest searching algorithm in this universe. This small example needs 365360 microseconds on my machine. </p>
<p>Now lets try a different version with a dictionary. </p>
<div class="hlcode">
<div class="syntax">
<pre><span class="nb">dict</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mf">10000</span><span class="p">):</span>
   <span class="n">rand</span> <span class="o">=</span> <span class="n">random</span><span class="o">.</span><span class="n">randint</span><span class="p">(</span><span class="mf">0</span><span class="p">,</span><span class="mf">50000</span><span class="p">)</span>
   <span class="k">if</span> <span class="ow">not</span> <span class="nb">dict</span><span class="o">.</span><span class="n">has_key</span><span class="p">(</span><span class="n">rand</span><span class="p">):</span>
      <span class="nb">dict</span><span class="p">[</span><span class="n">rand</span><span class="p">]</span> <span class="o">=</span> <span class="mf">0</span>
</pre>
</div>
</div>
<p>This example needs only 34908 microseconds. That is 10 times faster than the version with the list. It looks very stupid to program a line like “dict[rand] = 0?, but this solution now uses a different search algorithm. If you increment the loop up to 20000 entries the different is 83times.  But in the near of 30000 it comes to a point where the insort algorithm of the dict structure needs so long that the speed benefit is over. </p>
<p>I wrote another small program to visualize the effect.<br />
<a href="http://kai.system7.de/hashagainstlist/speedtest.py">See the code</a></p>
<p><img src="http://kai.system7.de/images/hashagainstlist.jpg" alt="Hash Against List" /></p>
<p>I found this problem in a small textminig project. Using dictionarys to search for existence of a word in an document was extremely faster than a list. So sometimes you should think about, when to use a list and when use a dictionary like an list. </p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2008/01/25/hashtable-vs-list/feed/</wfw:commentRss>
		</item>
		<item>
		<title>24C3</title>
		<link>http://kai.system7.de/2007/12/31/24c3/</link>
		<comments>http://kai.system7.de/2007/12/31/24c3/#comments</comments>
		<pubDate>Mon, 31 Dec 2007 11:19:38 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[berlin]]></category>

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

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

		<guid isPermaLink="false">http://kai.system7.de/2007/12/31/24c3/</guid>
		<description><![CDATA[Das war wieder mal ein Fest. Wie jedes Jahr hat der CCC zum Jahresende zum allgemeinen Hackertreffen im Berliner-Congress-Centrum eingeladen. Wie in den letzten Jahren schon immer mehr als Tendenz zu sehen, geht es immer mehr auch um Dinge außerhalb der Hackerszene. So gab es natürlich recht viel politisches. Kein Wunder bei Schäuble und Co. [...]]]></description>
			<content:encoded><![CDATA[<p>Das war wieder mal ein Fest. Wie jedes Jahr hat der <a href="http://www.ccc.de/">CCC</a> zum Jahresende zum allgemeinen Hackertreffen im Berliner-Congress-Centrum eingeladen. Wie in den letzten Jahren schon immer mehr als Tendenz zu sehen, geht es immer mehr auch um Dinge außerhalb der Hackerszene. So gab es natürlich recht viel politisches. Kein Wunder bei Schäuble und Co. war das nicht anders zu vermuten. Es gab auch wie beim Camp wieder mehr <a href="http://de.wikipedia.org/wiki/DIY">DIY</a>. So wurden das mittlerweile berühmte <a href="http://www.tvbgone.com/cfe_tvbg_main.php">TVBGONE</a>, <a href="http://makezine.com/10/brainwave/index.csp?page=last&#038;x-order=date&#038;x-maxdepth=0">Brainmachines</a> und nicht zu vergessen die Drohnen selbst gebaut. Beim TVBGONE gabs es sogar eine Festnahme im gegenüberliegenden Media Markt. Da hat es wohl einer etwas mit dem Testen übertrieben. Wenn auch die Festnahme sicherlich kein großes Nachspiel haben wird. Hoffe ich für den Beteiligenten. </p>
<p><img src="http://kai.system7.de/images/someonestolz.jpg" alt="Some one stolze" /></p>
<p>Sehr spannend war auch ein Vortrag zum Thema DNA Hacking. <a href="http://futur.plomlompom.de/archiv/1868/24c3-8-bio-hacking">Future:Plom</a>  hat dazu einen schönen Beitrag geschrieben. Mit einen leichten Grummeln im Bauch hab ich mir den sehr gut gemachten Vortrag angehört. Irgendwie bin ich mir bis heute noch nicht so sicher ob diese Technik gut oder schlecht für die Menschheit ist. Aufzuhalten ist sie aber nicht mehr. Daher war die Frage von Drew Endy, wie könnte man eine hackerähnliche Gemeinschaft für das Bio Hacking aufbauen als das wirklich Positive an dem Vortrag ansehen.  </p>
<p>Hochinteressant war auch ein Vortrag von <a href="http://www.bicyclemark.org/blog/">Bicyclemark</a> zum Thema &#8220;The Artic Cold War&#8221;. Verrückt wenn man bedenkt das sich bei dem Thema Staaten wie Dänemark und Kanada ( Russland ist auch mit dabei, aber darüber wunderte man sich nicht) um die territorial Rechte der Arktis streiten. Das halt mit Mitteln des Kalten Krieges. Man darf sich nicht vorstellen was passiert wenn Gazprom und Co. anfangen werden die Arktis auszuschlachten. Ganz zu schweigen vom Rechtestreitigkeiten was Schiffspassagen und deren Unfälle für die Welt bedeuten werden. Kein richtig neues Thema aber sehr gut von Bicyclemark aufgearbeitet und zusammengefasst.  </p>
<p>Aufnahmen von den Vorträgen sind auch schon im Netz. <a href="http://events.ccc.de/congress/2007/Conference_Recordings">link</a> </p>
<p>Das zu zwei von den weniger technischen Vorträgen. Das andere wird eh in den nächsten Monaten weiter im Netz aufgearbeitet werden. </p>
<p>Zum Abschluss gab es wie schon seit ca. 5 Jahren den jährlichen Blick in die Glaskugel. Wie wir alle wissen, können sich die beiden keine Kristallkugel leisten. Frank und Ron haben wieder mit dem Publikum Brainstroming gemacht. Dabei kamen recht interessante Infos raus. Adode, OS X und auch Vista werden mit ziemlicher Sicherheit in 2008 ihr Fett abbekommen. </p>
<p>Zum Schluss noch ein Bild was natürlich nicht fehlen darf.</p>
<p><img src="http://kai.system7.de/images/heart7.jpg" alt="Heart 24C3" /></p>
<p>Allen einen guten Rutsch ins (neue) Jahr 1984. </p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2007/12/31/24c3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Da sind sie&#8230;</title>
		<link>http://kai.system7.de/2007/12/29/da-sind-sie/</link>
		<comments>http://kai.system7.de/2007/12/29/da-sind-sie/#comments</comments>
		<pubDate>Sat, 29 Dec 2007 13:50:44 +0000</pubDate>
		<dc:creator>kai</dc:creator>
		
		<category><![CDATA[berlin]]></category>

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

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

		<guid isPermaLink="false">http://kai.system7.de/2007/12/29/da-sind-sie/</guid>
		<description><![CDATA[Wer sich schon immer gefragt hat wo die ganzen Schilder und das Model der Datenkrake von der Freiheit statt Angst Demo geblieben sind. Ich hab sie auf dem 24C3 gefunden. 

Sieht etwas ramponiert aus. 

]]></description>
			<content:encoded><![CDATA[<p>Wer sich schon immer gefragt hat wo die ganzen Schilder und das Model der Datenkrake von der <a href="http://www.vorratsdatenspeicherung.de/">Freiheit statt Angst</a> Demo geblieben sind. Ich hab sie auf dem <a href="http://events.ccc.de/congress/2007/Welcome!">24C3</a> gefunden. </p>
<p><img src="http://kai.system7.de/images/schilder.jpg" alt="Schilder" /></p>
<p>Sieht etwas ramponiert aus. </p>
<p><img src="http://kai.system7.de/images/krake.jpg" alt="Krake" /></p>
]]></content:encoded>
			<wfw:commentRss>http://kai.system7.de/2007/12/29/da-sind-sie/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

