

<rdf:RDF xmlns:tmpl="http://fnord/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/">
  <channel rdf:about="http://planet.entropia.de/rss.rdf">
    <title>Planet Entropia (CCC Karlsruhe)</title>
    <link>http://planet.entropia.de/</link>
    <description>Planet Entropia</description>
    <items>
      <rdf:Seq>
        
       	  <rdf:li resource="http://blog.fukami.io/archives/2013/05/19/hunde-und-katzen-essen/"></rdf:li>
	
       	  <rdf:li resource="http://blog.fukami.io/archives/2013/05/14/adblocking-ist-ein-sicherheitsthema/"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/596-How-to-play-Rock-Paper-Scissors-online.html"></rdf:li>
	
       	  <rdf:li resource="http://blog.hboeck.de/archives/817-In-eigener-Sache-Umbau.html"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/593-The-carbondioxide-footprint-of-Debians-Haskell-packages.html"></rdf:li>
	
       	  <rdf:li resource="http://nervengiftlabs.de/?p=321"></rdf:li>
	
       	  <rdf:li resource="http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/"></rdf:li>
	
       	  <rdf:li resource="http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/"></rdf:li>
	
       	  <rdf:li resource="http://blog.hboeck.de/archives/816-Questioning-copyright-treaties.html"></rdf:li>
	
       	  <rdf:li resource="http://halcy.de/past/2013/2/19/there_is_no_cyberwar/"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/590-Evaluation-State-Assertions-in-Haskell.html"></rdf:li>
	
       	  <rdf:li resource="http://www.wenger-online.de/blog/2013/02/03/cnc-sticken/"></rdf:li>
	
       	  <rdf:li resource="http://www.wenger-online.de/blog/2013/02/03/naharbeiten/"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/586-Going-to-FOSDEM-after-all.html"></rdf:li>
	
       	  <rdf:li resource="http://blog.hboeck.de/archives/815-Explain-hard-stuff-with-the-1000-most-common-words-UPGOERFIVE.html"></rdf:li>
	
       	  <rdf:li resource="http://blog.hboeck.de/archives/814-How-to-configure-your-HTTPS-server.html"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/584-Haskell-Bytes-again.html"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/583-Brief-an-den-KVV.html"></rdf:li>
	
       	  <rdf:li resource="http://blog.fukami.io/archives/2013/01/03/entschuldigt-bitte-flauscheria/"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/580-GHCi-integration-for-GHC.HeapView.html"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/578-Circle-Packing.html"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/575-Plaetzchentetris.html"></rdf:li>
	
       	  <rdf:li resource="http://www.joachim-breitner.de/blog/archives/573-Calculating-the-internal-rate-of-return-with-hledger.html"></rdf:li>
	
      </rdf:Seq>
    </items>
  </channel>
  
  <item rdf:about="http://blog.fukami.io/archives/2013/05/19/hunde-und-katzen-essen/">
    <title>The Turkey Curse: Hunde und Katzen essen‎</title>
    <link>http://blog.fukami.io/archives/2013/05/19/hunde-und-katzen-essen/</link>
    <description>&lt;p&gt;Letzte Woche war ich seit langer Zeit mal wieder unterwegs im Rheinland (z.B. zur Vorbereitung der &lt;a href=&quot;http://sigint.ccc.de&quot; title=&quot;SIGINT&quot;&gt;SIGINT&lt;/a&gt;, verschiedene Treffen im Kontext des &lt;a href=&quot;http://www.nrw-blickt-durch.de/&quot; title=&quot;Transparenzinitiative NRW blickt durch&quot;&gt;Transparenzgesetzes NRW&lt;/a&gt;, HV der &lt;a href=&quot;https://digitalegesellschaft.de/2013/05/demonstration-fur-den-schutz-der-netzneutralitat-updates/&quot; title=&quot;Demonstration für den Schutz der Netzneutralität&quot;&gt;Drosselkom&lt;/a&gt; u.a.), und es gab dabei eine Reihe seltsamer Eindrücke, über die sich gar nicht so einfach schreiben lässt. Einige Sachen muss ich dennoch loswerden, auch wenn sie missverständlich oder gar als Angriff ankommen mögen, als das sie nicht gemeint sind. &lt;/p&gt;

&lt;p&gt;Im NRW-Landtag in Düsseldorf fand auf Einladung der Landesregierung die Veranstaltung &lt;a href=&quot;http://www.nrw.de/opennrw/opennrw-1/‎&quot; title=&quot;#opennrw&quot;&gt;Zukunftsforum &amp;#8220;Digitale Bürgerbeteiligung&amp;#8221; - Open Government und Open Parliament in NRW&lt;/a&gt; statt. Um es gleich klar machen: Ich fand die Veranstaltung im Kern ganz gut und weiss durchaus sehr zu schätzen, was die Landtagsverwaltung NRW auf die Beine gestellt hat. Allerdings hoffe ich, dass bei weiteren Veranstaltungen dieser oder ähnlicher Art die Organisatoren im Detail etwas mehr Fingerspitzengefühl, Humor und Mut entwickeln. Meines Erachtens entspräche das Format wohl eher einem klassischen Barcamp, das etwas mehr Spontanität zugelassen hätte. Trotzdem muss ich sagen, dass ich es als sehr viel offener empfunden habe als erwartet.&lt;/p&gt;

&lt;p&gt;Aber wie schon angedeutet gibt es einige Anmerkungen, die ich mir einfach nicht verkneifen kann.&lt;/p&gt;

&lt;p&gt;Das &lt;a href=&quot;http://www.nrw.de/opennrw/veranstaltung-1/das-programm.html&quot; title=&quot;Programm #opennrw&quot;&gt;Programm&lt;/a&gt; startete mit den Eröffnungsreden von Landtagspräsidentin Carina Gödecke und Ministerpräsidentin Hannelore Kraft. Danach ging es direkt weiter mit dem ersten Panel &amp;#8212; und was für einem: Dort standen 10 (in Worten zehn) Männer in gleichem Aufzug einer (in Worten: einer) Frau gegenüber. Diese Frau wurde zudem mit den Worten begrüßt: &amp;#8220;Nun kommen wir zu unserer einzigen Frau in der Runde. Dafür hat sie aber einen schönen Namen&amp;#8221;. Hier ein Screenshot von diesem Teil der Veranstaltung, der durchaus etwas ikonenhaftes hat wie ich finde.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://www.nrw.de/opennrw/veranstaltung-1/videos-der-auftakt-und-abschlussdiskussion.html&quot;&gt;&lt;img src=&quot;http://dinge.fukami.io/eroeffnungspanel.png&quot; alt=&quot;Eröffnungspanel #opennrw&quot; width=&quot;600&quot;/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Anmerkung: Der Screenshot ist von dem &lt;a href=&quot;http://www.nrw.de/opennrw/veranstaltung-1/videos-der-auftakt-und-abschlussdiskussion.html&quot; title=&quot;Video Panel 1 bei #opennrw&quot;&gt;Video des Panels&lt;/a&gt;. Ein anderes Foto besserer Qualität, dass ich auf Grund der Lizenz nicht einbinden kann, findet sich bei &lt;a href=&quot;http://www.flickr.com/photos/nrwpunktde/8746319377&quot;&gt;Flickr&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;SRSLY? Im Jahre 2013 findet ein Event zum Thema &amp;#8220;Digitale Bürgerbeteiligung&amp;#8221; statt und die Veranstalter stellen dort allen Ernstes 10 Kerle und eine Frau auf die Bühne? Das ist irgendwie etwas zuviel Postgender für meinen Geschmack, und überhaupt: Dass eine Veranstaltung zu so einem Thema sogar einen geringeren Frauenanteil aufweist als die üblichen Nerdkonferenzen oder ein durchschnittlicher Parteitag der Piratenpartei, sollte sehr zu denken geben. &lt;/p&gt;

&lt;p&gt;Bemerkenswert war auf dem Panel übrigens Innenminister Jäger (dritter von links auf obigem Bild) mit dem Spruch &amp;#8220;Ich finde, Open Government hat nichts damit zu tun, dem Bürger terabyteweise Daten zuzuschieben&amp;#8221;. Doch, lieber Herr Jäger, genau das hat es. Dass der zuletzt durch seinen besonderen Einsatz für die &lt;a href=&quot;http://www.spiegel.de/netzwelt/netzpolitik/nrw-beschwor-horrorszenarien-fuer-bestandsdatenauskunft-a-899421.html&quot; title=&quot;Bestandsdatenauskunft&quot;&gt;Bestandsdatenauskunft&lt;/a&gt; und auch sonst nicht grade als Freund bürgerrechtsfreundlicher Politik bekannte SPD-Minister solche Sachen auf einem Event dieser Art von sich gibt ist schon irgendwie bitter, zeigt es doch, wie wenig ihn das Thema ganz offensichtlich interessiert, sonst hätte er mitbekommen, worum es geht. Sehr schräg war dann auch, dass auf dem Panel über Mails von Mitarbeitern diskutiert wurde, die echt niemanden interessieren, denn darum geht es in der Debatte um Offene Daten nicht und ging es auch nie, aber total vom Wesentlichen ablenken.&lt;/p&gt;

&lt;p&gt;Im Vorfeld der Veranstaltung wurde der Hashtag &lt;a href=&quot;https://twitter.com/search?q=%23opennrw&amp;amp;src=typd&quot; title=&quot;Suche nach Hashtag #opennrw bei Twitter&quot;&gt;#opennrw&lt;/a&gt; für Twitter öffentlich auf den entsprechenden Seite verkündet und sogar Broschüren damit gedruckt, woraufhin &lt;a href=&quot;https://twitter.com/Marudor/status/335293494950236161&quot; title=&quot;Marudor findet da sind zu wenig Katzen&quot;&gt;jemand&lt;/a&gt; ein kleines Script geschrieben hat, das Katzenbilder von Google geholt und mit dem entsprechenden Hashtag versehen konstant auf Twitter postete.&lt;/p&gt;

&lt;p&gt;Auf dem Event wurde zur Eröffnung verkündet, der Hashtag werde nun auf #opennrw13 geändert und sogleich bekam ich hinter mir ein Telefonat mit, in dem die Worte fielen &amp;#8220;Hey, die haben den Hashtag geändert. Hol die Katzen raus!&amp;#8221; - wohl in Anlehnung an &amp;#8220;Bring out the KRAKEN&amp;#8221;. &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dinge.fukami.io/catattack.png&quot;&gt;&lt;img src=&quot;http://dinge.fukami.io/catattack.png&quot; alt=&quot;Cat Attack auf #opennrw und #opennrw13&quot; width=&quot;600&quot;/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Symbolbild: &lt;a href=&quot;https://twitter.com/CatsForNRW/status/335751686968709121&quot; title=&quot;Katzenangriff&quot;&gt;Anhaltender Cyberangriff von Katz3n auf #opennrw und #opennrw13&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Es gab auf dem Event natürlich auch wenig überraschend &amp;#8220;Twitterwalls&amp;#8221;, bei denen irgendwann &amp;#8220;katzen&amp;#8221; und &amp;#8220;katz3n&amp;#8221; gefiltert wurden: &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dinge.fukami.io/twitterwall.jpg&quot;&gt;&lt;img src=&quot;http://dinge.fukami.io/twitterwall.jpg&quot; alt=&quot;#opennrw ohne katzen&quot; width=&quot;600&quot;/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;OpenNRW nur ohne Katzen: &lt;a href=&quot;https://twitter.com/fukami/status/335399776185102337&quot; title=&quot;Tweet: Im Landtag NRW gibt es offensichtlich eine gewisse Katzenfeindlichkeit&quot;&gt;Im Landtag NRW gibt es offensichtlich eine gewisse Katzenfeindlichkeit&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Für mich bringt das prinzipielle Defizite im Umgang mit digitaler Öffentlichkeit sehr gut auf den Punkt, und nicht zuletzt das war ja wohl auch Sinn der Übung wie ich das einschätze. Zumindest aber die Landeszentrale für politische Bildung NRW scheint es mit Humor genommen zu haben und &lt;a href=&quot;https://twitter.com/LZpBNRW/status/335308184690520065&quot; title=&quot;Tweet der Landeszentrale für politische Bildung NRW&quot;&gt;twitterte&lt;/a&gt; &amp;#8220;Kann einer mal die katze füttern!&amp;#8221;. Es sollte tatsächlich einfach als das betrachtet werden, was es ist: Ein vielleicht etwas schräges, aber durchaus herzliches und freundliches Willkommen, ein &amp;#8220;wir werden noch viel Spass haben, wenn ihr ein wenig den Stock aus dem Hintern nehmt&amp;#8221; und eine Einladung, weiter auf Augenhöhe miteinander zu reden (ja, auch auf Augenhöhe der Katzen, aber den Witz kann keiner kapieren, der nicht in einer konkreten Situation dabei war ^^). &lt;/p&gt;

&lt;p&gt;Aber ehrlich: Ich vermute, dass daraus die falschen Schlüsse gezogen werden &amp;#8212; was sich ja schon daran zeigt, dass Urheber dieser Aktion anwesend waren (nein, ich war das nicht!), aber weder IRL noch auf Twitter wirklich eine direkte Ansprache stattfand, auf die diese ganz sicher reagiert hätten. Denn das war (und ist) kein anonymer Porno-, Malware- oder Linkspam, sondern freundlich dreinblickende Katzen (und, zugegeben, das eine oder andere Pony, das sich dort eingeschlichen zu haben scheint).&lt;/p&gt;

&lt;p&gt;Zum Abschluss gab es &amp;#8212; Tusch &amp;#8212; ein weiteres Panel, dieses Mal mit nur fünf Männern und einer Frau. Schade eigentlich, waren die Workshops im Laufe des Tages doch meist von gutem Niveau, und dieses Panel war für den Abschluss zu schwach. &lt;/p&gt;

&lt;p&gt;Auch wenn das jetzt etwas merkwürdig rüberkommen mag, dass ich eine Kritik ausgerechnet an der einzigen Frau in der Gruppe richte, muss ich sie dennoch loswerden. &lt;/p&gt;

&lt;p&gt;Einmal mehr irritierte mich das Gov2.0-Netzwerk: Deren Vertreterin auf dem Panel ist nicht nur im Vorstand des Vereins, sondern auch Mitarbeiterin bei &lt;a href=&quot;http://de.wikipedia.org/wiki/Dataport&quot; title=&quot;Die Wikipedia über Dataport&quot;&gt;Dataport&lt;/a&gt;, dem Dienstleister der Verwaltungen in den Nordländern. Sie betonte zwar in der Vergangenheit mir gegenüber schon öfter, dort nur als Pressesprecherin zu arbeiten und bezeichnet sich als Journalistin (ich definiere das Wesen dieses Begriff anders, aber das nur am Rande). Angaben zu diesem Engagement findet sich aber weder auf der Webseite der Veranstaltung, noch wurde darauf bei dem Panel hingewiesen. Das wirkt ähnlich wie bei dem Blogpost &lt;a href=&quot;http://www.gov20.de/die-govdata-entrustung-ein-barendienst/&quot; title=&quot;Die GovData-Entrüstung…ein Bärendienst?&quot;&gt;Die GovData-Entrüstung…ein Bärendienst?&lt;/a&gt; damals, bei der der Autor der Kritik an der unabhängige Open Data/Open Government-Szene ebenfalls &amp;#8220;vergaß&amp;#8221; klarzustellen, was sein persönlicher Kontext ist und wie es in solchen Fällen üblich sein sollte: Er ist NTO (National Technology Officer) bei &lt;a href=&quot;http://www.microsoft.com/de-de/news/pressemitteilung.aspx?id=533381&quot; title=&quot;Pressemitteilung von Microsoft zu Thomas Langkabel&quot;&gt;Microsoft&lt;/a&gt; und war ehemals bei CSC, die &amp;#8212; Funfact am Rande und totally unrelated &amp;#8212; jetzt grade einen &lt;a href=&quot;https://netzpolitik.org/2013/bundeskriminalamt-bestatigt-anschaffung-von-staatstrojaner-gamma-finfisher-wir-haben-die-software/&quot; title=&quot;Netzpolitik zum Staatstrojaner&quot;&gt;Funktionstest des Staatstrojaner&lt;/a&gt; durchführen soll. Einen NGO als einzige Referenz zu benutzen, während man gleichzeitig in Unternehmen arbeitet, die in dem Bereich tätig sind, den man vertritt, ist mehr nur ein bisschen bemerkenswert und hatte ich auch schon während meines &lt;a href=&quot;http://re-publica.de/en/sessions/maschinenlesbare-regierung-eine-kritische-analyse-zur-gegenwart-open-data-und-open-govermen&quot; title=&quot;Vortrag zur re:publica&quot;&gt;re:publica-Vortrages&lt;/a&gt; mit Lorenz thematisiert. &lt;/p&gt;

&lt;p&gt;Grade innerhalb dieser Szenerie, die sich der Öffnung politischer und verfahrenstechnischer Prozesse verschrieben hat, ist Transparenz von ganz besonderer Bedeutung &amp;#8212; auch wenn das die Beteiligten ganz anders sehen und sich z.B. bei Facebook im Nachgang des erwähnten Blogposts darüber mokieren, diese Klarstellungen empfänden sie als störend (Sorry, ich habe keinen Facebook-Account mehr um darauf zu verlinken). Die Entscheidung und Bewertung darüber obliegt ihnen meiner Ansicht nach aber gar nicht (was ich auch schon öfter betont habe). Wenn sie also über den vielbeschworenen &amp;#8220;Kulturwandel&amp;#8221; reden wollen, ist das eben auch ein Teil dieser neuen Kultur: Klare Ansagen bei möglichen Interessenskonflikten, wie sie ganz offensichtlich existieren. Die ergeben sich automatisch durch Arbeitsverträge, und schränken die Kritikfähigkeit und -möglichkeit ganz erheblich ein. Das zeigt sich dann ja auch in eher nichtssagenden Statements auf diesem Panel, wo es durchaus noch einiges zu sagen gegeben hätte. Es sei aber auch noch einmal klar gestellt, dass es nicht als fachliche Kritik gemeint ist, und ich halte die Personen durchaus für kompetent.&lt;/p&gt;

&lt;p&gt;Im &lt;a href=&quot;http://chaosdorf.de&quot; title=&quot;Chaosdorf - CCC Düsseldorf e.V.&quot;&gt;Chaosdorf&lt;/a&gt; wurde der Abend beendet mit &amp;#8220;Freitagsfoo&amp;#8221; genannten Kurzvorträgen zu ZFS (passend im Zusammenhang der &amp;#8220;terabyteweisen Daten&amp;#8221;), Arbeitsschutz, DNS, Ideen für eigene Verschlüsselung sowie anschliessendem Konsum von &lt;a href=&quot;https://de.wikipedia.org/wiki/Barbarella_(Film)&quot; title=&quot;Barbarella&quot;&gt;Barbarella&lt;/a&gt; und Sachen wie &lt;a href=&quot;http://www.youtube.com/watch?v=r9YyaknVx_o&quot; title=&quot;Smells Like Humppa&quot;&gt;Smells Like Humppa&lt;/a&gt; von Eläkeläiset, was speziell an diesem Tag ganz besonders gut zum Ausdruck gebracht hat, wie ich einiges an diesem Tag empfunden habe.&lt;/p&gt;

&lt;p&gt;Als ich dann irgendwann spät nachts nach &amp;#8220;opennrw&amp;#8221; bei Google gesucht habe, bekam ich als Antwort folgende Seite, dessen Werbeblock an Ende der Seite mich zu dem Titel des Textes inspirierte und mich praktisch dazu zwang, das Ganze kurz niederzuschreiben. Es ist meines Erachtens wichtig sich klar zu machen, was öffentlicher Raum im Netz momentan bedeutet und wie weit das von dem entfernt ist, was es sein sollte. Oder wie ich in meiner &lt;a href=&quot;http://dinge.fukami.io/rede-dekt-fiug-2013.html&quot; title=&quot;Rede zum Kirchentag 2013&quot;&gt;Kirchentagsrede&lt;/a&gt; sagte: &amp;#8220;Der öffentliche Raum, über den wir hier reden, ist eher mit einem Kaufhaus zu vergleichen, in dem wir uns treffen und austauschen. Niemand würde das in der Realität ernsthaft als öffentlichen Raum in dem Sinne begreifen, wie wir ihn sonst ganz selbstverständlich wahrnehmen, sondern als das was es ist: Ein privater Raum mit öffentlicher Begängnis&amp;#8221;. So verwundert es eben auch nicht, womit der Begriff &amp;#8220;OpenNRW&amp;#8221; aus Sicht der Werbenden zusammenhängt. &lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://dinge.fukami.io/hunde_und_katzen_essen.jpg&quot;&gt;&lt;img src=&quot;http://dinge.fukami.io/hunde_und_katzen_essen.jpg&quot; alt=&quot;Hunde und Katzen essen!&quot; width=&quot;600&quot;/&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mal davon abgesehen, dass ich gelernt habe, in Schweiz sei es völlig normal, Hunde und Katzen zu essen: Erlebnisse an Tagen wie diesen sind es, warum ich dieses Internet einfach von ganzem Herzen liebe!&lt;/p&gt;
</description>
    <dc:date>2013-05-19T12:19:00+02:00</dc:date>
  </item>
  
  <item rdf:about="http://blog.fukami.io/archives/2013/05/14/adblocking-ist-ein-sicherheitsthema/">
    <title>The Turkey Curse: Adblocking ist ein Sicherheitsthema</title>
    <link>http://blog.fukami.io/archives/2013/05/14/adblocking-ist-ein-sicherheitsthema/</link>
    <description>&lt;p&gt;Lieber Stefan,&lt;/p&gt;

&lt;p&gt;ich schreibe dir, weil ich eine Sache klarstellen möchte: &lt;a href=&quot;http://www.sueddeutsche.de/kolumne/ausnahme-fuer-szde-bitte-deaktivieren-sie-ihren-adblocker-fuer-uns-1.1627778&quot;&gt;Ich blocke Werbung&lt;/a&gt; nicht, weil mich Werbung nervt (ich sehe die nicht mehr) oder euch um eure Einnahmen zu bringen will, sondern weil die Werbung über JavaScript von für mich alles andere als vertrauenswürdige Drittanbieter ausgeliefert wird. Ich weiss durchaus guten Journalismus zu schätzen, weiss, dass dieser nicht umsonst zu haben ist und habe vermutlich mehr Verständnis für die Probleme der Verlage als viele andere denke ich. &lt;/p&gt;

&lt;p&gt;Trotzdem kann ich nicht zulassen, dass irgendwelche Buden, die sich regelmässig pwnen lassen, meinen Rechner fernsteuern - denn das und nur das ist JavaScript: Remote Control eines Browsers durch den Server. Dieses Blocking ist also in erster Linie reiner Selbstschutz und ist auch jedem Nutzer sehr zu empfehlen.&lt;/p&gt;

&lt;p&gt;Die Historie schädlicher Werbebanner auf Medienseiten ist lang und hat so ziemlich viele schon einmal irgendwann getroffen, sei es Zeit, Spon, Heise oder Handelsblatt um nur mal ein paar zu nennen, über die Schadcode verteilt wurde. Ein Problem ist dabei auch nicht zuletzt, dass es in so einem Falle ausser einer Entschuldigung keinerlei Entschädigung für die Opfer dieser Angriffe gab und gibt (sofern die Leute überhaupt merken, dass die gehackt wurden). &lt;/p&gt;

&lt;p&gt;Ich bin nicht die Person, die tolle Ideen für Geschäftsmodelle hat, die funktionieren. Ich würde mir etwas wünschen, das für eure Branche nicht in Frage zu kommen scheint: Sowas wie eine Pauschale für alle Publikationen - in etwa nach dem Modell der GEZ für die Öffentlich-Rechtlichen. Ich nutze die Angebote eher sporadisch (meist auf Grund von Links), &amp;#8220;blättere&amp;#8221; aber praktisch auf den Seiten nie rum, womit ein Abo für mich keinen Sinn ergibt. Diese Art der Zahlung würde mir in meinem Nutzungsverhalten entgegen kommen. &lt;/p&gt;

&lt;p&gt;Micropayment ist leider in den letzten Jahren nicht wirklich weiter gekommen und ausser Flattr sehe ich momentan wenig. Ich verstehe aber auch, dass sich damit kein Journalismus auf hohem Niveau lange finanzieren lässt. &lt;/p&gt;

&lt;p&gt;Wie auch immer: Die Verantwortung für meine Sicherheit kann nur ich übernehmen - kein Staat, kein Verlag, kein Journalist und keine guten Worte. Die Konsequenz ist also, dass die Werbung, so auf die nicht verzichtet werden kann, entweder so eingebunden wird, dass sie ohne JavaScript auskommt oder sie wird schlicht geblockt. Denn mir ist Information zwar äusserst wichtig, aber nicht wichtiger als meine Sicherheit.&lt;/p&gt;

&lt;p&gt;Mit freundlichen Grüßen,
  fukami&lt;/p&gt;
</description>
    <dc:date>2013-05-14T11:11:00+02:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/596-How-to-play-Rock-Paper-Scissors-online.html">
    <title>nomeata’s mind shares: How to play Rock-Paper-Scissors online?</title>
    <link>http://www.joachim-breitner.de/blog/archives/596-How-to-play-Rock-Paper-Scissors-online.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;There was an interesting question by ‘Fool’ recently on the StackExchange site for Boardgames: &lt;a href='http://boardgames.stackexchange.com/questions/11821/abstract-move-holding-service-for-simultaneous-move-board-games'&gt;How do you play a game like Rock-Paper-Scissors with friends online?&lt;/a&gt; Or any other game where players have to simultaneously submit their moves (e.g. Diplomacy, or &lt;a href='http://en.wikipedia.org/wiki/Rock-paper-scissors-lizard-Spock'&gt;Rock-Paper-Scissors-Lizzard-Spock&lt;/a&gt;), which, as I just learned, are &lt;a href='http://en.wikipedia.org/wiki/Simultaneous_action_selection'&gt;simultaneous action selection&lt;/a&gt; games. While there are websites dedicated to playing specific games, such as &lt;a href='http://www.webdiplomacy.net/'&gt;webdiplomacy.net&lt;/a&gt;, we could not find a generic one that you can use if you, for example, invent your own variants of a game.&lt;br/&gt;&lt;/p&gt; 
&lt;p&gt;So I created one: At &lt;a href='http://you-say-first.nomeata.de'&gt;you-say-first.nomeata.de&lt;/a&gt; you can enter rooms and share the URL with your friends. On the one hand, you have a regular chat room there. But there is also the possibility to enter moves (whatever a move may be to you) and only when all players have done that and marked the move as final, it is shown to everyone. If you want to try it out: There is an integrated, not very fancy Rock-Paper-Scissors-playing bot. Just enter a room, join and say „I want to play!“&lt;br/&gt;&lt;/p&gt; 
&lt;p&gt;Note that this site can be used for more than just for games. Have you ever observed that persons would often want other to express their preference (e.g. where to dine) first to not reveal their own preference, so that they can (or pretend to) change their mind if they would contradict? In such situations simultaneous action selection can be a fairer method.&lt;/p&gt; 
&lt;p&gt;A technical note: I created this web app using &lt;a href='http://www.meteor.com/'&gt;meteor&lt;/a&gt; (a JavaScript framework building on &lt;a href='http://nodejs.org/'&gt;node.js&lt;/a&gt; and &lt;a href='http://www.mongodb.org/'&gt;MongoDB&lt;/a&gt; that allows for reactive programming), and it is also hosted on meteor.com. I chose Meteor after someone mentioned &lt;a href='https://www.firebase.com/'&gt;Firebase&lt;/a&gt; to me, which looked very slick, but was not Free Software, so I looked for alternatives. I did not do any cross-browser-testing, and the UI design could be improved, so if you want to help out (or just complain), please use the &lt;a href='https://github.com/nomeata/you-say-first'&gt;GitHub code repository&lt;/a&gt; and &lt;a href='https://github.com/nomeata/you-say-first/issues'&gt;issue tracker&lt;/a&gt;.&lt;br/&gt;&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2013-05-11T10:26:00+02:00</dc:date>
  </item>
  
  <item rdf:about="http://blog.hboeck.de/archives/817-In-eigener-Sache-Umbau.html">
    <title>Hanno's blog: In eigener Sache - Umbau</title>
    <link>http://blog.hboeck.de/archives/817-In-eigener-Sache-Umbau.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                Seit 2004 existiert nun dieses Blog von mir. Zeitweise viel genutzt, zeitweise weniger und in letzter Zeit kaum noch. Ein privates Projekt, ein Ort, an dem ich schreiben konnte was ich wollte.&lt;br/&gt;
&lt;br/&gt;
Zwischenzeitlich hat sich bei mir einiges geändert. Ich schreibe weiterhin viel und gern, aber selten hier. Ich bin inzwischen primär als freier Journalist tätig und meine Texte können unter anderem bei der taz, bei Golem, bei Telepolis und gelegentlich sogar bei Zeit online gelesen werden. Mein Blog entwickelte sich zum unpassenden Relikt, gleichzeitig habe ich das Gefühl, dass ich endlich eine Selbstdarstellungsseite für meine journalistische Arbeit benötige und mein Blog dafür in seiner aktuellen Form denkbar ungeeignet ist.&lt;br/&gt;
&lt;br/&gt;
Deshalb wird jetzt hier umgebaut. Mein Blog soll weiter existieren, zum einen natürlich als Archiv und zum anderen soll es nicht ganz sterben. Es wird immer wieder Anlässe geben, die für einen Blogeintrag besser geeignet sind als für einen journalistischen Text. Und wer weiß, je nach Laune wird es vielleicht auch wieder lebendiger.&lt;br/&gt;
&lt;br/&gt;
Das Blog wird künftig unter blog.hboeck.de beheimatet. Abgesehen von der Startseite werden alle alten Links umgeleitet. Probleme bereiten könnte das für manche Feedreader und Aggregatoren. Alles, was HTTP-Redirects versteht, sollte weiter seine Inhalte finden.&lt;br/&gt;
&lt;br/&gt;
Unter der Hauptdomain hboeck.de soll dann irgendwann ein Überblick über meine journalistische Arbeit zu finden sein. Vorerst gibt's &lt;a href='http://wiki.hboeck.de/Artikel'&gt;hier&lt;/a&gt; auch schon eine notdürftige Übersicht über von mir verfasste Beiträge in anderen Medien. 
            &lt;/div&gt;
        </description>
    <dc:date>2013-05-09T13:44:00+02:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/593-The-carbondioxide-footprint-of-Debians-Haskell-packages.html">
    <title>nomeata’s mind shares: The carbondioxide footprint of Debian's Haskell packages</title>
    <link>http://www.joachim-breitner.de/blog/archives/593-The-carbondioxide-footprint-of-Debians-Haskell-packages.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;
By now, Debian ships quite &lt;a href='http://qa.debian.org/developer.php?login=pkg-haskell-maintainers@lists.alioth.debian.org'&gt;a lot of Haskell packages&lt;/a&gt; (~600). Because of GHC's ABI volatility, whenever we upload a new version of a library, we have to rebuild all libraries that depend on that. In particular, if we upload a new version of the compiler itself, we have to rebuild all Haskell library packages. So we have to rebuild stuff a lot. Luckily, Debian has a &lt;a href='https://buildd.debian.org/'&gt;decent autobuilding setup&lt;/a&gt; so that I just need to tell it what to rebuild, and the rest happens automatically (including &lt;a href='http://upsilon.cc/~zack/blog/posts/2009/07/wanna-build_gains_detection_of_uninstallable_build-deps/'&gt;figuring out the actual order to build things&lt;/a&gt;). &lt;br/&gt;&lt;/p&gt; 
&lt;p&gt;I was curious how much we use the buildd system compared to other packages, and also how long the builders are busy building Haskell packages. All the data is in a postgresql database on buildd.debian.org, so with some python and javascript code, I can visualize this. &lt;a href='https://buildd.debian.org/~nomeata/graphs.cgi'&gt;The graphs&lt;/a&gt; show the number of all uploads by autobuilder on the amd64 architecture, with haskell uploads specially marked, and the second graph does the same for the build time. You can select time ranges and get aggregate statistics for that time span.&lt;/p&gt; 
&lt;p&gt;During the last four days a complete rebuild was happening, due to the upload of GHC 7.6.3. During these 2 days and 18 hours building 537 packages took 48 hours of build time and produced 15kg of CO&lt;sub&gt;2&lt;/sub&gt;. That is 94% of all uploads and 91% the total build time&lt;sub/&gt;. The numbers are lower for the whole of last year: 52% of uploads, 31% of build time and 57kg of CO&lt;sub&gt;2&lt;/sub&gt;. (The CO&lt;sub&gt;2&lt;/sub&gt; numbers are very rough estimates.)&lt;br/&gt;&lt;/p&gt; 
&lt;p&gt;Note that amd64 is a bit special, as most packages are uploaded on this architecture by the developers, so no automatic builds are happening. On other architectures have, every upload of a (arch:any) package is built, so the share of Haskell packages will be lower. Unfortunately, at the moment the database does not provide me with a table across all architectures (and I was too lazy to make it configurable yet).&lt;br/&gt;&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2013-04-24T11:36:00+02:00</dc:date>
  </item>
  
  <item rdf:about="http://nervengiftlabs.de/?p=321">
    <title>NervengiftLabs: API der Karlsruher Verkehrsbetriebe</title>
    <link>http://nervengiftlabs.de/?p=321</link>
    <description>&lt;p&gt;Dieser Beitrag interessiert wahrscheinlich hauptsächlich die Karlsruher Leser&amp;#8230;&lt;/p&gt;
&lt;p&gt;Die Karlsruher Verkehrsbetriebe (KVV) stellten vor kurzem ihre für Smartphones optimierte &lt;a href=&quot;http://live.kvv.de&quot; target=&quot;_blank&quot;&gt;Web-App&lt;/a&gt; vor, mit der man u.a. live Abfahrtsdaten für  alle Haltestellen bekommen kann.&lt;/p&gt;
&lt;p&gt;Aber eigentlich will man ja eine API haben, um selbst mit den Daten zu spielen&amp;#8230;&lt;/p&gt;
&lt;p&gt;Da das ganze natürlich mit AJAX funktioniert kann man schön mitlauschen, &lt;em&gt;wen&lt;/em&gt; man &lt;em&gt;was&lt;/em&gt; fragen muss, um selbst an diese Daten zu kommen. Es stellte sich sogar raus, dass mein erster Versuch, nämlich die Kommunikation via Wireshark mitzuschneiden, schon Overkill war, denn es handelt sich um reine GET-Anfragen, der API-Key wird als Parameter übergeben. Steht alles im Quellcode der Seite &lt;img src='http://nervengiftlabs.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;Ich hab mich dann gleich mal drangemacht, die API ein bisschen zu dokumentieren und Python-Bindings zu schreiben. Gibt&amp;#8217;s beides &lt;a href=&quot;https://github.com/nervengift/kvvliveapi&quot; target=&quot;_blank&quot;&gt;auf meinem Github&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Wenn jemand Bindings für andere Sprachen oder coole Statistik-Tools baut, darf er mir die gerne verlinken &lt;img src='http://nervengiftlabs.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
</description>
    <dc:date>2013-03-25T13:01:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/">
    <title>Wenger Online#Blog: Reise nach Anshan, Liaoning, China</title>
    <link>http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/</link>
    <description>&lt;p&gt;Ich war eine Woche gesch&amp;#228;ftlich in Anshan in der Provinz Liaoning in China. Anshan ist f&amp;#252;r chinesische Verh&amp;#228;ltnisse eine kleine Stadt mit *nur* etwas mehr als 3 Millionen Einwohnern. Der n&amp;#228;chste international erreichbare Flughafen ist in Shenyang von wo aus es noch etwas mehr als eine Stunde mit dem Auto bis Anshan ist.&lt;/p&gt;
&lt;p&gt;F&amp;#252;r eine Reise nach China ben&amp;#246;tigt man ein Visum welches man nicht zu knapp vor der Reise besorgen sollte, die eigentliche Einreise geht dann recht unspektakul&amp;#228;r &amp;#252;ber die Runde, man f&amp;#252;llt noch im Flugzeug einen Einreisezettel mit der Hoteladresse aus und wird nach einem kurzen Blick in den Ausweis durch den Zoll gewunken.&lt;/p&gt;
&lt;p&gt;Als ich in Anshan angekommen war, fehlten mir und noch drei weiteren Reisenden aus Deutschland das Gep&amp;#228;ck. Trotz der sehr hilfsbereiten Flughafenmitarbeiter war es nicht gerade einfach die notwendigen Antr&amp;#228;ge zur Gep&amp;#228;cksuche auszuf&amp;#252;llen, da niemand im ganzen Flughafen mehr als 2 Worte englisch sprechen konnte. Im laufe des Abends wurde das Gep&amp;#228;ck irgendwo wiedergefunden und am darauffolgenden Tag direkt in das Hotel geliefert.&lt;/p&gt;
&lt;p&gt;&lt;a name=&quot;HEADING&quot;&gt;&lt;/a&gt;Ich &amp;#252;bernachtete, wie schon bei fr&amp;#252;heren Besuchen, im Wu Huan Hotel. Die Eingangshalle strotzt China typisch nur so von Marmor, Gold und Glitzer. Der Rest vom Hotel ist im gleichen Stil gebaut, doch vielen Ecken sieht man deutlich an das seit dem Bau wohl noch nie etwas renoviert wurde.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1036-DSCF1040.jpg&quot;&gt;&lt;img class=&quot;alignnone  wp-image-415&quot; title=&quot;Blick vom Hotelzimmer&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1036-DSCF1040-1024x316.jpg&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ganz oben im 27ten Stock gibt es morgens immer das Fr&amp;#252;hst&amp;#252;ck und wenn man Gl&amp;#252;ck hat die aufgehende Sonne &amp;#252;ber der Stadt. Leider ist es schwierig sch&amp;#246;ne Bilder von hier oben zu machen, da die Fenster wohl l&amp;#228;nger nicht mehr geputzt wurden.&lt;/p&gt;
&lt;p&gt;Trotz der ganzen Arbeit war es mir m&amp;#246;glich an einem Tag die gr&amp;#246;&amp;#223;te Jade Buddha Statue der Welt zu besuchen. Der Tempel liegt direkt am Rande der Stadt neben einem riesigen Park.&lt;br /&gt;

&lt;a href='http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/dscf1036-dscf1040/' title='Blick vom Hotelzimmer'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1036-DSCF1040-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;Blick vom Hotelzimmer&quot; title=&quot;Blick vom Hotelzimmer&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/dscf1042/' title='DSCF1042'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1042-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;DSCF1042&quot; title=&quot;DSCF1042&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/dscf1046/' title='DSCF1046'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1046-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;DSCF1046&quot; title=&quot;DSCF1046&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/dscf1047/' title='DSCF1047'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1047-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;DSCF1047&quot; title=&quot;DSCF1047&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/dscf1048/' title='DSCF1048'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1048-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;DSCF1048&quot; title=&quot;DSCF1048&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/dscf1057/' title='DSCF1057'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1057-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;DSCF1057&quot; title=&quot;DSCF1057&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/dscf1058/' title='DSCF1058'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1058-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;DSCF1058&quot; title=&quot;DSCF1058&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/23/reise-nach-anshan-liaoning-china/dscf1063/' title='DSCF1063'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/DSCF1063-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;DSCF1063&quot; title=&quot;DSCF1063&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
</description>
    <dc:date>2013-03-23T18:33:42+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/">
    <title>Wenger Online#Blog: CNC Sticken II</title>
    <link>http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/</link>
    <description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Trauriger Roboter f&amp;#252;r ein T-Shirt. Vorlage, von Hand reduziert auf wenige Farben und komplizierte Details vereinfacht. Beim ersten Sticken habe ich vergessen zus&amp;#228;tzlich dieses Stickflie&amp;#223; unterzulegen und es hat mir ganz viele L&amp;#246;cher in den Stoff gestickt. Leider war das T-Shirt dann nicht mehr zu retten, der zweite Versuch hat dann schon besser geklappt.&lt;/p&gt;

&lt;a href='http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/robot5/' title='Sad Robot - Vorlage'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/Robot5-150x150.png&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;Sad Robot - Vorlage&quot; title=&quot;Sad Robot - Vorlage&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/sam_1679/' title='SAM_1679'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/SAM_1679-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;SAM_1679&quot; title=&quot;SAM_1679&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/sam_1681/' title='SAM_1681'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/SAM_1681-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;SAM_1681&quot; title=&quot;SAM_1681&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/sam_1684/' title='SAM_1684'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/SAM_1684-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;SAM_1684&quot; title=&quot;SAM_1684&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/sam_1685/' title='SAM_1685'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/SAM_1685-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;SAM_1685&quot; title=&quot;SAM_1685&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/03/15/cnc-sticken-ii/sam_1686/' title='SAM_1686'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/03/SAM_1686-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;SAM_1686&quot; title=&quot;SAM_1686&quot; /&gt;&lt;/a&gt;

</description>
    <dc:date>2013-03-15T17:00:46+01:00</dc:date>
  </item>
  
  <item rdf:about="http://blog.hboeck.de/archives/816-Questioning-copyright-treaties.html">
    <title>Hanno's blog: Questioning copyright treaties</title>
    <link>http://blog.hboeck.de/archives/816-Questioning-copyright-treaties.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                Yesterday, I read a &lt;a href='http://www.heise.de/newsticker/meldung/Urheberrecht-Gruene-gegen-Auskunftsanspruch-und-fuer-Bagatellklausel-1815622.html'&gt;news about the green party's proposals for a copyright reform&lt;/a&gt; (strictly speaking, there's no copyright in Germany, it's called &quot;Urheberrecht&quot;, but I'll stick with the term copyright, because it's commonly understood). One point was that they claimed they don't see any perspectives for a so-called cultural flatrate due to EU law. The basic idea of a cultural flatrate is that it would legalize private filesharing while putting a fee on internet access.&lt;br/&gt;
&lt;br/&gt;
My point is more the reasoning than the issue itself. Because that's a repeating pattern. Whenever someone makes a proposal to change something relevant in copyright or patent law, this is pretty much always the conclusion: It's not possible due to one or another international law or treaty. The discussion ends before anyone can make any real argument why some copyright change might be a good idea or not.&lt;br/&gt;
&lt;br/&gt;
The EU directive that, according to the green party, forbids a cultural flatrate is the &lt;a href='https://en.wikipedia.org/wiki/Copyright_Directive'&gt;EU Copyright Directive from 2001&lt;/a&gt;. This directive is itself an implementaiton of the &lt;a href='https://en.wikipedia.org/wiki/World_Intellectual_Property_Organization_Copyright_Treaty'&gt;WIPO Copyright Treaty from 1996&lt;/a&gt;.&lt;br/&gt;
&lt;br/&gt;
Other treaties that are often relevant are the &lt;a href='https://en.wikipedia.org/wiki/Berne_Convention_for_the_Protection_of_Literary_and_Artistic_Works'&gt;Berne Convention&lt;/a&gt; and the &lt;a href='https://en.wikipedia.org/wiki/Agreement_on_Trade-Related_Aspects_of_Intellectual_Property_Rights'&gt;TRIPS Agreement&lt;/a&gt; of the WTO from 1994.&lt;br/&gt;
&lt;br/&gt;
What all of those treaties have in common and what I find - in its combination - very troubling:&lt;br/&gt;
&lt;ul&gt;&lt;li&gt;They've been created at a time where many people affected by it today weren't allowed to vote or even weren't born.&lt;/li&gt;&lt;li&gt;They were created in a time where the Internet as we know it today and the issues related to it simply didn't exist.&lt;/li&gt;&lt;li&gt;It's hard to impossible to change those treaties.&lt;/li&gt;&lt;li&gt;There has never been a wide public discussion about any of those treaties, the terms TRIPS, Berne Convention or WIPO copyright treaty are mostly unknown to the general public.&lt;/li&gt;&lt;/ul&gt;To put it simply: There's something terribly wrong. In so many ways. As I already said above, this is not about the question whether the cultural flatrate is a good idea. It's about the fact that it's almost impossible to make any proposal for a change in the way copyright works. That can't be good, no matter how you feel about copyright issues in general. 
            &lt;/div&gt;
        </description>
    <dc:date>2013-03-05T20:44:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://halcy.de/past/2013/2/19/there_is_no_cyberwar/">
    <title>halcy.de v4: There is no Cyberwar</title>
    <link>http://halcy.de/past/2013/2/19/there_is_no_cyberwar/</link>
    <description>&lt;p&gt;Recently, there has been widespread hysteria about the &lt;a href=&quot;http://www.nytimes.com/2013/02/19/technology/chinas-army-is-seen-as-tied-to-hacking-against-us.html?pagewanted=all&amp;amp;_r=0&quot;&gt;Chinese government&lt;/a&gt;, like the governments of the &lt;a href=&quot;https://en.wikipedia.org/wiki/Stuxnet&quot;&gt;United States of America&lt;/a&gt; and &lt;a href=&quot;https://en.wikipedia.org/wiki/Flame_(malware)&quot;&gt;Israel&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/2007_cyberattacks_on_Estonia&quot;&gt;Russia&lt;/a&gt; before it, possibly endorsing or supporting people breaking into other peoples computer systems. In the light of the panic being spread by people for whom a general state of fear about foreign people breaking into your computers might be advantageous, it is important to remember one thing:&lt;/p&gt;

&lt;p&gt;&lt;b&gt;There is no Cyberwar&lt;/b&gt;. Cyberwar is not a thing that is happening anywhere or at any time, nor is it a thing that has ever happened. It is not a thing that is likely to happen in the near future.&lt;/p&gt;

&lt;p&gt;Lets break the word &amp;#8220;Cyberwar&amp;#8221; down into parts. It is made from the word &amp;#8220;Cyber&amp;#8221;, a prefix used by people who are not competent with computers to mean &amp;#8220;Computer things we do not understand&amp;#8221;, and &amp;#8220;War&amp;#8221;, which is generally understood to mean &amp;#8220;violent conflict between nations&amp;#8221;, or at least &amp;#8220;violent, armed conflict&amp;#8221;. The kind of conflict where destruction is widespread and people die.&lt;/p&gt;

&lt;p&gt;You might have noticed that we haven&amp;#8217;t really seen anyone dying from supposed &amp;#8220;Cyberwarfare&amp;#8221; - at best, there has been economic damage from IP violations, and some breakage of Iranian centrifuges - arguably the most war-like &amp;#8220;act of cyberwarfare&amp;#8221; to date, and funnily enough perpetrated by the people who are now crying the loudest about it.&lt;/p&gt;

&lt;p&gt;That there is no cyberwar does not, by any means, mean that there is no computer crime. There is stealing of industrial secrets, there is mass spamming and scamming, there is all around virus writing and breaking into computer systems by criminal organizations.&lt;/p&gt;

&lt;p&gt;Which brings us to the actual, important point: Computer crime is a real, existing, hard to solve problem. Which is exactly why the panic about &amp;#8220;Cyberwar&amp;#8221; is so harmful - it distracts from the problems we actually have, in lieu of problems that are for the most part made up or actually &lt;i&gt;created&lt;/i&gt; by the measures that are supposedly taken to prevent them.&lt;/p&gt;

&lt;p&gt;There is no Cyberwar, but if a general and a bunch of politicians on a power trip create a &amp;#8220;Cyberwarfare Division&amp;#8221;, there suddenly is a whole lot more people writing malware and doing things that destabilize the internet and hurt the network as well as society as a whole. There suddenly is pressure on security professionals to let &lt;i&gt;some&lt;/i&gt; malware slide and to build backdoors into their systems, which invariably get abused or &lt;a href=&quot;https://en.wikipedia.org/wiki/Staatstrojaner#Bundestrojaner&quot;&gt;introduce new security vulnerabilities&lt;/a&gt;. There suddenly are people selling &amp;#8220;security consulting&amp;#8221; to scared companies, making sure they are protected against a threat that for the most part just doesn&amp;#8217;t exist while leaving their systems open to the more everyday, less sexy security problems that cannot be solved by applying quickfixes at 90USD/hr.&lt;/p&gt;

&lt;p&gt;It is 2013, computer security is not a thing that is solved or can be solved easily, and the &amp;#8220;Cyberwar&amp;#8221; hysteria is making it worse. So please: Stop. &lt;b&gt;Stop panicing about Cyberwar&lt;/b&gt;. There is no Cyberwar, and the panic about Cyberwar is harmful and in the way of making actual progress towards getting more in control of problems we actually have. &lt;/p&gt;</description>
    <dc:date>2013-02-19T20:11:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/590-Evaluation-State-Assertions-in-Haskell.html">
    <title>nomeata’s mind shares: Evaluation-State Assertions in Haskell</title>
    <link>http://www.joachim-breitner.de/blog/archives/590-Evaluation-State-Assertions-in-Haskell.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;I have just uploaded a new version of &lt;a href='http://hackage.haskell.org/package/ghc-heap-view'&gt;ghc-heap-view&lt;/a&gt; to Hackage that provides “Evaluation state assertions” in the module &lt;a href='http://hackage.haskell.org/packages/archive/ghc-heap-view/0.4.2.0/doc/html/GHC-AssertNF.html'&gt;&lt;tt&gt;GHC.AssertNF&lt;/tt&gt;&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Imagine you are writing a web application in Haskell that sports a global number-of-visitors counter in an &lt;tt&gt;&lt;a href='http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-IORef.html#t:IORef'&gt;IORef&lt;/a&gt; Int&lt;/tt&gt;. For every request, you call &lt;tt&gt;&lt;a href='http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-IORef.html#v:modifyIORef'&gt;modifyIORef&lt;/a&gt; (+1)&lt;/tt&gt;. Eventually, you notice your very popular web site to hog more and more memory. So you browse to the internal page that shows the counter, and you have to wait for a long time until you eventually see the result (or get a stack overflow). The reason: The applications of&amp;#160; &lt;tt&gt;(+1)&lt;/tt&gt; were not performed until you looked at the number; instead, a long chain of such computation first filled your heap and then your stack.&lt;/p&gt; 
&lt;p&gt;So you have learned the hard way that you might want to avoid space leaks, and want calculations to be done during the request that caused them, and want the &lt;tt&gt;IORef&lt;/tt&gt; to always contain fully evaluated data. So you stumble about &lt;a href='http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-IORef.html#v:modifyIORef-39-'&gt;&lt;tt&gt;modifyIORef'&lt;/tt&gt;&lt;/a&gt; in &lt;tt&gt;Data.IORef&lt;/tt&gt; and indeed, this fixes your problem.&lt;/p&gt; 
&lt;p&gt; Later, you notice that you want to count &lt;tt&gt;POST&lt;/tt&gt; and &lt;tt&gt;GET&lt;/tt&gt; requests separately. You change the type to &lt;tt&gt;IORef (Int, Int)&lt;/tt&gt; and call &lt;tt&gt;modifyIORef' (&lt;a href='http://www.haskell.org/ghc/docs/latest/html/libraries/base//Control-Arrow.html#v:first'&gt;first&lt;/a&gt; (+1))&lt;/tt&gt; or &lt;tt&gt;modifyIORef' (&lt;a href='http://www.haskell.org/ghc/docs/latest/html/libraries/base//Control-Arrow.html#v:second'&gt;second&lt;/a&gt; (+1))&lt;/tt&gt;. And suddenly, the space leak is back (which you only notice after the next push to the real site, because your local tests never caused enough requests to make it noticeable). So you not only want to fix it, you also want to ensure that it does not break again.&lt;/p&gt; 
&lt;p&gt;In other words, you want to ensure the policy that values stored in an &lt;tt&gt;IORef&lt;/tt&gt; are always in normal form. You achieve this with the following alternative to &lt;tt&gt;modifyIORef'&lt;/tt&gt;:&lt;/p&gt; 
&lt;pre&gt;modifyIORef'Assert :: IORef a -&amp;gt; (a -&amp;gt; a) -&amp;gt; IO ()
modifyIORef'Assert ref f = do
    x &amp;lt;- readIORef ref
    let x' = f x
    x' `seq` return ()
    &lt;a href='http://hackage.haskell.org/packages/archive/ghc-heap-view/0.4.2.0/doc/html/GHC-AssertNF.html#v:assertNF' title='' target=''&gt;assertNF&lt;/a&gt; x'
    writeIORef ref x'&lt;/pre&gt; 
&lt;p&gt;Using this instead of &lt;tt&gt;modifyIORef'&lt;/tt&gt; will print this warning to standard error output right the first time you call &lt;tt&gt;modifyIORef'Assert (first (+1))&lt;/tt&gt;:&lt;/p&gt; 
&lt;pre&gt;Parameter not in normal form: 2 thunks found:
let x1 = (S# 1,S# 1)
in _bh (_thunk x1 (_bco (S# 1)),_sel x1)
&lt;/pre&gt; 
&lt;p&gt;(Otherwise, the program runs as usual.) So obviously, you need to use a strict variant of &lt;tt&gt;first&lt;/tt&gt; (or &lt;a href='http://hackage.haskell.org/packages/archive/strict/0.3.2/doc/html/Data-Strict-Tuple.html'&gt;strict pairs&lt;/a&gt;):&lt;/p&gt; 
&lt;pre&gt;first' :: (a -&amp;gt; b) -&amp;gt; (a, c) -&amp;gt; (b, c)
first' f (x,y) = let { x' = f x; r = (x', y) } in x' `seq` r `seq` r
&lt;/pre&gt; 
&lt;p&gt;With this, the warning goes away. Whenever you now change the type of the &lt;tt&gt;IORef&lt;/tt&gt; or modify it in a too-lazy-way, you can be sure that you’ll be warned about it, before the space leak itself becomes noticeable.&lt;/p&gt; 
&lt;p&gt;In the production code, you might want to disable the check. For that, simply put &lt;a href='http://hackage.haskell.org/packages/archive/ghc-heap-view/0.4.2.0/doc/html/GHC-AssertNF.html#v:disableAssertNF'&gt;&lt;tt&gt;disableAssertNF&lt;/tt&gt;&lt;/a&gt; somewhere in your main function.&lt;/p&gt; 
&lt;p&gt;Why is this better than just calling &lt;a href='http://hackage.haskell.org/packages/archive/deepseq/1.3.0.1/doc/html/Control-DeepSeq.html#v:deepseq'&gt;&lt;tt&gt;deepseq&lt;/tt&gt;&lt;/a&gt; in &lt;tt&gt;modifyIORef'Assert&lt;/tt&gt;? Because this way, the code still creates unwanted thunks that are then evaluated before storing them in the &lt;tt&gt;IORef&lt;/tt&gt;, whereas with &lt;tt&gt;assertNF&lt;/tt&gt; you are told about the thunks and can prevent them from being created in the first place. Also, &lt;tt&gt;assertNF&lt;/tt&gt; does not add a type class constraint.&lt;/p&gt; 
&lt;p&gt;This is just one example application for &lt;tt&gt;assertNF&lt;/tt&gt; (and its variants &lt;a href='http://hackage.haskell.org/packages/archive/ghc-heap-view/0.4.2.0/doc/html/GHC-AssertNF.html#v:assertNFNamed'&gt;&lt;tt&gt;assertNFNamed&lt;/tt&gt;&lt;/a&gt;, which includes a name in the warning to better spot the cause, and &lt;tt&gt;$&lt;a href='http://hackage.haskell.org/packages/archive/ghc-heap-view/0.4.2.0/doc/html/GHC-AssertNF.html#v:assertNFHere'&gt;assertNFHere&lt;/a&gt;&lt;/tt&gt;, which uses Template Haskell to include the current source code position in the warning), and I hope that there are more. If you happen to make use of it, I’d like to hear your story.&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2013-02-06T09:33:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.wenger-online.de/blog/2013/02/03/cnc-sticken/">
    <title>Wenger Online#Blog: CNC-Sticken</title>
    <link>http://www.wenger-online.de/blog/2013/02/03/cnc-sticken/</link>
    <description>&lt;p&gt;Zu Weihnachten habe ich mir eine Stickmaschine geschenkt. Eine Brother Innovis 900. Mit einem XY-Tischchen kann diese bis zu 10x10cm, mit einem Trick auch bis zu 10x20cm, gro&amp;#223;e Bereiche besticken. &amp;#220;ber einen USB Anschlu&amp;#223; auf der Seite kann man eigene Bilder in die Maschine laden.&lt;/p&gt;
&lt;p&gt;Der Geburtstagswunsch unseres Sohnes war nun der Anla&amp;#223; diese Funktion endlich mal genauer unter die Lupe zu nehmen.&lt;/p&gt;
&lt;p&gt;Davor kommt aber erst der beschwerliche Weg das gew&amp;#252;nschte Bild ins passende Format zu bringen. Da wir beim Sticken nicht 300 mal die Fadenfarbe wechseln wollen ist es wichtig sich auf m&amp;#246;glichst wenige Farben zu beschr&amp;#228;nken. Die meisten Bilder, auch wenn sie auf den ersten Blick so aussehen als ob sie nur aus wenigen Farben bestehen, haben an den &amp;#220;berg&amp;#228;ngen ganz viele zwischen Farben.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/sticken-detail1.png&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-387&quot; title=&quot;Sticken Pixel&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/sticken-detail1.png&quot; alt=&quot;&quot; width=&quot;140&quot; height=&quot;96&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;F&amp;#252;r dieses Bild (weil es Comicartige schwarze R&amp;#228;nder um jeden Farbbereich hat) war es die beste Methode das Bild zuerst in Scharz-Weiss zu wandeln und dann die Fl&amp;#228;chen wieder mit dem Floodfill werkzeug zu f&amp;#252;llen.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/sticken-detail2.png&quot;&gt;&lt;img class=&quot;alignnone size-full wp-image-388&quot; title=&quot;Sticken reduzierte Farben&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/sticken-detail2.png&quot; alt=&quot;&quot; width=&quot;140&quot; height=&quot;96&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Normale Bilder und Zeichnungen sind als sogenannte Bitmaps gespeichert. Das heisst f&amp;#252;r jeden Bildpunkt ist gespeichert welche Farbe er hat, aber es gibt keine Information dar&amp;#252;ber welche Bildpunkte zum Beispiel eine Linie oder Fl&amp;#228;che bilden. Damit ein Bild gestickt werden kann muss diese Information zuerst wieder gewonnen werden, das nennt man vektorisieren. Die meisten Stickprogramme haben dazu eine entsprechende Funktion, hier k&amp;#246;nnen dann noch Details eingestellt werden. Zum Beispiel wie genau die Vektoren sich an kleine Zipfel ann&amp;#228;hern sollen und welche Farben gestickt werden sollen.&lt;/p&gt;
&lt;p&gt;Da das Motiv auf einen dunklen Stoff gestickt werden soll, habe ich die &amp;#228;u&amp;#223;eren schwarzen R&amp;#228;nder teilweise entfernt, besonders zwischen den Haarstr&amp;#228;hnen. Bei einem Test war der schwarze Rand da viel zu dominant. An vielen Stellen k&amp;#246;nnen gleichfarbige Fl&amp;#228;chen allein durch eine &amp;#196;nderung der Stickrichtung sichtbar gemacht werden.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/sticken-detail3.png&quot;&gt;&lt;img class=&quot;alignnone  wp-image-389&quot; style=&quot;margin-left: 32px; margin-right: 32px;&quot; title=&quot;Sticken 1&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/sticken-detail3.png&quot; alt=&quot;&quot; width=&quot;47&quot; height=&quot;200&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/sticken-detail4.png&quot;&gt;&lt;img class=&quot;alignnone  wp-image-390&quot; style=&quot;margin-left: 32px; margin-right: 32px;&quot; title=&quot;Sticken &quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/sticken-detail4-123x300.png&quot; alt=&quot;&quot; height=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Das Resultat sieht ganz gut gelungen aus, nur die gef&amp;#252;llten Fl&amp;#228;chen sind leider etwas zu klein geworden, so da&amp;#223; zwischen Umrandung und Rand etwas der unbestickte Stoff zu sehen ist. Das kommt daher das der Orginalstoff weicher ist als der den ich f&amp;#252;r die Tests verwendet habe. In der Sticksoftware g&amp;#228;be daf&amp;#252;r einen Korrektionsparamater, der die Stiche dann ein paar Prozente gr&amp;#246;&amp;#223;er macht.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/Pulli-Wickie.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-393&quot; style=&quot;margin-left: 32px; margin-right: 32px;&quot; title=&quot;Pulli-Wickie&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/Pulli-Wickie-267x300.jpg&quot; alt=&quot;&quot; width=&quot;267&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/Pulli-Wickie-Detail.jpg&quot;&gt;&lt;img class=&quot;alignnone size-medium wp-image-394&quot; style=&quot;margin-left: 32px; margin-right: 32px;&quot; title=&quot;Pulli-Wickie-Detail&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/Pulli-Wickie-Detail-268x300.jpg&quot; alt=&quot;&quot; width=&quot;268&quot; height=&quot;300&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
</description>
    <dc:date>2013-02-03T21:32:18+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.wenger-online.de/blog/2013/02/03/naharbeiten/">
    <title>Wenger Online#Blog: Näharbeiten</title>
    <link>http://www.wenger-online.de/blog/2013/02/03/naharbeiten/</link>
    <description>&lt;p&gt;unsere Kleinen brauchten neue M&amp;#252;tzen f&amp;#252;r Schnee, gew&amp;#252;nscht war was &amp;#8220;Drachiges&amp;#8221;. Durch den verl&amp;#228;ngerten Halsteil bleibt es auch bei eisigem Wind sch&amp;#246;n warm an den Ohren. Wenn gew&amp;#252;nsch kann ich gerne ein Schnittmuster hochladen. Passende Handschuhe mit Drachenzacken gabs auch noch dazu.&lt;/p&gt;

&lt;a href='http://www.wenger-online.de/blog/2013/02/03/naharbeiten/mutze-gelb/' title='Mütze-Gelb'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/Mütze-Gelb-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;Mütze-Gelb&quot; title=&quot;Mütze-Gelb&quot; /&gt;&lt;/a&gt;
&lt;a href='http://www.wenger-online.de/blog/2013/02/03/naharbeiten/mutze-blau/' title='Mütze-Blau'&gt;&lt;img width=&quot;150&quot; height=&quot;150&quot; src=&quot;http://www.wenger-online.de/blog/wp-content/uploads/2013/02/Mütze-Blau-150x150.jpg&quot; class=&quot;attachment-thumbnail&quot; alt=&quot;Mütze-Blau&quot; title=&quot;Mütze-Blau&quot; /&gt;&lt;/a&gt;

</description>
    <dc:date>2013-02-03T20:26:25+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/586-Going-to-FOSDEM-after-all.html">
    <title>nomeata’s mind shares: Going to FOSDEM after all</title>
    <link>http://www.joachim-breitner.de/blog/archives/586-Going-to-FOSDEM-after-all.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;Earlier this week, things were looking different, and I did have to cancel a Haskell talk in Freiburg on Monday due to illness. But I’m back on track and will be travelling to Brussels tomorrow.&lt;/p&gt;
&lt;p&gt;I’ll be holding a talk on how we package &lt;a href='https://fosdem.org/2013/schedule/event/debian_haskell/'&gt;Haskell in Debian&lt;/a&gt;, on Suday at 15:30. I hope it will be useful to Debian users (who will better understand the packaging), other Debian Developers (who’ll learn about the peculiarities of Haskell and the implications for the Debian infrastructure), other distro’s maintainers (to compare best practices) and Haskell developers (to learn about the needs and worries of downstream packages). The talk will be based on &lt;a href='http://penta.debconf.org/dc11_schedule/events/791.en.html'&gt;my DebConf 11 talk&lt;/a&gt; on the same topic. I’m also happy to answer questions about Haskell, Haskell in Debian or any other topic that you want to hear my opinion about, so just talk to me during FOSDEM.&lt;br/&gt;&lt;/p&gt;
&lt;p&gt;In related news: GHC 7.6.2 was uploaded to Debian experimental the day it was released; the rebuilding of all libraries is still in progress (~370 of ~570 done).&lt;br/&gt;&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2013-01-31T20:03:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://blog.hboeck.de/archives/815-Explain-hard-stuff-with-the-1000-most-common-words-UPGOERFIVE.html">
    <title>Hanno's blog: Explain hard stuff with the 1000 most common words #UPGOERFIVE</title>
    <link>http://blog.hboeck.de/archives/815-Explain-hard-stuff-with-the-1000-most-common-words-UPGOERFIVE.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                Based on &lt;a href='http://xkcd.com/1133/'&gt;the XKCD comic &quot;Up Goer Five&quot;&lt;/a&gt;, someone made &lt;a href='http://splasho.com/upgoer5/#'&gt;a nice little tool&lt;/a&gt;: An online text editor that lets you only use the 1000 most common words in English. And ask you to explain a hard idea with it.&lt;br/&gt;
&lt;br/&gt;
Nice idea. I gave it a try. The most obvious example to use was my &lt;a href='http://rsapss.hboeck.de/'&gt;diploma thesis (on RSA-PSS and provable security)&lt;/a&gt;, where I always had a hard time to explain to anyone what it was all about.&lt;br/&gt;
&lt;br/&gt;
Well, obviously math, proof, algorithm, encryption etc. all are forbidden, but I had a hard time with the fact that even words like &quot;message&quot; (or anything equivalent) don't seem to be in the top 1000.&lt;br/&gt;
&lt;br/&gt;
Here &lt;a href='http://splasho.com/upgoer5/?i=I2uyovO5o3HtqTSfnlO0olOuVTMlnJIhMPjtp2uyVT9lVTuyVTgho3qmVUyiqFOupzHtqTuyVUOypaAiovOcovOkqJImqTyiov4tDaI0VUqbMJ4trJ91VTEiVUEbnKZtLFOzpzyyozDtMzSlVTS3LKxtqTulo3IanPOwo21jqKEypaZfVUyiqFOwLJ4toz90VTWyVUA1pzHhPyEbLKDaplO3nUxtL29gpUI0MKWmVTuuqzHtq2S5plO0olOfMKDtrJ91VTgho3ptnJLtqTuyVUOypaAiovO5o3HtLKWyVUEuoTgcozptqT8tnKZtpzIuoTk5VUEbMFOlnJqbqPOjMKWmo24hPtcHnTHtq2S5plO3MFO1p2HtqT9xLKxtnTS2MFOiozHtpUWiLzkyoGbtI2HtLKWyVT5iqPOmqKWyVUEbLKDtqTuyrFO3o3WeYvOWqPOgLKxtLzHtqTuuqPOuVTWuMPOjMKWmo24tn25iq3ZtLFO3LKxtqT8tLzHtLJWfMFO0olO0MJkfVUyiqFO0nTS0VTuyVTymVTyhVTMuL3DtrJ91pvOzpzyyozDhVSqyVTEiVT5iqPO0nTyhnlO0nTS0VUEbMKWyVTSlMFOmqJAbVUqurKZtMz9lVTWuMPOjMKWmo25mYPOvqKDtq2HtLKWyVT5iqPOwo21joTI0MJk5VUA1pzHhPtcHnTymVTymVUqbrFOmo21yVUOyo3OfMFO0paxtqT8tMzyhMPO3LKymVUEbLKDtLKWyVTWyqUEypv4tI2uypzHtq2HtL2ShVTWyVUA1pzHtqTuuqPOholOvLJDtpTIlp29hVTymVTSvoTHtqT8tqTIfoPO5o3HtqTuuqPObMFOcplO5o3IlVTMlnJIhMP4tI2y0nPO0nTHtn25iq24tq2S5plO0o2EurFO0nTymVTymVT5iqPOwo21joTI0MJk5VUOip3AcLzkyYvOPqKDtnKDtnKZtpT9mp2yvoTHtnJ4tpTSlqUZhPtcWVTuuqzHtoT9in2IxVTS0VUEbo3AyVTWyqUEypvO3LKymYvOOozDtFFObLKMyVUqipzgyMPOiovOvpzyhM2yhMlO0nTImMFOvMKE0MKVtq2S5plO0olO5o3IlVTAioKO1qTIlYt=='&gt;we go&lt;/a&gt;:&lt;br/&gt;
&lt;br/&gt;
&lt;i&gt;When you talk to a friend, she or he knows you are the person in question. But when you do this a friend far away through computers, you can not be sure.&lt;br/&gt;
That's why computers have ways to let you know if the person you are talking to is really the right person.&lt;br/&gt;
&lt;br/&gt;
The ways we use today have one problem: We are not sure that they work. It may be that a bad person knows a way to be able to tell you that he is in fact your friend. We do not think that there are such ways for bad persons, but we are not completely sure.&lt;br/&gt;
&lt;br/&gt;
This is why some people try to find ways that are better. Where we can be sure that no bad person is able to tell you that he is your friend. With the known ways today this is not completely possible. But it is possible in parts.&lt;br/&gt;
&lt;br/&gt;
I have looked at those better ways. And I have worked on bringing these better ways to your computer.&lt;/i&gt;&lt;br/&gt;
&lt;br/&gt;
So - do you now have an idea what I was taking about?&lt;br/&gt;
&lt;br/&gt;
I found this nice tool through &lt;a href='https://bengoldacre.posterous.com/randomised-trials-blinding-systematic-reviews'&gt;Ben Goldacre, who tried to explain randomized trials, blinding, systematic review and publication bias&lt;/a&gt; - go there and read it. Knowing what publication bias and systematic reviews are is much more important for you than knowing what RSA-PSS is. You can leave cryptography to the experts, but you should care about your health. And for the record, I recently tried myself to &lt;a href='https://www.taz.de/!108379/'&gt;explain publication bias (german only)&lt;/a&gt;. 
            &lt;/div&gt;
        </description>
    <dc:date>2013-01-26T10:51:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://blog.hboeck.de/archives/814-How-to-configure-your-HTTPS-server.html">
    <title>Hanno's blog: How to configure your HTTPS server</title>
    <link>http://blog.hboeck.de/archives/814-How-to-configure-your-HTTPS-server.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                Yesterday, we had a meeting at &lt;a href='http://cacertberlin.wikihoster.net/whn/1._SSL-Stammtisch'&gt;CAcert Berlin&lt;/a&gt; where I had a little talk about how to almost-perfectly configure your HTTPS server. Motivation for that was the very nice &lt;a href='https://www.ssllabs.com/ssltest/'&gt;Qualys SSL Server test&lt;/a&gt;, which can remote-check your SSL configuration and tell you a bunch of things about it.&lt;br/&gt;
&lt;br/&gt;
While playing with that, I &lt;a href='https://fancyssl.hboeck.de/'&gt;created a test setup&lt;/a&gt; which passes with 100 points in the Qualys test. However, you will hardly be able to access that page, which is mainly due to it's exclusive support for TLS 1.2. All major browsers fail. Someone from the audience told me that the iPhone browser was successfully able to access the page. To safe the reputation of free software, someone else found out that the Midori browser is also capable of accessing it. I've described what I did there on the page itself and you may also read it &lt;a href='http://fancynossl.hboeck.de/'&gt;here via http&lt;/a&gt;.&lt;br/&gt;
&lt;br/&gt;
Here are my slides &lt;a href='http://int21.de/slides/slides_https.odp'&gt;&quot;SSL, X.509, HTTPS - How to configure your HTTPS server&quot; as ODP&lt;/a&gt;, &lt;a href='http://int21.de/slides/slides_https.pdf'&gt;as PDF&lt;/a&gt; and &lt;a href='http://www.slideshare.net/hannob/ssl-x509-https-how-to-configure-your-https-server'&gt;on Slideshare&lt;/a&gt;.&lt;br/&gt;
&lt;br/&gt;
And some links mentioned in the slides:&lt;br/&gt;
&lt;a href='https://factorable.net/'&gt;Check SSL and SSH weak keys due to broken random numbers&lt;/a&gt;&lt;br/&gt;
&lt;a href='https://www.eff.org/observatory'&gt;EFF SSL Observatory&lt;/a&gt;&lt;br/&gt;
&lt;a href='https://www.eff.org/sovereign-keys'&gt;Sovereign Keys proect&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
Some great talks on the mentioned topics by others:&lt;br/&gt;
&lt;a href='http://media.ccc.de/browse/congress/2012/29c3-5275-en-facthacks_h264.html'&gt;Facthacks Talk 29c3&lt;/a&gt;&lt;br/&gt;
&lt;a href='http://media.ccc.de/browse/congress/2008/25c3-3023-en-making_the_theoretical_possible.html'&gt;MD5 considered harmful today - Creating a rogue CA Certificate&lt;/a&gt;&lt;br/&gt;
&lt;a href='http://media.ccc.de/browse/congress/2010/27c3-4121-en-is_the_ssliverse_a_safe_place.html'&gt;Is the SSLiverse a safe place?&lt;/a&gt;&lt;br/&gt;
&lt;br/&gt;
&lt;b&gt;Update:&lt;/b&gt; As people seem to find these browser issue interesting: It's been pointed out that the iPad Browser also works. Opera with TLS 1.2 enabled seems to work for some people, but not for me (maybe Windows-only). luakit and epiphany also work, but they don't check certificates at all, so that kind of doesn't count. 
            &lt;/div&gt;
        </description>
    <dc:date>2013-01-19T10:45:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/584-Haskell-Bytes-again.html">
    <title>nomeata’s mind shares: “Haskell Bytes” again</title>
    <link>http://www.joachim-breitner.de/blog/archives/584-Haskell-Bytes-again.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;&lt;a href='http://www.iai.uni-bonn.de/~jv/'&gt;Janis Voigtländer&lt;/a&gt; has invited me again to give a lecture in his &lt;a href='http://www.iai.uni-bonn.de/~jv/teaching/ffp12/'&gt;Advanced Functional Programming&lt;/a&gt; course at the University of Bonn. Like last time, when I talked about &lt;a href='http://www.joachim-breitner.de/blog/archives/539-Guest-lecture-on-Haskell-performance.html'&gt;performance analysis in Haskell&lt;/a&gt;, I chose a topic that is more on implementationishy side to contrast the theoretic content of the rest of the course. I recycled &lt;a href='http://www.joachim-breitner.de/blog/archives/558-Haskell-Bytes.html'&gt;my talk on the memory representation of GHC&lt;/a&gt; that I have held at last year’s &lt;a href='http://mrmcd.net/'&gt;Meta Main-Rhein Chaos Days&lt;/a&gt;. As usual I provide a &lt;a href='http://www.joachim-breitner.de/publications/haskell_bytes_bonn_2013-01-10.pdf'&gt;transcript of the talk&lt;/a&gt; as intended (not as held). It is slightly revised over the old version and I have added a section on unboxed values in constructors, which I have nevertheless skipped today.&lt;br/&gt;&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2013-01-10T22:24:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/583-Brief-an-den-KVV.html">
    <title>nomeata’s mind shares: Brief an den KVV</title>
    <link>http://www.joachim-breitner.de/blog/archives/583-Brief-an-den-KVV.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;Schlagzeile auf kvv.de: &lt;a href='http://www.kvv.de/aktuell/neuigkeiten-rund-um-den-kvv/meldungen/article/kvv-fuehrt-probeweise-ganztaegigen-kontrollierten-busverkehr-in-karlsruhe-ein.html'&gt;KVV führt probeweise ganztägigen kontrollierten Busverkehr in Karlsruhe ein&lt;/a&gt;. Das gefällt mir nicht, daher hab ich folgenden „Brief“ dem KVV über deren Kontakt-Formular zukommen lassen. Vielleicht hilft es ja was.&lt;br/&gt;&lt;/p&gt; 
&lt;blockquote&gt; 
&lt;p&gt;Sehr geehrter KVV,&lt;br/&gt;vor meiner Zeit in Karlsruhe lebte ich im Bereich des VVS; seit 8 Jahren jetzt in Karlsruhe. Ich habe mich, gerade im Vergleich, stets darüber gefreut, in Karsruhe auch hinten in den Bus einsteigen zu dürfen. Aus mehreren Gründen macht es mir die Teilnahme am ÖPNV attraktiver: &lt;/p&gt; 
&lt;ul&gt; 
&lt;li&gt;Es geht schneller. Gerade wenn man sich um Anschlüsse sorgen machen muss schont es die Nerven doch sehr wenn sich nicht an jeder Haltestelle alle neuen Fahrgäste erst eine Schlange bilden und einzeln am Fahrer vorbeitrotten, nachdem sie ihre Karte hervorgeholt haben.&lt;/li&gt; 
&lt;li&gt;Ich muss meine Dauerkarte nicht dauernd griffbereit haben. Es genügt, sie bei Bedarf, also bei einer Kontrolle, herauszukramen.&lt;/li&gt; 
&lt;li&gt;Ich fühle mich wohler wenn mir als Fahrgast ein Grundvertrauen entgegen gebracht wird, nämlich dass erst einmal davon ausgegangen wird dass ich ein ehrlicher Fahrgast bin. Die stichprobenhaften Kontrollen sind mir dann natürlich willkommen. Wird dagegen bei jeder Busfahrt erstmal angenommen, dass ich ein Schwarzfahrer bin, bis ich dem kritisch-prüfenden Blick des Fahrers das Gegenteil bewiesen habe, kann davon nicht mehr die Rede sein.&lt;/li&gt; 
&lt;/ul&gt; 
&lt;p&gt;Ich hoffe daher sehr dass der „kontrollierte Fronteinstieg“ im KVV nur ein kurzer Test bleibt und ab April wieder eingestellt wird.&lt;/p&gt; 
&lt;p&gt;Vielen Dank,&lt;br/&gt;
Joachim Breitner &lt;/p&gt; 
&lt;/blockquote&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2013-01-05T19:55:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://blog.fukami.io/archives/2013/01/03/entschuldigt-bitte-flauscheria/">
    <title>The Turkey Curse: Entschuldigt bitte, Flauscheria!</title>
    <link>http://blog.fukami.io/archives/2013/01/03/entschuldigt-bitte-flauscheria/</link>
    <description>&lt;p&gt;An Tag 3 des 29C3 bin ich ausgeflippt und habe Euch heftig angeschrien. Anlass für diesen Ausbruch war, dass ich erstmals den Text auf den roten Creeper Cards gelesen hatte (die ich als Idee bekanntermaßen schon vorher schwierig fand) - und das leider direkt nach dem Aufstehen, mit wenig Schlaf, ohne Kaffee oder Frühstück, nach irrsinnig arbeitsreichen und weihnachtsfreien Wochen, stressigen Tagen und einigen Geschichten, die sich auf der Veranstaltung hochgeschaukelt haben. Die Androhung von Gewalt auf diesen Karten hat mich in dem Moment unverhältnismäßig wütend gemacht und die Situation ist heftig eskaliert. Auf die genauen Hintergründe und die Vorgeschichte gehe ich vielleicht noch an gesonderter Stelle ein.&lt;/p&gt;

&lt;p&gt;Aber vollkommen egal, was da im Vorfeld abgelaufen sein mag und wo die sachlichen und emotionalen Hintergründe meines Verhaltens lagen: Ich habe mich sowohl im Ton als auch in der Lautstärke und Form erheblich vergriffen. Das geht so nicht, und ich möchte bei Euch in aller Form um Entschuldigung bitten. Ich bereue diesen Ausbruch sehr, es tut mir wirklich leid. &lt;/p&gt;

&lt;p&gt;fukami&lt;/p&gt;
</description>
    <dc:date>2013-01-03T11:58:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/580-GHCi-integration-for-GHC.HeapView.html">
    <title>nomeata’s mind shares: GHCi integration for GHC.HeapView</title>
    <link>http://www.joachim-breitner.de/blog/archives/580-GHCi-integration-for-GHC.HeapView.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;Given the very positive feedback for Dennis Felsing’s tool &lt;a href='http://felsin9.de/nnis/ghc-vis/'&gt;ghc-vis&lt;/a&gt;, which visualizes the heap representation of a Haskell value, including all the gory details such as thunks, values retained by thunks indirections, sharing etc, I saw the need to provide this information also directly in GHCi, without having to load a graphics library or opening extra libraries. So I added the required features (traversing the heap and pretty-printing the results) to my &lt;a href='http://hackage.haskell.org/package/ghc-heap-view'&gt;ghc-heap-view&lt;/a&gt; package and, also following ghc-vis’s lead, added a ghci file that, when loaded, provides you with a &lt;tt&gt;:printHeap&lt;/tt&gt; command. Here you can see it in action:&lt;/p&gt; 
&lt;h3&gt;A plain value&lt;/h3&gt; 
&lt;pre&gt;Prelude&amp;gt; :script /home/jojo/.cabal/share/ghc-heap-view-0.4.0.0/ghci
Prelude&amp;gt; let x = [1..10]
Prelude&amp;gt; x
[1,2,3,4,5,6,7,8,9,10]
Prelude&amp;gt; :printHeap x
_bh [S# 1,S# 2,S# 3,S# 4,S# 5,S# 6,S# 7,S# 8,S# 9,S# 10]
&lt;/pre&gt; 
&lt;p&gt;Note that the tools shows us that the list is a list of &lt;a href='http://www.haskell.org/ghc/docs/7.6.1/html/libraries/integer-gmp-0.5.0.0/GHC-Integer-GMP-Internals.html'&gt;&lt;tt&gt;S#&lt;/tt&gt;&lt;/a&gt; constructors, and also that it is still hidden behind a blackhole. After running &lt;a href='http://hackage.haskell.org/packages/archive/base/latest/doc/html/System-Mem.html#v:performGC'&gt;&lt;tt&gt;System.Mem.performGC&lt;/tt&gt;&lt;/a&gt;, this disappears.
&lt;/p&gt; 
&lt;h3&gt;A thunk&lt;/h3&gt; 
&lt;pre&gt;Prelude&amp;gt; let x = Just (1 + 1)
Prelude&amp;gt; :printHeap x
Just _bco
Prelude&amp;gt; x
Just 2
Prelude&amp;gt; System.Mem.performGC
Prelude&amp;gt; :printHeap x
Just (S# 2)&lt;/pre&gt; 
&lt;p&gt;Here, we see how the calculation was deferred until forced by showing the value of &lt;tt&gt;x&lt;/tt&gt;. The name &lt;tt&gt;_bco&lt;/tt&gt; stands for a bytecode object as used by the interpreter. Getting useful information from them is a bit harder than for compiled thunks, so for more accurate results put the code in a Haskell source file, compile it and use the &lt;a href='http://hackage.haskell.org/packages/archive/ghc-heap-view/latest/doc/html/GHC-HeapView.html'&gt;GHC.HeapView&lt;/a&gt; API to print the interesting parts. &lt;/p&gt; 
&lt;h3&gt;A partial application&lt;/h3&gt; 
&lt;pre&gt;Prelude&amp;gt; let a = &quot;hi&quot;
Prelude&amp;gt; let partial = (a ++)
Prelude&amp;gt; partial &quot;&quot;
&quot;hi&quot;
Prelude&amp;gt; System.Mem.performGC
Prelude&amp;gt; let x = (a, partial)
Prelude&amp;gt; :printHeap x
let x1 = &quot;hi&quot;
in (x1,_fun x1)&lt;/pre&gt; 
&lt;p&gt;The information &lt;emph&gt;which&lt;/emph&gt; function is called there (&lt;tt&gt;++&lt;/tt&gt; in this case) is lost at runtime, but we still see that the second element of the tuple is a partial application of &lt;emph&gt;some&lt;/emph&gt; value to the first element.&lt;/p&gt; 
&lt;h3&gt;A cyclic structure&lt;/h3&gt; 
&lt;pre&gt;Prelude&amp;gt; let s = &quot;ho&quot;
Prelude&amp;gt; let x = cycle s
Prelude&amp;gt; length (take 100 (show x))
100
Prelude&amp;gt; System.Mem.performGC
Prelude&amp;gt; :printHeap x
let x0 = C# 'h' : C# 'o' : x0
in x0
Prelude&amp;gt; let y = map Data.Char.toUpper x
Prelude&amp;gt; length (take 100 (show y))
100
Prelude&amp;gt; :printHeap y
C# 'H' : C# 'O' : C# 'H' : C# 'O' : C# 'H' : C# 'O' : C# 'H' : C# 'O' : C# 'H' : C# 'O' : _bh (C# 'H' : C# 'O' : C# 'H' : C# 'O' : C# 'H' : C# 'O' : C# 'H' : C# 'O' : ... : ...)
&lt;/pre&gt; 
&lt;p&gt;The cyclic, tying-the-knot structure of &lt;a href='http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#v:cycle'&gt;&lt;tt&gt;cycle&lt;/tt&gt;&lt;/a&gt; is very visible. But can also see how easily it is broken, in this case by mapping a function over the list.&lt;/p&gt; 
&lt;h3&gt;Mutual recursion&lt;/h3&gt;
&lt;pre&gt;Prelude&gt; let {x = 'H' : y ; y = 'o' : x }
Prelude&gt; length (show (take 10 x, take 10 y)) `seq` return ()
Prelude&gt; System.Mem.performGC
Prelude&gt; :printHeap (x,y)
let x1 = C# 'H' : x3
    x3 = C# 'o' : x1
in (x1,x3)&lt;/pre&gt;
&lt;p&gt;If you want to look at multiple variables at once, just pass a tuple to &lt;tt&gt;printHeap&lt;/tt&gt;&lt;/p&gt;
&lt;p&gt;In the hope that this will be a useful tool for you, I uploaded version 0.4.0.0 of ghc-heap-view to hackage.&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2012-12-20T13:09:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/578-Circle-Packing.html">
    <title>nomeata’s mind shares: Circle Packing</title>
    <link>http://www.joachim-breitner.de/blog/archives/578-Circle-Packing.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;For an &lt;a href='http://www.meetup.com/The-Karlsruhe-Functional-Programmers-Meetup-Group/events/93934702/'&gt;upcoming introductory Haskell talk&lt;/a&gt; of mine (next Tuesday in Karlsruhe – please come and join if you will) I was looking into data visualization as a example application. With libraries like &lt;a href='http://gloss.ouroborus.net/'&gt;gloss&lt;/a&gt;, getting some nice vector graphics up and running within one talk is quite possible.&lt;/p&gt; 
&lt;p&gt;For some reason, I want to arrange multiple circles of varying size so that they do not overlap and use as little space as possible. My first approach was to use general purpose optimizers such as &lt;a href='http://hackage.haskell.org/package/cmaes'&gt;cmaes&lt;/a&gt;, &lt;a href='http://hackage.haskell.org/packages/archive/hmatrix/latest/doc/html/Numeric-GSL-Minimization.html'&gt;Numeric.GSL.Minimization&lt;/a&gt; from the &lt;a href='http://hackage.haskell.org/package/hmatrix'&gt;hmatrix&lt;/a&gt; package and &lt;a href='http://hackage.haskell.org/package/force-layout'&gt;force-layout&lt;/a&gt;. I especially liked the interface of cmaes, which is able to minimize a function of, say, type &lt;tt&gt;[(String, Double, Double)] -&amp;gt; Double&lt;/tt&gt; by automatically finding the values of type &lt;tt&gt;Double&lt;/tt&gt; in the input, as described by &lt;a href='http://www.haskell.org/pipermail/haskell-cafe/2012-October/103733.html'&gt;Takayuki Muranushi&lt;/a&gt;. That would have looked great in the talk. Unfortunately, none of these libraries gave sufficient good results in a reasonable amount of time for this problem.&lt;/p&gt; 
&lt;p&gt;I then reviewed some of the academic literature on the circle packing problem and there were some algorithms proposed, but no simple one and none of the papers had a concise pseudo-code description that I could transfer to Haskell.&lt;/p&gt; 
&lt;p&gt;So eventually I set out to implement a relatively dump and slow greedy algorithm myself: I place one circle after another, starting with the largest, and among the valid positions where a new circle touches two already placed circles, I choose the positions closest to the center of mass. The result, available in &lt;a href='http://hackage.haskell.org/package/circle-packing'&gt;the circle-packing package&lt;/a&gt;, looks surprisingly well, here visualized using the diagrams library (See the documentation of &lt;a href='http://hackage.haskell.org/packages/archive/circle-packing/latest/doc/html/Optimisation-CirclePacking.html'&gt;Optimisation.CirclePacking&lt;/a&gt; for the code used to generate that image):&lt;/p&gt; 
&lt;div align='center'&gt;&lt;img src='http://darcs.nomeata.de/circle-packing/example.svg' height='400' width='400'/&gt;&lt;/div&gt; 
&lt;p&gt;Now showing just this image is not a very good way to demonstrate my code. A few years ago, I might have created a CGI script that would dynamically generate images based on your input. But not in 2012: Since &lt;a href='http://darcs.nomeata.de/circle-packing/Optimisation/CirclePacking.hs'&gt;my code&lt;/a&gt; is pure Haskell without &lt;a href='https://github.com/faylang/fay/issues/98'&gt;fancy features&lt;/a&gt; like type classes, I can use the &lt;a href='http://fay-lang.org/'&gt;fay compiler&lt;/a&gt; to generate JavaScript code from it. Add a little &lt;a href='http://darcs.nomeata.de/circle-packing/fay/fay-demo.hs'&gt;Haskell code to interact with the HTML5 canvas&lt;/a&gt; and now you can &lt;a href='http://darcs.nomeata.de/circle-packing/fay/fay-demo.html'&gt;interactively try out circle-packing in your browser&lt;/a&gt;.&lt;/p&gt; 
&lt;p&gt;Oh, and while I am talking about neat tricks: You can put vector graphics in your haddock documentation, as I have done for Optimisation.CirclePacking, using the syntax &lt;tt&gt;&amp;lt;&amp;lt;&amp;lt;data:image/svg+xml;base64,PD94bWwgdmV...c3ZnPg==&amp;gt;&amp;gt;.&lt;/tt&gt;&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2012-12-16T18:04:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/575-Plaetzchentetris.html">
    <title>nomeata’s mind shares: Plätzchentetris</title>
    <link>http://www.joachim-breitner.de/blog/archives/575-Plaetzchentetris.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;What happens if the same person (in this case, my girlfriend) is both a bit geeky &lt;em&gt;and&lt;/em&gt; likes to bake? She has ideas leading to this:&lt;/p&gt; 
&lt;div align='center'&gt;&lt;a href='http://www.joachim-breitner.de/bilder/pages/201214_1.html'&gt;&lt;img src='http://www.joachim-breitner.de/bilder/previews/20121212221845_preview.jpg' height='525' alt='Tetris Biscuits' width='700'/&gt;&lt;/a&gt;&lt;/div&gt; 
&lt;p&gt;And what is the obvious thing to do with such biscuit (or are they cookies?). Play tetris:&lt;/p&gt; 
&lt;div align='center'&gt; &lt;video controls='true' poster='http://www.joachim-breitner.de/various/Plaetzchentetris-poster.jpg' height='720' tabindex='0' width='960'&gt; &lt;source src='http://www.joachim-breitner.de/various/Plaetzchentetris.webm' type='video/webm'/&gt; &lt;source src='http://www.joachim-breitner.de/various/Plaetzchentetris.avi' type='video/x-msvideo'/&gt;
        Your browser does not support the video tag. Try youtube instead!
&lt;/video&gt; &lt;/div&gt; 
&lt;p&gt;(Also &lt;a href='https://www.youtube.com/watch?v=0USmmPXVrr4'&gt;on YouTube&lt;/a&gt; if your browser does not play the video above.)&lt;/p&gt; 
&lt;p&gt;Oh, and to refute common stereotypes about me: The baking was done by me, but she helped me glazing the biscuits.&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2012-12-14T18:07:00+01:00</dc:date>
  </item>
  
  <item rdf:about="http://www.joachim-breitner.de/blog/archives/573-Calculating-the-internal-rate-of-return-with-hledger.html">
    <title>nomeata’s mind shares: Calculating the internal rate of return with hledger</title>
    <link>http://www.joachim-breitner.de/blog/archives/573-Calculating-the-internal-rate-of-return-with-hledger.html</link>
    <description>
            &lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;
                &lt;p&gt;For more than ten years now, I am a regular and happy user of &lt;a href='http://www.gnucash.org/'&gt;GnuCash&lt;/a&gt;, the free accountancy program. Especially the integrated online banking support for &lt;a href='http://en.wikipedia.org/wiki/HBCI'&gt;HBCI&lt;/a&gt; that allows me not only to fetch my transactions, but also to transfer money using a cryptographic makes it a great tool. Nevertheless, it has shortcomings, especially when it comes to reports. And for some reason I never felt the urge to hack on that C/Guile code (although I recently &lt;a href='https://bugzilla.gnome.org/show_bug.cgi?id=120854'&gt;hacked a bit on the UI&lt;/a&gt;).&lt;br/&gt;&lt;/p&gt; 
&lt;p&gt;&lt;a href='http://joeyh.name/blog/entry/hledger/'&gt;Joey Hess’ blog post&lt;/a&gt; about Simon
Michael’s &lt;a href='http://hledger.org/'&gt;hledger&lt;/a&gt; made me look at that command line based accountancy tool. It certainly won’t replace Gnucash for me, but luckily &lt;a href='http://ledger-cli.org/'&gt;ledger&lt;/a&gt;, of which hledger is a re-implementation, can read GnuCash’s file format and convert it to a ledger file that hledger can read as well. So now I can do analysis on my financial data in Haskell – what would you want more?&lt;/p&gt; 
&lt;p&gt;One report that I was missing was the &lt;a href='http://en.wikipedia.org/wiki/Internal_rate_of_return'&gt;&lt;em&gt;internal rate of investment&lt;/em&gt;&lt;/a&gt; of some account. This is the annual rate of a hypothetical fixed interest-bearing savings account that would, given the same deposits and payouts, result in the same final value. I now implemented this as the &lt;a href='http://hackage.haskell.org/package/hledger-irr'&gt;hledger-irr&lt;/a&gt; command and – as you would expect – you can find it on hackage. See the package description for documentation and example output.&lt;/p&gt; 
&lt;p&gt;It is very fresh, hardly tested code, so don’t base important decisions on it yet. Also, it needs work to work correctly with multiple currencies or things with varying prices, and I am not yet sure what to do there.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Simon asked me to elaborate the difference to &lt;a href='http://hackage.haskell.org/package/hledger-interest'&gt;hledger-interest&lt;/a&gt; by Peter Simons (on which my code was initial based, but eventually I rewrote everything but the option parsing code). The difference is that hledger-interest answers the question „I have this investment with this yearly interest rate (which may even change), how large are the interest payments going to be.“ I imagine a usecase is that you have borrowed some money to a friend at a certain (surely amicable) rate and need to figure out what he owes you, even when you gave him the money mid year and he payed you some back shortly after easter. hledger-irr serves a different purpose: Here you already know your investment payments, gains and losses and you want to have a number describing “how good” your investment was. One usecase might be that, at the end of a live of paying into a pension fund, you ask yourself: “Given all the feeds and commissions, was this a good idea or should I just have invested the money myself?” Then the internal rate of investment tells you how lucrative an alternative fixed-rate investment would have had to been to match your pension fund investment. (Or course this is not the only aspect that you should look at when comparing investments, as it totally ignores risk and possible insurance elements of the investment.)&lt;br/&gt;&lt;/p&gt; 
            &lt;/div&gt;
        </description>
    <dc:date>2012-12-07T22:22:00+01:00</dc:date>
  </item>
  
</rdf:RDF>
