MDD, Module Dependency Disorder, the perl plague

There's a problem with more and more perl modules I'd like to call "Module Dependency Disorder", MDD. Many perl modules, especially the newer ones have so many dependencies - it's just a mess. In the old times you could install modules by using "perl Makefile.PL && make && sudo make install", under some OSes like Linux and FreeBSD most modules are packaged. But this is over.

Thanks goodness there's Perlbrew so I don't have to mess with my system in order to just test a new module. Today I wanted to play a little with Geo::GPX and GIS::Distance, so I installed them inside my perlbrew environment using 'cpanm'. This is what it looked like:

% cpanm GIS::Distance
--> Working on GIS::Distance
Fetching http://www.cpan.org/authors/id/B/BL/BLUEFEET/GIS-Distance-0.09.tar.gz ... OK
Configuring GIS-Distance-0.09 ... OK
==> Found dependencies: Type::Tiny, Moo, Class::Measure, namespace::clean, strictures
--> Working on Type::Tiny
Fetching http://www.cpan.org/authors/id/T/TO/TOBYINK/Type-Tiny-1.000005.tar.gz ... OK
Configuring Type-Tiny-1.000005 ... OK
Building and testing Type-Tiny-1.000005 ... OK
Successfully installed Type-Tiny-1.000005
--> Working on Moo
Fetching http://www.cpan.org/authors/id/H/HA/HAARG/Moo-2.000002.tar.gz ... OK
Configuring Moo-2.000002 ... OK
==> Found dependencies: Module::Runtime, Role::Tiny, Devel::GlobalDestruction, Class::Method::Modifiers
--> Working on Module::Runtime
Fetching http://www.cpan.org/authors/id/Z/ZE/ZEFRAM/Module-Runtime-0.014.tar.gz ... OK
Configuring Module-Runtime-0.014 ... OK
Building and testing Module-Runtime-0.014 ... OK
Successfully installed Module-Runtime-0.014
--> Working on Role::Tiny
Fetching http://www.cpan.org/authors/id/H/HA/HAARG/Role-Tiny-2.000001.tar.gz ... OK
Configuring Role-Tiny-2.000001 ... OK
Building and testing Role-Tiny-2.000001 ... OK
Successfully installed Role-Tiny-2.000001
--> Working on Devel::GlobalDestruction
Fetching http://www.cpan.org/authors/id/H/HA/HAARG/Devel-GlobalDestruction-0.13.tar.gz ... OK
Configuring Devel-GlobalDestruction-0.13 ... OK
==> Found dependencies: Sub::Exporter::Progressive
--> Working on Sub::Exporter::Progressive
Fetching http://www.cpan.org/authors/id/F/FR/FREW/Sub-Exporter-Progressive-0.001011.tar.gz ... OK
Configuring Sub-Exporter-Progressive-0.001011 ... OK
Building and testing Sub-Exporter-Progressive-0.001011 ... OK
Successfully installed Sub-Exporter-Progressive-0.001011
Building and testing Devel-GlobalDestruction-0.13 ... OK
Successfully installed Devel-GlobalDestruction-0.13
--> Working on Class::Method::Modifiers
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Class-Method-Modifiers-2.11.tar.gz ... OK
Configuring Class-Method-Modifiers-2.11 ... OK
Building and testing Class-Method-Modifiers-2.11 ... OK
Successfully installed Class-Method-Modifiers-2.11
Building and testing Moo-2.000002 ... OK
Successfully installed Moo-2.000002
--> Working on Class::Measure
Fetching http://www.cpan.org/authors/id/B/BL/BLUEFEET/Class-Measure-0.05.tar.gz ... OK
Configuring Class-Measure-0.05 ... OK
==> Found dependencies: Sub::Exporter
--> Working on Sub::Exporter
Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/Sub-Exporter-0.987.tar.gz ... OK
Configuring Sub-Exporter-0.987 ... OK
==> Found dependencies: Data::OptList, Sub::Install, Params::Util
--> Working on Data::OptList
Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/Data-OptList-0.109.tar.gz ... OK
Configuring Data-OptList-0.109 ... OK
==> Found dependencies: Params::Util, Sub::Install
--> Working on Params::Util
Fetching http://www.cpan.org/authors/id/A/AD/ADAMK/Params-Util-1.07.tar.gz ... OK
Configuring Params-Util-1.07 ... OK
Building and testing Params-Util-1.07 ... OK
Successfully installed Params-Util-1.07
--> Working on Sub::Install
Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/Sub-Install-0.928.tar.gz ... OK
Configuring Sub-Install-0.928 ... OK
Building and testing Sub-Install-0.928 ... OK
Successfully installed Sub-Install-0.928
Building and testing Data-OptList-0.109 ... OK
Successfully installed Data-OptList-0.109
Building and testing Sub-Exporter-0.987 ... OK
Successfully installed Sub-Exporter-0.987
Building and testing Class-Measure-0.05 ... OK
Successfully installed Class-Measure-0.05
--> Working on namespace::clean
Fetching http://www.cpan.org/authors/id/R/RI/RIBASUSHI/namespace-clean-0.26.tar.gz ... OK
Configuring namespace::clean-0.26 ... OK
==> Found dependencies: Package::Stash, B::Hooks::EndOfScope
--> Working on Package::Stash
Fetching http://www.cpan.org/authors/id/D/DO/DOY/Package-Stash-0.37.tar.gz ... OK
==> Found dependencies: Dist::CheckConflicts
--> Working on Dist::CheckConflicts
Fetching http://www.cpan.org/authors/id/D/DO/DOY/Dist-CheckConflicts-0.11.tar.gz ... OK
Configuring Dist-CheckConflicts-0.11 ... OK
Building and testing Dist-CheckConflicts-0.11 ... OK
Successfully installed Dist-CheckConflicts-0.11
Configuring Package-Stash-0.37 ... OK
==> Found dependencies: Package::Stash::XS, Module::Implementation
--> Working on Package::Stash::XS
Fetching http://www.cpan.org/authors/id/D/DO/DOY/Package-Stash-XS-0.28.tar.gz ... OK
Configuring Package-Stash-XS-0.28 ... OK
Building and testing Package-Stash-XS-0.28 ... OK
Successfully installed Package-Stash-XS-0.28
--> Working on Module::Implementation
Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/Module-Implementation-0.09.tar.gz ... OK
Configuring Module-Implementation-0.09 ... OK
Building and testing Module-Implementation-0.09 ... OK
Successfully installed Module-Implementation-0.09
Building and testing Package-Stash-0.37 ... OK
Successfully installed Package-Stash-0.37
--> Working on B::Hooks::EndOfScope
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-0.15.tar.gz ... OK
Configuring B-Hooks-EndOfScope-0.15 ... OK
==> Found dependencies: Variable::Magic
--> Working on Variable::Magic
Fetching http://www.cpan.org/authors/id/V/VP/VPIT/Variable-Magic-0.59.tar.gz ... OK
Configuring Variable-Magic-0.59 ... OK
Building and testing Variable-Magic-0.59 ... OK
Successfully installed Variable-Magic-0.59
Building and testing B-Hooks-EndOfScope-0.15 ... OK
Successfully installed B-Hooks-EndOfScope-0.15
Building and testing namespace::clean-0.26 ... OK
Successfully installed namespace::clean-0.26
--> Working on strictures
Fetching http://www.cpan.org/authors/id/H/HA/HAARG/strictures-2.000001.tar.gz ... OK
Configuring strictures-2.000001 ... OK
==> Found dependencies: indirect, bareword::filehandles, multidimensional
--> Working on indirect
Fetching http://www.cpan.org/authors/id/V/VP/VPIT/indirect-0.36.tar.gz ... OK
Configuring indirect-0.36 ... OK
Building and testing indirect-0.36 ... OK
Successfully installed indirect-0.36
--> Working on bareword::filehandles
Fetching http://www.cpan.org/authors/id/I/IL/ILMARI/bareword-filehandles-0.003.tar.gz ... OK
==> Found dependencies: B::Hooks::OP::Check, ExtUtils::Depends
--> Working on B::Hooks::OP::Check
Fetching http://www.cpan.org/authors/id/Z/ZE/ZEFRAM/B-Hooks-OP-Check-0.19.tar.gz ... OK
==> Found dependencies: ExtUtils::Depends
--> Working on ExtUtils::Depends
Fetching http://www.cpan.org/authors/id/X/XA/XAOC/ExtUtils-Depends-0.404.tar.gz ... OK
Configuring ExtUtils-Depends-0.404 ... OK
Building and testing ExtUtils-Depends-0.404 ... OK
Successfully installed ExtUtils-Depends-0.404
Configuring B-Hooks-OP-Check-0.19 ... OK
Building and testing B-Hooks-OP-Check-0.19 ... OK
Successfully installed B-Hooks-OP-Check-0.19
Configuring bareword-filehandles-0.003 ... OK
==> Found dependencies: Lexical::SealRequireHints
--> Working on Lexical::SealRequireHints
Fetching http://www.cpan.org/authors/id/Z/ZE/ZEFRAM/Lexical-SealRequireHints-0.009.tar.gz ... OK
Configuring Lexical-SealRequireHints-0.009 ... OK
Building and testing Lexical-SealRequireHints-0.009 ... OK
Successfully installed Lexical-SealRequireHints-0.009
Building and testing bareword-filehandles-0.003 ... OK
Successfully installed bareword-filehandles-0.003
--> Working on multidimensional
Fetching http://www.cpan.org/authors/id/I/IL/ILMARI/multidimensional-0.011.tar.gz ... OK
Configuring multidimensional-0.011 ... OK
Building and testing multidimensional-0.011 ... OK
Successfully installed multidimensional-0.011
Building and testing strictures-2.000001 ... OK
Successfully installed strictures-2.000001
Building and testing GIS-Distance-0.09 ... OK
Successfully installed GIS-Distance-0.09
27 distributions installed

% cpanm Geo::Gpx 
--> Working on Geo::Gpx
Fetching http://www.cpan.org/authors/id/A/AN/ANDYA/Geo-Gpx-0.26.tar.gz ... OK
Configuring Geo-Gpx-0.26 ... OK
==> Found dependencies: XML::Descent, DateTime, DateTime::Format::ISO8601
--> Working on XML::Descent
Fetching http://www.cpan.org/authors/id/A/AN/ANDYA/XML-Descent-1.04.tar.gz ... OK
Configuring XML-Descent-1.04 ... OK
==> Found dependencies: XML::TokeParser, Test::Differences
--> Working on XML::TokeParser
Fetching http://www.cpan.org/authors/id/P/PO/PODMASTER/XML-TokeParser-0.05.tar.gz ... OK
Configuring XML-TokeParser-0.05 ... OK
==> Found dependencies: XML::Parser
--> Working on XML::Parser
Fetching http://www.cpan.org/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz ... OK
Configuring XML-Parser-2.44 ... OK
==> Found dependencies: LWP::UserAgent
--> Working on LWP::UserAgent
Fetching http://www.cpan.org/authors/id/E/ET/ETHER/libwww-perl-6.13.tar.gz ... OK
Configuring libwww-perl-6.13 ... OK
==> Found dependencies: File::Listing, HTTP::Cookies, HTTP::Request::Common, WWW::RobotRules,
HTTP::Request, URI, URI::Escape, HTTP::Daemon, HTTP::Date, LWP::MediaTypes, HTTP::Negotiate,
Net::HTTP, HTTP::Status, HTTP::Response --> Working on File::Listing Fetching http://www.cpan.org/authors/id/G/GA/GAAS/File-Listing-6.04.tar.gz ... OK Configuring File-Listing-6.04 ... OK ==> Found dependencies: HTTP::Date --> Working on HTTP::Date Fetching http://www.cpan.org/authors/id/G/GA/GAAS/HTTP-Date-6.02.tar.gz ... OK Configuring HTTP-Date-6.02 ... OK Building and testing HTTP-Date-6.02 ... OK Successfully installed HTTP-Date-6.02 Building and testing File-Listing-6.04 ... OK Successfully installed File-Listing-6.04 --> Working on HTTP::Cookies Fetching http://www.cpan.org/authors/id/G/GA/GAAS/HTTP-Cookies-6.01.tar.gz ... OK Configuring HTTP-Cookies-6.01 ... OK ==> Found dependencies: HTTP::Headers::Util --> Working on HTTP::Headers::Util Fetching http://www.cpan.org/authors/id/E/ET/ETHER/HTTP-Message-6.11.tar.gz ... OK Configuring HTTP-Message-6.11 ... OK ==> Found dependencies: URI, IO::HTML, LWP::MediaTypes --> Working on URI Fetching http://www.cpan.org/authors/id/E/ET/ETHER/URI-1.69.tar.gz ... OK Configuring URI-1.69 ... OK Building and testing URI-1.69 ... OK Successfully installed URI-1.69 --> Working on IO::HTML Fetching http://www.cpan.org/authors/id/C/CJ/CJM/IO-HTML-1.001.tar.gz ... OK Configuring IO-HTML-1.001 ... OK Building and testing IO-HTML-1.001 ... OK Successfully installed IO-HTML-1.001 --> Working on LWP::MediaTypes Fetching http://www.cpan.org/authors/id/G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz ... OK Configuring LWP-MediaTypes-6.02 ... OK Building and testing LWP-MediaTypes-6.02 ... OK Successfully installed LWP-MediaTypes-6.02 Building and testing HTTP-Message-6.11 ... OK Successfully installed HTTP-Message-6.11 Building and testing HTTP-Cookies-6.01 ... OK Successfully installed HTTP-Cookies-6.01 --> Working on WWW::RobotRules Fetching http://www.cpan.org/authors/id/G/GA/GAAS/WWW-RobotRules-6.02.tar.gz ... OK Configuring WWW-RobotRules-6.02 ... OK Building and testing WWW-RobotRules-6.02 ... OK Successfully installed WWW-RobotRules-6.02 --> Working on HTTP::Daemon Fetching http://www.cpan.org/authors/id/G/GA/GAAS/HTTP-Daemon-6.01.tar.gz ... OK Configuring HTTP-Daemon-6.01 ... OK Building and testing HTTP-Daemon-6.01 ... OK Successfully installed HTTP-Daemon-6.01 --> Working on HTTP::Negotiate Fetching http://www.cpan.org/authors/id/G/GA/GAAS/HTTP-Negotiate-6.01.tar.gz ... OK Configuring HTTP-Negotiate-6.01 ... OK Building and testing HTTP-Negotiate-6.01 ... OK Successfully installed HTTP-Negotiate-6.01 --> Working on Net::HTTP Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Net-HTTP-6.09.tar.gz ... OK Configuring Net-HTTP-6.09 ... OK Building and testing Net-HTTP-6.09 ... OK Successfully installed Net-HTTP-6.09 Building and testing libwww-perl-6.13 ... OK Successfully installed libwww-perl-6.13 Building and testing XML-Parser-2.44 ... OK Successfully installed XML-Parser-2.44 Building and testing XML-TokeParser-0.05 ... OK Successfully installed XML-TokeParser-0.05 --> Working on Test::Differences Fetching http://www.cpan.org/authors/id/D/DC/DCANTRELL/Test-Differences-0.63.tar.gz ... OK Configuring Test-Differences-0.63 ... OK Building and testing Test-Differences-0.63 ... OK Successfully installed Test-Differences-0.63 Building and testing XML-Descent-1.04 ... OK Successfully installed XML-Descent-1.04 --> Working on DateTime Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-1.21.tar.gz ... OK Configuring DateTime-1.21 ... OK ==> Found dependencies: Test::Warnings, DateTime::TimeZone, DateTime::Locale, Params::Validate --> Working on Test::Warnings Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Test-Warnings-0.021.tar.gz ... OK Configuring Test-Warnings-0.021 ... OK ==> Found dependencies: CPAN::Meta::Check --> Working on CPAN::Meta::Check Fetching http://www.cpan.org/authors/id/L/LE/LEONT/CPAN-Meta-Check-0.012.tar.gz ... OK Configuring CPAN-Meta-Check-0.012 ... OK ==> Found dependencies: Module::Metadata --> Working on Module::Metadata Fetching http://www.cpan.org/authors/id/E/ET/ETHER/Module-Metadata-1.000027.tar.gz ... OK Configuring Module-Metadata-1.000027 ... OK Building and testing Module-Metadata-1.000027 ... OK Successfully installed Module-Metadata-1.000027 (upgraded from 1.000011) Building and testing CPAN-Meta-Check-0.012 ... OK Successfully installed CPAN-Meta-Check-0.012 Building and testing Test-Warnings-0.021 ... OK Successfully installed Test-Warnings-0.021 --> Working on DateTime::TimeZone Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-TimeZone-1.94.tar.gz ... OK Configuring DateTime-TimeZone-1.94 ... OK ==> Found dependencies: Class::Singleton, Params::Validate, List::Util --> Working on Class::Singleton Fetching http://www.cpan.org/authors/id/S/SH/SHAY/Class-Singleton-1.5.tar.gz ... OK Configuring Class-Singleton-1.5 ... OK Building and testing Class-Singleton-1.5 ... OK Successfully installed Class-Singleton-1.5 --> Working on Params::Validate Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/Params-Validate-1.21.tar.gz ... OK Configuring Params-Validate-1.21 ... OK Building and testing Params-Validate-1.21 ... OK Successfully installed Params-Validate-1.21 --> Working on List::Util Fetching http://www.cpan.org/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.42.tar.gz ... OK Configuring Scalar-List-Utils-1.42 ... OK Building and testing Scalar-List-Utils-1.42 ... OK Successfully installed Scalar-List-Utils-1.42 (upgraded from 1.27) Building and testing DateTime-TimeZone-1.94 ... OK Successfully installed DateTime-TimeZone-1.94 --> Working on DateTime::Locale Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-Locale-0.92.tar.gz ... OK Configuring DateTime-Locale-0.92 ... OK Building and testing DateTime-Locale-0.92 ... OK Successfully installed DateTime-Locale-0.92 Building and testing DateTime-1.21 ... OK Successfully installed DateTime-1.21 --> Working on DateTime::Format::ISO8601 Fetching http://www.cpan.org/authors/id/J/JH/JHOBLITT/DateTime-Format-ISO8601-0.08.tar.gz ... OK Configuring DateTime-Format-ISO8601-0.08 ... OK ==> Found dependencies: DateTime::Format::Builder --> Working on DateTime::Format::Builder Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-Format-Builder-0.81.tar.gz ... OK Configuring DateTime-Format-Builder-0.81 ... OK ==> Found dependencies: DateTime::Format::Strptime, Class::Factory::Util --> Working on DateTime::Format::Strptime Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.57.tar.gz ... OK Configuring DateTime-Format-Strptime-1.57 ... OK Building and testing DateTime-Format-Strptime-1.57 ... OK Successfully installed DateTime-Format-Strptime-1.57 --> Working on Class::Factory::Util Fetching http://www.cpan.org/authors/id/D/DR/DROLSKY/Class-Factory-Util-1.7.tar.gz ... OK Configuring Class-Factory-Util-1.7 ... OK Building and testing Class-Factory-Util-1.7 ... OK Successfully installed Class-Factory-Util-1.7 Building and testing DateTime-Format-Builder-0.81 ... OK Successfully installed DateTime-Format-Builder-0.81 Building and testing DateTime-Format-ISO8601-0.08 ... OK Successfully installed DateTime-Format-ISO8601-0.08 Building and testing Geo-Gpx-0.26 ... OK Successfully installed Geo-Gpx-0.26 30 distributions installed

Yes that's right. 55 perlmodules were installed as dependencies, which doesn't take the ones I already had installed into account.Of course the most of them are recursive dependencies. But these days developers don't look at the dependency tree when they decide which module to use.

This is just shit. Fucking shit. Stinking shit. Idiotic shit. No wonder most people think perl is dead. Perl itself might be alive but the founding idea behind it is surely dead. What a nightmare.

30 October 2015 | #source

 

Refugees Welcome!

Ich hab schon lange nichts Politisches mehr hier geschrieben. Zum einen weil ich einfach nicht so viel Zeit habe und zum anderen weil ich eh nicht so viele Leser habe. Wobei Letzteres ohnehin nicht der Grund ist, warum ich eine Website betreibe. Insofern wird es also mal wieder Zeit dafür. Die aktuellen Entwicklungen in Deutschland machen es ohnehin erforderlich, klar Stellung zu beziehen, finde ich.

Voranschicken möchte ich, dass ich die Merkel nicht mag und noch nie mochte. Dieses Nichtstun und Aussitzen und Hintenherumtaktieren, ihre Nähe zur Industrie, zu Lobbyisten, zur USA und ihre offensichtliche Entfernung von den Sorgen der Leute in diesem Land, all dies ging mir schon immer auf den Zeiger. Das Stichwort um das es mir hier geht ist "Sorgen" - aber dazu später. Was mich jedenfalls an mir selbst erstaunt ist, dass ich Merkels aktuelle Haltung gut finde. Wohl gemerkt: nicht notwendigerweise ihre Politik, sondern ihre Haltung. Beziehnungsweise die Tatsache, dass sie überhaupt einmal Haltung zeigt UND bewahrt. Das finde ich grossartig. Menschlich hat sie damit bei mir richtig gepunktet.

Der Grund dafür ist, dass ich diese Haltung teile. Wir sind - nicht nur per Grundgesetz, EU Menschenrechtscharta und Genver Konvention - verpflichtet die Flüchtlinge aufzunehmen und für sie zu sorgen. Und zwar auf eine Weise, dass diese Krieg, Tod, Folter und Elend tatsächlich hinter sich lassen können. Und ich finde, wir machen die Welt damit zu einem besseren Ort. Denn wenn man das Leben von auch nur einem Menschen verbessert, dann verbessert man die Welt (ja, Ihr wisst sicher, woher das kommt).

Nun gibt es viele Menschen in diesem Land, die das nicht so sehen, und sie werden immer mehr. Auch in meinem Bekanntenkreis und auch in meiner Familie. Das ist der selbe Schlag Mensch, der mit seiner Zustimmung, seiner Gewalt und seiner latenten Feindseligkeit das Entstehen des Dritten Reiches erst ermöglicht hat. Ich will nicht zu solchen Leuten gehören. Ich will nicht mit meinem Tun oder Nichtstun ein Viertes Reich ermöglichen.

Ja, Hartz-IV ist menschenverachtend, dafür können die Flüchtlinge aber nichts.

Ja, unser Alten- und Pflegesystem ist der Horror, dafür können die Flüchtlinge aber nichts.

Ja, unsere Infrastruktur ist hinüber, dafür können die Flüchtlinge aber nichts.

Ja, unsere Politik ist korrupt, dafür können die Flüchtlinge aber nichts.

Ja, unsere Medienlandschaft ist unausgewogen und zu sehr kommerzialisiert, dafür können die Flüchtlinge aber nichts.

Ja, es gibt immer mehr Arme, dafür können die Flüchtlinge aber nichts.

Ja, das Bildungsniveau sinkt kontinuierlich, dafür können die Flüchtlinge aber nichts.

Ja, wir werden schlimmer überwacht als zu Stasizeiten, dafür können die Flüchtlinge aber auch nichts.

Zusammengefasst: es gäbe eine Menge Dinge wegen derer man auf die Strasse gehen könnte, um die man sich Kümmern müsste, für die man Kämpfen müsste, für die man Streiten müsste, für die es sich lohnen würde Tränen zu vergiessen, Blut womöglich auch.

Aber das tut kaum jemand. Es gibt keine Demos gegen Überwachung, gegen Korruption oder für eine bessere Behandlung alter Menschen oder Kinder. Die Wahlbeteiligung in diesem Lande ist so niedrig wie noch nie zuvor. Den Leuten ist alles scheissegal geworden. Jeder ist nur noch sich selbst der nächste. Um seinen Nachbarn kümmert sich keiner mehr, es sei denn man kann ihn bei der Polizei wegen irgendwas anzeigen. Die Leute regen sich über den "Scheiss Staat" auf und kapieren einfach nicht, dass sie selbst es sind, die diesen "Scheiss Staat" konstituieren, dass sie selbst der "Scheiss Staat" sind, kurz: dass sie selbst Scheisse sind.

Jetzt kommen immer mehr Flüchtlinge bei uns an. Mit leuchtenden Augen, heilfroh, es geschafft zu haben. Und was tun die Leute? Sie geben den Flüchtlingen die Schuld an all ihrem Unglück. Das letzte Mal, dass in diesem Land nicht gegen den Staat sondern gegen eine andere Bevölkerungsgruppe demonstriert wurde, war in den 30er Jahren des vergangenen Jahrhunderts. Und dann wundern diese Affen sich, wenn man sie als Nazis bezeichnet?! Ja wo zum Henker leben wir denn!

Und was für feige Dreckschweine sind das, die Flüchtlingsunterkünfte anzünden und ausländisch Aussehende auf der Strasse überfallen und verprügeln? Das ist unerträglich und eine Schande! Und NEIN, es gibt keinen Unterschied zwischen solchen und denen, die sich "Sorgen" machen. Zum Sorgen Machen hattet Ihr jahrzehntelang Zeit! Aber Ihr habt SPD und CDU oder NICHT gewählt, obwohl Ihr wusstet, dass das nicht gut für Euch, Eure Kinder und dieses Land ist! Ihr habt unwidersprochen jahrzehntelang die BILD gekauft und Euch belügen lassen! Ihr habt jahrzehntelang nur Gefressen, Gefickt und Geglotzt und nichts GETAN!

Und JETZT kommt Ihr aus Euren Löchern gekrochen mit Weltanschauungen jenseits von Gut und Böse, geschützt von der schieren Menge an Idioten unter die Ihr Euch mischen könnt, und reisst das Maul auf? Was bildet Ihr Euch eigentlich ein Ihr dummen Arschlöcher!

Oh ja, die Meinungsfreiheit, werdet Ihr jetzt brüllen. Leute wie ich wollen Eure Meinungsfreiheit einschränken. Meine Fresse wie dämlich ist das denn?! Da schränkt ein Innenminister nach dem nächsten die Meinungsfreiheit immer mehr ein und wer von Euch faulen Säcken war deswegen je auf der Strasse? Wie bitte? Du bist so leise! Was? Keiner? Ach Was!

Wie dem auch sei.

Wer Flüchtlingen die Schuld an seinem eigenen Schicksal gibt, ist für mich ein verdammter Scheissnazi. Punkt. Wer die ganze Presse als "Lügenpresse" bezeichnet, einem Wort, dass von den Faschisten der NSDAP erfunden worden ist, ist ein elender Nazi. Wer jubelt, wenn ein Flüchtling stirbt ist eine stinkende Nazidrecksau. Wer Leute, die sich für Flüchtlinge und Pluralität engagieren als "Antideutsche" bezeichnet, ist ein Nazi.

Mir ist klar, dass Ihr immer mehr werdet. Und dass vielleicht eines Tages eine Zeit kommen wird, in der Ihr mich vor die Wahl stellen werdet: Für uns oder an die Wand? Nun, meine Entscheidung steht fest. Stellt mich von mir aus an die Wand und erschiesst mich, Ihr Arschlöcher. Aber bis dahin werdet Ihr mich nicht zum Schweigen bringen. Und was auch immer Ihr vorhabt, eines solltet Ihr Euch ganz dringend jetzt schon überlegen: was Ihr Euren Kindern sagen werdet, wenn "ES" vorbei ist. Überlegt Euch, wie es dazu kommen konnte, dass Ihr Euch schuldig gemacht habt. Denn das wird man Euch nämlich fragen, irgendwann, dermaleinst. Weil auch ein Viertes Reich nämlich keinen Bestand haben wird. Es wird Krieg geben, Deutschland wird einmal mehr befreit werden müssen, es wird wieder Millionen Opfer geben und Ihr dummen Wichser seid diejenigen, die daran Schuld gewesen sein werden. Wieder einmal.

Ihr faschistoiden, hirnverbrannten, ignoranten Vollidioten.

Update 2015-10-28:

Paar Tage her, aber ein MUST READ: Benimm Dich Sachse, insbesondere: <blockquote>Hey. Hallo. Bitte nicht falsch verstehen, ich bin kein Sachsenfeind, aber … die sind einfach alle Nazis. Da kann ich doch nichts für. Das werd’ ich doch wohl sagen dürfen. Echt mal. Ich sage nur wie es ist. Nein. Ja. Bitte. Chill. Ich habe wirklich nichts gegen Sachsen, einer meiner besten Freunde ist Sachse.</blockquote>
Denn, wenn “Die Syrer” angeblich alle Sozialschmarotzer, Kriminelle und Vergewaltiger sind, dann sind die Sachsen in der Tat alle Nazis. Toll, wenn man die Welt so einf|ältig|ach betrachten kann. </p><p> Und apropos “Das wid man ja wohl mal sagen dürfen”: Hervorragend festgetackert von Carolin Emcke in der Süddeutschen:<blockquote> Das vielleicht verstörendste Missverständnis derjenigen, die das “man wird ja wohl mal sagen dürfen” wie ein rhetorisches Schutzschild vor rationaler Kritik vor sich hertragen, besteht in der Verherrlichung schrankenloser Gefühligkeit. Als hätten ungefilterte Emotionen per se Berechtigung im öffentlichen Diskurs qua ihrer bloßen Emotionalität. Jedes dumpfe Vorurteil, jede schamlose Missachtung, jeder noch so unappetitliche innere Dreck darf nach außen gestülpt werden, weil jedes Gefühl angeblich nicht nur still empfunden, sondern auch lauthals öffentlich erbrochen werden darf. Als sei jede Form der abwägenden Reflexion, jede Form der Skepsis den eigenen Gefühlen (oder Überzeugungen) gegenüber, jede Rücksichtnahme auf Gefühle anderer eine inakzeptable Einschränkung der eigenen Bedürfnisbefriedigung.

So wird eine Form ungehemmter Egozentrik, die eher der moralischen Entwicklungsstufe von Kleinkindern entspricht, zu einer pseudo-politischen Diskurstechnik verklärt. Aber nicht jedes Gefühl braucht politische Repräsentation oder Artikulation. Manche Gefühle sind einfach nur schäbig. Jeder und jede von uns hat solche Gefühle zuhauf. Aber sie gehören gehemmt, gefiltert, reflektiert, nicht aufgewertet und legitimiert. </blockquote> </p><p> Und apropos Hass, Klaus Baum hat das sehr schön in Worte gefasst:<blockquote> Ich formuliere als These, dass das meiste, was von PEGIDA (im Sinne eines Oberbegriffs) kommt, Unterstellungen, Projektionen sind. Man wirft zum Beispiel den Flüchtlingen unlautere Motive vor, um sich selbst als lauter zu empfinden. Man projiziert auf alle, die man als Asylbefürworter bezeichnen könnte, das Böse, um die Asylbefürworter zu prügeln, zu erstechen, zu verbrennen usw.

Man muss den Leuten, die einem unheimlich sind, fremd, weil man sie nicht versteht, hässliche Motive unterstellen, damit man sie mit gutem Gewissen auf gehässige Weise fertig machen kann. Hätte der Löwe Bewußtsein, wenn auch ein falsches, so würde er die Gazelle als bedrohlich deklarieren, bevor er über sie herfällt. </blockquote><p>Update 2015-10-20:</p>Und nun schaut Euch mal an, wie das da aussieht, wo die Flüchtlinge herkommen.</p><p>Damaskus, Syrien:


(Ton ausmachen, die haben da Musik hinterlegt)</p><p> Kobane, Syrien:

</p><p> Und IHR macht Euch Sorgen?!<p>Update 2015-10-26:</p>Auch schön formuliert, Hal Faber in WWWW:<blockquote> Das Positive? Wie wär’s mal mit einem positiven Amerika-Bild? Der plumpe Antiamerikanismus, in dem sich Links- und Rechtsradikale nur allzu gerne einig sind, hat nunmal mit der amerikansichen Realität und mit der in diesem Deutschland wenig zu tun. Dessen Bewohner sind ganz gut gefahren mit all der amerikanischen Unkultur, die auch konservative Bildungs-Hipster mit Leidensmiene beklagen. Deutschland hat Helene Fischer, Amerika Beyoncé. Lieber mit der amerikanischen Unkultur eines Steve Reich, einer Billie Holiday, eines George Gershwin, eines Kendrick Lamar, eines Neil Young, eines John Zorn oder eines Morton Feldman gepflegt abhängen, als sich mit Pegida-Leitkultur gegen vermeintliche Umvolkung abstrampeln. Und wenn das FBI einreitet, um auch hierzulande mal ein paar korrupte Fußballfunktionäre hochzunehmen, dann darf man sich ebenfalls freuen. Das Fazit? Genau, es ist nie alles so schwarz und weiß, wie uns die linken wie rechten Vereinfacher und populistischen Meinungsmacher weismachen wollen. </blockquote><p>Update 2015-10-22:</p>Michael Bittner vergleicht PEGIDA mit der NSDAP und ich muss sagen, die Übereinstimmungen sind erschreckend. Sein Fazit:

Es wäre ein Irrtum zu glauben, die Straßengewalt diskreditiere PEGIDA und schade so der Bewegung. Wie Hannah Arendt erkannte, nützt offener Terror jeder faschistischen Bewegung, denn dem einen Teil der Bevölkerung imponiert sie, den anderen Teil schüchtert sie ein. Dass in Deutschland gerade „die Stimmung kippt“, hängt gewiss mit der Mischung aus Furcht und Respekt zusammen, mit der viele Bundesbürger PEGIDA betrachten. Von Hannah Arendt stammt auch die Beobachtung, dass man faschistische Führer beim Wort nehmen muss, denn sie verschweigen ihre Pläne nicht, sondern sprechen sie offen aus, um zu erschrecken und zu beeindrucken. Wenn Lutz Bachmann also ankündigt, kein „Volksverräter“ werde „ungeschoren“ davonkommen, jeder die „Quittung für seinen Vaterlandsverrat“ erhalten, wie es dann auch ein symbolischer Galgen bei der Montagsdemonstration bezeugt – dann sollte man diese Worte und Gesten sehr ernst nehmen.

</p><p> Ich empfehle dringend, auch die Kommentare zu lesen, denn Herr Bittner geht dort ganz vorzüglich mit einem dieser Spacken um, hier eine Beispielantwort:

Herr Kämmerer, herzlichen Dank dafür, dass Sie meinen Beitrag mit weiteren Belegen stützen! „Der größte Teil des deutschen Volkes (was davon übrig ist) hat die Schnauze gestrichen voll“ – 5% der Bevölkerung in der PEGIDA-Hochburg Dresden sind also der größte Teil der Deutschen? Und die 50% Nichtwähler, die gehören alle zu PEGIDA, ja? Die haben Sie bestimmt alle persönlich befragt? Und Sie wollen also keine Millonen Muslime in unserem Land? Schade, dass schon vier Millionen hier sind, von denen 2 Millionen deutsche Staatsbürger sind! Oder sind das etwa keine richtigen Deutschen? So wie die Juden für die Nazis keine Deutschen waren? Was wollen Sie mit diesen Undeutschen denn machen, Herr Kämmerer? Aus dem Land vertreiben oder gleich umbringen? Aber gut, dass Sie nichts mit den Nazis zu tun haben, Herr Kämmerer! Mein Tipp: Rauchen Sie mal was Vernünftiges und machen Sie sich locker!

Und mein Lieblingskommentar auf diese Auslassungen:<blockquote> Schön, Herr Kämmerer, Sie haben offenbar meinen Rat befolgt und sich etwas zu Rauchen besorgt! </blockquote> </blockquote>

14 October 2015 | #gesellschaft

 

Thanks Goodness!

Es geschehen noch Zeichen und Wunder. Die BILD macht zu! Endlich! 

2015-10-13 - BILD macht dicht:

13 October 2015 | #geschwätz

 

gcc WTF Bug

Ganz grosses Kino:

gcc blah.c -o blah.c

funktioniert klaglos, d.h. gcc überschreibt den Sourcecode einfach mit dem compilierten Binary. Sonst geht's ja auch noch oder?!

30 August 2015 | #unfassbar

 

Cryptowars 2.0

Rysiek hat die bislang beste Erklärung für den neuesten Anlauf der US- und UK-Regierungen, staatliche Backdoors bei Verschlüsselung vorschreiben zu wollen:

The very fact of wanting to stay secure and keep your privacy will become a criminal offence.

Genau. Es geht darum, Verschlüsselung zu kriminalisieren (so wie ohnehin immer mehr bislang völlig normales Verhalten kriminalisiert wird), um im Zweifel gegen bestimmte Leute etwas in der Hand haben zu können. Dass das mit den Backdoors nichts wird, dürfte Cameron und Obama schon klar sein.

18 August 2015 | #gesellschaft