Anne erklärt Programmieren: Unnötige If-Verzweigungen im Alltag

Die re:publica wirkt nach. Deswegen möchte ich auch weiterhin allen Null- und Hilfscheckerbunnys ein bisschen was über Programmierung erklären. Heute zum Beispiel etwas über leider unnötige If-Verzweigungen im Alltag.

„Wenn der mitkommt, fahren wir um Viertel vor acht los“, sagt der Mann, als ich schon mit Körbchen zum Einkaufen bereit im Flur stehe.

„Wer? Der Rolf?“ frage ich.

„Ja.“

Wie wir im Nullcheckerbunnykurs gelernt haben, gibt es in der Programmierung sowas wie If-Konditionen. Wer schon mal ein bisschen mit Excel rumgespielt hat, wird dort vielleicht auch schon mal über diese WENN-DANN-Konstrukte gestolpert sein. Eine If-Kondition oder -Verzweigung fragt nach einer Bedingung. Ist diese korrekt, schlägt sie einen bestimmten Pfad im Programmablauf ein. Ist sie nicht korrekt, wird entweder nach einer anderen Bedingung gefragt (else if), es wird einfach etwas anderes gemacht (else) oder es passiert gar nichts besonderes und es geht weiter im Programm.

In diesem Fall hätten wir also:

var Abfahrtszeit;

if (RolfKommtMit == true){
    Abfahrtszeit = "19:45 Uhr";
}

Jetzt muss man natürlich noch wissen, dass man sich den zweiten Teil der Bedingung sparen kann. Gesetzt den Fall, dass Rolf mitkommt, ist der Wert der Variablen RolfKommtMit ja true, die Abfrage ist also übersetzt if (true == true). Folgendes reicht also völlig aus:

var Abfahrtszeit;

if (RolfKommtMit){
    Abfahrtszeit = "19:45 Uhr";
}

An dieser Stelle fangen wir jetzt an, wie ein Programmierer zu denken. Denn wir möchten ja auch wissen, wann Abfahrtszeit ist, wenn Rolf nicht mitkommt. Anders gesagt: Wir brauchen noch ein else für unseren Code, weil wir ansonsten gar nicht losfahren. Das wäre doof.

Ich frage also: „Und was, wenn Rolf nicht mitkommt?“

„Dann fahren wir auch um 19:45 Uhr los.“

Also:

var Abfahrtszeit;

if (RolfKommtMit){
    Abfahrtszeit = "19:45 Uhr";
}
else{
    Abfahrtszeit =  "19:45 Uhr"; 
}

Hm.

Aufmerksamen Bunnys ist vielleicht schon etwas aufgefallen: Egal, was passiert, die Abfahrtszeit ist immer 19:45 Uhr. So wichtig es oft genug ist, an dieser Stelle brauchen wir dieses ganze If-und-Else-Zeug gar nicht und wir schreiben:

var Abfahrtszeit = "19:45 Uhr";

Damit merken wir auch: Es ist wumpe, ob Rolf mitkommt oder nicht. Diese Information hat auf die weitere Abendplanung zunächst überhaupt keinen Einfluss und unsere schöne Variable RolfKommtMit wird gelöscht und ward nicht mehr gesehen. An dieser Stelle soll aber auch Schluss sein mit Programmieranalogien, denn in der Realität freuen wir uns natürlich, wenn Rolf mitkommt und es ist uns keineswegs egal. Nur für die Abfahrtszeit bleibt die Information irrelevant. Denn wir fahren ja so oder so um 19:45 Uhr los.

Was ich sonst noch so gemacht habe

Es passiert ja so viel. Vorgestern zum Bespiel war ich zum Presselunch im „What’s Beef“ auf der Immermannstraße in Düsseldorf eingeladen. Da wollte ich ja sowieso immer mal hin, die Einladung kam also wie gerufen. Wie das sonst so war steht im Foodblog.

Außerdem hatte ich Stefan Proksch zu Gast in meiner Wohnung (na ja, also fast) und habe ihm für seinen Podcast „Homestorys“ etwas über unsere Wohnung – oder richtiger: unsere Wohnungen – erzählt. Wer also immer mal wissen wollte, wie es sich mit Zugbrücke so lebt, kann da reinhören.

Es ist übrigens so, dass auch Stefan mit seiner Anfrage offene Türen einrannte. Ich erzähle gerne Zeug in Podcasts und im Radio. Von einem eigenen Podcast nehme ich aber aktuell Abstand, da ich aus Erfahrung weiß, wie viel Aufwand das ist und momentan mit Blogs und Techniktagebuch ausreichend ausgelastet wird. Wer aber einen Podcast hat und der Meinung ist, ich wäre da ein prima Gast, der kann sich gerne meldne. Ich habe sogar ein hübsches Mikrofon und weiß mittlerweile sogar ein bisschen besser, wie man das richtig anschließt.

Lieblingstweets im Mai (Teil 1)

RÜHRKUCHEN! BROKKOLI! KASTENBROT! SCHOKOMÜSLI! UND GRÜNE SOSSE! ZWEI MAL GRÜNE SOSSE!

Programmieren für Nullcheckerbunnys

Es war hier recht still in den letzten Tagen. Daran ist quasi einzig und allein die re:publica 2014 statt, denn ich war nicht nur da, sondern habe auch einen Workshop gehalten. Genauer gesagt habe ich zwei Workshops gehalten, allerdings gar nicht alleine, sondern mit Kathrin Passig. Umgerechnet habe ich also dann wieder nur einen gehalten. Oder so. Ich weiß nicht, wie man das richtig rechnet.

Zusammen haben wir versucht, Programmiernullcheckerbunnys dabei zu helfen, selbstständig mindestens das Hilfscheckerbunnytum zu erreichen. Ob es uns gelungen ist, muss man vielleicht eher die Teilnehmer fragen, wir waren aber auch ganz zufrieden mit den Workshops und zumindest die Rückmeldungen auf Twitter waren allesamt positiv. Es fanden also entweder alle gut oder die, die es nicht so gut fanden, waren nett genug, dies nicht öffentlich zu äußern.

Nachhören kann man das hier bei Voice Republic. Eine Videoaufzeichnung gibt es leider nicht, dafür hatten wir aber zwei Gebärdendolmetscherinnen. Woher die kamen und warum die bei uns waren, wissen wir auch nicht, fanden es aber sehr toll.

Die passenden Slides dazu gibt es dann hier auf Google Docs.

Dann wurden wir noch von Lea Weitekamp von t3n interviewt und mussten zu DRadio Wissen zum „Netzbasteln“ mit Moritz Metz in den HY-Wagen, wo wir Schokolade gegessen, ein bisschen erzählt und dann eine Endlos-Huhu-Schleife programmiert haben. ABER ABSICHTLICH!

Weitere Erwähnungen des Workshops gab es unter anderem im Kölner Stadt-Anzeiger und in der FAZ.

Danach musste ich mich ein bisschen erholen, dann war ich bei einem Künstlergespräch im Folkwangmuseum, dann war Eurovision Song Contest und dann war auch schon Sonntag und ich habe auf dem Sofa gelegen, Veronica Mars geguckt und Nudelsalat gegessen. Es geht alles sehr schnell gerade, man kommt gar nicht zum Bloggen vor lauter tollen Sachen.

Lieblingstweets im April (Teil 2)

GHOSTWRITER! OSTERHASEN! SCHRANKWÄNDE! 99 EXTRA-ZUTATEN! PFROPFEN! GUMMIQUIETSCHKNOCHEN! STYROPOR UND LIEBE UND… OH, EIN EICHHÖRNCHEN!

(Und jetzt alle loshopsen.)

Versehentlicher Walzer oder die Tücken des Songschreibens

Gestern habe ich eher aus Versehen einen Song im Dreivierteltakt geschrieben, also eben einen Walzer. Aus Versehen, weil ich das so nicht geplant hatte. Eigentlich hatte ich überhaupt nichts geplant, das scheinen aber leider die besten Voraussetzungen fürs erfolgreiche Songschreiben zu sein, also gar nicht vorzuhaben, einen zu schreiben, was wieder so ein „Nicht an den rosa Elefanten denken“-Problem ist, oder eben wie damals oder vielmehr demnächst irgendwann, wenn Arthur Dent stolpern, sein altes Handtuch sehen und daraufhin vergessen wird, auf dem Boden aufzuschlagen.

So gesehen ist Songschreiben quasi wie Fliegen. Mindestens genauso schwer und garantiert so wenig vorhersehbar.

Eigentlich fing das aber schon vorher an, nämlich Samstag oder so, als ich vollkommen überraschend die Bridge für einen anderen Song fand, der ansonsten schon seit Monaten irgendwie so halb fertig ist. Es fehlte nur noch eine vernünftige Bridge und jetzt eben noch so grob zwei bis drei Zeilen Text. Das klingt nicht viel, ist es aber leider doch, aber ich bin da optimistisch. Jetzt, wo ich die Bridge hab, ist ja eins von zwei wesentlichen Problemen erledigt, jetzt ist der Song also nicht mehr nur zu 80 Prozent, sondern schon zu so 90 Prozent fertig, es kann sich also nur noch um Monate handeln. Da könnte man auch fragen, ob ich die Bridge oder jetzt eben die zwei bis drei Zeilen Text nicht einfach weglassen könnte, aber das geht dann auch wieder nicht, der Song brauchte eindeutig eine Bridge und die zwei bis drei Zeilen Text leider auch, das wäre ja einfach, wenn man als Songschreiber einfach sagen könnte, ach, das ist mir zu schwierig jetzt, das lass ich weg.

Dementsprechend gilt auch fürs Songschreiben, die alte 80/20-Regel, nach der man für 20 Prozent der Arbeit 80 Prozent der Zeit braucht. Wenn man lang genug sucht, findet man bestimmt auch noch einen kritischen Pfad, der den Songschreibeprozess irgendwie beeinflusst, aber das können andere Menschen machen.

Samstag hatte ich jedenfalls die Bridge und dann saß ich Sonntag am Klavier und schrieb aus Versehen einen Song im Dreivierteltakt, der so aber überhaupt nicht geplant war und dementsprechend fertig war, bevor ich „Huch!“ sagen konnte. Auf einmal hatte ich erste Strophe, den Refrain und wusste auch, wie das ganze so insgesamt funktionieren musste. Vorhin habe ich den Text für die zweite Strophe geschrieben, dann noch schnell eine kleine Bridge gebastelt und ZACK! FERTIG! Das passiert ausgerechnet mir, die ich gerade für die Songtexte immer so furchtbar lange brauche. Und jetzt hier, zack, kurz mal nicht aufgepasst, schon ist alles fertig.

Das Ergebnis kann man sich auf Soundcloud anhören, die Tonqualität ist anfechtbar, ich habe es halt einfach so mit der Diktiergerätfunktion auf dem iPhone aufgenommen, was anderes war gerade nicht da. Außerdem habe ich mich mindestens zwei Mal versungen, es ist ja nicht so, als ob man automatisch textsicher wäre, nur weil man irgendwas selbst geschrieben hätte. Schön wäre das, wenn es so wäre, so ist es aber eben nicht.

Und für die ganz Neugierigen hier noch der Text, dann weiß man auch, wo genau ich mich vertan habe.

Tokens & Trinkets & Gold

Newspapers, letters and things that are written
Goldfish and birds and an unwanted kitten
Trophies and gold rings and bouquets of flowers
A grandfather clock that makes noise every hour

So leave it all for me to find
The things you cannot leave behind
All your tokens and trinkets and gold
And though it is quite plain to see
That none of this means much to me
I will wait for you ‚til I am old
You’ll come back with you stuff’s still unsold
I will wait for you ‚til all the oceans rise, skies will tear open and rain will unfold

An old record player and some records with scratches
A candle and four hundred boxes of matches
The things that you love and those things you forgot
And these walls that contain all those things that you’ve got

So leave it all for me to find
The things you cannot leave behind
All your tokens and trinkets and gold
And though it is quite plain to see
That none of this means much to me
I will wait for you ‚til I am old
You’ll come back with you stuff’s still unsold
I will wait for you ‚til all the oceans rise, skies will tear open and rain will unfold
I will wait for you ‚til I am old

Goldfish and birds and an unwanted kitten
Newspapers, letters and things I have written
I know that I can’t make you stay
So I just hope that you’ll come back someday

So leave it all for me to find
The things you cannot leave behind
All your tokens and trinkets and gold
And though it is quite plain to see
That none of this means much to me
I will wait for you ‚til I am old
You’ll come back with you stuff’s still unsold
I will wait for you ‚til I am white haired and wrinkly, my looks will be gone I am told
I will wait for you ‚til I am old
I will wait for you ‚til I am old

Diese Bloggerin schenkt Lesefreude – aber heute noch nicht!

Blogger_Lesefreude_2014_Logo

Heute ist Welttag des Buches. Schon im letzten Jahr habe ich zu diesem Anlass bei der Aktion „Blogger schenken Lesefreude“ mitgemacht und mich auch für dieses Jahr wieder angemeldet. Allein der Alltag kam dazwischen. Im Moment ist ein bisschen zu viel los, was dann dazu führt, dass ich an Tagen, an denen nicht so viel los ist, erst recht nicht viel mache.

Die lustige Verlosung ist damit aber nicht aus der Welt, ich brauche nur ein bisschen länger, denn ich weiß ja noch nicht mal, welches Buch ich verschenken will.

In der Zwischenzeit kann man ja einfach bei den vielen anderen Bloggern vorbeischauen, die das besser auf die Reihe bekommen haben und sich da mit ein bisschen Glück beschenken lassen.

Senile Bettflucht

Seit ein paar Wochen hat sich mein Schlafrhythmus seltsam verschoben. Die größte Schuld trägt dabei wohl der neue Job und die damit verbundenen neuen Aufstehzeiten. Außerdem vermute ich, dass der Frühling seine Hände mit im Spiel hat, vor allem diese frühen Sonnenaufgänge scheinen mir da verdächtig.

Jedenfalls falle ich seit einiger Zeit auch am Wochenende gelegentlich beinahe unverschämt früh aus dem Bett, es sollen schon Uhrzeiten vor 8 Uhr vorgekommen sein. Ich weiß dann gar nicht, was ich tun soll. Leider ist es ja auch so, dass ich dadurch nicht weniger Schlaf bräuchte, ich werde eben nur früher müde oder muss auf einmal mitten am Tag auf dem Sofa ein Schläfchen von ein bis drei Stündchen halten.

Gestern zum Beispiel verschlief ich den halben Nachmittag auf der Couch, nachdem mir vorher schon durch den Konsum des Frauensenders sixx einige Gehirnzellen abhanden gekommen waren. Das hätte eigentlich reichen müssen, um das Schlafpensum halbwegs in den Griff zu bekommen, tat es aber nicht. Deswegen musste mir der Herr Gemahl eben noch die letzten fünfzehn Minuten von „Der große Diktator“ nacherzählen, weil ich erst zur Abschlussrede des Barbiers wieder wach geworden war. Danach guckte er noch den ersten Teil von „Der Pate“, während ich auf der Couch schlief und dann irgendwann beschloss, dass das so mit mir und dem Film wohl nichts mehr werden würde und ins Bett umzog.

Dafür wachte ich heute morgen um 6:30 Uhr auf. Eine unheilige Zeit! Wozu ist die gut? Niemand sollte am Ostersonntag um 6:30 Uhr aufwachen und schon gar nicht ich! Um diesem Unsinn aber ein Ende zu machen, steckte ich mir einfach Kopfhörer in die Ohren, machte ein Hörbuch an und wie erwartet schlief ich dann wieder ein. Es ist nämlich quasi unmöglich, ein Hörbuch in liegendem Zustand zu hören und dabei nicht einzuschlafen, jedenfalls wenn man ich ist. Beim nächsten richtigen Aufwachen war es dann 10 Uhr. Schon besser. Damit kann ich umgehen.

Der Lachs, das Huhn und kein Netz

Und dann stand ich heute im Düsseldorfer Kaufhof an der Kö, um Lachs zu kaufen. Frischen Lachs zum Beizen sage ich der Fischverkäuferin, ob ich den hier dafür nehmen könnte. „Den sollten Sie sogar nehmen“, sagt die Fischverkäuferin und entschuppt ihn noch für mich.

Mit dem Lachs in einem feschen Antimikrobenbeutel in der einen und einem Sack Bio-Orangen in der anderen stehe ich dann an der Kasse. Zwei sind offen, an beiden sind Schlangen. Keine langen Schlangen, aber unangenehme Schlangen. So Schlangen mit vielen Leuten, die alle nur wenige Sachen haben, also Leuten wie mich. Vor mir eine Frau mit drei Sachen und vor ihr ein italienischer Einkaufsverbund, der in mehreren Etappen einkauft. Jeder ein bisschen was, das dauert, zur Hälfte sind sie fertig, als der Mann mit dem Huhn kommt.

Der Mann mit dem Huhn darf sich dazwischendrängeln, weil er wohl eben schon mal da war, aber anscheinend noch mal etwas kontrollieren gehen musste. Das Huhn, sagt er, wäre im Sonderangebot für Irgendwas-Neunundneunzig, hier das würde ab 11,27 Euro kosten, das wäre falsch, er hätte wohl schon gerne dieses Huhn, aber eben zu dem Preis, der da stand, oder im Prospekt. Er spricht sehr leise und zaghaft, deswegen verstehe ich die Gesamtproblematik nicht ganz. Die Kassiererin guckt sich das Huhn noch mal an, weiß aber auch nicht mehr und verschwindet dann in den Tiefen des Kaufhofsupermarktes zu Huhnrecherchezwecken. Und kommt erst mal nicht wieder.

Neben unserer Kasse wird eine neue aufgemacht, die Frau vor mir wechselt die Kasse, als ich überlege, mich auch in eine andere Schlange zu stellen, stehen da schon wieder so viele Leute, dass es mir auch schon egal scheint. Unsere Kassiererin kommt bestimmt jeden Augenblick wieder und außerdem will ich jetzt wissen, wie die Geschichte mit dem Huhn ausgeht. Tragisch an der Geschichte ist ja vor allem, dass es im Kaufhofsupermarkt wirklich überhaupt kein Netz gibt. Kein Internet, kein Telefon, man steht also da in der Schlange mit seinem Lachs und wartet auf die Kassiererin mit dem Huhn und kann noch nicht mal lustige Sachen darüber ins Internet schreiben. Schlimm

Die Kassiererin kommt tatsächlich wieder, bespricht kurz etwas mit der anderen Kassiererin, lässt sich dann einen Taschenrechner rüberreichen und rechnet aus, was das Huhn kosten müsste. 10,62 Euro sagt sie dann, das passt dem Mann mit dem Huhn aber immer noch nicht, er sagt etwas, aber wieder so zaghaft, dass ich die Hälfte nicht verstehe, die Kassiererin rechnet noch mal, kommt auf 8,50 Euro, beide Parteien werden sich einig und der Mann kauft das Huhn. Letztlich also ein Happy End.

Im Prolog Epilog darf dann der italienische Einkaufsverbund die letzten Einkäufe bezahlen, dann bin ich dran, bezahle den Lachs und die Orangen und bin tatsächlich noch vor der Frau fertig, die vorher vor mir war.

Im zweiten Prolog Epilog stehe ich in der Küche, stelle fest, dass der Lachs zwar ganz okay, aber doch nicht supersorgfältig entschuppt wurde und kann jetzt „Lachsfilet entschuppen“ ins kulinarische Skillset aufnehmen. Ob da demnächst auch noch „Lachs beizen“ dazukommt, wissen wir Freitagabend. Es bleibt spannend.