Montag, 7. Juli 2014

CSD Köln 2014

Am vergangenen Wochenende gipfelte in Köln der Christopher Street Day (CSD) in einer großen Parade. Bei gutem Wetter schlenderte eine wahrhaft bunt gemischte Menschenmenge zum Umzug: Familien mit Kindern, Drag Queens (und Kings), Grüppchen von Junggesellinnen, Ledermänner, miteinander ergraute Ehepaare, ... Kurzum: Ein großes Spektakel des Lebens und Leben-Lassens.

Zwei Kilometer weiter eine andere Welt. In der U-Bahn-Station Kalk-Post hält sich eine Gruppe junger Deutsch-Türken auf. Jeder scheint möglichst lautstark darauf bedacht, sich zu profilieren und Eindruck zu schinden. "Ey, der da geht bestimmt auch zu dieser Schwulen-Veranstaltung!" ruft einer. Ein anderer stachelt ihn auf: "Gehst du zu den Schwulen?! Du gehst doch selber zu den Schwulen!" Es entsteht ein längeres hin und her von gegenseitiger Bezichtigung, dass einer zur Parade ginge, und selbstverständlich weist ein jeder den Verdacht weit von sich - alles halb Scherz, halb Ernst. Offensichtlich will keiner von ihnen etwas mit "denen" zu tun haben, doch man spürt ihnen die heimliche Neugier und vielleicht auch etwas Faszination ab. Ihr Gespräch kehrt immer wieder zum scheinbar Verbotenen zurück. Innerhalb dieser Gruppenkonstellation wird wohl keiner von ihnen den Mut und das Selbstbewusstsein aufbringen, drei Stationen weiter zu fahren und sich einfach sein eigenes Bild zu machen. Ich bedaure sie heimlich wegen der Grenzen, die ihnen ihre Kultur und Sozialisation gesetzt hat.

Ich stelle mir vor, wie es wohl wäre, wenn sich einer von ihnen tatsächlich zur Parade traute. Wie würde er reagieren auf eine über 2 Meter hohe und verbal schlagfertige Drag Queen? Was sollte er von einem der muskelbepackten "Bären" halten, dessen fast schon überzeichnete Männlichkeit so gar nicht dem Vorurteil der "weibischen Tunte" entspricht? Welche Gedanken würde er haben angesichts von Menschen, die sich eben nicht auf den ersten Blick einem männlichen oder weiblichen Rollenbild zuordnen lassen, für die diese Bezeichnungen womöglich ganz und gar unpassend sind? Ich muss lächeln bei dem Gedanken, dass die meist gut parfümierten, perfekt frisierten und sehr auf ihr Äußeres bedachten Jung-Türken ja unfreiwillig selbst ins Klischee des effeminierten Schwulen passen. Sicher, das ist vor allem kulturell bedingt, aber es entbehrt einer gewissen Komik nicht.

Letzten Endes ermöglicht der CSD vor allem eines: Wahrnehmen anderer Menschen als Menschen. Jenseits der schönen Schubladen, in die man sie sonst so gerne gesteckt hätte. Wer einfach einmal neben einem Transsexuellen oder in einer Gruppe heiterer Lesben steht und gemeinsam eine Bratwurst und ein Kölsch verdrückt, der verliert die Scheu der Ahnungslosigkeit, und das christliche Abendland (bzw. das islamische Morgenland) geht darüber auch nicht unter.

À propos christliches Abendland: Im Rahmen des CSD fanden gleich mehrere Gottesdienste statt, vor allem auch durch Anregung und unter Gestaltung durch die LGBTIQ-Community. Ich finde es bemerkenswert, dass hier Menschen die Arme ausstrecken nach einer Religion, deren Vertretern sie - weiß Gott - wenig gutes zu verdanken haben. Schritte der Versöhnung, die dem CSD seinen Wert verleihen.

Montag, 19. Mai 2014

Manfreds Psalm

(In Antwort auf Psalm 119, 136-145)

Herr, Du bist nicht gerecht
   und Deine Entscheide sind nichtig.
Du hast nicht gerechte Vorschriften erlassen,
   dies aber in großer Treue.
Der Eifer für Dich verzehrt meine Feinde
   und ich vergesse absichtlich Deine Worte.
Deine Worte sind verschmutzt
   durch die Sünde Deiner Kinder,
   aber Deine Knechte haben sie dennoch lieb.
Ich bin gering und verachtet,
   vergesse nie Deine Befehle
   und achte mich selbst daher als gering.
Ist Deine Weisung Wahrheit?
Deine Gerechtigkeit bleibt nicht Wahrheit,
   denn nichts bleibt (Wahrheit) in dieser Deiner Welt.
Doch als mich Not und Bedrängnis trafen,
   gaben Deine Worte mir Halt, Trost und Mut
   und machten mich froh.
Ich werde es nie verstehen,
   denn Deine Vorschriften sind nicht auf ewig gerecht.
Gib mir bitte die richtige Einsicht und Erkenntnis,
   damit ich endlich lebe.

Montag, 17. März 2014

Nanu nanu, wer wird denn so wütend sein?



Wer sich die Kommentare zum Video anschaut, muss einen sehr eigenartigen Eindruck von unserer Gesellschaft bekommen. Ist Deutschland voller Menschen, die Angst um ihre Geschlechtsidentität haben... wegen eines Films? Sind so viele Menschen nur wegen heteronormativer Wertbilder in der Kirche und verlassen sie nun entrüstet? Werden abertausende Deutsche nachts umgetrieben von der angeblichen Unmoral der EKD? Hat die "Gute Nachricht" so viele Menschen nicht erreicht, ist aus ihr eine bittere Saat gewachsen?


Wir Deutsche sind ein Volk von Bedenkenträgern, Zynikern, Nein-Sagern und Verstimmten, und im Schutz der Anonymität schreibt so mancher, was er bei Tage niemandem ins Gesicht sagen würde. Und dennoch: Es ist bestürzend, wie sich eine Welle des Shitstormings und Trollings über das Video ergießt - gerade auch von jenen, die sich als glaubensfern und atheistisch bezeichnen. Mich erstaunt, wie viele (Männer?) eine große Wut auf den Feminismus und die Gendertheorie haben, deren Leistung ja eigentlich gerade nicht in der Gleichmachung von Geschlechtern liegt, sondern im Bewusstmachen von Unterschieden - von denen es offenbar sehr viel mehr gibt, als nur den einen kleinen. Da ist soviel Nicht-Wissen auf der einen, und so viel Spott auf der anderen Seite.


Unverholen wird die EKD als "Säue" beschimpft, wird die evangelische Kirche in die Hölle verdammt und ihr der Tod gewünscht. Todesdrohungen sind in Deutschland strafbar! Ob den Kommentierenden noch klar ist, dass sie von Menschen sprechen? Wie absurd, dass der Mob der Trolls sich dabei just so gebärdet, wie die Hexenjäger im Mittelalter. Das geht also auch ohne Kirche, sieh mal einer an.


Für die EKD und die Macher des Videos hoffe ich, dass vor allen Dingen eines hängen bleibt: Ihr seid da auf etwas wichtiges gestoßen! Tot wäre diese Kirche gerade dann, wenn sie sich nicht mehr trauen würde, Mauern einzureißen und Grenzen zu überschreiten, die Menschen voneinander und von Gott trennen. Tot wäre sie, wenn sie nicht mehr Heimat und Zuflucht der Verschmähten, der Unterdrückten, der Minderheiten wäre. Tot wäre sie, wenn sie den Menschen keine offene Hand mehr entgegenstreckt, wenn sie "die eine Tür" nicht mehr öffnen würde. Tot wäre sie, wenn sie aus dem Zorn der wenigen die Unfreiheit der vielen werden ließe.


Unsere Gesellschaft braucht die "Gute Nachricht" - sie benötigt Versöhnung, Frieden, Miteinander, mehr denn je. Eine Tür ist genug!

Mittwoch, 12. März 2014

Collapsibles mit jQuery und knockout.js

DeutschEnglish
Wer mit jQuery UI bzw. jQuery Mobile und Collapsibles arbeitet, kann sich das Layout seiner Seite gehörig zerschießen, wenn er den Titel des Collapsibles via knockout.js bindet. Der Unterschied ist klein, aber delikat: When working with jQuery UI or jQuery Mobile and using Collapsibles, you can mess up your layout by binding the heading of the Collapsible via knockout.js. The difference between good and bad is both small and important:
Falsch/BadGut/Good
<div data-role="collapsible">
  <h3 data-bind="text: property"></h3>
  <p>...</p>
</div>
<div data-role="collapsible">
  <h3>
    <span data-bind="text: property"></span>
  </h3>
  <p>...</p>
</div>
ErklärungDetails
Mit dem text-Binding von knockout.js wird der gesamte Markup innerhalb des h3 Elements auf den gebundenen Wert gesetzt. Dabei würde der jQuery UI/Mobile Markup des Collapsibles überschrieben, sobald der gebundene Wert sich ändert.  Im span-Element richtet das Binding hingegen keinen Schaden an.The text-binding of knockout.js will set all markup code within the h3 element to the bound value. This would destroy jQuery UI/Mobile markup of the Collapsible as soon as the bound value changes. Anyway, the binding will not cause any problems inside of the nested span element.

Mittwoch, 5. März 2014

Seide und Granit - support it

Die bemerkenswerte Sookee bringt neuen Spring-Stoff auf die Bühne. Was für eine Freude, Viel Gemeinsam zu haben!







Support it!


Donnerstag, 30. Januar 2014

Mein Wunschzettel an die perfekte Programmiersprache

Ich programmiere nun schon seit langer Zeit, und immer wieder vermisse ich in Programmiersprachen Features aus anderen Programmiersprachen. Hier mein Wunschzettel an eine perfekte Programmiersprache.

Lesbare Syntax

Programmquelltext wird i.d.R. nur einmal geschrieben - danach nur noch gelesen. Deswegen ist mir Lesbarkeit wichtiger, als kurze Schreibweise. Sprich: Ich möchte keine geschweiften Klammern, wenn ich auch ein begin und end haben kann - oder wenn dies ganz entfällt.

Schön gelöst in: Ada, Pascal, Python

Typstrenge, keine Pointer-Arithmetik - aber sichere Zeiger

Je früher ein Fehler auffällt - desto besser! Das Hantieren mit Zeigern ist gefährlich und muss sicher sein. Pointer-Arithmetik? Nein, danke! Funktionszeiger? Ja, bitte! Undefinierte Variablen? Nein, danke! Non-nullable Types? Ja, bitte!

Schön gelöst in: Ada, Pascal, C#, Go, Java, tlw. Vala

Native Unterstützung für verschiedene Mengen

Arrays, Listen, Tupel, Mengen, Multimengen, Hashsets, Dictionaries, offene Mengen... ich wünsche mir für diese Datenstrukturen nativen Support durch die Programmiersprache. Auch Operationen auf Mengen gehören dazu, wie man sie z.B. mit Linq hat.

Schön gelöst in: C#, Go

Generics

Denn wer schreibt schon gerne die selben Sachen doppelt?

Schön gelöst in: C#, Java

Objektorientierung, Interfaces, implizite Interfaces

Objekthierarchien sind normalerweise relativ flach (UIs mal ausgenommen), nehmen aber letztlich viel Arbeit ab. Interfaces helfen bei der Abstraktion. Implizit implementierte Interfaces sind zur Compile-Zeit prüfbar und reduzieren Abhängigkeiten im Quelltext.

Schön gelöst in: C#, Java, Go

Threads und Tasks, Rendez-vous, Message-basierte Kommunikation

Multitasking ist wichtig - und oft irrsinnig schwer. Threads und Tasks müssen natürlicher Bestandteil der perfekten Programmiersprache sein. Vernünftig gelöste Rendez-vous-Mechanismen (Synchronisation) vermeiden schwer erkennbare Fehler. Message-basierte Kommunikation umgeht viele Probleme, die durch Zugriff auf gemeinsam genutzten Speicher entstehen.

Schön gelöst in: C# (async, await), Ada (Rendez-vous), Go (Message-basiert)

Reflection, AOP, Metamodell

Den Quelltext sauber halten mit Metaprogrammierung - besser lesbar, weniger Fehler. In vielen Programmiersprache drin - aber so richtig überzeugend hab ich es noch nicht gesehen. Stattdessen scheint das immer "im Nachhinein angepflanscht".

Schön gelöst in: (?)

Memory Management

Ich wünsche mir eine Mischung aus Garbage Collection und deterministischer Speicherverwaltung. Ein GC kümmert sich um alles, was vielleicht vergessen wurde oder nicht performance-kritisch ist. Zudem wäre aber auch eine sichere Möglichkeit schön, Speicher explizit freizugeben.

Auch immer wieder kritisch: Wem "gehört" ein Objekt? Ein elegantes Konzept für weak references tut Not -besonders im Zusammenhang mit dem Events/Listener-Pattern: Wie lästig ist es doch, sich darum kümmern zu müssen, selber alle Listener zu deregistrieren - wie schön wäre ein Konzept von "Weak Listeners" als Teil der perfekten Programmiersprache.

Schön gelöst in: (?) - Ada und Vala haben einige interessante Ansätze

Bibliotheken, Bibliotheken, Bibliotheken - aber bitte sinnig

.NET und Java bringen einen RIESIGEN Satz an Bibliotheken mit - teilweise zu grob, teilweise zu viel. C und C++ bringen viel zu wenige Bibliotheken mit - mangelhaft.
Wichtige, immer wieder benötigte Funktionen sollten in kleinen Bibliotheken mit möglichst wenig Abhängigkeiten importiert werden können:
  • XML Verarbarbeitung
  • HTTP/Web-Clients
  • Web-Services (REST, WS-HTTP, ...)
  • Cryptographie
  • Komprimierung
  • Bildverarbeitung
  • GUI
  • ...
Außerdem sollten diese Bibliotheken aus einem zentralen Repository stammen und sich leicht beziehen und verwalten lassen.

Schön gelöst in: ... naja ... Go? C#? Java?

Contracts, Preconditions, Postconditions - verfügbar und optional

Preconditions und Postconditions ersparen Tests und sorgen für Robustheit. Mehr davon bitte - aber optional.

Schön gelöst in: Eiffel, Ada 2012, Vala, Spec#


Und jetzt bist du dran! Was steht auf deinem Wunschzettel an die perfekte Programmiersprache?