Schlagwort-Archive: python

Linkliste #00000111

Es ist Ende des Semesters, 7:39 am Morgen und es ist ein ganz besonderer Tag.
Heute ist die große Prokrastinations-Scherben-Aufsammel-Aktion!
Es gibt noch viel zu tun, zum Beispiel auf die Abgabe der Arbeitsaufträge meiner StudentInnen warten, was witzig ist, weil ich selber noch Arbeitsaufträge für andere Seminare einreichen muss. Aber das ist wohl die Nahrungskette des Unibetriebs und ich werde im Notfall die enttäuschten, traurigen und frustrierten Mails meiner DonzentInnen einfach weiterleiten.

Heute deswegen kein Release von Code, der die Welt ein bisschen schlechter macht. Stattdessen eine Linkliste. Die letzte Liste ist lange her und ich habe seitdem auch nicht allzu viele Links gespeichert. Ich weiß nicht genau woran das liegt, womöglich weil die Debatten und somit Inhalte um den Programmieren-Lernen-Diskurs abebben? Es ist auch möglich, dass ich einfach nicht aufmerksam genug war. Jedenfalls freue ich mich über Empfehlungen mit Linktipps in den Kommentaren (gebt dann aber Bescheid, dass es sich um einen Vorschlag für die Linkliste handelt).

Der Wettbewerb richtet sich an SchülerInnen ab 13 Jahren. Die Aufgabe ist ein Python-Programm zu schreiben, das in Blender ausführbar ist und darin die 3D Möglichkeiten nutzt. Ich habe keine Ahnung was das bedeutet, aber ich bin mir sicher, dass es viele junge schlaue Köpfe gibt da draußen, die das wissen. Vielleicht kennt ihr so eine kleines Genie, ich persönlich halte mich ja fern von klugen Kindern, deswegen müsst ihr den Wettbewerb weiter verbreiten! Der Wettbewerb findet übrigens anlässlich der Python Konferenz im Oktober in Köln statt. Auf dem sympathischen Header der Website scheinen die VeranstalterInnen kommunizieren zu wollen, dass es keine Frauen dort gibt. Also keine Angst!

Endlich die Verzeichnisstruktur deines Computers verstehen – ist der erste Schritt zur gewaltfreien Kommunikation. Bisher war mir das tatsächlich immer nicht ganz klar, was die einzelnen Verzeichnisse bedeuten. Aber die Suche nach Dateien mit locate ist meistens wenig zielführend, wenn man nicht weiß, welche Bedeutung dieser oder jener Pfad hat. Gehört wohl – so wie shell commands – in die Kategorie „auswendig lernen“. Wenn ihr Erfahrung im Strebern habt, so wie ich, könnt ihr das auch ausdrucken, Merkzettel schreiben, farbige mind maps machen, Karteikarten beschriften…hauptsache ihr lernt den Kram.

Auf netzpolitik.org wurde vermutlich nicht zum ersten Mal eine Anleitung gepostet, wie Mails mit PGP verschlüsselt werden. Zwei Dinge dazu:

1. Zur Verschlüsselung braucht es immer zwei.
2. Verschlüsselung geschieht meist von Nerd zu Nerd.

Genug Anlass, um mal darüber nachzudenken, ob ihr euch nicht auch langsam an das Thema ranwagen wollt. Es kann sein, dass ihr fetischlose, staatstreue, wertekonservative und immer gut angezogene BürgerInnen seid. Eure Freunde und Freundinnen, mit denen ihr in Mailkontakt steht haben das Piercing vielleicht an der falschen Stelle. Es sind eben nicht nur Nerds und H4xx0r, für welche Verschlüsselung notwendig sind, trotzdem tun es überwiegend eh schon technik-affine UserInnen.
Ich muss zugeben, dass ich den Prozess bis zur Verschlüsselung – also PGP verstehen lernen, keys generieren, key management, key exchange – nicht ganz so einfach fand und finde, aber zum Glück gibt es genügend Menschen in meinem Umfeld, die gewillt sind, mir das in Ruhe zu erklären. Ich bin auch noch immer nicht ganz überzeugt davon, dass Crypto-Workshops für viele so sinnvoll sind. So wie beim Programmierenlernen glaube ich auch hier, dass individuelle Hilfestellung und Erklärungen sehr viel zielführender und weniger frustrierend sind. Insofern sind Menschen die (noch) nicht verschlüsseln und paranoide PGP-Stars  gleichermaßen dazu aufgerufen, sich damit auseinanderzusetzen.

Schnappt euch die nächstbesten Nerds aus eurer Umgebung und lernt verschlüsseln!

Schnappt euch die nächstbesten N00bs aus eurem Umfeld und lehrt verschlüsseln!
(Aber fragt vielleicht vorher, ob sie das wirklich wollen.)

Hier noch ein niedliches und unterhaltsames Video über die Funktionsweise von PGP

Übrigens versuchte ich dem Autoren des Videos vor ein paar Tagen eine verschlüsselte Mail zu schicken in der ich ihn fragte, wie Verschlüsselung funktioniert. Allerdings ohne seinen pubkey zu haben.
Naja, jetzt bin ich schlauer.

Ein Standard für die Übertragung von IP Paketen. Sehr lehrreich wenn man mehr über die Ping-Praxis und Paket-Transport lernen möchte.

Für die Bügelnden und Sporttreibenden unter uns – der WMR-Podcast, in dem ich zu Gast war ist (eigentlich schon lange) draußen. Darin erzähle ich ein bisschen über das Programmieren, über mich, über Tofu, über Istanbul und manchmal schweige ich auch, zum Beispiel zu Prism-Spekulationen. Ich hab gehört, der soll hörenswert sein, aber ich selber höre ja nie Podcasts. Aber wer schon immer mal meine Stimme hören und ein Bild von mir ohne Hose sehen wollte, dem sei der Podcast empfohlen!

Advertisements
Getaggt mit , , , , , , ,

LINKLISTE #00000110

David Bauer hat den Selbstversuch gewagt und Programmieren innerhalb eines Jahres überwiegend mit Code Academy gelernt. Er schreibt in diesem Artikel über seine Erfolge, Misserfolge und was ihn dann doch wieder motivieren konnte. Er sieht erfreulicherweise auch davon ab, am Ende seiner Entwicklung sich selbst als Superprogrammierer zu sehen. Er betont stattdessen, was er auf dem Weg zu einem programmierenden Journalisten, der für „Programmierer-Maßstäbe“ nichts kann, alles gelernt hat. Er war auf jeden Fall sehr viel fleißiger als ich und hat auch schon kleine Webanwendungen gebaut und auf github gestellt.

Moeffju war so nett, meine Sexwürfel auf Github zu forken (haha wie das klingt!) und dem Code ein bisschen mehr Stil zu verleihen. Es gibt bestimmte Konventionen, die im oben verlinkten Style Guide nachgelesen werden können und an welche man sich der Lesbarkeit halber halten sollte.

Das erste Smartphone!
Danke Leitmedium.

We are all DOOOOOOOMED!
Danke Jakob.

Das Forum InformatikerInnen für Frieden und gesellschaftliche Verantwortung vergibt einen Preis für Abschlussarbeiten, welche sich mit Informatik und Gesellschaft auseinandersetzen. Einreichungen bis zum 31. Mai.

Eine lange, traurige Geschichte über Encryption Standards und das Erklären von Encryption Standards. Mit Strichmännchen. Aber es hat irgendwie auch ein Happy End.

Hätte ich das gewusst. Hier wird sehr knapp, aber dennoch überraschend verständlich die Architektur eines x86-Prozessors in einer Übersicht erklärt.

Netzpolitik.org ist ein wichtiges Blog, wo zentrale Diskussionen der Netzpolitik aufgegriffen, analysiert und wiedergegeben werden. Bzw. was noch viel wichtiger ist: Teilweise werden sie dort erstmal zu zentralen Diskussionen gemacht. Damit das so bleibt, braucht Netzpolitik.org GELDGELDGELD. Ihr könnt und solltet ein paar Euro spenden, ich werd auch mal schauen, was sich tun lässt. Besser ist natürlich ein Dauerauftrag. Von den 30 000 LeserInnen (ich habe aus dramaturgischen Gründen deren Statistik übernommen) könnten ja wenigstens 50% einen Euro jeden Monat spenden und damit unabhängige Berichterstattung über die Politik im Internet, dem wichtigsten Medium der jetzigen und zukünftigen Zeit, finanzieren.
Tut es besser jetzt und rühmt euch mit euren heldenhaften Motiven, bevor wir es alle nur noch tun, um die nervigen Banner loszuwerden. Aber die Fotos sind echt gut! (Disclaimer: Die Fotos sind von m..ach lassen wir das)

Linkliste #00000110

Getaggt mit , , ,

Zufallssex

Ich hab’s getan!

Ihr kennt das vielleicht aus eurer Jugend, als die erotischste Konsumerfahrung noch das Vorbeigehen an halbherzigen Sextoys und aufblasbaren Schafen in einem Laden für kiffende Mittelschicht-Punks war. Also bei mir war das zumindest so. Man könnte meinen, daran habe sich nie etwas geändert, als ich Freitagabends nichts besseres zu tun hatte, als Pizza zu essen und zu programmieren.

Gestern besuchte mich Genosse Erlehmann und als ich ihn gerade rauswerfen wollte, bestellten wir stattdessen im Affekt Essen (Wir guckten einen Flyer an). Um die Stunde, die wir aneinander gebunden waren, zu überbrücken, wollte ich etwas kleines programmieren. Ich wollte nicht aus dem Muster ausscheren und programmierte daher nach dem schlecht.s-Programm, der Beleidigungsmaschine, dem editor und dem Schlangenkuchenrezept erneut etwas völlig sinnloses. Und zwar:

Terminalbasierte Sexwürfel!

Und hier der Code dazu:

#!/usr/bin/env python
print "L I E B E S W U E R F E L"

# wie = ("zaertlich", "fest", "brutal", "schlecht", "angewidert", "lustig")
wo = ("Nippel", "PENIS", "Pussy", "Schenkel", "Bauch", "Po")
was = ("kuessen", "saugen", "lecken", "knabbern", "streicheln", "kitzeln")

from random import choice
# print choice (wie)
print choice (wo)
print choice (was)

Das ist ein sehr sehr sehr einfaches Programm und jedeR sollte das verstehen können. Erlehmann zeigte mir erst in einer Python-Shell, wie man choice verwendet und wie eine Liste erzeugt wird. Eine Python-Shell ist das, was passiert, wenn du im Terminal „python“ eintippst. Du kannst dann sozusagen „live“ Python Befehle ausführen, anstatt sie in ein Programm zu schreiben, das sie für dich nach und nach ausführt. Die simpelste Anwendung ist sicherlich, die Shell wie einen Taschenrechner zu verwenden. Aber die Funktion „Choice“ bspw. kann ich darin auch verwenden. In der Pythonshell lernte ich ersteinmal, wie choice überhaupt funktioniert und konnte es dann in das Programm einbinden.

Im Programm sexwuerfel.py werden zunächst die Variablen mit einer Liste belegt. Das Format ist denkbar simpel:

variable = (1, 2, 3, ..., n-1, n)

Wenn du Zufallszahlen generieren möchtest, kannst du die Zahlen einfach durch Komma getrennt in Klammern setzen. In diesem Fall gebe ich Wörter in Form von Strings in die Liste, also müssen sie in Anführungszeichen gesetzt werden, damit sie als Strings erkannt werden. Damit belege ich drei Variablen. Wobei eine auskommentiert ist, mit einer Raute (#) davor. Dadurch wird die danach folgende Zeile „wirkungslos“ gemacht, sie spielt keine Rolle mehr im Programm. Das ist lediglich Schadensbegrenzung. Kompetente und ganz besonders versaute LeserInnen können die Zeilen ja wieder reinkommentieren.

Der Korrektheit halber: Eigentlich sind die Listen keine Listen, sondern Tupel. Aber egal. Choice ist nicht besonders wählerisch und nimmt alles, was irgendwie abzählbar ist.

In der Zeile

from random import choice

weise ich das Programm an, aus dem Python-Modul „random“ die Funktion(sdefinition) „choice“ zu importieren. Das kennt die geneigte Leserin vielleicht schon aus diesem Post wo ich dasselbe mit „from sys import arg“ verwende.

Die nächsten Zeilen erklären sich eigentlich von selbst. Ich jage die „choice“-Funktion auf die Variablen, die mit den Listen belegt sind. Mit print wird mir das Ergebnis – also ein zufällig aus der Liste ausgewähltes Element – ausgegeben.

Es können natürlich beliebig viele Listen und choices noch hinzugefügt werden. Zum Beispiel

ort = ("kueche", "wohnzimmer", "aufzug", "buergeramt" ...)

oder

wer = ("ich", "du", "aufblasbares Schaf", "deine mutter",...)

und so weiter.

Jetzt brauche ich nur noch ein paar Beta-Tester, die das Spiel ein paar mal… ähm… durchspielen und Verbesserungsvorschläge und Erfahrungsberichte einreichen. Freiwillige?

Hier hört die Erklärung des Programm eigentlich schon auf, aber es folgt noch eine überspringbare Kleinigkeit, für Fortgeschrittene und alle die es werden wollen über Berechtigungen, Unix-Benutzergruppen und zur allerersten Zeile:

#!/usr/bin/env python

Das ist eine sogenannte „Shebang“-Zeile. Ja, wirklich. Sie weist das Betriebssystem beim Ausführen der Datei darauf hin, welcher Interpreter das Programm -nunja- interpretieren kann. Den Tip gab mir Erlehmann und ich weiß bei seinen Hinweisen immer nicht so genau, wie sinnvoll und notwendig die sind. Es hat aber auf jeden Fall den Vorteil, dass nicht etwa

python sexwuerfel.py

in die Kommandozeile eingetippt werden muss, sondern einfach nur

./sexwuerfel

um das Programm auszuführen. Die Endung .py hat übrigens keine Funktion, sie ist einfach nur ein Hinweis an den Menschen, dass es sich um ein Python-Programm handelt. Um eine Datei auf diese Art und Weise ausführbar zu machen, mussten wir allerdings noch ein paar Berechtigungen ändern.

Wenn ich in meinem Terminal

ls sexwuerfel.py -l

eintippe, sehe ich die Berechtigungen: -rw-r–r–
Das kann man aufspalten in  rw-, r– und r–. Das sind drei verschiedene Berechtigungen für mich, den user, die group und other
user (ich) darf:

rw-

Ich habe ein r (lesen) und ein w (schreiben, also das Programm verändern), das heißt ich darf die Datei lesen und reinschreiben. Wo ein x stehen könnte, steht ein Strich, ich darf die Datei also nicht ausführen. Group und Other dürfen nur lesen. Group bezieht sich auf eine definierte Benutzergruppe, ist aber in diesem Falle irrelevant.

Als Userin kann ich die Berechtigungen verändern. Das mache ich mit dem Befehl „chmod“, das steht für „change mode“. Mit

chmod a+x sexwuerfel.py

gebe ich allen (a) Usern das Recht, die Datei auszuführen (x). Jetzt bekomme ich mit

ls sexwuerfel.py -l

das Ergebnis rwxr-xr-x. Aufgespalten wäre das: rwx, r-x, r-x. Also kann ich jetzt als userin lesen, schreiben und ausführen und groups und others dürfen lesen und ausführen aber weiterhin nicht schreiben. Jetzt kann das Programm von jedem mit ./ ausgeführt werden.

Bessere Erklärungen zu chmod gibt es hier und hier gibt es detaillierte Erklärungen zu den Unix-Benutzergruppen.

Getaggt mit , , , , , , ,