Archiv für den Monat Januar 2013

Schlangencode

Wenn ich an Python denke, kommt mir neuerdings immer das Märchen von der kuchenbackenden Mutter, die durch Urheberkonzepte aus dem letzten Jahrtausend über Nacht reich wurde in den Kopf. Und die Bösewichte vom KRRRRAFFFTFUTTERRRRMISCHWERRRRK wurden dabei arm. Oder so ähnlich.

schlangenkuchenJedenfalls hätte ich natürlich liebend gern hier ein Foto von einem beeindruckenden Schlangenkuchen gepostet, völlig ohne Bezug zu meinem Python-Gelerne, aber ich kann mir den Scherz leider nicht leisten. Weil Abmahnungswahrscheinlichkeit von nahezu 1 Gema.
Ich sah mich deswegen dazu gezwungen, schnell ein Bild von einem Stück Schlangenkuchen zu malen. Inklusive billiger Schraffur-Technik aus dem Profilkurs Kunst, 11. Klasse. Oh man, tut mir echt leid, ehrlich. Sorry.

DSC00028

Aber jenseits von abgemahnten Bloggern, bösartigen Agenturen und fragwürdigen Tweets rund um Sexismus, Neokolonialismus, Anti-Sexismus, Rassismus und Kandismus gibt es auch gute Neuigkeiten im Internet: Ich habe große Fortschritte im Python-Kurs gemacht. Und merke, wie schön es sein kann, wenn der Weg zwischen Idee und Umsetzung so unmittelbar ist. Gerade habe ich etwas Zeit, weil der Autor des Kurses, den ich gerade durchspiele, ein kleiner Troll ist und auf der Hälfte des Weges plötzlich auf die Idee kommt, mir eine Pause zu verordnen, damit ich alle Übungen wiederhole und sogar alle neu erlernten Schlüsselwörter aufschreibe. Mit einem Stift! Ein Riesen- Ärgernis, weil ich dafür erst einmal einen Stift und ein Stück Papier kaufen musste. Aber ich mag den Kurs mittlerweile so sehr, dass ich das Papierstück sogar mit mir rumschleppe und ab und zu draufschaue zum Lernen. Aber soweit möchte ich noch gar nicht vorgreifen.
Zurück ganz zum Anfang!

Ich hatte zwar in diesem Post schon etwas erklärt, was man mit Python so anstellen kann, aber der vollständigen Dokumentation halber setze ich lieber etwas früher an.

Ein kleines Beispielprogramm namens schlangenkuchen.py in Python behandelt die
beiden sehr grundlegenden Themen “Print-Funktion”, “Variablen” und “Formatters”. Viel Spaß!

print "Schlangenkuchenrezept\n"     #1

zutat_1 = 'Schlange (vegan)'        #2
zutat_2 = 'Mehl'
zutat_3 = 'Zucker'
zutat_4 = 'Wasser'
menge_1 = 1                         
menge_2 = 300
menge_3 = 500
menge_4 = 100
menge_5 = 200

print "Heute backen wir einen Schlangenkuchen!"     #3
print "Hacken Sie %d %s in kleine Stueckchen." % (menge_1, zutat_1)
print "Mischen Sie %d Gramm %s mit %d Gramm %s." % (menge_2, zutat_2, menge_3, zutat_3)
print "Fuegen Sie erst %d ml, dann nach und nach nocheimal \n%d ml %s, also insgesamt %d ml hinzu." % (
    menge_4, menge_5, zutat_4, menge_4 + menge_5)
print "%s vorsichtig unterheben und zu einem Kuchen formen." % zutat_1
print "Servieren!\n"

#1
So schön, so schlau, so schlange. Ohne viele includes und globls kann man einfach loslegen. Die Funktion print ist ja bereits bekannt, sie sorgt dafür, dass die dahinter stehenden Informationen bspw. in mein Terminal bei der Ausführung geschrieben werden. Aber im Gegensatz zum “printf” aus C gibt es hier noch weniger Möglichkeiten zu Syntaxfehlern. Es wird einfach print und danach die gewünschte Ausgabe in doppelten Anführungszeichen geschrieben. Das hinter print ist ein sogenannter “string”. Die “Escape-Sequenz” ist ebenfalls bereits aus C bekannt. Ein Backslash und ein n in einem String bedeuten, dass weder der Backslash, noch das n geschrieben werden, sondern dass danach eine neue Zeile begonnen wird. Das ist nur eine von vielen Escape-Sequenzen.

#2
Hier werden den Variablen Werte bzw. Strings zugeordnet. Zedshaw erklärt Variablen so: “In programming a variable is nothing more than a name for something so you can use the name rather than the something as you code. Programmers use these variable names to make their code read more like English, and because they have lousy memories.” Point taken. Die Zutaten werden mit Wörtern versehen, die ich in Single-Quotes schreibe. Die Mengen haben numerische Werte und diese werden einfach so hingeschrieben. Variablen sollten möglichst kurz gehalten werden und nur aus Kleinbuchstaben, Ziffern und Unterstrichen bestehen.

#3
Hier beginnt der eigentliche Printing-Teil. Die Zeilen sind jeweils eine Koch-Anweisung. Ich könnte also auch einfach

print "Hacken Sie 1 Schlange (vegan) in kleine Stückchen."

schreiben. Aber weil das lame wäre, benutze ich stattdessen Platzhalter, sogenannte “Formatters”. Anstelle der 1 schreibe ich %d und statt der Schlange (vegan) setze ich ein %s ein. Am Ende der Zeile stehen in den Klammern in derselben Reihenfolge die entsprechenden Variablen, mit Komma getrennt. Das d steht für “decimal” und das s für “string”. Eine Liste aller Formatters gibt’s hier.
Die vierte Print-Anweisung, die etwas komplizierter aussieht, ist genauso harmlos wenn man sie sich genau anschaut. Es gibt 4 Formatters und der vierte wird mit dem Ergebnis der Rechnung in der Klammer ergänzt.

%d ist also menge_4 + menge_5
%d ist also 100 + 200
%d ist also 300

Voilà und jetzt wird der Teig zum Kuchen! Um das Programm auszuführen, muss es erstmal in eine Datei geschrieben werden. Unter Linux öffne ich ein Terminal und tippe

nano schlangenkuchen.py

ein. Dann wird mit dem Editor nano eine Datei namens schlangenkuchen.py erstellt und geöffnet. Da werfe ich den Code rein, sichere den Kram (mit Strg + O) und schließe das Programm (mit Strg + X). Im Gegensatz zu C und Assembler ist es hier nicht notwendig, die Datei zu compilen und eine separate Output-Datei anzulegen. Ich kann mit

python schlangenkuchen.py

einfach das Programm ausführen. Wenn ich alles richtig gemacht habe, gibt mir das Terminal folgenden Text aus:

Screenshot - 01302013 - 02:43:42 PM

Anfangs bekam ich noch eine Fehlermeldung für Zeile 11, weil ich ein “ü” statt “ue” verwendet habe.
Ich hab vergessen, wie ich es hinbekomme, trotzdem Umlaute einfügen zu können und war zu faul, das nachzuschlagen. Aber so geht’s ja auch. Und wer braucht schon Umlaute. Eine Püython offensichtlich nicht!
Nundenn, frohes Backen und Coden.

Liebes To-Do-Buch…

…nur kurz:
Frohes Neues Glücksjahr 2013.

FLP geht weiter.

Wie es weitergeht kann ich wohl am Besten anhand einer Liste erklären, weil Listen awesome und wunderschön sind. Sie lassen sich prima in die Länge ziehen und keiner wird merken, dass am Ende eines der seltenen und kostbaren Statements zum 29c3 steht.

———————————————————————————————————————————–

To-Do:

1. Python weiterlernen

Ungeachtet des ursprünglichen Lehrplans will ich weiterhin Python lernen. Bisher bin ich noch nicht weit gekommen und die Fortschritte werden sich auch weiterhin in kleinen Schritten bemerkbar machen. Aber das macht nichts, Spaß habe ich trotzdem daran. Wegen LPTHW

2.1. Resümee

Auch wenn ich mich eigentlich dagegen wehren wollte, dem heidnischen Kalender irgendeine Bedeutung beizumessen (Ihr Freaks, das Jahr endet erst am 10. Februar) ließ sich so etwas wie eine Zäsur und das Resümee dazu kaum vermeiden. Immerhin war FLP von Anfang an etwas das sich innerhalb eines Kalenderjahrs orientierte, wobei es von Anfang an auch etwas utopisch war, “nebenbei” drei Programmiersprachen zu lernen. Jedenfalls ist es zurückblickend schon unglaublich, wie viel sich für mich verändert hat durch FLP. Das lässt sich weder anhand von produzierten Lines of Code nachvollziehen, noch an geschriebenen Programmen oder anhand der Anzahl von Kapiteln, die ich durchgelesen haben, sondern viel mehr an allen möglichen Praxen die sich neu in meinen Alltag eingliedern.
Die Bücher die ich lese, die Rolle, die ich an meinem Institut eingenommen habe, die Seminare an denen ich teilnehme, die Events die ich besuche, die Unterhaltungen die ich führe, die Menschen mit denen ich mich umgebe, mein Selbstverständnis und letztendlich die Fragen die ich stelle. Da hat sich eine Menge verändert aber vor allem ist die Angst vor dem Feld verschwunden und einer Faszination gewichen.
Ich kann womöglich dem Titel des Blogs nicht mehr 100%ig gerecht werden. Ich programmiere weniger, als dass ich mich mit dem Programmieren beschäftige, vor allem aus ethnologischer und kulturwissenschaftlicher Perspektive. Aber ich kann weiterhin eine Sichtweise bedienen, die sich zwischen Informatik und Kulturwissenschaft  bewegt. Eine Perspektive, die kläglich vertreten ist. Dabei ist der Ruf nach Interdisziplinarität traditionell laut und traditionell schon immer treuer Begleiter der Gesellschaftswissenschaften gewesen.
Das ist nun meine leine fionazentrische Sicht auf FLP, aber viel wichtiger als mein eigener Fortschritt ist für mich persönlich, was ich an die LeserInnenschaft kommunizieren kann. Abgesehen von jeder verschwurbelten Analyse der Programmierpraxis kann und will ich weiterhin immer wieder darauf eingehen, weswegen es sich lohnt, mit dem Programmieren anzufangen, ich möchte weiterhin verschiedene Formate ausprobieren und meine Erfahrungen teilen, das Blog mit Links füttern und Input liefern, der sich explizit an AnfängerInnen richtet.
Wie dieses Blog weiter gestaltet wird, wird sich noch zeigen, aber zumindest die Adressierung von AnfängerInnen und solchen die es werden wollen möchte ich nicht aus den Augen verlieren.

Aber was bedeutet das nun für FLP? Das bedeutet vor allem, dass ich unbedingt weitermachen sollte und will. Allerdings habe ich gemerkt, dass die Offline-Reaktionen auf mein Blog meist unheimlich motivierend waren, während die Online-Umgebung mich dazu gebracht hat, weniger zu bloggen und mich mehrmals zu der Überlegung bewegte, FLP komplett zu streichen. Das liegt vor allem an ärgerlichen Kommentaren, die allerdings auch nur ärgerlich sind, weil ich sie lese und teilweise ernst nehme oder sogar beantworte. Dem 120sten Kommentator, der meint, mir sagen zu müssen, wie “man” Programmieren lernt, möchte ich dann gerne ein eindeutiges “Halt die Fresse” entgegenhalten, anstatt mit keiner Antwort einen uneindeutigen Interpretations-Spielraum zu geben. Aber naja, ich tue mir und der Nachwelt keinen Gefallen damit, auch wenn ich das bisher dachte. Anstatt nervige und überflüssige Kommentare mit einer Antwort zu adeln, gibt es bald die FAQs. Das erspart mir Ärger und Aufwand und den LeserInnen das Stellen von überflüssigen Fragen.

Und überhaupt. Ehe eine Handvoll Pseudo-Paternals mein Blog zumüllen mit der Geschichte ihrer persönlichen Programmiergenese (Dafür gibt es Blogs, Leute!) werden sie gelöscht. Ich verabschiede mich lieber von meiner Anti-Lösch-Haltung als mir den Spaß verderben zu lassen oder ganz die Kommentare zu schließen.

2.2. FAQs.

Müssen noch geschrieben werden. Zielen vor allem darauf ab, dass traurige Informatiker, die von mir keine Antwort erhalten, zumindest wissen, weswegen ihre Meinung über Editoren mir relativ gleichgültig ist oder das Kommentieren gleich im Vorfeld lassen. Es gibt so viele schöne Dinge im Internet, da muss man sich nicht mit einem ellenlangen Kommentar auf FLP aufhalten, den ich mit einem Verweis auf die FAQs beantworte.

3. Assembler-Workshop

Die Open Tech School hatte mich nach meinem letzten Vortrag darum gebeten, einen Assembler-Workshop zu geben. Für AnfängerInnen versteht sich. Dafür müsste ich eine Menge wieder aufrollen und vertiefen. Aber das hatte ich eh vor. Spätestens seit dem 29c3 weiß ich, wie nützlich Assemblerwissen ist. Bzw. besser: Wie nützlich das Wissen ist, das ich entlang vom Assemblerlernen angesammelt habe. Ich vermute, für jemanden, der mit Ruby anfängt ist es tendenziell schwieriger, bspw. einem Vortrag über Fuzzing zu folgen.
Und ich mag Assembler einfach und würde das sowieso gerne weiter verfolgen. Ich bin auch gespannt darauf, wie zugänglich Assembler nach diesem Jahr ist.

4. Homepage

Das Buch des 21. Jahrhunderts! Ich hoffe, dass ich das dieses Jahr schaffe. Ich träume von einer Website, ähnlich wie die von Spektrallinie, auf der sich die FLP Posts, Arbeiten aus dem Studium und vielleicht Fotos und achja, Rezepte, Musik, Links etc.etc. versammeln lassen. Auf dem Server meines Vertrauens…

5. Ethnologie Programmieren

Wie schon oben erwähnt, spielt FLP auch innerhalb des Studiums für mich eine Rolle. Eine sehr große sogar. Ich werde dieses Jahr weiterhin Fragen nachgehen, die ich erst entlang von FLP angefangen habe, mir zu stellen. Bspw. welche Relevanz das Verständnis von technischen Möglichkeitsbedingungen für die Analyse von Netzphänomene hat, oder welches emanzipative Potential Programmierenlernen hat und warum Ethnologen scheinbar weiterhin glauben, das Internet bestehe aus Facebook. Auch würde ich gerne durch eigene Feldforschungen den Diskurs über Computer, Technik, Hacker, etc. um ein paar Mythen und Klischees ärmer machen und ihn insgesamt bereichern.
Außerdem hoffe ich, dass mein Antrag auf ein Projekttutorium namens “Lauert Mehr” angenommen wird. Ich muss auch bis ende Januar einen Artikel schreiben, der vermutlich wieder recht viel Zeit fressen wird. Es geht darin ums Programmieren und ich werde ihn sicher beizeiten zur Verfügung stellen.

6. Umverteilung

Ich hab mir vorgenommen, der Piratenpartei ihr Popcorn nicht mehr zu finanzieren und die mickrigen Spenden stattdessen der Digiges zukommen zu lassen. TUT ES.

7. Lesen meer!

So Einiges. Z.B

Dies

Irgendwas mit Emergenz

Irgendwas mit Kittler

Irgendwas mit Kulturbegriff

Irgendwas mit Technologie

Krass. Das liest sich ja wie mein Amazon-Wunschzettel!

8. Ebenfalls In den Pool an 29c3-Stellungnahmen ejakulieren    Ach was solls.

Davon gibt es eigentlich schon genügend. Fefes Stellungnahme ist ein Stück zu aggressiv formuliert und hier und da etwas zu unkritisch gegenüber des Sexismus-Problems unter H4ck0rn. Ich kann sie deswegen nicht uneingeschränkt empfehlen. Aber ich würde doch zum Lesen und drüber Nachdenken animieren wollen.

Ich hoffe einfach, dass diejenigen, die den Sexismus bekämpfen wollen, aufhören, gegen eine Community™ zu kämpfen, in welcher Aufklärung definitiv fruchten kann. Dass sie stattdessen über Reproduktion von sexistischen Machtverhältnissen informieren, die sich aus dem Alltag speisen und sich dort wieder niederschlagen. Es darf kein Gegeneinander geben, wenn ich Feministin bin und mich als Teil der Community verstehen möchte.

Wenn ich in der c-Base bin, kann ich mich durch den Raum bewegen und es wird mir Platz gemacht. Wenn ich auf dem Kongress jemanden frage, was er oder sie gebaut hat, wird freundlich und offen auf mich reagiert. Als mich jemand auf dem 28c3 bedrängte, war es keiner aus der deutschen Hacker-Szene, und als er mich am nächsten Tag wieder bedrängte wurde er lautstark verjagt. Hätte ich von der Hotline gewusst, wäre er wohl schon vorher verwiesen worden. Als ich auf diesem Kongress mein Handy verlor, war es innerhalb von Minuten am Info-Tresen wieder aufzufinden. Ausgeschaltet.
Sicher gibt es verbesserungswürdige Aspekte, aber sobald ich mir klarmache, was für Dimensionen zwischen dem Alltagssexismus (bspw. in den öffentlichen Nahverkehrsmitteln, die ich meide, weil ich IMMER Angst vor Belästigung haben muss weil ich IMMER WIEDER belästigt werde) und der Hacker-Community liegen, kann man vielleicht etwas mehr Nachsicht walten lassen, bevor draufgehauen wird.

Menschen, die sexistisch handeln oder sich entsprechend äußern sind nicht unbedingt SexistInnen. Wer unkritisch Sexismen reproduziert, ist womöglich mit einer anderen Erfahrungswelt und Sensibilität für Gender-Aspekte aufgewachsen und sozialisiert worden als jemand, der/die Gender-Wissenschaften studiert! Statt die Menschen anzuklagen, gilt es immer wieder auf die eigenen Standpunkte hinzuweisen, zu informieren und die Wahl geben zu lassen. Vor allem von der Hacker-Community erwarte ich Offenheit und habe bisher auch nichts anderes erfahren, wenn ich mein Anliegen gegenüber meinen Freunden vorgetragen habe. Sie waren immer offen und interessiert, einsichtig und haben sich verbessert, so schwer es mir manchmal auch fiel, ihre Äußerungen nicht zu pathologisieren.

Ich fühle mich wohl beim CCC, beim 29c3, bei den H4ckern, den Nerds usw., trotz weniger schlechter Erfahrungen. Der Kongress war wunderschön und ich danke den OrganisatorInnen und HelferInnen vielmals. Ohne sie würden weder ich noch die Flauscheria noch irgendjemand nach der stressigen Weihnachtszeit in den Genuss dieses paradiesischen Vergnügungsparks voll interessanter, netter, lustiger und toller Leute kommen.
Ich möchte nicht, dass Lager aufgemacht werden, wo vorher keine waren. Die Creeper Cards waren – so wie Anke Domscheit-Berg auf einer Versammlung auf dem Kongress sagte – vielleicht nicht gut, aber wenigstens etwas. Und das war wichtig, denn Sexismus spielt immer eine Rolle. Aber ich hoffe, dass die ganze Geschichte nicht dazu führt, dass lediglich die Empfänger verantwortlich gemacht werden für das negative Outcome, sondern auch das Medium reflektiert wird – welches eindeutig mangelhaft war. Keinem ist mit 8000 impliziten Vorwürfen auf Kärtchen langfristig geholfen, wenn es um das grundsätzliche Aufklären über Sexismus geht.

Fehler einsehen ist schwer. Für alle Parteien. Aber nicht nur ProgrammiererInnen wissen, wie wichtig das ist, um daraus eine Produktivität herzustellen, um neue und bessere Ideen zu generieren.

Wenn ich die Kärtchen irgendwann innerhalb des Hacker-Kreises aufgrund von Übergriffigkeit gebraucht hätte, dann einigen Leuten von der Flauscheria gegenüber. Aber nicht auf dem 29c3.

Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 100 Followern an