To see the full text of an article, click its title or the Link Weiterlesen.

Top 5 systemd troubles - a strategic view for distros

systemd is a new way to start a Linux-system with the expressed goal of rethinking all of init. These are my top 5 gripes with it. (»skip the updates«)

Update (2016-09-28): Systemd is an exploit kit just waiting to be activated. And once it is active, only those who wrote it will be able to defuse it — and check whether it is defused. And it is starting: How to crash systemd in one tweet? Alternatives? Use OpenRC for system services. That’s simple and fast and full-featured with minimal fuss. Use runit for process supervision of user-services and system-services alike.

Update (2014-12-11): One more deconstruction of the strategies around systemd: systemd: Assumptions, Bullying, Consent. It shows that the attitude which forms the root of the dangers of systemd is even visible in its very source code.

Update (2014-11-19): The Debian General Resolution resulted in “We do not need a general resolution to decide systemd”. The vote page provides detailed results and statistics. Ian Jackson resigned from the Technical Committee: “And, speaking personally, I am exhausted.”

Update (2014-10-16): There is now a vote on a General Resolution in Debian for preserving the ability to switch init systems. It is linked under “Are there better solutions […]?” on the site Shall we fork Debian™? :^|.

Update (2014-10-07): Lennart hetzt (german) describes the rhetoric tricks used by Lennart Poettering to make people forget that he is a major part of the communication problems we’re facing at times - and to hide valid technical, practical, pragmatical, political und strategical criticism of Systemd.

Update (2014-09-24): boycott systemd calls for action with 12 reasons against systemd: “We do recognize the need for a new init system in the 21st century, but systemd is not it.”

Update (2014-04-03): And now we have Julian Assange warning about NSA control over Debian, Theodore Ts’o, maintainer of ext4, complaining about incomprehensible systemd, and Linus Torvalds (you know him, right?) rant against disrupting behavior from systemd developers, going as far as refusing to merge anything from the developers in question into Linux. Should I say “I said so”? Maybe not. After all, I came pretty late. Others saw this trend 2 years before I even knew about systemd. Can we really assume that there won’t be intentional disruption? Maybe I should look for solutions. It could be a good idea to start having community-paid developers.

Update (2014-02-18): An email to the mailing list of the technical committee of debian summarized the strategic implications of systemd-adoption for Debian and RedHat. It was called conspiracy theory right away, but the gains for RedHat are obvious: RedHat would be dumb not to try this. And only a fool trusts a company. Even the best company has to put money before ethics.

Update (2013-11-20): Further reading shows that people have been giving arguments from my list since 2011, and they got answers in the range of “anything short of systemd is dumb”, “this cannot work” (while OpenRC clearly shows that it works well), requests for implementation details without justification and insults and further insults; but the arguments stayed valid for the last 2 years. That does not look like systemd has a friendly community - or is healthy for distributions adopting it. Also an OpenRC developer wrote the best rebuttal of systemd propaganda I read so far: “Alternativlos”: Systemd propaganda (note, though, that I am biased against systemd due to problems I had in the past with udev kernel-dependencies)

Phoronix conclusions distort their results, shown with the example of GCC vs. LLVM/Clang On AMD's FX-8350 Vishera

Phoronix recently did a benchmark of GCC vs. LLVM on AMD hardware. Sadly their conclusion did not fit the data they showed. Actually it misrepresented the data so strongly, that I decided to speak up here instead of having my comments disappear in their forums. This post was started on 2013-05-14 and got updates when things changed - first for the better, then for the worse.

Update 3 (the last straw, 2013-11-09): In the recent most blatant attack by Phoronix on copyleft programs - this time openly targeted at GNU - Michael Larabel directly misrepresented a post from Josh Klint to badmouth GDB (Josh confirmed this1). Josh gave a report of his initial experience with GDB in a Kickstarter Update in which he reported some shortcomings he saw in GDB (of which the major gripe is easily resolved with better documentation2) and concluded with “the limitations of GDB are annoying, but I can deal with it. It's very nice to be able to run and debug our editor on Linux”. Michael Larabel only quoted the conclusion up to “annoying” and abused that to support the claim that game developers (in general) call GDB “crap” and for further badmouthing of GDB. With this he provided the straw which I needed to stop reading Phoronix: Michael Larabel is hostile to copyleft and in particular to GNU and he goes as far as rigging test results3 and misrepresenting words of others to further his agenda. I even donated to Phoronix a few times in the past. I guess I won’t do that again, either. I should have learned from the error of the german pirates and should have avoided reading media which is controlled by people who want to destroy what I fight for (sustainable free software).
Update 2 (2013-07-06): But the next went down the drain again… “Of course, LLVM/Clang 3.3 still lacks OpenMP support, so those tests are obviously in favor of GCC.” — I couldn’t find a better way to say that those tests are completely useless while at the same time devaluing OpenMP support as “ignore this result along with all others where GCC wins”…
Update (2013-06-21): The recent report of GCC 4.8 vs. LLVM 3.3 looks much better. Not perfect, but much better.

  1. Josh Klint from Leadwerks confirmed that Phoronix misrepresented his post and wrote a followup-post: » @ArneBab That really wasn't meant to be controversial. I was hoping to provide constructive feedback from the view of an Xcode / VS user.« » Slightly surprised my complaints about GDB are a hot topic. I can make just as many criticisms of other compilers and IDEs.« » The first 24 hours are the best for usability feedback. I figure if they notice a pattern some of those things will be improved.« » GDB Follwup «@Leadwerks, 2:04 AM - 11 Nov 13, 2:10 AM - 11 Nov 13 and @JoshKlint, 2:07 AM - 11 Nov 13, 8:48 PM - 11 Nov 13

  2. The first-impression criticism from Josh Klint was addressed by a Phoronix reader by pointing to the frame command. I do not blame Josh for not knowing all tricks: He wrote a fair account of his initial experience with GDB (and he said later that he wrote the post after less than 24 hours of using GDB, because he considers that the best time to provide feedback) and his experience can serve as constructive criticism to improve tutorials, documentation and the UI of GDB. Sadly his visibility and the possible impact of his work on free software made it possible for Phoronix to abuse a personal report as support for a general badmouthing of the tool. In contrast the full message of Josh Klint ended really positive: Although some annoyances and limitations have been discovered, overall I have found Linux to be a completely viable platform for application development. — Josh Klint, Leadwerks 

  3. I know that rigging of tests is a strong claim. The actions of Michael Larabel deserve being called rigging for three main reasons: (1) Including compile-time data along with runtime performance without clear distinction between both, even though compile-time of the full code is mostly irrelevant when you use a proper build system and compile time and runtime are completely different classes of results, (2) including pointless tests between incomparable setups whose only use is to relativate any weakness of his favorite system and (3) blatantly lying in the summaries (as I show in this article). 

Making websafe colors safe for colorblind people

I just made the colors of my plotting framework safe for colorblind people (thanks to Paul Tol’s notes) and I want to share a very nice result I got: How to make the really websafe colors safe for colorblind people with minimal changes.

mostly websafe and colorblindsafe websafe but NOT colorblind safe

(the colorblind-safe colors are on the left, the original websafe colors on the right)

To do so, I turned to Color Oracle (for simulation of colorblindness directly on my screen) and Emacs rainbow-mode (for seeing the colors while editing the hex-codes - as shown in the screenshots above) and tweaked the color codes bit by bit, until they were distinguishable in the simulation of Deuteranopia, Protanopia and Tritanopia.

NetzwerkB: Der Tropfen, der das Fass zum Überlaufen bringt

Ich habe mich aus dem Verteiler von NetzwerkB ausgetragen und will nichts mehr mit den Leuten zu tun haben. Das folgende habe ich ihnen beim Austragen geschrieben:

Am Mittwoch, 9. Oktober 2013, 18:08:57 schrieb

Renate Künast, Claudia Roth

Die Regressmöglichkeit der Krankenkassen gegen die Täter wurde vor wenigen Wochen faktisch aufgehoben.

Das war der Tropfen, der mich endgültig dazu gebracht hat, mich auszutragen. Denn es waren wahrscheinlich nicht die Grünen, die diese Änderung bewirkten (die haben nicht genug Mandate dafür). Aber ihr habt wieder nur auf den Grünen rumgehackt.

Installing Scipy and PyNIO on a Bare Cluster with the Intel Compiler

2 years ago I had the task of running a python-program using scipy on our university cluster, using the Intel Compiler. I needed all those (as well as PyNIO and some other stuff) for running TM5 with the python shell on the HC3 of KIT.

This proved to be quite a bit more challenging than I had expected - but it was very interesting, too (and there I learned the basics of GNU autotools which still help me a lot).

But no one should have to go to the same effort with as little guidance as I had, so I decided to publish the script and the patches I created for installing everything we needed.1

The script worked 2 years ago, so you might have to fix some bits. I won’t promise that this contains everything you need to run the script - or that it won’t be broken when you install it. Actually I won’t promise anything at all, except that if the stuff here had been available 2 years ago, that could have saved me about 2 months of time (each of the patches here required quite some tracking of problems, experimenting and fixing, until it provided basic functionality - but actually I enjoyed doing that - I learned a lot - I just don’t want to be forced to do it again). Still, this stuff contains quite some hacks - even a few ugly ones. But it worked.

Senkung der Schwellen zur Mitarbeit in Parteien

Kommentar (der noch nicht freigeschaltet wurde??) zu einer Antwort zum Artikel Können wir jetzt bitte mal über die Fünf-Prozent-Hürde reden?, in dem Stefan Niggemeier (und viele Kommentierende) die Wahl nachbesprechen.

@G. B.: Die Mitarbeit in Parteien finde ich einen interessanten Punkt. Um sie zu verbessern müsste der Zeitaufwand deutlich geringer und die Schwelle zur Mitarbeit und Mitgestaltung geringer sein.

2013: Ich wähle mit Zweitstimme Piraten und mit Erststimme Grün

Noch vor 5 Wochen wusste ich, dass ich Grün wählen würde. Dann kam Agnes Krumwiede, die Kulturpolitische Sprecherin der Grünen, und erzählte mir, dass die Legalisierung der Privatkopie gar nicht im Grünen Wahlprogramm stünde (Sie steht dort aber! Ich habe das mehrfach geprüft!)

Da das Urheberrecht ein meiner Ansicht nach extrem wichtiges Thema ist und die Privatkopie mit dem Aufkommen von 3D-Druckern bald nicht mehr nur für digitale Güter wichtig sein wird, sondern auch für physische Alltagsgegenstände (und damit essenziell für unsere physische Handlungsfreiheit), habe ich mich entschlossen, am Sonntag den Piraten meine Zweitstimme zu geben.

Denn dank Gewissensfreiheit sind die Spitzenleute der Grünen (die im Parlament landen) nicht an das Wahlprogramm gebunden. Und ich nehme nach den Erfahrungen der letzten Jahre den Spitzenleuten der Grünen nicht mehr ab, dass sie selbst für die Privatkopie eintreten wollen (obwohl die Grüne Basis das klar will). Nicht, wenn Agnes Krumwiede Kulturpolitische Sprecherin sein kann… Den meisten Piraten glaube ich dagegen das Engagement für die Legalisierung der Privatkopie.

Die Grünen bekommen allerdings immernoch meine Erststimme.

Installing GNU Guix 0.6, easily

Org-Source (for editing)

PDF (for printing)

“Got a power-outage while updating?
No problem: Everything still works”

GNU Guix is the new functional package manager from the GNU Project which complements the Nix-Store with a nice Guile Scheme based package definition format.

What sold it to me was “Got a power-outage while updating? No problem: Everything still works” from the Guix talk of Ludovico at the GNU Hacker Meeting 2013. My son once found the on-off-button of our power-connector while I was updating my Gentoo box. It took me 3 evenings to get it completely functional again. This would not have happened with Guix.

Update (2014-05-17): Thanks to zerwas from IRC @ freenode for the patch to guix 0.6 and nice cleanup!


Installation of GNU Guix is straightforward, except if you follow the docs, but it’s not as if we’re not used to that from other GNU utilities, which often terribly short-sell their quality with overly general documentation ☺

So I want to provide a short guide how to setup and run GNU Guix with ease. My system natively runs Gentoo, My system natively runs Gentoo, so some details might vary for you. If you use Gentoo, you can simply copy the commands here into the shell, but better copy them to a text-file first to ensure that I do not try to trick you into doing evil things with the root access you need.

In short: This guide provides the First Contact and Black Triangle for GNU Guix.

Communicating your project: honest marketing for free software projects

Communicating your project is an essential step for getting the users you want. Here I summarize my experience from working on several different projects including KDE (where I learned the basics of PR - yay, sebas!), the Hurd (where I could really make a difference by improving the frontpage and writing the Month of the Hurd), Mercurial (where I practiced the minimally invasive PR) and 1d6 (my own free RPG where I see how much harder it is to do PR, if the project to communicate is your own).

Since voicing the claim that marketing is important often leads to discussions with people who hate marketing of any kind, I added an appendix with an example which illustrates nicely what happens when you don’t do any PR - and what happens if you do PR of the wrong kind.

If you’re pressed for time and want the really short form, just jump to the questionnaire.

Use the source, Luke! — Emacs org-mode beamer export with images in figure

I just needed to tweak my Emacs org-mode to beamer-latex export to embed images into a figure environment (not wrapfigure!). After lots of googling and documentation reading I decided to bite the bullet and just read the source. Which proved to be much easier than I had expected.

This tutorial requires at least org-mode 8.0 (before that you had to use hacks to get figure without a caption). It is only tested for org-mode 8.0.2: The code you see when you read the source might look different in other versions.

default answer to “I want to connect with you on [hip unfree service]”

I just decided to give a default answer when I get some email from people asking me to connect to them on some new unfree service:

Hello [Person],

You asked me to connect with you on some unfree service. If you still want that, just use a Those are federated, so you can use a number of different providers and still be connected to everyone on any other server.

Yahoo löscht Adressen aus meinem Adressbuch

→ Dieser Text ist eine offene Antwort auf eine Mail von Yahoo, in der sie mir erzählt haben, dass sie eine Adresse aus meinem Adressbuch entfernt haben.1

Sehr geehrte Yahoo-Supporter,

Was denken Sie sich dabei, Adressen in meinem Adressbuch zu löschen oder anderweitig zu ändern - oder auch nur, die darin gespeicherten Adressen zu „prüfen“?

Wenn Sie so mit meinen privaten Daten umgehen, muss ich schließen, dass ich von Ihren Diensten nur das absolute Minimum nutzen kann und jegliche privaten Daten lokal verwalten muss.

Mit freundlichen Grüßen,
Arne Babenhauserheide

PS: Diese E-Mail-Adresse könnte der Informationsschnipsel sein, den ich brauche, um aktualisierte Kontaktdaten zu finden.

PPS: Das höchste, das ich noch tolerierbar fände, wäre eine Markierung der E-Mail Adresse als nicht mehr aktuell, durch eine Abfrage, die nur getriggert wird, wenn eine Yahoo-Adresse gelöscht wird.

PPPS: Der Text von Yahoo dürfte die Schöpfungshöhe nicht erreichen, die notwendig ist, um Urheberrechtlichen Schutz zu genießen, daher zitiere ich ihn hier.

  1. Die E-Mail von Yahoo im Wortlaut:

    Ihr Mail-Account wurde aktualisiert

    Hallo ████,

    Yahoo! möchte dafür sorgen, dass Ihr Adressbuch nur aktuelle und gültige Mail-Adressen von den Freunden, Bekannten und Verwandten enthält, mit denen Sie kommunizieren. Ihre Kontaktliste enthält Mail-Adressen, die nicht mehr gültig sind. Wir haben sie entfernt.

    Folgende Mail-Adressen wurden entfernt:


    Es wurden ausschließlich ungültige Mail-Adressen entfernt. Alle weiteren Kontaktdaten bleiben bestehen.

    Wussten Sie schon, dass Sie weitere Kontakte ganz leicht aus Facebook oder Gmail importieren können? Jetzt loslegen :

    Yahoo! Kundensupport

Let-Rekursion ist toll!

Ich habe dank Pythonista in Scheme-Land von Let-Rekursion gelesen. Bis vorgestern fand ich sie noch sinnlos kompliziert.

Das hat sich alles geändert, als ich wirklichen Code damit geschrieben habe - zum Beispiel die Fibonacci-Folge (syntax: wisp1 für Guile Scheme2) (eigentlicher Augenöffner):

define : fib n
    let rek : (i 0) (u 1) (v 1)
        if : >= i : - n 2
            . v
            rek (+ i 1) v (+ u v) ; else

Um Let-Rekursion zu beschreiben, werde ich diese Funktion jetzt zu einer Schleife in Python transformieren und mich zu immer eleganteren Formulierungen vortasten, bis ich wieder bei dem gerade gezeigten Code bin; dann aber mit Hintergrundwissen darüber, wodurch er elegant wird, mit dem Verständnis, was genau er tut, und mit einem Gefühl dafür, wie viel diese Eleganz ausmacht - und warum sie erstrebenswert ist.

Surprising behaviour of Fortran (90/95)

1 Introduction

I recently started really learning Fortran (as opposed to just dabbling with existing code until it did what I wanted it to).

Here I document the surprises I found along the way.

As reference: I come from Python, C++ and Lisp, and I actually started to like Fortran while learning it. So the horror-stories I heard while studying were mostly proven wrong. I uploaded the complete code as base60.f90.

Kommentar zur Kritik am Bedingungslosen Grundeinkommen von Bruno Kern

→ Kommentar zu der Mail „FWD: Kritik am Bedingungslosen Grundeinkommen“ auf der Haupt-Mailing-Liste von attac-karlsruhe.

Hallo alle,

Ich habe diese Mail gerade zufällig gesehen und mich für den Inhalt interessiert.

Dabei habe ich mir die Freiheit genommen, die Punkte zu kommentieren, die mir am meisten ins Auge gesprungen sind.

Die Ideologie eines „Green New Deal“, der uns einreden will, dass wir mit einer intelligenteren Technik, mehr Effizienz und Ener

Kommentar zu Damsel in Distress: Schwache Darstellung von Frauen in Computerspielen

→ Ein Kommentar zu der Video(-spiel)-Analyse Damsel in Distress. Im ersten Teil beschreibt darin Anita Sarkeesian von Feminist Frequency, wie Frauen in Computerspielen vor allem in schwachen Rollen dargestellt werden („Damsel in Distress“ bedeutet in ihrer Beschreibung in etwa „Jungfrau, die Rettung braucht“). Im Zweiten spricht sie dann von Geschichten, in denen Männer auf Rachefeldzug gehen, nachdem ihre Frau oder Freundin getötet wurde.

Update (2013-08-11): In Folge 3 der Serie hat Anita fast alles umgesetzt, was ich hier geschrieben habe - und Aquaria beschrieben. Sehr cool!1


Teil 1: Schwache Frauen

Dem ersten Video stimme ich zu: Frauen werden weitaus häufiger als schwache Charaktere gezeigt, die gerettet werden müssen.

Was ich dabei nicht verstehe ist, warum noch nicht in 90% der Spiele beim Start das Geschlecht des Hauptcharakters gewählt werden kann.

Aber schauen wir doch einfach mal, an welche Spiele ich mich am stärksten erinnere - als Näherung für die Frage, welche Spiele mich am meisten beeinflusst haben:

  1. Part 3 of Damsel in Distress got much better than part 2, I think. Well worth watching!
    With a (short) nod to Drakan (I only played the demo, but that was awesome) and a nice reference to Aquaria. Though she leaves out Naija fighting against huge monsters and talks instead about cooking and learning about her backstory. But actually 80% of the game is spend diving through deep waters, battling hostile underwater creatures to beautiful music and using tunes to cast spells. At least that’s true as soon as you learn the self-transformation spells to switch into battle-forms.
    On the story-idea in the end: I’d wish for an alternative start: The evil overlord who captured the princess comes to her to gloat about a prophecy which says she will be saved by a noble knight, and that this prophecy will never come true. Instead of hoping for a prince, she decides to leave, not intending to become anyones price.
    PS: Preexisting Stereotype about men: dumb husband who never accomplishes anything meaningful and is laughing stock of his family. That’s the trope employed in many comedy shows on TV… 

Agnes Krumwiede verwässert die Positionen des Grünen Parteiprogramms 2013 zum Urheberrecht

Bis gestern wusste ich, wen ich wählen will: Definitiv wieder Grün. Dann hat Agnes Krumwiede ihre Vision für die Zukunft der Musikbranche geschrieben.

Normalerweise würde ich ihr ihre Meinung einfach stehen lassen, aber sie wird als „Sprecherin für Kulturpolitik der Bundestagsfraktion Bündnis 90/Die Grünen“ vorgestellt.

Update 4: Da Agnes Krumwiede sich weigert, mir zu antworten, habe ich nun an den offiziellen Account der Grünen geschrieben. Ich habe sie gebeten, Agnes Krumwiede zu bitten, die Ergebnisse der Grünen Fachtagung zu beachten, ihnen den Link hierher gegeben und ihnen gesagt, dass ich selten so enttäuscht von einer Grünen Aussage war. Letzteres war vielleicht nicht ganz so konstruktiv. Ich hoffe, sie erkennen dahinter, dass ich die Grünen Aussagen zum Thema Urheberrecht sonst meist wirklich gut finde, denn nur wer positive Erwartungen hat kann enttäuscht werden.

Update 3: Heise fragte zu dem Thema: Hat Agnes Krumwiede eigentlich die Fotografen der Bilder in ihrem PDF bezahlt? „Nach einer Urheberangabe gemäß § 13 UrhG sucht man bei Krumwiede vergeblich“. Wobei hervorgehoben werden sollte, dass die Musikwoche die Fotos in einer kommerziellen Veröffentlichung verwendete, und Agnes Krumwiede sie als Platform nutzte, um gegen nichtkommerzielle Privatkopien, zu sprechen. Dazu gab es noch einen Link zu einer Grünen Fachtagung zum Thema: „Schluss mit Weltfremd“. Der zeigte Echte Grüne Netzpolitik: „Vergüten statt Verfolgen“.

Update 2: Ich habe Agnes Krumwiede gefragt, ob sie eine Langtext-Klarstellung schreiben kann. Mit 144 Zeichen pro Nachricht kommt es mir zu schnell zu Missverständnissen (und ich habe gemerkt, dass mein Schreibstil ein bisschen zu weit ins piratig-flamige geht, obwohl Agnes Krumwiede und ich größtenteils auf der selben Seite stehen. Wenn wir die eigenen Delegierten ständig angreifen, überstehen nur die, die uns nicht zuhören…). Sollte sie diese Klarstellung schreiben, verlinke ich sie, sobald ich davon erfahre.

Update: Agnes Krumwiede hat auf meinen Text geantwortet.

Solange sie sich nicht deutlich von dieser Rolle distanziert (z.B. über „ich spreche hier als Privatperson, nicht für meine Partei“), sollte sie daher meiner Meinung nach ihr Parteiprogramm wiedergeben. Denn das was sie schreibt, zerstört meine Sicherheit in meine Wahlentscheidung.1

  1. Das Grüne Wahlprogramm ist beim Urheberrecht sehr ängstlich, geht aber in die richtige Richtung (und wurde wirklich von der gesamten Basis entwickelt - über ihr funktionierendes Delegiertensystem). Dank Agnes Krumwiede habe ich jetzt gesehen, dass ein ängstlich-schwammiger Text nicht reicht, weil er allzu leicht so weit ausgelegt werden kann, dass am Ende das Gegenteil von dem herauskommt, was er im Wortlaut sagt. Was ich mir gewünscht hätte ist das hier: Piratenpartei zum Urheberrecht. Ich habe einige Gründe, aus denen ich die Piraten nicht wählen will (v.a. die wenig inklusive Diskussionskultur, das Thema Gleichberechtigung und dass sie sich in den Medien in die Rolle einer reinen Bürgerbeteiligungs-Partei drücken ließen). Aber mit Agnes Krumwiede habe ich jetzt einen wichtigen Grund, die Grünen nicht zu wählen (Wenn die Spitze nicht mitzieht, bringt das Parteiprogramm wenig. Stichwort Gewissensfreiheit). Sollte sich da bis zur Wahl nichts ändern, wähle ich wohl doch Piraten. Denn das Urheberrecht ist das zentrale Thema für kreative Freiheit im Internet. 

Machtkonzentration, Überwachung und Zersplitterung

Wege zur Macht über Andere

Wege zur Macht über Andere

→ Ein offener Brief an Frau Kappert von der Taz zu ihrem Kommentar über die NSA: Die Datenterroristen: Geheimdienste haben mehr Informationen, verlieren aber an Macht

Sehr geehrte Frau Kappert,

Ihr Kommentar fing in meinen Augen sehr gut an. Doch der Abschluss war schwächer als der Anfang erhoffen ließ.

Machtkonzentration, Überwachung und Zersplitterung (PDF)

Wenn hier in Deutschland Tausende vor Banken demonstrieren, dann kommt das eine Weile in den Nachrichten. Danach gibt es plötzlich ein paar Skandale und kurz darauf wird geräumt. Und dann ist es vorbei und alles geht so weiter wie bisher.

Konstantin Wecker sagte nach 35 Jahren als Musiker „Ich bin damals angetreten, die Welt mit meiner Musik zu verändern. Die Welt hat sich verändert. Aber was soll ich sagen: Ich war es nicht.“1



Vor 30 Jahren sind die Grünen angetreten, Frieden in der Welt zu verbreiten. Heute mischt Deutschland in jedem Krieg mit. Denn wir sind ja in der Nato, und da müssen wir helfen.

Die SPD ist angetreten, für die Arbeiter zu kämpfen. Jetzt waren sie an der Macht, und die Ungleichheit in Deutschland ist größer denn je.

Irgendjemand ändert hier etwas. Aber wir sind es nicht. Obwohl „unsere“ Parteien so stark sind wie nie zuvor.

  1. Reiche versuchen ihre Macht strukturell zu verankern: Macht und Geld wurden in den letzten Jahrzehnten immer stärker auf eine kleine Gruppe konzentriert, und kaum jemand wagt es, Geldbesitz als Rechtfertigung für Entscheidungsmacht anzuzweifeln. Diese kleine Gruppe arbeitet aktiv daran, ihre Macht in gesellschaftlichen Strukturen zu verankern. Dabei ist ihr Reichtum kein sinnvolles Maß für Leistung, nicht einmal ein selbst-konsistentes

NetzwerkB auf Bild-Niveau :(

→ Kommentar zur Aktion gegen Volker Beck von NetzwerkB.

Sie werfen hier soviel in einen Topf, dass ich Sie dabei nicht unterstützen kann und will.

Schlimmstes Beispiel:

Am Mittwoch, 10.

Ich lerne Steno, weil…

Ich lerne Stenografie, weil ich meine Schrift immer weiter entwickeln können will.

Ich lerne Steno, weil…

→ Mehr zu Steno…

Menschenfeindliche Systeme

„Du musst alles tun, was du kannst.“

Gedanken zur Ausprägung verschiedener menschenfeindlicher Systeme.

Wenn du alles tun musst, was du kannst, hast du selbst kaum mehr Wahlfreiheit.


  • Staats-Kommunismus: Der Staat stellt fest, was du kannst. Das ist deine Aufgabe.
  • Amerikanischer Kapitalismus: Wenn deine Qualifikation nicht passt, wirst du nicht genommen (zu schlecht oder zu gut → aufmüpfig). Ideologischer Druck.

Equal-Area Map Projections with Basemap and matplotlib/pylab

PDF (read as slides)

Org (reproduce)

Plotting global equal area maps with python, matplotlib/pylab and Basemap.

Table of Contents

information-disbalance creates a power-disbalance

→ a comment to You call it privacy invasion, I don't from Flameeyes.

What you state is a strong version of the “I’ve got nothing to hide” argument. If you’re interested in a thorough debunking, there is a very good article in the chronicle about that: Why Privacy Matters even if you have nothing to hide.

Thank you for your Flattr’s! | Danke für eure Flattr! | Dankon por vian Flattrn!

It’s always a great feeling to see a flattr - Thank you for your support!
You can find new free works for you enjoyment on (infrequent and bursty) and (currently weekly but mostly in German).

ArneBab on Flattr

Es ist ein tolles Gefühl, geflattrd zu werden - Danke für eure Unterstützung!

Wahlprogramm der „Alternative für Deutschland“, kritisch gelesen

Ich habe inzwischen von mehreren Leuten gehört, diese Professoren von der AfD wären ja gebildet und hätten ein gutes Programm.

PDF (drucken)

Org (bearbeiten)

Um nicht nur meine Meinung zu schreiben, sondern sie auch zu belegen, habe ich das Programm nochmal Schritt für Schritt gegengelesen und kommentiert.

Ich bin nicht auf viel gestoßen, dem ich zustimmen kann (dafür auf einige Horrorstellen) - abgesehen von Punkten, die eh schon Gesetz sind.

Jetzt aber zum Programm.

Basic usecases for DVCS: Workflow Failures

If you came here searching for a way to set the username in Mercurial: just run hg config --edit and add
    username = YOURNAME <EMAIL>
to the file which gets opened. If you have a very old version of Mercurial (<3.0), open $HOME/.hgrc manually.

Update (2015-02-05): For the Git breakage there is now a partial solution in Git v2.3.0: You can push into a checked out branch when you prepare the target repo via git config receive.denyCurrentBranch updateInstead, but only if nothing was changed there. This does not fully address the workflow breakage (the success of the operation is still state-dependent), but at least it makes it work. With Git providing a partial solution for the breakage I reported and Mercurial providing a full solution since 2014-05-01, I call this blog post a success. Thank you Git and Mercurial devs!

Update (2014-05-01): The Mercurial breakage is fixed in Mercurial 3.0: When you commit without username it now says “Abort: no username supplied (use "hg config --edit" to set your username)”. The editor shows a template with a commented-out field for the username. Just put your name and email after the pre-filled username = and save the file. The Git breakage still exists.

Update (2013-04-18): In #mercurial @ there were discussions yesterday for improving the help output if you do not have your username setup, yet.

1 Intro

I recently tried contributing to a new project again, and I was quite surprised which hurdles can be in your way, when you did not setup your environment, yet.

So I decided to put together a small test for the basic workflow: Cloning a project, doing and testing a change and pushing it back.

I did that for Git and Mercurial, because both break at different points.

I’ll express the basic usecase in Subversion:

  • svn checkout [project]
  • (hack, test, repeat)
  • (request commit rights)
  • svn commit -m "added X"

You can also replace the request for commit rights with creating a patch and sending it to a mailing list. But let’s take the easiest case of a new contributor who is directly welcomed into the project as trusted committer.


A slightly more advanced workflow adds testing in a clean tree. In Subversion it looks almost like the simple commit:


Programm der „Alternative für Deutschland“

Belege für die Aussagen hier habe ich im Artikel Wahlprogramm der „Alternative für Deutschland“, kritisch gelesen geschrieben.

Ich wollte heute einen Artikel zum Programm der „Anternative für Deutschland schreiben und habe es geschafft, nach 3 Stunden Schreiben und Recherche den Artikel zu löschen. Aber die Nachdenkseiten treffen die Kritik in meinem Artikel zum Glück mit noch mehr Hintergrund, so dass ich stattdessen jetzt einfach auf den Artikel der Nachdenkseiten verlinke:

Hintergrund zur AfD von den Nachdenkseiten:
Können Markt­radikale und Nationalchauvinisten eine „Alternative für Deutschland“ sein?
— mit Unterstützerliste (und Hintergrund zu den Unterstützern).

Babcore: Emacs Customizations everyone should have

Update (2017-05): babcore is at 0.2, but I cannot currently update the marmalade package. See lisplets/babcore.el

1 Intro

PDF-version (for printing)

Package (to install)

orgmode-version (for editing)

repository (for forking)

project page (for fun ☺)

Emacs Lisp (to use)

I have been tweaking my emacs configuration for years, now, and I added quite some cruft. But while searching for the right way to work, I also found some gems which I direly miss in pristine emacs.

This file is about those gems.

Babcore is strongly related to Prelude. Actually it is just like prelude, but with the stuff I consider essential. And staying close to pristine Emacs, so you can still work at a coworkers desk.

But before we start, there is one crucial piece of advice which everyone who uses Emacs should know:

C-g: abort

Hold control and hit g.

That gets you out of almost any situation. If anything goes wrong, just hit C-g repeatedly till the problem is gone - or you cooled off far enough to realize that a no-op is the best way to react.

To repeat: If anything goes wrong, just hit C-g.

wisp: Whitespace to Lisp

» I love the syntax of Python, but crave the simplicity and power of Lisp.«

display "Hello World!" ↦ (display "Hello World!")
define : factorial n     (define (factorial n)            
    if : zero? n       ↦     (if (zero? n)                
       . 1                      1                      
       * n : factorial {n - 1}  (* n (factorial {n - 1}))))

Wisp basics

»ArneBab's alternate sexp syntax is best I've seen; pythonesque, hides parens but keeps power« — Christopher Webber in twitter, in and in his blog: Wisp: Lisp, minus the parentheses
☺ Yay! ☺
with (open-file "with.w" "r") as port
     format #t "~a\n" : read port
Familiar with-statement in 25 lines.

 ↓ skip updates ↓

Update (2017-03-18): I removed the link to Gozala’s wisp, because it was put in maintenance mode. Quite the opposite of Guile which is taking up speed and just released Guile version 2.2.0, fully compatible with wisp (though wisp helped to find and fix one compiler bug, which is something I’m really happy about ☺).
Update (2017-02-05): Allan C. Webber presented my talk Natural script writing with Guile in the Guile devroom at FOSDEM. The talk was awesome — and recorded! Enjoy Natural script writing with Guile by "pretend Arne" ☺

presentation (pdf, 16 slides) and its source (org).
Have fun with wisp syntax!
Update (2016-07-12): wisp v0.9.1 released with a fix for multiline strings and many additional examples. For more info, see the NEWS file. To test it, install Guile 2.0.11 or later and bootstrap wisp:
tar xf wisp-0.9.1.tar.gz ; cd wisp-0.9.1/;
./configure; make check;
examples/newbase60.w 123
If it prints 23 (123 in NewBase60), your wisp is fully operational.
That’s it - have fun with wisp syntax!
Update (2016-01-30): I presented Wisp in the Guile devroom at FOSDEM. The reception was unexpectedly positive — given some of the backlash the readable project got I expected an exceptionally sceptical audience, but people rather asked about ways to put Wisp to good use, for example in templates, whether it works in the REPL (yes, it does) and whether it could help people start into Scheme. The atmosphere in the Guile devroom was very constructive and friendly during all talks, and I’m happy I could meet the Hackers there in person. I’m definitely taking good memories with me. Sadly the video did not make it, but the schedule-page includes the presentation (pdf, 10 slides) and its source (org).
Have fun with wisp syntax!
Update (2016-01-04): Wisp is available in GNU Guix! Thanks to the package from Christopher Webber you can try Wisp easily on top of any distribution:
guix package -i guile guile-wisp
guile --language=wisp
This already gives you Wisp at the REPL (take care to follow all instructions for installing Guix on top of another distro, especially the locales).
Have fun with wisp syntax!
Update (2015-10-01): wisp v0.9.0 released which no longer depends on Python for bootstrapping releases (but ./configure still asks for it — a fix for another day). And thanks to Christopher Webber there is now a patch to install wisp within GNU Guix. For more info, see the NEWS file. To test it, install Guile 2.0.11 or later and bootstrap wisp:
tar xf wisp-0.9.0.tar.gz ; cd wisp-0.9.0/;
./configure; make check;
examples/newbase60.w 123
If it prints 23 (123 in NewBase60), your wisp is fully operational.
That’s it - have fun with wisp syntax!
Update (2015-09-12): wisp v0.8.6 released with fixed macros in interpreted code, chunking by top-level forms, : . parsed as nothing, ending chunks with a trailing period, updated example evolve and added examples newbase60, cli, cholesky decomposition, closure and hoist in loop. For more info, see the NEWS file.To test it, install Guile 2.0.x or 2.2.x and Python 3 and bootstrap wisp:
tar xf wisp-0.8.6.tar.gz ; cd wisp-0.8.6/;
./configure; make check;
examples/newbase60.w 123
If it prints 23 (123 in NewBase60), your wisp is fully operational.
That’s it - have fun with wisp syntax! And a happy time together for the ones who merge their paths today ☺
Update (2015-04-10): wisp v0.8.3 released with line information in backtraces. For more info, see the NEWS file.To test it, install Guile 2.0.x or 2.2.x and Python 3 and bootstrap wisp:
tar xf wisp-0.8.3.tar.gz ; cd wisp-0.8.3/;
./configure; make check;
guile -L . --language=wisp tests/factorial.w; echo
If it prints 120120 (two times 120, the factorial of 5), your wisp is fully operational.
That’s it - have fun with wisp syntax!
Update (2015-03-18): wisp v0.8.2 released with reader bugfixes, new examples and an updated draft for SRFI 119 (wisp). For more info, see the NEWS file.To test it, install Guile 2.0.x or 2.2.x and Python 3 and bootstrap wisp:
tar xf wisp-0.8.2.tar.gz ; cd wisp-0.8.2/;
./configure; make check;
guile -L . --language=wisp tests/factorial.w; echo
If it prints 120120 (two times 120, the factorial of 5), your wisp is fully operational.
That’s it - have fun with wisp syntax!
Update (2015-02-03): The wisp SRFI just got into draft state: SRFI-119 — on its way to an official Scheme Request For Implementation!
Update (2014-11-19): wisp v0.8.1 released with reader bugfixes. To test it, install Guile 2.0.x and Python 3 and bootstrap wisp:
tar xf wisp-0.8.1.tar.gz ; cd wisp-0.8.1/;
./configure; make check;
guile -L . --language=wisp tests/factorial.w; echo
If it prints 120120 (two times 120, the factorial of 5), your wisp is fully operational.
That’s it - have fun with wisp syntax!
Update (2014-11-06): wisp v0.8.0 released! The new parser now passes the testsuite and wisp files can be executed directly. For more details, see the NEWS file. To test it, install Guile 2.0.x and bootstrap wisp:
tar xf wisp-0.8.0.tar.gz ; cd wisp-0.8.0/;
./configure; make check;
guile -L . --language=wisp tests/factorial.w;
If it prints 120120 (two times 120, the factorial of 5), your wisp is fully operational.
That’s it - have fun with wisp syntax!
On a personal note: It’s mindboggling that I could get this far! This is actually a fully bootstrapped indentation sensitive programming language with all the power of Scheme underneath, and it’s a one-person when-my-wife-and-children-sleep sideproject. The extensibility of Guile is awesome!
Update (2014-10-17): wisp v0.6.6 has a new implementation of the parser which now uses the scheme read function. `wisp-scheme.w` parses directly to a scheme syntax-tree instead of a scheme file to be more suitable to an SRFI. For more details, see the NEWS file. To test it, install Guile 2.0.x and bootstrap wisp:
tar xf wisp-0.6.6.tar.gz; cd wisp-0.6.6;
./configure; make;
guile -L . --language=wisp
That’s it - have fun with wisp syntax at the REPL!
Caveat: It does not support the ' prefix yet (syntax point 4).
Update (2014-01-04): Resolved the name-clash together with Steve Purcell und Kris Jenkins: the javascript wisp-mode was renamed to wispjs-mode and wisp.el is called wisp-mode 0.1.5 again. It provides syntax highlighting for Emacs and minimal indentation support via tab. You can install it with `M-x package-install wisp-mode`
Update (2014-01-03): wisp-mode.el was renamed to wisp 0.1.4 to avoid a name clash with wisp-mode for the javascript-based wisp.
Update (2013-09-13): Wisp now has a REPL! Thanks go to GNU Guile and especially Mark Weaver, who guided me through the process (along with nalaginrut who answered my first clueless questions…).
To test the REPL, get the current code snapshot, unpack it, run ./, start guile with $ guile -L . (requires guile 2.x) and enter ,language wisp.
Example usage:
display "Hello World!\n"
then hit enter thrice.
Voilà, you have wisp at the REPL!
Caveeat: the wisp-parser is still experimental and contains known bugs. Use it for testing, but please do not rely on it for important stuff, yet.
Update (2013-09-10): wisp-guile.w can now parse itself! Bootstrapping: The magical feeling of seeing a language (dialect) grow up to live by itself: python3 wisp-guile.w > 1 && guile 1 wisp-guile.w > 2 && guile 2 wisp-guile.w > 3 && diff 2 3. Starting today, wisp is implemented in wisp.
Update (2013-08-08): Wisp 0.3.1 released (Changelog).

Wirtschaftsaufsicht für legale Prostitution

→ Antwort auf die Aussage „Es gäbe so viel Sinnvolleres anzuprangern als legale Prostitution“ von Antje Lang-Lendorff in der Taz.

Bei legaler Prostitution gibt es sehr wohl etwas anzuprangern: Dass im Zuge der Legalisierung nicht gleichzeitig eine effektive Wirtschaftsaufsicht eingeführt wurde.

Für jede Masseurin, Psychologin oder Gastwirtin gibt es hierzulande klare Gesetze, und ein Verstoß dagegen führt zur Schließung.

Wir haben Gesetze dafür, wie Salat in Dönerbuden aufbewahrt werden muss, und ein Verstoß dagegen wird direkt geahndet. Wir dürfen nichtmal ein Soya-Getränk auf der Verpackung als Milch bezeichnen.

Warum haben wir dann keine geprüften Vorgaben, die regeln, wie ein Bordell geführt werden muss, damit die Rechte aller Beteiligten gewahrt bleiben? Und die Auskunftspflichten definieren, die natürlich geprüft werden?

Was wir dafür brauchen ist einfach eine Definition, was gute Prostitution ist und wie sie funktionieren kann.

Inhalt abgleichen
Willkommen im Weltenwald!

Beliebte Inhalte news


This question is for testing whether you are a human visitor and to prevent automated spam submissions. This is pretty hard (also for me), but any easier and I drown in spam.
Enter the characters shown in the image.