<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Blog</title><link href="http://janeden.net/blog" rel="alternate"></link><id>http://janeden.net/blog</id><updated>2012-02-22T17:09:21Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><entry><title>Zukunftsmarkt</title><link href="http://janeden.net/2012/2/zukunftsmarkt" rel="alternate"></link><updated>2012-02-22T17:09:21Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/zukunftsmarkt</id><summary type="html">&lt;p&gt;Hewlett-Packard konzentriert sich nach einigen &lt;a href="/2011/10/showtime"&gt;Turbulenzen&lt;/a&gt; auf den Zukunftsmarkt der Internetausdrucker. Zur offiziellen deutschen Produkteinführung des &lt;a href="http://www.golem.de/news/multifunktionsgeraet-hp-officejet-6700-druckt-e-mails-und-nachrichten-1202-89877.html"&gt;HP OfficeJet 6700&lt;/a&gt; in der ehemaligen Bundeshauptstadt Bonn werden Kulturstaatsminister &lt;a href="http://netzpolitik.org/2011/cdu-medianight-wenn-das-internet-voll-ist/"&gt;Bernd Neumann&lt;/a&gt; und &lt;a href="http://www.sueddeutsche.de/politik/ansgar-heveling-cdu-abgeordneter-sagt-netzgemeinde-den-kampf-an-1.1271030"&gt;Ansgar Heveling&lt;/a&gt; erwartet. Heveling warnte bereits im Vorfeld vor &lt;q lang="de"&gt;&lt;a href="http://www.appleinsider.com/articles/12/02/15/apples_ipad_driving_accelerated_enterprise_transition_away_from_printing.html"&gt;amerikanischen Verhältnissen&lt;/a&gt;&lt;/q&gt; in deutschen Büros und rief zur entschlossenen Nutzung aller bereits vorhandenen Drucker auf.&lt;/p&gt;</summary><category term="politics"></category><category term="technology"></category></entry><entry><title>Solide</title><link href="http://janeden.net/2012/2/solide" rel="alternate"></link><updated>2012-02-22T16:58:18Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/solide</id><summary type="html">&lt;p&gt;Die vielbesungene deutsche Solidität setzt sich auch in der digitalen Welt durch: Während der US-Geheimdienst ein &lt;a href="http://xkcd.com/932/"&gt;abgerissenes Poster&lt;/a&gt; über Nacht wieder an die Wand &lt;a href="http://www.sueddeutsche.de/digital/us-geheimdienst-offline-hacker-legen-cia-webseite-lahm-1.1281573"&gt;tackert&lt;/a&gt;, nimmt sich die Polizei des Landes NRW mehrere Wochen Zeit, um eine &lt;a href="http://www.golem.de/news/nach-hackerangriff-polizei-webserver-in-nordrhein-westfalen-seit-12-tagen-down-1202-89719.html"&gt;bessere Aufhängung&lt;/a&gt; zu entwickeln.&lt;/p&gt;</summary><category term="technology"></category><category term="web"></category></entry><entry><title>Lernfähig</title><link href="http://janeden.net/2012/2/lernfaehig-2" rel="alternate"></link><updated>2012-02-19T16:38:17Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/lernfaehig-2</id><summary type="html">&lt;p&gt;Zwei Tage nach dem Rücktritt von Christian Wulff hat auch die CDU zähneknirschend &lt;a href="http://www.sueddeutsche.de/politik/koaltion-und-opposition-einigen-sich-auf-wulff-nachfolge-gauck-soll-bundespraesident-werden-1.1288274"&gt;eingestanden&lt;/a&gt;, dass er schon im Jahr 2010 nicht der beste denkbare Bundespräsident war.&lt;/p&gt;</summary><category term="politics"></category></entry><entry><title>Lachendes Liebfrauenhaus: Das Dreigestirn und die Heinzelmännchen</title><link href="http://janeden.net/2012/2/lachendes-liebfrauenhaus-das-dreigestirn-und-die-heinzelmaennchen" rel="alternate"></link><updated>2012-02-11T19:11:36Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/lachendes-liebfrauenhaus-das-dreigestirn-und-die-heinzelmaennchen</id><summary type="html">
&lt;p&gt;Einzug des Dreigestirns zu Musik, die Garde marschiert mit ein und bildet am hinteren Bühnenrand einen weiten Halbkreis. Das Dreigestirn positioniert sich in der Mitte der Bühne, wird begrüßt. Der Prinz will anfangen zu sprechen.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt;: Leev Lück! Bei uns in Müllem...&lt;/p&gt; &lt;p&gt;Lautes Handyklingeln unterbricht die Musik. Der Prinz tastet sich ab, zieht ein Handy heraus.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt; [verlegen zum Publikum]: Entschuldigung... [ins Handy] Ja? Was? Ich kann jetzt nicht hier... wie hoch denn? 37,1? Das ist doch nicht... ja, natürlich. Ich fahre mit ihm ins Krankenhaus. Nachher. Ja, nachher! Mama! Mir ist das Leben meines Kindes nicht... ja. Ja. Ja! Bis gleich! [legt auf, genervt zum Bauern] Wo waren wir?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer&lt;/strong&gt; [intoniert leise]: Bei uns in Müllem...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt;: Genau! Bei uns in...&lt;/p&gt; &lt;p&gt;... und wieder klingelt ein Handy. Diesmal zuckt der Bauer zusammen.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer&lt;/strong&gt; [entschuldigend lächelnd zum Prinzen]: Entschuldigung... ja? Nein. Das kann doch wohl nicht wahr sein! Können Sie das denn nicht... ja. ja. Und warum rufen Sie nicht meine Frau an? Deren Handy ist aus, verstehe. Schon gut. Kann ich? [beginnt leise in den Hörer zu singen] La le lu, nur der Mann im Mond schaut zu, wenn die kleinen Babies schlafen, drum schlaf auch Du. So. Schlaf gut, mein Schatz. Was? [seufzt] La le lu, vor dem Bett, da steh'n zwei Schuh, und die sind genau so müde, geh'n jetzt zur Ruh'. Ich Dich auch. [legt auf]&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt; [hat ungeduldig gewartet, setzt wieder an]: Bei uns in ...&lt;/p&gt; &lt;p&gt;Erneutes Handyklingeln. Prinz und Bauer starren die Jungfrau fassungslos an.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Jungfrau&lt;/strong&gt; [zuckt mit den Schultern]: Entschuldigung... ja? Hör mal, das ist jetzt nicht so günstig... wieso? Liegt der nicht im Bett? Den habe ich gestern gewaschen und aufgehängt und dann ins Bett gelegt. Doch. Ist nicht da. Ok. Im Wäschekeller auch nicht. Warte mal... [überlegt, Prinz und Bauer lächeln gequält ins Publikum] Ich hab's! Im Brotkorb. Nein, das kann ich jetzt nicht so schnell erklären. Nein, ich hab' nichts gegen den Kuschelhund. Schlaft schön! [legt auf]&lt;/p&gt; &lt;p&gt;Dreigestirn steht unschlüssig auf der Bühne, einer sieht zum anderen.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt; [zum Publikum, etwas verzweifelt]: Alaaf.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Jungfrau&lt;/strong&gt;: Ach komm, die haben doch auch alle Kinder.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer&lt;/strong&gt;: Und selbst die beste Kita macht um 5 Uhr zu.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt; [sinnend]: Wie war in Köln es doch vordem...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer und Jungfrau&lt;/strong&gt;: Hä?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt; [unwillig]: ...mit Heinzelmännchen so bequem.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer und Jungfrau&lt;/strong&gt;: Heinzelmännchen?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt; [schwärmend]: Denn war man faul, man legte sich, hin auf die Bank und pflegte sich.&lt;/p&gt; &lt;p&gt;Jetzt kommt Bewegung in die Garde: Die Heinzelgardisten ziehen ihre Zipfelmützen auf und beginnen einen kurzen Heinzelreigen, das Dreigestirn schaut mit offenem Mund und zunehmender Begeisterung zu. Plötzlich stürmt ein weiterer Heinzelmann (eine weitere Heinzelfrau?) auf die Bühne. Er/sie trägt eine Zipfelmütze mit der Aufschrift &lt;q lang="de"&gt;Oberheinzel&lt;/q&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt; [schnarrend]: Was ist denn hier los?&lt;/p&gt; &lt;p&gt;Die Heinzelmännchen erstarren.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt;: Sind wir hier im Karneval? &lt;/p&gt; &lt;p&gt;Das Dreigestirn nickt, Oberheinzel blickt das Dreigestirn streng an, das Dreigestirn sieht betreten zu Boden.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt;: So. [zu den Heinzeln, befehlend:] Handschuhe! [ins Publikum, erklärend:] Hygienevorschrift Paragraph 12, Absatz 2.&lt;/p&gt; &lt;p&gt;Die Heinzelmännchen ziehen gehorsam Plastikhandschuhe an, Oberheinzel sieht ungeduldig zu.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt;: Und jetzt noch mal ordentlich!&lt;/p&gt; &lt;p&gt;Heinzelmännchen führen einen stramm soldatischen Tanz auf.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt;: Gleich viel besser. [zum Dreigestirn] Ich muss mich für meine Mitheinzel entschuldigen. Wir bieten Vollzeitbetreuung und kein Gehampel! Individuell, effizient und professionell! &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt; [zaghaft]: Eigentlich sind unsere Kinder in der Kita Liebfrauen schon sehr gut...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt; [spöttisch]: Tatsächlich? Was war das denn eben für ein Auftritt? [stolz zum Publikum] 24 Stunden am Tag, 7 Tage die Woche!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Jungfrau&lt;/strong&gt;: Aber wir kümmern uns gern selbst ...&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt; [vorwurfsvoll]: Selbst kümmern? Sie sind also ausgebildete Erzieher?&lt;/p&gt; &lt;p&gt;Das Dreigestirn blickt peinlich berührt ins Publikum.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer&lt;/strong&gt; [trotzig]: Es sind immerhin unsere Kinder!&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt; [abschätzig]: Eben. Ihnen fehlt die professionelle Distanz! Aber ich sehe schon, Kinderbetreuung wird hier nicht gebraucht. [überlegt kurz, schaut das Dreigestirn dann verschmitzt an] Kennen Sie eigentlich unser neuestes Angebot?&lt;/p&gt; &lt;p&gt;[alternativ: Oberheinzel beharrt auf Betreuungsangebot und bietet Wunscherfüllung als Bonus an]&lt;/p&gt; &lt;p&gt;Das Dreigestirn blickt skeptisch.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt; [triumphierend]: Wir lesen Wünsche von den Augen ab!&lt;/p&gt; &lt;p&gt;Das Dreigestirn sieht sich ungläubig an. Der Oberheinzel stellt sich vor die Jungfrau und blickt ihr in die Augen.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Oberheinzel&lt;/strong&gt; [nach kurzem Starren]: Kommt sofort!&lt;/p&gt; &lt;p&gt;Oberheinzel klatscht in die Hände, die Heinzelmännchen bilden eine Kette zum Pittermännchen am Bühnenrand, zapfen und reichen das volle Kölschglas von Hand zu Hand bis zum Oberheinzel, der es der Jungfrau überreicht.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Prinz&lt;/strong&gt; [schaut die Jungfrau mit dem Kölschglas an]: Darauf wär ich auch noch gekommen.&lt;/p&gt; &lt;p&gt;Der Oberheinzel runzelt die Stirn und stellt sich vor den Prinzen. &lt;/p&gt; &lt;p&gt;Er starrt kurz, klatscht dann in die Hände – Musik setzt ein, die Heinzelmännchen bilden vor der Bühne eine Gasse. Der Prinz lässt sich in die Heinzelhände fallen, wird mit Musik aus dem Saal getragen.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer&lt;/strong&gt; [ruft hinterher]: Und was ist mit meinem Wunsch?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Jungfrau&lt;/strong&gt;: Was wünschst Du Dir denn?&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer&lt;/strong&gt;: Erbsensuppe!&lt;/p&gt; &lt;p&gt;Beim Wort &lt;q lang="de"&gt;Erbsen&lt;/q&gt; schreien die Heinzelmännchen entsetzt auf, lassen den Prinzen fallen und rennen aus dem Saal.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bauer&lt;/strong&gt;: Entschuldigung.&lt;/p&gt; </summary></entry><entry><title>Learning Haskell: Unicode</title><link href="http://janeden.net/2012/2/learning-haskell-unicode" rel="alternate"></link><updated>2012-02-10T16:06:18Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/learning-haskell-unicode</id><summary type="html">&lt;p&gt;Als Angehöriger eines kleinen europäischen Volkes mit eigenwilliger Sprache frage ich mich bei jeder neuen Programmiersprache instinktiv, wie sie mit den ganzen ü, ö, ä und ß klarkommt. &lt;a href="/2010/10/python-2x-und-unicode"&gt;Python 2.x&lt;/a&gt; war in dieser Hinsicht keine Erleuchtung, aber Haskell funktioniert glücklicherweise wie Python 3: Strings werden intern als &lt;a href="http://en.wikipedia.org/wiki/Unicode"&gt;Unicode&lt;/a&gt;-Zeichenketten gespeichert.&lt;/p&gt;

&lt;p class="code"&gt;Prelude&amp;gt; let a = "Übelkrähe"
Prelude&amp;gt; a
"\220belkr\228he"
Prelude&amp;gt; putStrLn a
Übelkrähe&lt;/p&gt;

&lt;p&gt;Wunderbar, die Zeichen \220 und \228 werden bei der Ausgabe durch die Funktion &lt;code&gt;putStrLn&lt;/code&gt; automatisch in UTF-8 kodiert. Alles könnte so schön sein, wenn es sich bei Haskell-Strings nicht um &lt;span lang="en"&gt;&lt;a href="http://en.wikipedia.org/wiki/Linked_list"&gt;linked lists&lt;/a&gt;&lt;/span&gt; von 32bit-Zeichen handelte. Diese Kombination hat zwei Nachteile: Strings benötigen mit 4 Bytes pro Zeichen relativ viel Platz (weshalb &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_Unicode_encodings"&gt;UTF-32&lt;/a&gt; auch nur selten die beste Wahl ist), und &lt;span lang="en"&gt;linked lists&lt;/span&gt; sind bei einigen Listenoperationen viel langsamer als &lt;span lang="en"&gt;dynamic arrays&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;Das ist den Haskell-Leuten auch schon &lt;a href="http://www.haskell.org/haskellwiki/Performance/Strings"&gt;aufgefallen&lt;/a&gt;. Die Lösung sind ausgerechnet die vermaledeiten &lt;a href="http://www.haskell.org/haskellwiki/DealingWithBinaryData#Bytestrings"&gt;Bytestrings&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Normal Haskell &lt;code&gt;String&lt;/code&gt; types are linked lists of 32-bit characters. This has a number of useful properties like coverage of the Unicode space and laziness, however when it comes to dealing with bytewise data, &lt;code&gt;String&lt;/code&gt; involves a space-inflation of about 24x and a large reduction in speed.  Bytestrings are packed arrays of bytes or 8-bit chars.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;&lt;q lang="en"&gt;Packed arrays of bytes&lt;/q&gt; klingt schon mal sehr viel schneller als 32bit-Zeichenketten. Trotzdem sind wir noch nicht ganz am Ziel. Das Modul &lt;code&gt;&lt;a href="http://hackage.haskell.org/packages/archive/bytestring/latest/doc/html/Data-ByteString-Char8.html"&gt;Data.ByteString.Char8&lt;/a&gt;&lt;/code&gt; erlaubt zwar, Zeichenoperationen an Bytestrings vorzunehmen, aber... sehen Sie selbst:&lt;/p&gt;

&lt;p class="code"&gt;Prelude&amp;gt; import qualified Data.ByteString.Char8 as B
Prelude Data.ByteString.Char8&amp;gt; let a = B.pack "Übelkrähe"
Prelude Data.ByteString.Char8&amp;gt; a
"\220belkr\228he"
Prelude Data.ByteString.Char8&amp;gt; B.putStrLn a
?belkr?he&lt;/p&gt;

&lt;p&gt;Anders als in Python 2.x enthält ein Wert vom Typ &lt;code&gt;ByteString&lt;/code&gt; nicht einen kodierten String (in dem \220 für den Buchstaben Ü stünde), sondern nur eine Kette von Bytes, deren Zeichenhaftigkeit dem Modul reichlich wurscht ist. Entsprechend kommt &lt;code&gt;Data.ByteString.Char8.putStrLn&lt;/code&gt; nicht auf die Idee, irgendetwas zu kodieren. Glücklicherweise gibt es ein zusätzliches Paket, &lt;code&gt;&lt;a href="http://hackage.haskell.org/package/utf8-string"&gt;utf8-string&lt;/a&gt;&lt;/code&gt;, mit dessen Hilfe reguläre Strings in UTF-8-kodierte Bytestrings umgewandelt werden können:&lt;/p&gt;

&lt;p class="code"&gt;Prelude&amp;gt; import qualified Data.ByteString.UTF8 as BU
Prelude Data.ByteString.UTF8&amp;gt; import qualified Data.ByteString.Char8 as B
Prelude Data.ByteString.UTF8 Data.ByteString.Char8&amp;gt; let a = BU.fromString "Übelkrähe"
Prelude Data.ByteString.UTF8 Data.ByteString.Char8&amp;gt; a
"\195\156belkr\195\164he"
Prelude Data.ByteString.UTF8 Data.ByteString.Char8&amp;gt; B.putStrLn a
Übelkrähe&lt;/p&gt;

&lt;p&gt;Hier sehen wir auch zum ersten Mal, dass das Zeichen \220 (aus dem Zeichenbereich 000080 – 00009F) in UTF-8 mit zwei Bytes (\195\156) repräsentiert wird. Da der Bytestring nun bereits kodiert ist, liefert auch die unveränderte Ausgabe durch &lt;code&gt;B.putStrLn&lt;/code&gt; das gewünschte Ergebnis.&lt;/p&gt;

&lt;p&gt;Trotzdem ist das noch nicht ganz befriedigend. Es müsste doch möglich sein, kodierte Bytestrings mit einem einzigen Modul zu verarbeiten – ohne den Zwischenschritt über die langsamen Haskell-Strings. Das ist es auch. Die Kombination der Spracherweiterung &lt;code&gt;OverloadedStrings&lt;/code&gt; mit dem Modul &lt;code&gt;&lt;a href="http://hackage.haskell.org/packages/archive/text/latest/doc/html/Data-Text.html"&gt;Data.Text&lt;/a&gt;&lt;/code&gt; erlaubt folgendes Vorgehen:&lt;/p&gt;

&lt;p class="code"&gt;Prelude&amp;gt; :set -XOverloadedStrings 
Prelude&amp;gt; import qualified Data.Text as T
Prelude Data.Text&amp;gt; import qualified Data.Text.IO as T
Prelude Data.Text Data.Text.IO&amp;gt; let a = "Übelkrähe"::T.Text
Prelude Data.Text Data.Text.IO&amp;gt; a
"\220belkr\228he"
Prelude Data.Text Data.Text.IO&amp;gt; T.putStrLn a
Übelkrähe
Prelude Data.Text Data.Text.IO&amp;gt; T.putStrLn "Übelkrähe"
Übelkrähe&lt;/p&gt;

&lt;p&gt;Dank &lt;code&gt;OverloadedStrings&lt;/code&gt; können Zeichenketten innerhalb eines Programms explizit oder über &lt;span lang="en"&gt;type inference&lt;/span&gt; auf den Typ &lt;code&gt;Text&lt;/code&gt; bezogen werden, und &lt;code&gt;T.putStrLn&lt;/code&gt; übernimmt die UTF-8-Kodierung bei der Ausgabe. Die Behandlung eines &lt;code&gt;Text&lt;/code&gt;-Wertes unterscheidet sich dadurch auf den ersten Blick nicht von der eines regulären &lt;code&gt;String&lt;/code&gt;-Wertes. Intern allerdings handelt es sich nur bei ersteren um eine &lt;q lang="en"&gt;time and space-efficient implementation of Unicode text&lt;/q&gt;, konkret: Um UTF-16-kodierte Bytestrings.&lt;/p&gt;

&lt;p&gt;Einen exzellenten Überblick über das Verhältnis der Haskell-Typen zu den verschiedenen Unicode-Kodierungen und der Dichotomie &lt;span lang="en"&gt;linked list/packed array&lt;/span&gt; bietet &lt;a href="http://blog.ezyang.com/2010/08/strings-in-haskell/"&gt;Edward Z. Yang&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;ul&gt;
&lt;li&gt;ASCII or 8-bit:&lt;ul&gt;
&lt;li&gt;Packed and lazy: &lt;code&gt;Data.ByteString.Lazy.Char8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Packed and strict: &lt;code&gt;Data.ByteString.Char8&lt;/code&gt;, &lt;code&gt;Data.CompactString.ASCII&lt;/code&gt; or &lt;code&gt;Data.CompactString&lt;/code&gt; with Latin1&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Unicode:&lt;ul&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/UTF-32/UCS-4"&gt;UTF-32&lt;/a&gt;, unpacked and lazy: &lt;code&gt;[Char]&lt;/code&gt; (not a library, but if it was, this is where it would fall)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/UTF-16/UCS-2"&gt;UTF-16&lt;/a&gt;:&lt;ul&gt;
&lt;li&gt;Packed and lazy: &lt;code&gt;Data.Text.Lazy&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Packed and strict: &lt;code&gt;Data.Text&lt;/code&gt; or &lt;code&gt;Data.CompactString.UTF16&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/UTF-8"&gt;UTF-8&lt;/a&gt;:&lt;ul&gt;
&lt;li&gt;Unpacked and lazy: &lt;code&gt;Codec.Binary.UTF8.Generic&lt;/code&gt; contains generic operations that can be used to process &lt;tt class="docutils literal"&gt;[Word8]&lt;/tt&gt;.&lt;/li&gt;
&lt;li&gt;Packed and lazy: &lt;code&gt;Data.ByteString.Lazy.UTF8&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Packed and strict: &lt;code&gt;Data.CompactString.UTF8&lt;/code&gt; or &lt;code&gt;Data.ByteString.UTF8&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="http://twan.home.fmf.nl/compact-string/details.html"&gt;Compact (UTF-8-like)&lt;/a&gt;, packed and strict: &lt;code&gt;Data.CompactString&lt;/code&gt; with Compact&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;

&lt;p&gt;Theoretisch ist die Verarbeitung von &lt;code&gt;ByteString&lt;/code&gt;-Werten noch etwas effizienter als die von &lt;code&gt;Text&lt;/code&gt;-Werten – solange die verwendeten Zeichen sich größtenteils im ASCII-Bereich befinden. Praktisch ist der Geschwindigkeitsunterschied zu &lt;a href="http://stackoverflow.com/questions/8916107/data-text-vs-data-bytestring-char8"&gt;vernachlässigen&lt;/a&gt;, und konzeptuell ist Text eindeutig die &lt;a href="http://stackoverflow.com/questions/2086842/using-haskell-to-output-a-utf-8-encoded-bytestring"&gt;adäquatere Lösung&lt;/a&gt;.&lt;/p&gt;</summary><category term="development"></category><category term="haskell"></category><category term="technology"></category></entry><entry><title>Integriert</title><link href="http://janeden.net/2012/2/integriert-2" rel="alternate"></link><updated>2012-02-10T12:29:38Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/integriert-2</id><summary type="html">&lt;p&gt;Kaum habe ich verinnerlicht, dass nach Möglichkeit jeder etwas kompliziertere Handgriff in einer Wertschöpfungskette an günstigere Subunternehmer delegiert werden sollte, schwingt das Pendel in die &lt;a href="http://gigaom.com/2012/01/07/desantis-startups-crime-boss/"&gt;andere Richtung&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;As Kobayashi’s businesses grew, he was in a position to start bypassing middlemen. Instead of dealing with distributors, he went straight to producers. Instead of hiring contractors, he purchased required equipment and moved people onto payroll. Everywhere he saw a third party making money, he figured out a way to replace that person or bring them in-house. He reduced costs at every step. He constantly encouraged me to do the same.&lt;/p&gt; &lt;p&gt;Interesting things happen when we cut out the middleman. In addition to reducing cost, we often end up creating an internal byproduct that can be productized and sold to a completely new customer. (Amazon Web Services is an example of this.) Sometimes the middleman’s market is so huge, that a freaking enormous business can be built simply by providing their customers a lower cost and more efficient option. Two-sided marketplace businesses are a textbook example of this type of disruption.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Gilt das nur für halbseidene Geschäfte, oder muss ich meinen Nähbedarfsladen jetzt vollkommen umstrukturieren?&lt;/p&gt; </summary><category term="business"></category></entry><entry><title>Demokrat wider Willen</title><link href="http://janeden.net/2012/2/demokrat-wider-willen" rel="alternate"></link><updated>2012-02-10T12:18:57Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/demokrat-wider-willen</id><summary type="html">&lt;p&gt;Das Bundesuntersuchungsbüro der Vereinigten Staaten führt eine regelmäßig aktualisierte &lt;a href="http://www.governmentattic.org/5docs/FBI-DeadList-Update_2011.pdf"&gt;Liste&lt;/a&gt; relevanter Toter. Ein großer Teil der Verstorbenen fällt in die Kategorien FBI Officials, Communist, LCN (= La Cosa Nostra) und Pearl Harbor, was die größten Problembereiche der Polizeiarbeit im Jahr 2011 illustriert. Etwas überraschend ist lediglich die Einordnung Nikita Chruschtschows und seiner Frau:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Keyserling, Leon H., d. Aug. 1987 – COMMUNIST&lt;/li&gt; &lt;li&gt;Khanzadian, Azad Hoohi, b. 1895 – COMMUNIST&lt;/li&gt; &lt;li&gt;...&lt;/li&gt; &lt;li&gt;Kheifets, Gregori, (VICE CONSUL SF), b. 1899 - COMMUNIST&lt;/li&gt; &lt;li&gt;Khrushchev, Nikita, D. 9/11/1971&lt;/li&gt; &lt;li&gt;Khrushchev, Nina, D. 8/8/1984, wife of Nikita Khrushchev&lt;/li&gt; &lt;li&gt;...&lt;/li&gt; &lt;li&gt;Stalin, Joseph, aka. Joseph Vissarionivich D. Jughashvili, b. 1879, d. 1953 – COMMUNIST &lt;/ul&gt; &lt;p&gt;Wäre ich Chruschtschows Enkel, würde ich gegen diese Unterstellung klagen.&lt;/p&gt; </summary><category term="politics"></category></entry><entry><title>Stressfreie Effizienz</title><link href="http://janeden.net/2012/2/stressfreie-effizienz" rel="alternate"></link><updated>2012-02-10T11:41:32Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/stressfreie-effizienz</id><summary type="html">&lt;p&gt;Ich spiele mit dem Gedanken, mich um das betriebliche Vorschlagswesen, die sozialistische Wirtschaftsordnung und das Bruttosozialprodukt verdient zu machen:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href="/2012/2/hud"&gt;Login&lt;/a&gt;:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Enter username&lt;/li&gt; &lt;li&gt;Press tabulator key&lt;/li&gt; &lt;li&gt;Enter password&lt;/li&gt; &lt;li&gt;Press return key&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;Note: Please enter your actual username and password instead of the placeholders username and password.&lt;/p&gt; &lt;p&gt;&lt;a href="/2011/11/finder"&gt;Find&lt;/a&gt;:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Press CTRL-F (Mac: CMD-F)&lt;/li&gt; &lt;li&gt;Enter search term&lt;/li&gt; &lt;li&gt;Press return key&lt;/li&gt; &lt;/ol&gt; &lt;/blockquote&gt; &lt;p&gt;Look ma, no &lt;a href="http://www.taz.de/!80109/"&gt;side effects&lt;/a&gt;!&lt;/p&gt; </summary><category term="technology"></category></entry><entry><title>HUD</title><link href="http://janeden.net/2012/2/hud" rel="alternate"></link><updated>2012-02-10T11:22:32Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/hud</id><summary type="html">&lt;p&gt;Ubuntu 12.04 führt mit dem &lt;span lang="en"&gt;Head-Up Display&lt;/span&gt; (HUD) eine &lt;a href="/2010/10/herbstputz-launchbar"&gt;LaunchBar&lt;/a&gt;-artige Zugriffsmöglichkeit auf sämtliche Funktionen eines Programms ein. So nice! Die Linux-Kernzielgruppe tanzt &lt;a href="http://www.markshuttleworth.com/archives/939"&gt;in den Straßen&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;The results so far are rather interesting: power users say things like &lt;q lang="en"&gt;every GUI app now feels as powerful as VIM&lt;/q&gt;. EMACS users just grunt and... nevermind. Another comment was &lt;q lang="en"&gt;it works so well that the rare occasions when it can’t read my mind are annoying!&lt;/q&gt;. We’re doing a lot of user testing on heavy multitaskers, developers and all-day-at-the-workstation personas for Unity in 12.04, polishing off loose ends in the experience that frustrated some in this audience in 11.04-10. If that describes you, the results should be delightful. And the HUD should be particularly empowering.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Und alle tanzen mit!&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;Even casual users find typing faster than mousing. So while there are modes of interaction where it’s nice to sit back and drive around with the mouse, we observe people staying more engaged and more focused on their task when they can keep their hands on the keyboard all the time. Hotkeys are a sort of mental gymnastics, the HUD is a continuation of mental flow.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Ach... Mr. Shuttleworth? Haben Sie eigentlich schon mal mit &lt;q lang="en"&gt;casual users&lt;/q&gt; auf anderen Plattformen zu tun gehabt? Zum Beispiel beim Login? Das sieht nämlich so aus:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Der Mauszeiger wird auf das Feld &lt;q lang="de"&gt;Benutzername&lt;/q&gt; geführt, Klick (Bonuspunkte für das Loslassen der Maus vor dem Klick)&lt;/li&gt; &lt;li&gt;Der Mauszeiger wird aus dem Weg geschoben, um freie Sicht auf das Eingabefeld zu haben.&lt;/li&gt; &lt;li&gt;Der Benutzernamen wird eingegeben.&lt;/li&gt; &lt;li&gt;Der Mauszeiger wird durch hektisches Hin- und Herschieben der Maus lokalisiert.&lt;/li&gt; &lt;li&gt;Der Mauszeiger wird auf das Feld &lt;q lang="de"&gt;Passwort&lt;/q&gt; ...&lt;/li&gt; &lt;li&gt;...&lt;/li&gt; &lt;/ol&gt; &lt;p&gt;Es gibt nur wenige Situationen, in denen man das sinnlose Verstreichen der eigenen Lebenszeit noch intensiver empfindet.&lt;/p&gt; </summary><category term="technology"></category></entry><entry><title>Technologiedemonstration</title><link href="http://janeden.net/2012/2/technologiedemonstration" rel="alternate"></link><updated>2012-02-06T15:30:27Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/technologiedemonstration</id><summary type="html">&lt;p&gt;Die &lt;a href="http://www.golem.de/1201/89207.html"&gt;iOS-Version von vim&lt;/a&gt; versteckt die ESC-Taste in den Sonderzeichen und erlaubt nur die Bearbeitung von Dokumenten, die zuvor via iTunes auf das iPad/iPhone transferiert wurden. Ich hoffe auf Version 2.0 mit angepasster Tastatur und Dropbox-Anbindung. Weihnachten 2012 wäre ein passendes Release-Datum.&lt;/p&gt;</summary><category term="apple"></category><category term="ipad"></category><category term="ipod_iphone"></category><category term="technology"></category><category term="vim"></category></entry><entry><title>Heißohr</title><link href="http://janeden.net/2012/2/heissohr" rel="alternate"></link><updated>2012-02-06T15:04:39Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/heissohr</id><summary type="html">&lt;p&gt;Für einen audiophilen Liebhaber &lt;a href="/2011/10/traubennuss"&gt;ausgefallener Cereals&lt;/a&gt;, der außerdem eine meine &lt;a href="/2011/11/instapaper-as-a-platform"&gt;Lieblingsplattformen&lt;/a&gt; betreibt, habe ich natürlich großen Respekt. Aber: Geschlossene Kopfhörer &lt;q lang="en"&gt;affixed to my head &lt;a href="http://www.marco.org/2012/01/27/sennheiser-hd-380-pro-headphones-review"&gt;for many hours&lt;/a&gt; per day&lt;/q&gt;? Nach spätestens einer Stunde würden meine Gedanken nur noch um meine überhitzten Ohren kreisen.&lt;/p&gt;</summary><category term="media"></category><category term="music"></category><category term="technology"></category></entry><entry><title>SE Windows</title><link href="http://janeden.net/2012/2/se-windows" rel="alternate"></link><updated>2012-02-06T10:52:26Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/se-windows</id><summary type="html"> &lt;p&gt;Einerseits rät das BSI zum Kauf eines &lt;a href="https://www.bsi.bund.de/ContentBSI/Themen/Cyber-Sicherheit/Empfehlungen/produktkonfiguration/BSI-E-CS-001.html"&gt;aktuellen Windows-Systems&lt;/a&gt;, andererseits hält es das Microsoft-System für nicht sehr vertrauenswürdig:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Wenn Sie Ihren PC eines Tages entsorgen wollen, dann sollten Sie sicherstellen, dass alle Daten auf der Festplatte vernichtet sind. Ein einfaches Löschen in den "Papierkorb" oder im Windows Explorer ist hierfür nicht ausreichend.&lt;/p&gt; &lt;p&gt;Um Ihre Festplatte unbrauchbar zu machen, können Sie diese ausbauen und physisch zerstören. Ein Verkauf der gebrauchten Festplatte lohnt sich in den meisten Fällen nicht, wenn man den Erlös ins Verhältnis zum Wert Ihrer Daten setzt.&lt;/p&gt; &lt;p&gt;Wollen Sie die Festplatte dennoch erhalten, sollten Sie Ihren PC von einer in das CD-ROM-Laufwerk eingelegten Live-CD starten (z.B. &lt;a href="http://www.ubuntu.com/download/ubuntu/download"&gt;Ubuntu LiveCD&lt;/a&gt;), dann die Festplatte in das gestartete Live-System einbinden und schließlich in der Kommandozeile mit der Eingabe des Befehls&lt;/p&gt; &lt;p class="code"&gt;dd if=/dev/urandom of=/dev/GERAETENAME&lt;/p&gt; &lt;p&gt;löschen. Dabei steht der GERAETENAME für die erste Festplatte, die meistens mit "hda" oder "sda" bezeichnet wird. Sie sollten auf die Angaben der Kommandozeile achten.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;In der nächsten Folge: Wir kompilieren &lt;a href="http://www.linuxfromscratch.org/"&gt;Linux from Scratch&lt;/a&gt; und konfigurieren &lt;a href="http://en.wikipedia.org/wiki/Iptables"&gt;iptables&lt;/a&gt; von Hand, um eine Firewall für unseren Windows-Client bereitzustellen.&lt;/p&gt; </summary><category term="security"></category></entry><entry><title>Punktschmerz</title><link href="http://janeden.net/2012/2/punktschmerz" rel="alternate"></link><updated>2012-02-06T10:17:24Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/2/punktschmerz</id><summary type="html">&lt;p&gt;Eine Hamburger Journalistin lernt einen netten, aber ziemlich gehemmten Mann kennen. Sie &lt;a href="http://www.zeit.de/2012/02/Maenner"&gt;schreibt&lt;/a&gt; über diese frustrierende Erfahrung und verwendet den definiten Artikel versehentlich so, dass unvoreingenommene Leserinnen und Leser den Ausdruck &lt;q lang="de"&gt;der junge Mann&lt;/q&gt; als generisch interpretieren. Prompt wird in Hamburg erregt darüber &lt;a href="http://www.spiegel.de/spiegel/0,1518,809420,00.html"&gt;diskutiert&lt;/a&gt;, ob es gehemmte Männer geben dürfe, wer an ihrer Existenz schuld sei und ob nicht gehemmte Männer überhaupt noch zu finden seien. Aus Berlin kommen der gute &lt;a href="http://www.taz.de/!86844/"&gt;Rat&lt;/a&gt; an die Journalistin, einfach selbst die Initiative zu ergreifen, sowie der etwas unromantische &lt;a href="http://www.taz.de/!86739/"&gt;Hinweis&lt;/a&gt;, dass es schließlich noch andere Männer gebe.&lt;/p&gt; &lt;p&gt;Frankfurt gibt in einem sauber ausbalancierten &lt;a href="http://www.faz.net/aktuell/feuilleton/geschlechterrollen-im-wandel-kuessen-kann-man-nicht-alleine-11610870.html"&gt;Essay&lt;/a&gt; zu Protokoll, dass in Liebesdingen eben alles sehr kompliziert sei. Und in München? Dort ist die Welt noch in Ordnung: Männer (konkret: Väter) sind &lt;a href="http://www.sueddeutsche.de/leben/maenner-und-erziehung-vater-unser-der-du-bist-im-meeting-1.1274627"&gt;zielstrebige Blender&lt;/a&gt;, die aus taktischen Gründen Modernität simulieren.&lt;/p&gt; &lt;p&gt;Da soll noch jemand sagen, in Deutschland gebe es keine engagierte Debattenkultur. Ich wundere mich nur ein bisschen, wie bereitwillig das Feuilleton die Verhältnisse im eigenen Soziotop immer wieder zu gesamtgesellschaftlichen Entwicklungen oder sogar Zuständen aufbläst.&lt;/p&gt; </summary><category term="gender"></category><category term="politics"></category></entry><entry><title>Kolonialismus 2.0</title><link href="http://janeden.net/2012/1/kolonialismus-2-0" rel="alternate"></link><updated>2012-01-31T15:18:26Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/1/kolonialismus-2-0</id><summary type="html">&lt;p&gt;In der Entwicklungshilfe hat sich in den letzten 200 Jahren nicht sehr viel geändert. Nach wie vor muss man den außereuropäischen Bauern die Zusammenhänge zwischen hohem Gras und unsichtbaren Schlangen &lt;a href="http://www.zeit.de/2011/45/Ghana-SAP/"&gt;erklären&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;q lang="de"&gt;Bei seinen Reisen über Land hat [GIZ-Mitarbeiter] Keller bemalte Schilder im Gepäck, die aussehen wie Illustrationen in einem Kinderbuch. Damit erklärt er den Bauern, dass sie die Cashewnüsse schneller vom Boden aufsammeln können, wenn sie unter dem Baum beizeiten Gräser und Unterholz lichten. Außerdem könnten sie dann die Schlangen bemerken, bevor sie ihnen in die Hand bissen.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Was würden die armen Menschen in Afrika nur ohne Bwana Keller (und natürlich Bwana Niebel) tun?&lt;/p&gt; </summary><category term="politics"></category></entry><entry><title>Learning Haskell</title><link href="http://janeden.net/2012/1/learning-haskell" rel="alternate"></link><updated>2012-01-31T12:08:54Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/1/learning-haskell</id><summary type="html">&lt;blockquote&gt; &lt;p&gt;Und wenn am 21. Dezember die Welt untergeht, will ich heute noch eine neue Programmiersprache lernen.&lt;/p&gt; &lt;/blockquote&gt; &lt;p&gt;Die Veröffentlichung von &lt;a href="http://www.apple.com/ibooks-author/"&gt;iBooks Author&lt;/a&gt; hat eine Kette von Konsequenzen gehabt, die mit elektronischen Büchern wenig zu tun haben. Zunächst zeigte sich Matt Gemmell &lt;a href="http://mattgemmell.com/2012/01/19/ibooks-author-for-authors/"&gt;wenig interessiert&lt;/a&gt; an einer proprietären eBook-Lösung und verwies auf die Alternative &lt;a href="http://johnmacfarlane.net/pandoc/"&gt;pandoc&lt;/a&gt;, mit dessen Hilfe sich aus Markdown-Texten unter anderem ePub-Bücher generieren lassen. pandoc wiederum wurde von John McFarlane in &lt;a href="http://www.haskell.org/"&gt;Haskell&lt;/a&gt; geschrieben.&lt;/p&gt; &lt;p&gt;Fiona lernt also &lt;a href="http://fionalerntprogrammieren.wordpress.com/"&gt;programmieren&lt;/a&gt;, und ich lerne Haskell. Ebenfalls freiwillig. Der Zeitpunkt für meinen ersten ernsthaften Kontakt mit einer statisch typisierenden höheren Programmiersprache hat natürlich mit meinem Alter zu tun. Nach vielen Jahren mit dynamischen Programmiersprachen möchte man einfach mal was Solides. Einen Saab. Zugleich habe ich – anders als Fiona – nicht mehr genug Nerven und Lebenszeit, um mich mit Assembler zu beschäftigen.&lt;/p&gt; &lt;p&gt;Warum Haskell? Mehrere Informatikerinnen in meinem Bekanntenkreis verdrehen bei der Erwähnung dieser &lt;q lang="en"&gt;advanced purely-functional programming language&lt;/q&gt; entnervt die Augen (&lt;q lang="de"&gt;Mathematikersprache&lt;/q&gt;) und haben gewisse Vorbehalte gegen das &lt;a href="http://en.wikipedia.org/wiki/Functional_programming"&gt;funktionale Paradigma&lt;/a&gt;. Das Haskell-Wiki reagiert auf diese Ablehnung mit einem &lt;a href="http://www.haskell.org/haskellwiki/Why_Haskell_matters"&gt;engagierten Plädoyer&lt;/a&gt;, das mich restlos überzeugt. Zu meinen persönlichen Highlights gehören:&lt;/p&gt; &lt;dl&gt; &lt;dt&gt;Rekursion statt Schleifen&lt;/dt&gt; &lt;dd&gt;Für einen Agnostiker gibt es keinen kürzeren Weg ans Ende des eigenen Verstandes als den Gedanken an die Unendlichkeit, und rekursive Strukturen können den dafür typischen Schauder viel intensiver erzeugen als eine spröde &lt;code&gt;while True&lt;/code&gt;-Schleife.&lt;/dd&gt; &lt;dt&gt;&lt;span lang="en"&gt;Type Inference&lt;/span&gt;&lt;/dt&gt; &lt;dd&gt;Statisch typisierende Sprachen sind bekannt dafür, dass man Ihnen auch sehr offensichtliche Dinge (&lt;q lang="de"&gt;"Hello" ist eine Zeichenkette&lt;/q&gt;) explizit mitteilen muss. Haskell denkt mit.&lt;/dd&gt; &lt;dt&gt;Keine Seiteneffekte&lt;/dt&gt; &lt;dd&gt;Unverändliche Variablen sind nicht nur ein schönes Paradox, sondern auch eine enorme Beruhigung für Menschen, die schon mal stundenlang über den Wert einer Variablen zu einem bestimmten Zeitpunkt gegrübelt haben.&lt;/dd&gt; &lt;dt&gt;Faulheit&lt;/dt&gt; &lt;dd&gt;Haskell verbirgt die effiziente Verarbeitung großer Datenmengen hinter dem Namen einer Todsünde. Sehr sympathisch.&lt;/dd&gt; &lt;/dl&gt; &lt;p&gt;Dafür verzeihe ich Haskell sogar den geklauten Slogan für seine &lt;a href="http://www.haskell.org/haskellwiki/Applications_and_libraries"&gt;zwiebelartigen Bibliotheken&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Natürlich ist nicht alles eitel Sonnenschein. Die beste Haskell-Einführung – &lt;a href="http://learnyouahaskell.com/"&gt;Learn You a Haskell for Great Good&lt;/a&gt; – beschäftigt sich über viele Kapitel vor allem mit der Verarbeitung von Listen bzw. der Beantwortung drängender Fragen (&lt;q lang="en"&gt;Which right triangle that has integers for all sides and all sides equal to or smaller than 10 has a perimeter of 24?&lt;/q&gt;). Erst in &lt;a href="http://learnyouahaskell.com/input-and-output"&gt;Kapitel 9&lt;/a&gt; kommt Mr. Lipovača auf &lt;q lang="en"&gt;Hello world!&lt;/q&gt; zu sprechen. Das macht mich etwas misstrauisch, obwohl das Haskell-Wiki natürlich sofort &lt;a href="http://www.haskell.org/haskellwiki/Haskell_IO_for_Imperative_Programmers"&gt;versichert&lt;/a&gt;, dass die I/O-Monade auch ohne intime Kenntnis der &lt;a href="http://de.wikipedia.org/wiki/Kategorientheorie"&gt;Kategorientheorie&lt;/a&gt; genutzt werden kann.&lt;/p&gt; &lt;p&gt;Ok. Nicht nervös werden. Los geht's mit der ersten Frage: Wie hältst Du es mit dem Unicode? Die Antwort: &lt;a href="/2012/2/learning-haskell-unicode"&gt;Demnächst&lt;/a&gt; in diesem Blog.&lt;/p&gt; </summary><category term="development"></category><category term="haskell"></category><category term="technology"></category></entry><entry><title>Sophist</title><link href="http://janeden.net/2012/1/sophist" rel="alternate"></link><updated>2012-01-18T13:53:54Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/1/sophist</id><summary type="html">&lt;p&gt;Neben seinen vielen anderen Vorzügen war der geliebte Führer offenbar auch ein &lt;a href="http://www.sueddeutsche.de/politik/nordkorea-veroeffentlicht-englischsprachiges-web-portal-hoeret-genossen-was-kim-jong-un-euch-zu-sagen-hat-1.1256223"&gt;geübter Sophist&lt;/a&gt;:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt; Die Agenda der Medien stamme direkt aus der staatlichen Propaganda-Abteilung, schreibt Joo Seong-ha. Das führe dazu, dass sich der Inhalt der Texte auf den ersten Seiten von Ausgabe zu Ausgabe kaum unterscheide. Vom Diktator besonders gewünschte Stücke seien mit einem schwarzen Rahmen versehen. Weil Kim Jong Il Werbung gehasst habe, sei die Zeitung weitgehend frei von Anzeigen. &lt;/p&gt;&lt;/blockquote&gt; </summary><category term="advertising"></category><category term="business"></category><category term="media"></category><category term="politics"></category></entry><entry><title>Linux Fanboy</title><link href="http://janeden.net/2012/1/linux-fanboy" rel="alternate"></link><updated>2012-01-16T17:49:41Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/1/linux-fanboy</id><summary type="html">&lt;p&gt;Jack Donovan veröffentlicht ein umfassendes &lt;a href="http://howto.wired.com/wiki/Keep_Your_Computer_Bug-Free"&gt;Sicherheitskompendium&lt;/a&gt; auf Wired:&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Windows has seen many years of battle with the world’s most famous and most dangerous viruses. The gift of customization comes with the curse of exploitability.&lt;/p&gt; &lt;p&gt;Although OS X is a fairly new defender in the virus war, there are an amalgam of cleaning softwares out already on Apple’s App Store, and very few of them come cheap.&lt;/p&gt; &lt;p&gt;Linux, as a secure and advanced operating system, is generally safe from risk.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Wie diese Zusammenstellung von schlichten Vorurteilen als &lt;q lang="en"&gt;rebuttal for Apple fanboy smugness&lt;/q&gt; funktionieren soll, ist mir allerdings schleierhaft.&lt;/p&gt;</summary><category term="security"></category><category term="technology"></category></entry><entry><title>Mime</title><link href="http://janeden.net/2012/1/mime" rel="alternate"></link><updated>2012-01-16T17:28:30Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/1/mime</id><summary type="html">&lt;p&gt;Metaphernreich –&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Die Medienmacht wäre zurückgekehrt in den warmen Schoß einer unhinterfragt bleibenden ökonomischen Vermachtung&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;– bescheiden im Erkenntnisstreben –&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Es gibt starke Indizien für die modifizierte Existenz einer herrschenden Klasse.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;– und herablassend gegenüber nicht durchgängig akademisch gebildeten Kreisen –&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Das [Fernsehen] hinkt intellektuell ähnlich hinterher wie die Bloggerszene.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;– Dr. Markus Linden &lt;a href="http://www.taz.de/!85477/"&gt;verkörpert&lt;/a&gt; das Zerrbild eines deutschen Geisteswissenschaftlers mit Eleganz und spürbarer Leidenschaft. An seiner überzeugenden Darstellung könnte man höchstens kritisieren, dass die libertäre Ron Paul-Reminiszenz –&lt;/p&gt; &lt;blockquote&gt;&lt;p&gt;Die absolute Trennung von Politik und Ökonomie mag man wahlweise als Relikt antiker Philosophie oder utopisches Ziel ansehen.&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;– bei einem &lt;q lang="de"&gt;Politikwissenschaftler der Universität Trier&lt;/q&gt; unglaubwürdig wirkt. Aber vielleicht ist das genau der kleine Fehler, mit dem große Darsteller selbst vermeintlich durchschnittlichen Rollen ihren Stempel aufdrücken.&lt;/p&gt; </summary><category term="politics"></category></entry><entry><title>Erbnetz</title><link href="http://janeden.net/2012/1/erbnetz" rel="alternate"></link><updated>2012-01-16T16:02:24Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/1/erbnetz</id><summary type="html">&lt;p&gt;Sobald man einen gewissen Gerätepark um sich versammelt hat, ereilen auch den Admin eines kleinen, privaten Drahtlosnetzwerks die üblichen Admin-Probleme: Das &lt;a href="/2011/11/luftloewe"&gt;MacBook Air&lt;/a&gt; reagiert auf das 802.11g-Netz mit Verbindungsabbrüchen, der &lt;a href="/2011/9/the-untouchable-kindle"&gt;Kindle 4&lt;/a&gt; mag nur statische IP-Adressen (obwohl er angeblich mit DHCP umgehen kann), und das iPhone 4 unterstützt 802.11n &lt;a href="http://www.tuaw.com/2010/06/14/iphone-4-has-802-11n-but-not-the-awesome-802-11n/"&gt;nur auf 2,4 GHz&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Das hat zur Folge, dass ich meinen nagelneuen &lt;a href="http://www.amazon.de/gp/product/B002KLC8NY?ie=UTF8&amp;tag=janbruners"&gt;Dualband-Router&lt;/a&gt; tatsächlich ausreizen kann: Das 802.11n-Netz auf 5 GHz bedient MacBook Air und iPad per DHCP, das 802.11g-Netz auf 2,4 GHz versorgt iPhone und Kindle mit Netzzugang (wenn auch nicht mit IP-Adressen).&lt;/p&gt; &lt;p&gt;Mein ISP robbt sich langsam (50 MBit/s ab Dienstag) an die Maximalgeschwindigkeit des Legacy-WLAN heran, aber noch kann ich mir ein Leben ohne HD-Streaming mit dem iPhone vorstellen.&lt;/p&gt; </summary><category term="apple"></category><category term="ipad"></category><category term="ipod_iphone"></category><category term="localhost"></category><category term="mac"></category><category term="technology"></category></entry><entry><title>Tu Felix Hungaria</title><link href="http://janeden.net/2012/1/tu-felix-hungaria" rel="alternate"></link><updated>2012-01-13T13:40:02Z</updated><author><name>Jan Eden</name><uri>http://janeden.net/impressum</uri></author><id>http://janeden.net/2012/1/tu-felix-hungaria</id><summary type="html"> &lt;p&gt;Nachdem selbst die deutsche Presse mittlerweile die &lt;a href="/2011/9/verjuengung"&gt;Parallelen&lt;/a&gt; zwischen Ungarn und Italien &lt;a href="http://www.taz.de/Kommentar-Ungarn/!85453/"&gt;wahrnimmt&lt;/a&gt; und die finanzielle Situation Ungarns in griechische Dimensionen &lt;a href="http://www.sueddeutsche.de/wirtschaft/ungarn-braucht-dringend-geld-am-abgrund-1.1251273"&gt;abgleitet&lt;/a&gt;, betont der begnadete Imitator an der ungarischen Staatsspitze in einer eleganten Wendung den &lt;a href="http://www.sueddeutsche.de/politik/massenproteste-in-russland-russland-ohne-putin-russland-ohne-putin-1.1243529"&gt;anderen Aspekt&lt;/a&gt; seiner anspruchsvollen Rolle &lt;a href="http://www.taz.de/!84846/"&gt;etwas stärker&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Ziemlich peinlich für die &lt;a href="http://www.sueddeutsche.de/politik/euro-krise-merkels-seiltanz-zum-europaeischen-deutschland-1.1217287"&gt;europäische Führungsmacht&lt;/a&gt;: Das kleine Ungarn leistet sich einen wandlungsfähigen Schauspieler von Format, und hierzulande dominiert die eindimensionale Darstellung von &lt;a href="/2011/4/guttenberg-zurueck-im-amt"&gt;Hochstaplern&lt;/a&gt; und &lt;a href="http://www.sueddeutsche.de/politik/bundespraesident-unter-druck-wulff-machte-widerspruechliche-angaben-zu-bonusmeilen-nutzung-1.1256815"&gt;Kleinbürgern&lt;/a&gt;.&lt;/p&gt; </summary><category term="politics"></category></entry></feed>
