bullshit https://bullenscheisse.de/ de Sun, 23 Sep 2018 16:32:00 GMT https://bullenscheisse.de/rss/ acrylamid 0.7.10 Barcamp Rhein-Neckar 2018 in Heidelberg https://bullenscheisse.de/2018/barcamp-rhein-neckar-2018-in-heidelberg/ <p>Am 22. und 23. September 2018 fand das dritte <a href="https://barcamp-rhein-neckar.de">Barcamp Rhein-Neckar</a> zum dritten Mal im <a href="http://www.dezernat16.de">Dezernat 16</a> in Heidelberg statt. Nachdem wir es <a href="https://bullenscheisse.de/2015/bcrn15/">2015</a> gegründet und <a href="https://bullenscheisse.de/2016/barcamp-rhein-neckar-2016-in-heidelberg/">2016</a> wiederholt haben, war ich natürlich auch dieses Jahr wieder dabei. Das Team um Adrian und Valentin hat Großartiges geleistet.</p> <p>Das BCRN — eigentlich, so habe ich gelernt, müsste es es „HeidelCamp“ oder „RheinNeckarCamp“ heißen — ist eines der kleineren Barcamps in Deutschland, aber vielleicht gerade deswegen ein sehr feines. Dieses Jahr gab es eine Kooperation mit <a href="https://de.wikipedia.org/wiki/Wikipedia:WikiDACH/2018">WikiDACH</a>, dem deutschsprachigen Wiki-Barcamp. Weil beide Camps sonst wahrscheinlich nicht stattgefunden hätten, schlossen sich die Orga-Teams einfach kurzerhand zusammen und organisierten eins für alle.</p> <p>Was mich wieder einmal beeindruckt hat, war das Themenspektrum der Sessions: Am Anfang hielt <a href="https://chaos.social/@cheatha">Cheatha</a> gemeinsam mit mir eine sehr spontane <strong>Einführung in git und Github</strong>. Jemand hatte sich das gewünscht und wir nutzten eben den ersten Sessionslot für die Vorbereitung. Danach erzählte Cindy von ihrer <strong>Depression und Antidepressiva</strong>, einige Tage vorher hatte sie einen <a href="https://piranhapudel.de/antidepressiva-ein-persoenlicher-bericht-wspd2018/">Blogpost</a> zu genau diesem Thema geschrieben.</p> <p>Anschliessend erzählte uns <a href="https://twitter.com/legerdemain">Mikka</a> — von Beruf Neuropsychologe — in einem unterhaltsamen Vortrag, <strong>was Katzen mit einer Zombieapokalypse zu tun haben</strong> und was man unter anderem braucht, um eine auszulösen — Stichwort: <a href="https://de.wikipedia.org/wiki/Toxoplasma_gondii">Toxoplasma gondii</a>.</p> <p><img alt="" src="https://bullenscheisse.de/2018/barcamp-rhein-neckar-2018-in-heidelberg/BCRN18_Toxoplasma_gondii.jpeg"/></p> <p><a href="https://twitter.com/seppini">Sebastian</a> gab uns dann einen Einblick, wie es sich anfühlt, eine <strong>Legasthenie</strong>, auch bekannt als <a href="https://de.wikipedia.org/wiki/Lese-_und_Rechtschreibstörung">Lese- und Rechtschreibstörung</a> zu haben. Ich habe versucht, diese Session als Sketchnotes festzuhalten, natürlich in Schreibschift. Ganz am Ende erwähnte Sebastian, dass Schreibschrift für Menschen mit Legasthenie die Hölle ist.</p> <p><img alt="" src="https://bullenscheisse.de/2018/barcamp-rhein-neckar-2018-in-heidelberg/BCRN18_Legasthenie.jpeg"/></p> <p>Weil ich das erst seit knapp einer Woche mache, freue ich mich über Feedback und Verbesserungsvorschläge.</p> <p>Vor dem Abendbrot diskutierten wir noch, <strong>warum es legitim ist, Nazis zu boxen und was man sonst gegen den Rechtsruck in der Gesellschaft tun kann</strong>, bevor wir nach einer leider etwas zu langen Pause Bier kaufen gingen und in einer sehr kleinen Runde <strong>PowerPoint-Karaoke</strong> spielten. Damit ging der erste Tag vorbei.</p> <p>Der Qualitätssonntag begann mit einer gemeinsamen Session von <a href="https://twitter.com/ittnerfa">Frieder</a> und <a href="https://twitter.com/uwebartholomaei">Uwe</a> zum Thema <strong>New Work und Mensch+Arbeit</strong>. Uwe erzählte unter anderem, wie <a href="https://twitter.com/proclimaDE">pro clima</a> aufgebaut ist und Frieder sprach etwas genereller über neue Arbeit. Auch hier habe ich mich wieder versucht, die Session aufzuzeichnen und auch hier freue ich mich über Feedback:</p> <p><img alt="" src="https://bullenscheisse.de/2018/barcamp-rhein-neckar-2018-in-heidelberg/BCRN18_Mensch_Arbeit.jpeg"/></p> <p>Vor dem Mittagessen — es gab Kartoffel-Kürbis-Eintopf mit Kichererbsen — nahm uns 🐈-🧟‍♀️-Mikka mit zur <strong>Entstehung der ersten <a href="http://barcamp.org/w/page/400184/BarCamp">BarCamps</a></strong>. Die „Bay Area Rejects“, die von Tim O'Reillys <a href="https://en.wikipedia.org/wiki/Foo_Camp">Friends of O'Reilly's-Camp</a> geworfen wurden, machten kurzerhand ihr eigenes Ding im Büro von <a href="https://en.wikipedia.org/wiki/Socialtext">Socialtext</a>. Zwischendrin erschwerte das <a href="https://wordpress.org/news/2005/02/strayhorn/">Release von Wordpress 1.5</a> die Organisation, am Ende hat aber alles geklappt. Und das mit einer Vorlaufzeit von knapp einer Woche — sie hatten laut Mikka sogar Bierflaschen mit einem eigenen Ettikett. Mikka hatte auch einige Funfacts parat, beispielsweise zum Namensschema von *-Camps: Während „Bar“ eben für „Bay Area Rejects“ steht, sollte jedes andere Camp dieses Präfix durch etwas eigenes ersetzen: Das Saarcamp macht es bezüglich der Benennung besser als das Barcamp Rhein-Neckar, weil das Barcamp Rhein-Neckar eben nicht von „Bay Area Rejects“ ins Leben gerufen wurde. Hätten wir das 2014 mal gewusst.</p> <p>Vielleicht sollte ich Wordpress auch mal wieder eine Chance geben.</p> <blockquote class="twitter-tweet" data-lang="de"><p lang="de" dir="ltr">Der Ursprung des BarCamp <a href="https://twitter.com/legerdemain?ref_src=twsrc%5Etfw">@legerdemain</a> <a href="https://twitter.com/hashtag/wikidach?src=hash&amp;ref_src=twsrc%5Etfw">#wikidach</a> <a href="https://twitter.com/hashtag/bcrn18?src=hash&amp;ref_src=twsrc%5Etfw">#bcrn18</a> <a href="https://t.co/Yz72W9MYlU">pic.twitter.com/Yz72W9MYlU</a></p>&mdash; WikiDACH (@WikiDACH_org) <a href="https://twitter.com/WikiDACH_org/status/1043799482746335233?ref_src=twsrc%5Etfw">23. September 2018</a></blockquote> <p><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p>In der vorletzte Session erzählte uns <a href="https://chaos.social/@flowfx">@flowfx</a> etwas zum Leben in Mexiko City, wo er zusammen mit seiner Frau ungefähr vier Jahre lebte. Und ganz zum Schluss präsentierte uns Sebastian mehr oder weniger gute Designs und warum ein Stuhl immer so aussehen wird wie ein Stuhl: <a href="https://de.wikipedia.org/wiki/Form_follows_function">Form follows function</a>.</p> <h4>Danke</h4> <p>Danke für ein spannendes, intensives <del>Bar</del>RheinNeckarCamp Rhein-Neckar. Danke an das Orga-Team, danke an die Menschen, die sich an Sessions beteiligt haben, danke an die Sponsoren, die das #bcrn18 zu einer besseren Veranstaltung gemacht haben, als es ohne sie gewesen wäre. Was das BarCamp über das <a href="http://barcamp.org/w/page/402874/FooCamp">FooCamp</a> schrieb, gilt natürlich auch für BarCamps:</p> <blockquote> <p>The important thing is that when good people get together, great things happen.</p> </blockquote> <p>Ich freue mich auf das Barcamp Rhein-Neckar 2019. Vielleicht schaffe ich es ja auch mal wieder, mich in der Orga einzubringen.</p> Sun, 23 Sep 2018 16:32:00 GMT tag:bullenscheisse.de,2018-09-23:/2018/barcamp-rhein-neckar-2018-in-heidelberg Reden mit Rechtspopulist*innen https://bullenscheisse.de/2018/reden-mit-rechtspopulist-innen/ <p>Auf dem diesjährigen, sehr schönen <a href="https://www.barcamp-stuttgart.de">Barcamp Stuttgart</a> ging es unter anderem um das Thema Rechtspopulist*innen, -extreme, woher dieser Rechtsruck auf einmal kommt und wie mit ihm umgegangen werden soll. Dabei war es einigen Menschen sehr wichtig, zwischen Rechtspopulist*innen und Rechtsextremen zu unterscheiden. Sie waren der Meinung, dass man mit Rechtspopulist*innen noch diskutieren könne und auch müsste. Obwohl das sehr nobel ist, halte ich es für Blödsinn, mit Menschen zu diskutieren, die weder an einer Diskussion interessiert sind, noch daran, eine gemeinsame Lösung zu finden. Und wahrscheinlich haben das auch schon klügere Menschen als ich gesagt und geschrieben.</p> <p><img alt="" src="https://bullenscheisse.de/2018/reden-mit-rechtspopulist-innen/Rechtsruck.png"/></p> <p>Rechtspopulist*innen verschieben den öffentlichen Diskurs und damit die Grenzen des Sagbaren immer weiter nach rechts. Das darf nicht sein. Aus diesem Grund müssen wir Rechtspopulismus und Rechtspopulist*innen mindestens so hart angehen wie Rechtsextremismus und Rechtsextreme.</p> <p>Hört auf, mit Rechtspopulist*innen zu reden. Hört auf, mit ihnen zu diskutieren. Ihr gebt ihnen und ihren Ansichten dadurch eine Bühne und einen legitimen Anschein. Ihr Anliegen ist nicht legitim und die Bühne nutzen sie eben, um besagte Grenze des Sagbaren zu verschieben. Bernd „Björn“ Höcke, Alice „Trampeltier“ Weidel und Co. wissen sehr genau, wo diese Grenze verläuft. Sie massiv zu überschreiten blieb bisher und viel zu lange ohne Konsequenzen. Wann habt ihr das letzte Mal mit Alexander Gauland darüber diskutiert, dass die deutschen Soldaten im zweiten Weltkrieg nicht unbedingt Leistungen erbracht haben, auf die man stolz sein kann? Wann habt ihr das letzte Mal Höcke davon überzeugt, dass die letzten 1000 Jahre Deutschland nochmal eher so eine mittelgeile Idee sind?</p> <p>Wenn jemand behauptet, dass die Religionsfreiheit nicht für Menschen einer bestimmten Religion gelten soll, dann steht das im krassen Gegensatz zum Grundgesetz und warum genau sollen wir dann nochmal mit diesem Menschen diskutieren? </p> <p>Um sie zu überzeugen? Es ist ihm egal. Damit Dritte mitbekommen, was für eine menschenverachtende Scheiße Höcke, Weidel und Co. von sich geben? Das ist bekannt und Dritten meistens egal. Weil sie sich sonst in ihre Opferrolle begeben? Das schafft die AfD auch ohne Diskussion sehr gut. Nicht mit ihnen zu reden ist mit das Netteste, was wir als Gesellschaft mit ihnen tun können.</p> <p><img alt="" src="https://bullenscheisse.de/2018/reden-mit-rechtspopulist-innen/Kein_Fussbreit.png"/></p> <p>Wie auf Demos gegen Rechts muss auch bei Diskussionen gelten: #keinfussbreit.</p> Tue, 18 Sep 2018 13:03:00 GMT tag:bullenscheisse.de,2018-09-18:/2018/reden-mit-rechtspopulist-innen Von Schiefertafel und Meißel https://bullenscheisse.de/2018/von-schiefertafel-und-meissel/ <p><img alt="" src="https://bullenscheisse.de/2018/von-schiefertafel-und-meissel/Schiefertafel_Meissel.png"/></p> <p>Vor einigen Jahren hatte ich mal diesen Traum: Es gibt da so ein Gerät, quasi ein digitales Notizbuch. Ich könnte da einfach so meine Gedanken mit der Hand schreiben und hätte sie hinterher in digitaler Form.</p> <p>Irgendwann erschien dann das <a href="https://de.wikipedia.org/wiki/IPad">iPad Pro</a> mit dem <a href="https://de.wikipedia.org/wiki/Apple_Pencil">Apple Pencil</a> und ich war echt beeindruckt. Natürlich ging ich damals zum nächsten Apple-Store und probierte diese Kombination aus.</p> <p>Ich kann mich noch relativ gut daran erinnern, dass mich die glatte Oberfläche abschreckte. Meine Erwartungshaltung war vielleicht ein bisschen hoch, aber ich hatte gehofft, dass sich Pencil und iPad wie Zettel und Stift anfühlen</p> <p>Nur: Es war zu glatt. Der Stift glitt auf dem Tablet — mir fehlte das Kratzen eines Stiftes auf Papier. Ausserdem sah meine Handschrift auf dem iPad so fürchterlich aus. Die sah doch noch nie so grauenhaft aus! Das muss mit diesem Stift zusammenhängen! Die Ursache ist bestimmt, dass ich mit dem Stift auf diesem glatten Display so rutsche. Und ich muss so klein schreiben, das macht es auch nicht besser. Resigniert verließ ich den Laden und das Thema war erstmal Geschichte. Vor ein paar Monaten sah ich, dass ein damaliger Arbeitskollege iPad+Pencil nutzte, um sich Notizen zu machen und das Thema war dann auf einmal doch wieder aktuell.</p> <p>Vor einigen Tagen kaufte ich mir dann ebenfalls von jedem eins und ich war schon von der Einrichtung total beeindruckt und begeistert. Ich kann einfach mein iPhone neben das Tablet legen und es wurde eingerichtet. So fühlt sich wahrscheinlich Magie an. Und dann der Stift! Meine ersten Triche machte ich noch in der Notizen-App und wenn ich nur groß genug schreibe, dann kann ich mich auch mit dem Ergebnis anfreunden. In der Schule sah das auch nie besser aus, aber ich habe mir auch nie wirklich viel — also eigentlich gar keine — Mühe gegeben. Ich war auf jeden Fall angefixt.</p> <p>Wenig später lud ich mir dann <a href="https://www.goodnotes.com">Good Notes</a> herunter, weil ich von dieser App schon einige positive Sachen gehört habe. Hört das mit dieser Begeisterung eigentlich irgendwann wieder auf? Das Schöne an Good Notes ist, dass es da so ein kleines Fenster gibt, in dem ich relativ groß und somit relativ lesbar schreiben kann, während der Text dann automatisch verkleinert wird. Da hat sich jemand Gedanken gemacht. In wieweit das aber Auswirkungen auf meine Schriftgröße auf Papier hat, kann ich noch nicht sagen. Das wird hoffentlich die Zeit zeigen, wahrscheinlich schreibe ich ab sofort nur noch so groß wie auf dem iPad und wundere mich dann, warum das analoge Notizbuch meine Notizen nicht verkleinert.</p> <p>Ein wenig fühlt sich das wie Schreiben lernen an. Dadurch, dass der Pencil auf dem Display klackert, habe ich manchmal den Eindruck, ich würde diese Buchstaben in eine Steintafel hämmern. Gleichzeitig fällt mir auf, dass ich sehr viel Schreibschrift schreibe, so wie ich es in der Grundschule gelernt habe. Es fühlt sich so an, als würde ich eine lange Linie malen. Interessant, dass so eine hochmoderne Schiefertafel Erinnerungen an meine Schulzeit, die doch schon etwas zurückliegt, und an die Steinzeit, die noch etwas länger zurückliegt, weckt. Mir fällt auf jedem Fall auf, dass ich umso mehr schmiere, je schneller ich schreibe. Aber keine Sorge, das passiert auch, wenn ich mit einem echten Stift mit echter Tinte auf echtem Papier schreibe.</p> <p>Das iPad hat jedoch nicht nur den Stift, um Eingaben entgegenzunehmen, sondern wie die meisten iOS-Geräte auch eine Bildschirmtastatur. Bisher stand ich mit der immer ein bisschen auf Kriegsfuss, weil ich von einer Tastatur haptisches Feedback und eine sauberere Trennung der Tasten gewohnt bin — ich bin ein großer Fan mechanischer Tastaturen. Selbst auf der kleineren Version der Tastatur auf meinem iPhone vertippe ich mich wesentlich häufiger, als mir lieb ist. Das dürfte auf dem iPad nicht anders sein. Ich möchte mit dem iPad aber auch nicht mein geliebtes MacBook mit seiner Tastatur ersetzen, mein Plan ist viel mehr, ihm mit seinen ganz eigenen Stärken eine Chance zugeben, seinen Platz zu finden, sei es als digitales Notizbuch oder als Malblock. Ich bin zwar kacke im Malen, aber es ist ja noch kein <a href="https://www.unmus.de">Marco</a> vom Himmel gefallen. An Marco und seine <a href="https://www.unmus.de/pinseldisko/">liebevollen Illustrationen</a> musste ich übrigens auch denken, als ich mir das iPad gekauft habe. Es ist allerdings nicht mein erstes iPad.</p> <p>Als vor einigen Jahren das <a href="https://en.wikipedia.org/wiki/IPad_2">iPad 2</a> erschien, kaufte ich Fuchs mir das <a href="https://en.wikipedia.org/wiki/IPad_(1st_generation)">iPad 1</a>. Damals war ich noch in der Ausbildung und wollte es schon einmal einfach probieren. Wir wurden aber nicht richtig warm miteinander, es verwandelte sich in eine sehr teure Fernsehzeitschrift und irgendwann gingen wir getrennte Wege. Dieses Mal dürfte aber alles anders werden — wieder einmal: Ich habe keinen Fernsehanschluss mehr.</p> <p>Wie ich dennoch verhindere, dass Pencil+iPad ihre Faszination verlieren und doch einfach nur ungenutzt in der Gegend rumliegen werden, das kann ich noch nicht sagen. Wahrscheinlich ist da auch noch ein bisschen regelmässige Liebe in Form von Benutzung meinerseits dabei. Da ist es ja fast eine Fügung des Schicksals, dass mir die beginnende Barcamp-Saison da gewissermaßen unter die Arme greifen kann: Endlich kann ich auch mal eine Session zum Thema Sketchnotes besuchen. Also vorausgesetzt, dass die noch jemand anbietet.</p> <p>Alles in allem freue ich mich darauf zu sehen, wie diese moderne Schiefertafel nebst Meißel ihren Platz suchen wird. Ob die beiden den Traum erfüllen können, ein analoges Notizbuch zu ersetzen, wird hoffentlich die Zeit zeigen.</p> <p>Zumindest hat es für einen mehrseitigen Blogpost gereicht.</p> Sun, 16 Sep 2018 17:53:00 GMT tag:bullenscheisse.de,2018-09-16:/2018/von-schiefertafel-und-meissel Kundenbetreuer https://bullenscheisse.de/2018/kundenbetreuer/ <p>Ich wollte mehr bloggen und nicht immer so große und aufwendige Sachen schreiben. Als ob das, was ich bisher gebloggt habe, groß und aufwendig wäre.</p> <p>Bei Marco rufen regelmässig Call Center an. Wenn sie ihn zu sehr nerven, <a href="https://www.unmus.de/ressourcenverschwendung-im-call-center/">blacklistet er ihre Telefonnummern</a>. Daran musste ich heute denken:</p> <p>Vor geraumer Zeit habe ich meinen Mobilfunkvertrag gekündigt, weil die zwei Jahre Mindestvertragslaufzeit bald rum sind, ich die Kündigungsfrist nicht verpennen und so in ein weiteres Jahr Mobilfunkvertrag schlittern wollte. Damals sagte ich dem Menschen an der Hotline, dass ich mich melden würde, falls ich doch noch an einer Vertragsverlängerung interessiert sei. Das, was ich damals gesagt habe, war: Lasst mich bitte mit euren Werbeanrufen in Frieden, ich melde mich dann schon, wenn ich Interesse daran habe.</p> <p>Heute rief dann jemand von meinem Mobilfunkanbieter an. Ob ich meine Nummer nicht behalten wollen würde. Ich brauche immer eine gewisse Zeit, bis ich meine jeweils aktuelle Handynummer auswendig kann, von daher wäre es tatsächlich keine schlechte Idee, die Nummer mitzunehmen. Nichtsdestotrotz roch es förmlich danach, dass das einer dieser Werbeanrufe war. Darauf sprach ich Herrn R. von meinem Mobilfunkanbieter — so hatte er sich jedenfalls vorgestellt — dann auch direkt an. Er gab es dann auch unumwunden zu und meinte, dass diese Rufnummermitnahme tatsächlich nur eine höfliche Einleitung gewesen wäre. Es war also schon ein holpriger Start in das Gespräch.</p> <p>Dann wollte Herr R. mir Angebote machen, die ich nicht hören wollte, deshalb schlug ich ihm vor, ob es nicht besser wäre, was mein Mobilfunkanbieter mir bieten müsste, um zu bleiben:</p> <ul> <li>eine echte LTE-Flatrate. Ungedrosselt.</li> <li>monatlich kündbar</li> <li>so Sachen wie SMS-Flat und Telefon-Flat in alle Netze finde ich mittlerweile einfach selbstverständlich und auch nicht der Rede wert</li> <li>dafür will ich höchstens 50 Euro zahlen.</li> </ul> <p>Dann fingen wir an zu diskutieren: Mein Mobilfunkanbieter hätte keine ungedrosselte Flatrate im Angebot, sagte Herr R. Blödsinn, sagte ich, mittlerweile haben das alle großen Mobilfunkanbieter in Deutschland. Das sei ihm neu, sagte Herr R. Ich werde hier jetzt eh nichts am Telefon kaufen, sagte ich. Er könne mich auch morgen nochmal anrufen, sagte Herr R. von meinem Mobilfunkanbieter.</p> <p>Zwischendrin legte er jedes meiner Worte auf die Goldwaage. Was ich denn mit ungedrosselt meinte. Geschwindigkeit? Volumen? Was ist an ungedrosselt so schwer zu verstehen? Das Gespräch schaukelte sich hoch, ich fühlte mich nicht ernst genommen und wollte auch am nächsten Tag nicht nochmal von ihm angerufen werden. Wir verabschiedeten kalt, aber höflich und legten auf.</p> <p>Ich kam mir dann schlicht und ergreifend verscheissert vor: Zum einen bitte ich darum, dass ich nicht werbeangerufen werde und dann werde ich unter einem schlechten Vorwand doch werbeangerufen. Dann kommt dazu, dass das Gespräch alles andere als angenehm war — da muss ich mich zur Hälfte aber auch an die eigene Nase fassen. Klar kann Herr R. nicht unbedingt was dafür, dass seine Kolleg*innen das damals nicht ins System eingetragen haben, er konnte es laut eigener Aussage aber auch nicht. Und wahrscheinlich muss er irgendeine Quote erfüllen und hat in dem Gespräch mit mir wertvolle Zeit verloren.</p> <p>Morgen kann Herr R. mich nicht mehr anrufen. Seine Nummer steht als einzige bisher auf meiner Blacklist.</p> Thu, 30 Aug 2018 17:11:00 GMT tag:bullenscheisse.de,2018-08-30:/2018/kundenbetreuer Angela Merkel ist Hitlers Tochter https://bullenscheisse.de/2018/angela-merkel-ist-hitlers-tochter/ <p>Im September 2001 zogen wir nach Franken. Am 11. September 2001 passierte 9/11. Zufall? Ein paar Jahre später besuchten wir mit Tante, Cousins, Cousinen und Freund*innen das <a href="https://de.wikipedia.org/wiki/Bardentreffen">Bardentreffen in Nürnberg</a>. Die Fahrt mit dem Zug dauerte eine halbe Stunde, wir diskutieren über alles Mögliche. Smartphones gab es damals noch nicht, MP3-Player waren unbezahlbar und das Internet war damals noch wirklich Neuland und in weiter Ferne.</p> <p>Die Nachbar*innen meiner Tante waren zu der Zeit Zeugen Jehovas, beim universellen Leben oder einer vergleichbaren Vereinigung und somit ein interessantes Thema zum Lästern. Irgendwer fragte irgendwann, was die denn so wollen. Das ist doch ganz klar, sagte ich, die wollen die Weltherrschaft. Danach tat ich wichtig, unnahbar und schaute aus dem Fenster. Was man halt so macht als Kind, das sich — und anderen — etwas erklärt hat und keine Rückfragen zulassen will.</p> <p>Am Donnerstag fuhr ich wieder mit der Bahn, dieses Mal eine etwas längere Strecke. Am Bahnhof kaufte ich mir für die Fahrt „<a href="https://www.hanser-literaturverlage.de/buch/angela-merkel-ist-hitlers-tochter-im-land-der-verschwoerungstheorien/978-3-446-26028-3/">Angela Merkel ist Hitlers Tochter</a>“ von <a href="https://twitter.com/caltf4">Christian Alt</a> und <a href="https://twitter.com/Wurzelbier">Christian Schiffer</a>.</p> <p>Christian und Christian — ich verwechsle die beiden immer — haben ein Buch über Verschwörungsmythen, -theorien und -praktiker*innen geschrieben. Sie erklären, wie und warum sie funktionieren, nehmen einige Mythen auseinander und besuchen den Vater einer Freundin, der gerade seinen Zeh in den Kaninchenbau gesteckt hat. Sie entwerfen eine eigene Verschwörungstheorie, kaufen sich eine Facebookgruppe und bringen die beiden zusammen — Spoiler: Don't try this at home. Sie reden mit <a href="https://de.wikipedia.org/wiki/Richard_Gutjahr">Richard Gutjahr</a> über die Shirtstorms, <a href="https://www.youtube.com/watch?v=MXc02u_e5bE">die seine Familie und er abbekamen</a>, und sie geben sich zwei Drittel eines Vortrags von <a href="https://de.wikipedia.org/wiki/David_Icke">David Icke</a>, bevor sie das letzte, wirklich grandiose Kapitel („Lasst uns eine Wissenspyramide bauen“) schreiben.</p> <p>Das Buch ist größtenteils komisch und lustig, manchmal ernst. Zwischendrin ging mir der pubertäre, rotzige, „Bullshit!“-lastige Schreibstil auf die Nerven. Sie selbst sagen, dass sie das Buch für die schweigende Mehrheit geschrieben haben. „Eine Mehrheit, die keine Lust mehr hat, über unbewiesene Fakten zu streiten“ (S.13). Dabei machen sie sich immer wieder über Verschwörungstheorien und ihre Praktiker*innen lustig, sie übertreiben und verdrehen dabei die Augen. </p> <p>Mehr als einmal hatte ich den Eindruck, dass sich die beiden mit dem Buch einen Spaß erlauben: Bisweilen untermauern sie ihre Erkenntnisse mit Beispielen, dass mir <a href="https://de.wikipedia.org/wiki/Axel_Stoll">Dr. (!) Axel Stoll</a> himself auf der Schulter saß und mir sein berühmt-berüchtigtes „Muss man wissen!“ ins Ohr flüsterte. Gefühlt hoppelt man mit Christian und Christian immer tiefer in den Kaninchenbau hinein. Nichtsdestotrotz finden sich immer wieder auch scheinbar banale, aber wichtige Erkenntnisse:</p> <ul> <li>Verschwörungstheoretiker*innen sind allem gegenüber skeptisch, nur nicht ihrer eigenen Theorie gegenüber.</li> <li>„Hinter jedem Verschwörungstheoretiker steckt ein Mensch wie du und ich. Mit Hoffnungen, Träumen, Sorgen und Problemen. Dasselbe gilt für die Menschen, über die Verschwörungstheorien existieren. Ja, auch George Soros.“ (S. 269)</li> <li>Reichsbürger*innen Waffen zu geben ist eine schlechte Idee.</li> </ul> <p>Alles in allem ist es ein durchaus unterhaltsames Buch. Als vermeintlich aufgeklärter Mensch kann man bei der Lektüre recht häufig schmunzeln und sich besser fühlen. Weil man selbst ist ja gar nicht so doof, an Verschwörungstheorien zu glauben. Und man wird gelegentlich daran erinnert, an was für einen Bullshit man als Kind — oder die alten Griechen mit ihren Göttern — bisweilen geglaubt hat, weil man es nicht besser wusste, aber auch irgendwie zu bequem war, sich damit auseinander zu setzen und seine Ansichten zu überdenken. Grüße an die Nachbar*innen meiner Tante, ihr wart echt ziemlich nett.</p> <p>Das Buch ist 2018 im Hanser-Verlag erschienen und kostet 18 Euro. Das Register beginnt auf Seite 279, die Quersumme davon ist 18. Ich glaube, ich bin da was ganz großem auf der Spur. Und jetzt kommt's: Das Buch beginnt auf Seite 9. Und was ist die Quersumme von 18? Denkt mal drüber nach.</p> Fri, 24 Aug 2018 16:18:00 GMT tag:bullenscheisse.de,2018-08-24:/2018/angela-merkel-ist-hitlers-tochter preconditionFailure https://bullenscheisse.de/2018/preconditionfailure/ <p>One of my goals for May 2018 was to finally read <a href="https://pragprog.com/book/tpp/the-pragmatic-programmer">The Pragmatic Programmer</a>. I haven't succeeded yet, that's why this year, June was May, Extended Edition and July is June, Extended Edition.</p> <p>A few years ago, a dear friend of mine recommended reading this book to me and I should have listened to him. It is so interesting to read, I've learned a lot of things and I'm barely halfway through. What I like about this book is that it encourages you to think about your work and how you achieve it. It shows you good practices without being arrogant.</p> <p>As I'm reading this book quite intensively, I take a lot of notes. If you're interested to read them, I'd be more than happy to publish them in another blogpost. <a href="https://twitter.com/zeitschlag">Just let me know</a>. At the moment, they're written down in my old-fashioned notebook.</p> <p>In "The Pragmatic Programmer", there are several advices. Number 31 of them is:</p> <blockquote> <p>Design by Contract.</p> </blockquote> <p>One of several things written down in a contract are preconditions. They're basically requirements or conditions, that one party must ensure to be true, before the other party can start to fulfill its part of the contract. It is to be defined in the contract, which party must ensure, that these requirements are met.</p> <p>I am an iOS developer for a living. A few months ago, a former colleague of mine showed me <a href="https://developer.apple.com/documentation/swift/1541112-assert"><code>assert</code></a>, <a href="https://developer.apple.com/documentation/swift/1539616-assertionfailure"><code>assertionFailure</code></a>, <a href="https://developer.apple.com/documentation/swift/1540960-precondition"><code>precondition</code></a> and <a href="https://developer.apple.com/documentation/swift/1539374-preconditionfailure"><code>preconditionFailure</code></a>.</p> <p>The main difference — he explained it to me at least this way — was that <code>assert(false)</code> and <code>assertionFailure</code> let the app crash only in debug-builds, while a <code>preconditionFailure</code> leads to a crash in release-builds as well</p> <p>When I read about preconditions in "The Pragmatic Programmer", I felt like being reminded about this conversation between my coworker and me. So I read Apple's documentation of <a href="https://developer.apple.com/documentation/swift/1539374-preconditionfailure"><code>preconditionFailure</code></a> again. It says:</p> <blockquote> <p>Indicates that a precondition was violated.</p> <p>Use this function to stop the program when control flow can only reach the call if your API was improperly used.</p> </blockquote> <p>Next, I wanted to know, if Swift has some kind of <em>Design by Contract</em> support, but the mighty Internet <a href="https://stackoverflow.com/questions/31817359/design-by-contract-in-swift#31951965">says no</a>:</p> <p><img alt="" src="https://media.giphy.com/media/utmZFnsMhUHqU/giphy.gif"/></p> <p>The meaning of Apple's <code>precondition</code> and <code>preconditionFailure</code> differs slightly from <em>DbC</em>, just like the way they want me to use them: </p> <blockquote> <p>The global functions <code>assert</code>, <code>assertionFailure</code>, <code>precondition</code> and <code>preconditionFailure</code> are designed to be sprinkled liberally throughout code without impacting release build performance. — <a href="https://stackoverflow.com/a/31951965/5626642">Source</a></p> </blockquote> <p>So, yeah, as a conclusion one could say, that <code>precondition</code> the <em>DbC</em>-way seems to be different from <em>swifty</em> <code>precondition</code>.</p> <p>Another thing I'd like to mention is, that I'd like to write more blogposts like this: somehow programming-related, short articles in English. I'm not entirely sure about the format: Should I just use this — German — blog? Should I start another one?</p> Sun, 01 Jul 2018 20:08:00 GMT tag:bullenscheisse.de,2018-07-01:/2018/preconditionfailure #dbhackathon https://bullenscheisse.de/2018/dbhackathon/ <p>Ich wollte schon lange mal an einem Hackathon teilnehmen. Vor ungefähr einem halben Jahr — Mitte Dezember 2017 — fand dann der <a href="https://dbmindbox.com/en/db-opendata-hackathons/hackathons/hackathon-8-db-open-data/">achte #dbhackathon</a> in Berlin statt, veranstaltet von der Deutschen Bahn. Aber was ist das überhaupt, so ein Hackathon? Wikipedia sagt dazu:</p> <blockquote> <p>Ein Hackathon (Wortschöpfung aus „Hack“ und „Marathon“) ist eine kollaborative Software- und Hardwareentwicklungsveranstaltung. Alternative Bezeichnungen sind „Hack Day“, „Hackfest“ und „codefest“. Ziel eines Hackathons ist es, innerhalb der Dauer dieser Veranstaltung gemeinsam nützliche, kreative oder unterhaltsame Softwareprodukte herzustellen. </p> <p>— Quelle: <a href="https://de.wikipedia.org/wiki/Hackathon">Internet</a></p> </blockquote> <p>Ein Hackathon scheint vom Konzept her ein bisschen zu sein wie ein Barcamp: Jemand stellt den Platz, das Internet, Daten, Catering, kalte Getränke — gewissermaßen den Rahmen bereit und lädt ganz viele Leute ein. Diese Menschen füllen den Rahmen dann mit Inhalten: Sie entwickeln in der gegebenen Zeit in Teams oder alleine Dinge und Prototypen, probieren Ideen und lernen dabei.</p> <p>Häufig gibt es ein Überthema — bei meinem ersten Hackathon war das Motto „Open Data“. Die Bahn und einige Partnerunternehmen stellten Schnittstellen und Datensätze zur Verfügung, die man nutzen konnte, aber nicht musste.</p> <h4>Der Rahmen</h4> <p>Der Hackathon startete an einem Freitag um 17:00 Uhr in der <a href="https://dbmindbox.com/de/ueber-uns/">DB Mindbox</a> direkt unter dem <a href="https://de.wikipedia.org/wiki/Bahnhof_Berlin_Jannowitzbrücke#S-Bahnhof">S-Bahnhof Jannowitzbrücke</a>. Jede*r Teilnehmer*in bekam ein Tshirt und nach einigen kurzen Einführungsvorträgen, in denen das Programm vorgestellt und ein Überblick über die mitgebrachten Daten gegeben wurde, startete ab 20:00 die sogenannte <em>Hacknight</em>: Ab dann hatten die Teams bis Samstag Nachmittag Zeit, an ihren Projekten zu arbeiten. Am Samstag um 16:30 Uhr konnten dann die Ergebnisse präsentiert werden.</p> <p>Es gab dabei keinen Zwang, die angebotenen APIs und Datensätze zu nutzen, geschweige denn, am Samstag etwas vorstellen zu müssen. Diesen Nicht-Druck fand ich sehr angenehm. Ich kam ohne Projektidee oder Team zur Mindbox und stöberte dann einfach ein bisschen in dem, was die Bahn zur Verfügung stellte. Als Ziel hatte ich mir lediglich vorgenommen, das Projekt, an dem ich dann schlussendlich arbeiten würde, einigermaßen abzuschließen und am Ende vorzustellen.</p> <h4>Der eigentliche Hackathon</h4> <p>Es zeichnete sich relativ schnell ab, dass es eine App werden würde. Damit verdiene ich meine Brötchen und ich muss mich nicht erst in etwas einarbeiten, bevor ich überhaupt startklar bin. Klar ist einer der Grundgedanken, etwas zu lernen, aber es erschien mir mit meinem Ziel vor Augen einfach pragmatischer.</p> <p>Nachdem ich dann so in den mitgebrachten Daten der Deutschen Bahn stöberte, kam mir ein Gedanke:</p> <blockquote> <p>Gibt es eine einfache, elegante Möglichkeit, mir schnell den Gleisabschnitt für einen bestimmten Wagen ausgeben zu lassen, in dem ich beispielsweise meine Reservierung habe? Quasi einen Wagenreihungsplan in <em>besser</em>?</p> </blockquote> <p>Wenn ich vermeiden wollte, die Waggons im Zug zu durchqueren, ging ich dafür bisher immer zum ausgedruckten Wagenreihungsplan am jeweiligen Gleis. Dort steht dann üblicherweise eine Traube von Menschen, die ebenfalls herausfinden möchten, wo ein bestimmter Wagen hält, weil sie ebenfalls keine Lust haben, sich durch volle Waggons quetschen zu müssen. Warum geht das nicht eleganter? Einfacher? Warum geht das nicht mit dem Smartphone?</p> <p>Ich fand raus, dass der Wagenreihungsplan auch im DB Navigator integriert ist:</p> <p><img alt="Integration vom Wagenreihungsplan in den DB-Navigator" src="https://bullenscheisse.de/img/IMG_156_WRP.png"/></p> <p>Aber das fühlte sich nicht gut an, nicht zuende gedacht, zu kompliziert. So als hätte jemand den analogen, ausgedruckten Wagenreihungsplan genommen und einfach in die App gegossen. Warum interessiert mich, wie der ganze Zug auf dem Gleis hält, wenn ich nur wissen will, dass Wagen 23 in Abschnitt E ist? Das geht doch bestimmt besser.</p> <p>Durch einen glücklichen Zufall hatte die Bahn auch die Daten der Wagenreihungspläne mitgebracht — ich hatte also ein Projekt. Anschliessend formulierte ich ein Ziel und schrieb eine kurze Nachricht im Hackathon-internen Slack-Channel.</p> <p>Dann fing ich an, mich in die Wagenreihungsplandaten zu graben, entwarf eine sehr einfache App und übersah, dass vier Menschen mich im Slackchannel angeschrieben hatten: Sie wären interessiert. Kurze Zeit später setzten wir uns zusammen, ich stellte ihnen die Idee und das, was ich bisher herausgefunden und entworfen hatte. Wir verteilten die Aufgaben und dann ging es um kurz nach 21:00 Uhr wirklich los mit der Hacknight.</p> <p><img alt="Einfache grafische Oberfläche der WRP-App" src="https://bullenscheisse.de/img/IMG_157_WRP.png"/></p> <p>Die vier hatten im Gegensatz zu mir keine Erfahrung in der iOS-Entwicklung, aber sie waren alle motiviert und Informatikstudenten. Zwei bastelten die UI, zwei kümmerten sich um das Datenmodell und einer behielt das große Ganze im Blick. Und so arbeiteten wir und tauschten uns regelmässig aus. Es wurde später und später und immer mehr Menschen gingen nach Hause oder legten sich einfach irgendwo in die Mindbox, um zu schlafen. Ich blieb dran und arbeitete hochmotiviert weiter.</p> <p>Morgens um sechs fielen mir immer wieder die Augen zu. Ich wurde immer müder, aber war immernoch unglaublich motiviert, nur noch nicht zufrieden. Ich wollte mich von dieser Müdigkeit nicht aufhalten lassen, ich arbeitete weiter, merkte aber, wie mir das <a href="https://twitter.com/zeitschlag/status/941924076234444800">Denken immer schwerer fiel</a>.</p> <p>Irgendwann gegen acht Uhr morgens hatte ich dann einen Stand, mit dem ich mit einigermaßen guten Gewissen schlafen konnte. Ich fuhr nach Hause, legte mich ins Bett und schlief ungefähr fünf Stunden.</p> <p>Als ich aufwachte, war ich sehr unausgeschlafen und mürrisch. Ich war unsicher, ob das, was ich bis in die Morgenstunden zusammengebaut habe, gut genug war, um es vorzustellen. Ich tat, was ich in so einer Situation meistens tue: Ich suche Feedback und <a href="https://twitter.com/zeitschlag/status/942014594666631174">twittere</a>. Das Feedback war positiv und sorgte dafür, dass Lebensgeister und Motivation zurückkehrten.</p> <p>Ich sprang unter die Dusche, anschliessend aufs Fahrrad und war um kurz vor zwei wieder in der Mindbox. Einige aus meinem Team waren ebenfalls wieder da und so besprachen wir uns bei Kuchen und Pizza zum Frühstück. Wir fixten noch ein paar Kleinigkeiten, änderten hier noch ein paar Farben und dort noch ein paar Schriftarten. Und dann hatten wir etwas vorzuweisen. Ich entwarf <a href="https://github.com/zeitschlag/dbhackathon8/blob/master/Docs/presentation.pdf">ein paar Folien</a> und meldeten unser Projekt zur Vorstellung an.</p> <p>Nach einem Probedurchlauf der Präsentation, noch mehr Pizza und Kuchen wurden dann die Projekte vorgestellt. Jedes Team hatte zwei Minute Zeit, die Ergebnisse zu präsentieren. </p> <p>Ein Team konnte mithilfe der Mobilfunkdaten <a href="https://github.com/renemeye/internet_timer_ui/">berechnen</a>, wie lange das WLAN im Zug noch funktioniert oder wie lange man noch warten muss, bis man nach dem Tunnel wieder Internet hat. Sie hatten es ausserdem in den frühen Morgenstunden in freier Wildbahn getestet. Ein anderes Team hatte ein <a href="https://github.com/martintaraz/router4">alternatives Routing implementiert</a>, mit dessen Hilfe man beispielsweise im Winter Zugverbindungen finden kann, auf denen man möglichst wenig umstiegen muss.</p> <p>Angespannt stellte ich dann den Wagenreihungsplan vor, inklusive Live-Demo. Die Müdigkeit und der wenige Schlaf forderten ihren Tribut und ich war sehr hart in meiner Wortwahl. Das bekam ich dann auch direkt auf Twitter <a href="https://twitter.com/orless/status/942070564038103040">gespiegelt</a> — vollkommen zu recht. Später <a href="https://twitter.com/zeitschlag/status/942075978066558976">entschuldigte</a> ich mich dafür.</p> <p>Anschliessend kürte die Jury nach einer Beratung dann die Projekte, die gewonnen hatten – der Wagenreihungsplan war einer von ihnen!</p> <p>Jedes Teammitglied eines <em>Winning Project</em> bekam einen Reisegutschein für die Bahn per Post zugesandt. Irgendwann gingen wir alle nach Hause und ich flog nach einer weiteren sehr kurzen Nacht in den Weihnachtsurlaub.</p> <p>Als ich den Reisegutschein vor einigen Tagen einlösen wollte, stellte ich fest, dass man das nur im Reisezentrum machen kann. Ich musste schmunzeln, buchte meine Reise dann halt im Reisezentrum und nahm mir vor, endlich mal über den Hackathon zu bloggen.</p> <p>Vor einigen Wochen machte die Bahn dann im DB-Navigator nochmal prominent auf den integrierten Wagenreihungsplan aufmerksam. Da musste ich dann tatsächlich schmunzeln.</p> <p><img alt="Screenshot vom Hinweis zur Wagenreihung" src="https://bullenscheisse.de/img/IMG_158_Wagenreihung.PNG"/></p> <h4>Fazit</h4> <p>Insgesamt war der Hackathon eine unglaublich interessante Erfahrung. Es hat mich selbst überrascht zu sehen, wie unglaublich konzentriert ich an etwas arbeiten kann, wenn ich entsprechend motiviert bin, bereit, auch über meine Grenzen zu gehen. </p> <p>Unter Zeitdruck eine Lösung — und in diesem Fall auch das dazugehörige Problem — zu finden, war spannend, ebenso wie der Umgang mit Hindernissen, die einfach so auftauchen. Im Idealfall versucht man natürlich vorher, solche Probleme zu vermeiden. Kommen sie trotzdem, macht man sich Gedanken, um eine möglichst gute Lösung zu finden. Beim Hackathon war mir das nicht immer möglich, es musste möglichst schnell eine Lösung her, die das Problem aus dem Weg räumt:</p> <p><em>Normalerweise würdest du einen XML-Parser mit Bordmitteln selbst schreiben? Vergiss es, du hast keine Zeit, nimm ein Framework dafür. Du willst die Daten lieber aus einer Datenbank als aus 20 Megabyte Textdateien lesen? Ja, ist ja schön, aber dafür hast du jetzt keine Zeit.</em></p> <p>Insgesamt war ich dann aber doch ganz zufrieden, zumal ich mein selbstgestecktes Ziel ja erreicht hatte. Das Ergebnis finde ich auf eine gewisse Art und Weise angemessen, auch wenn die Codequalität gefühlt ziemlich schlecht ist (<a href="https://github.com/zeitschlag/dbhackathon8">Github</a>). Und auch wenn der Hackathon spannend war, so war er auch unglaublich anstrengend, und ich kann und möchte nicht jeden Tag so massiv über meine Grenzen gehen. Ausserdem werde ich das nächste Mal vielleicht nicht direkt am nächsten Tag früh morgens verreisen.</p> <p>Trotz allem war es mit Sicherheit nicht mein letzter Hackathon. Dafür ist der Rausch, in dem ich gerarbeitet habe, eine zu starke Droge.</p> <h4>Weitere Links</h4> <ul> <li>Die Bahn hat ein <a href="https://www.youtube.com/watch?v=BehfYZnXH3M">kurzes Video</a> vom Hackathon gedreht</li> <li>Auf der <a href="https://dbmindbox.com/de/db-opendata-hackathons/hackathons/hackathon-8-db-opendata/">Website</a> findet man ausserdem einige Bilder, sowie eine Übersicht aller Projekte</li> <li><a href="https://twitter.com/dbhackathon">@dbhackathon auf Twitter</a></li> </ul> Tue, 22 May 2018 20:27:00 GMT tag:bullenscheisse.de,2018-05-22:/2018/dbhackathon Open Source https://bullenscheisse.de/2018/open-source/ <p>Vor dem Osterurlaub schlich sich ein Gedanke in meinen Kopf. Was würde passieren, wenn ich den Quellcode für das, was ich privat programmiere, einfach veröffentlichen würde? Ich finde das <a href="https://de.wikipedia.org/wiki/Open_Source">Open Source</a>-Prinzip wichtig und vor ein <a href="https://bullenscheisse.de/2014/alte-geraete/">paar Jahren fragte ich</a>: </p> <blockquote> <p>Was würde Apple denn davon halten, die kompletten iOS-Versionen von Geräten, die softwareseitig nicht mehr unterstützt werden, unter eine freie Lizenz zu stellen? Dass es zumindest die Chance gibt, dass sich Softwareentwickler_innen alter Geräte, die noch funktionieren, annehmen können? Mit Updates versorgen?</p> </blockquote> <p>Warum habe ich selbst meinen eigenen Quellcode eigentlich nicht veröffentlicht? Gute Frage. Ich fragte mich selbst.</p> <p>Zuerst machten sich da dann Angst breit. What could possibly go wrong? Was würden die Menschen denken? Von mir? Meine Code? Würde ich jemals wieder einen Job bekommen, wenn die Leute sehen, was für eine Grütze ich schreibe?</p> <p>Ich beschäftigte mich mit der Angst und freundete mich mit ihr an. Kurz darauf verschwand sie, wie so oft, wenn man sich mit seiner Angst beschäftigt. Ich fragte auf <a href="https://chaos.social/@zeitschlag/99746433600656775">Mastodon</a> nach Erfahrungen und war irgendwann bereit, mein Zeug ins Netz zu stellen. Im Optimalfall würde ich etwas lernen, weil mich jemand auf einen Fehler hinweist. Im schlechtesten Fall würde nichts passieren. Total öde.</p> <p>Den Anfang machte Anfang April dieser Blog — sein Quellcode liegt jetzt unter anderem auf <a href="https://github.com/zeitschlag/blog">GitHub</a>. Weil ich eine <a href="https://github.com/zeitschlag/blog/blob/master/README.md">README-Datei</a> wollte, merkte ich, in welchem Zustand der Blog war und so räumte ich erstmal ein bisschen auf, lernte nebenbei etwas über Lizenzen, die Blogsoftware und dass ich sie lange <em>komisch</em> genutzt hatte. Zum Schluss hatte ich ein besseres Gefühl und eine ordentliche README. Alles in allem war das ein guter Start.</p> <p>Als Nächstes folgte dann der Quelltext für den <a href="https://bullenscheisse.de/einkaufszettl/">Einkaufszettl</a>, ebenfalls auf <a href="https://github.com/zeitschlag/einkaufszettl">GitHub</a>. Seitdem ist er auch im App Store <a href="https://itunes.apple.com/de/app/einkaufszettl/id1016435355?l=de&amp;ls=1&amp;mt=8">kostenlos</a>, vorher hat er mal einen, mal zwei Euro gekostet. Ich möchte aber nicht, dass jemand, der die App nicht selbst bauen kann, benachteiligt wird. Sind wir mal ehrlich: Bei dieser App wird das kaum jemanden kümmern, aber es geht mir ums Prinzip.</p> <p>Vor Jahren hatte ich mal <a href="https://bullenscheisse.de/2017/der-einkaufszettl-2015-und-2016/">ein Ziel</a>:</p> <blockquote> <p>Die $99, die mich das Apple Developer Program gekostet hatte, sollte der Einkaufszettl wieder einspielen.</p> </blockquote> <p>Das hat seitdem nie auch nur ansatzweise geklappt, aber das war in Ordnung. Auch für den Einkaufszettl habe ich ein bisschen aufgeräumt, seitdem aber keine Zeit und Liebe mehr in das Projekt gesteckt. Das möchte und werde ich in den nächsten Tagen ändern.</p> <p>Eventuell sollten wir beim <a href="https://codes.uber.space">Codestammtisch</a> mal über <em>Side Projects</em> reden.</p> <p>Ein anderes Projekt, dessen Quelltext ich veröffentlichen wollte, wenn es in einem entsprechend fertigen Zustand ist, ist <a href="https://gitlab.com/zeitschlag/ipretix">iPRETIX</a> — eine Art <a href="https://github.com/pretix/pretixdroid">pretixdroid</a> für iOS. Ich hatte Anfang des Jahres angefangen, das damals in einem privaten git-Repo — deshalb noch GitLab — zu bauen. Nun habe ich es konsequenterweise und in einem unfertigen Zustand auch direkt veröffentlicht. Auch iPRETIX möchte ich in den nächsten Tagen vorantreiben.</p> <p>Vielleicht sollte ich verbloggen, auf welche Hindernisse ich in den nächsten Tagen bei der Entwicklung vom Einkaufszettl und von iPRETIX stoße und wie ich damit umgehe. Würde das jemand lesen wollen?</p> Sun, 13 May 2018 21:06:00 GMT tag:bullenscheisse.de,2018-05-13:/2018/open-source Es geht weiter https://bullenscheisse.de/2018/es-geht-weiter/ <p>Letzte Woche habe ich also zum ersten Mal in meinem Leben einen Arbeitsvertrag gekündigt — so richtig schriftlich und ordentlich. Wie so ein Erwachsener. Und fast fristgerecht. Wie so ein Profianfänger.</p> <p>Es fühlte sich ein bisschen so an, als hätte ich Schluss gemacht. Eine Beziehung beendet. Und ich war selbst etwas überrascht, dass es mir mehr zusetzte als gedacht. Der Arbeitsplatz war der Grund, warum ich vor zweieinhalb Jahren von Heidelberg nach Berlin gezogen bin. Diese zweieinhalb Jahre waren interessant, lehrreich, schön und bisweilen auch anstrengend. Es war der erste Job nach dem Studium und ich werde wohl noch geraume Zeit dankbar dafür sein, dass ich die Firma mir diese Chance gegeben hat.</p> <p>Der Arbeitsplatz war nicht schlecht — ganz im Gegenteil. Vielleicht ist auch das ein Grund, warum mir die Entscheidung nicht leicht fiel. Seit geraumer Zeit habe ich allerdings gemerkt, dass ich immer unzufriedener werde. Dass ich sehr bequem wurde. Dass ich noch andere Firmen, Umgebungen, Dinge, Menschen kennenlernen, Erfahrungen sammeln und wachsen möchte.</p> <p>Letzte Woche habe ich eine Entscheidung getroffen — ob es eine gute war, wird sich zeigen. Sie wurde von viel Auf und Ab, viel Dafür und Dagegen, vielen Zweifeln und Angst und noch mehr „Was wäre, wenn“ begleitet. Jetzt ich blicke nach vorne. Auf jeden Fall ist sie jetzt da. Jetzt geht es weiter — es geht immer weiter.</p> Mon, 07 May 2018 21:55:00 GMT tag:bullenscheisse.de,2018-05-07:/2018/es-geht-weiter Dear recruiter https://bullenscheisse.de/2018/dear-recruiter/ <p>Earlier this day I wrote a <a href="https://twitter.com/zeitschlag/status/983991433840480258">thread on twitter</a>. I wanted this thread to be on my blog in an extended version. So here we go:</p> <p>A recruiter sent me a message on Stack Overflow today: He was looking for a Senior iOS Developer/iOS magician for a Berlin-based health startup promising the usual promises (Startup mentality, flexible working hours, a budget for conferences and hardware, cutting edge, international team, a decent salary...) He stumbled upon <a href="https://stackoverflow.com/users/5626642/nathan-mattes">my profile</a> and thought it to fit perfectly for that position. Although I told him that I’m not interested, he has made me think about some things.</p> <p>I’m neither a Senior iOS developer nor an iOS magician/ninja/rock star... I’ve been writing Enterprise iOS Apps as an employee for nearly two and a half years now and I consider myself to be a mediocre — sometimes really bad — iOS developer.</p> <p>I don’t like working after hours. “startup mentality” and “flexible working” sound to me like “lots of after hours”. I often feel ashamed of code, I wrote in the past and some hacks I wrote yesterday. I think that's a good sign: I got better since then. I don’t like “cutting edge-technology” as in my experience, the cutting edge moves pretty quickly.</p> <p>I want to write robust, well designed, accessible, maintainable, high-quality software. I’m failing too often to do so. A year, a month or a week ago, I failed more often, so I’m fine with that. Sometimes I wonder: Why the heck does my employer pay me 1742€ per month for the shitty work I’m doing?</p> <p>Oh, I think it’s important to share how much you earn. I make 1742€ per month for 30 hours per week after taxes and stuff. I’m unionized as I consider solidarity very important. I love to learn and to gain knowledge and share it with other people. Attending one conference a year isn’t enough to learn. A — formerly — secret dream of mine is attending <a href="https://en.wikipedia.org/wiki/Apple_Worldwide_Developers_Conference">Apple’s annual WWDC</a>.</p> <p>I want to improve and learn new things every single day and I want my employer to pay me for that. I’m white, young, and male and I want to use my privileges to make the world a better place for everyone. I want to work in a diverse team. I dislike hierarchies and plan offices and I value honest, constructive feedback. Oh, and communication on eye level. </p> <p>As I wrote earlier: I see myself as a mediocre developer, but I want to change that and develop myself both on a professional and personal level. This needs more time, more energy and more failing and will lead to a lot more frustration, I guess.</p> <p>My dream is to work in a diverse, inclusive environment. My dream is to work on an app I use myself on a daily basis. <a href="https://www.flightradar24.com">Flightradar24</a>, for instance, is one of those apps. But I’m too shy to apply for a job there. My dream is getting paid for developing open source software, learning and sharing my knowledge. My dream is getting paid enough to put enough money aside. You know, for when my washing machine and my glasses break at the same time and need to be replaced. Oh, and attending the aforementioned WWDC.</p> <p>At the moment I see my job as a tool that pays the bills and enables me to do more interesting things than developing Enterprise Apps in my spare time. I’d like to change that one day.</p> Wed, 11 Apr 2018 19:26:00 GMT tag:bullenscheisse.de,2018-04-11:/2018/dear-recruiter A ten year old machine https://bullenscheisse.de/2018/a-ten-year-old-machine/ <p>Over a year ago, a good friend of mine gave me his old <a href="https://en.wikipedia.org/wiki/MacBook#Unibody_aluminum_model">Late 2008 13-inch MacBook</a>. It is one of these beautiful unibody aluminum machines, that look like the later 13-inch MacBook Pros. I have considered it too nice to throw it away, so I bought an SSD and upgraded the memory. This is still possible on these old MacBooks. Another necessity was to buy a new MagSafe Power Adapter. Then I was ready to go. It is pretty amazing that a nearly ten year old computer still works.</p> <p>Some things prevented me from using this computer on a more regular basis. That is, for instance, the version of OS X — it is not even macOS — that is officially supported on this machine. Although the Late 2008 MacBook runs OS X 10.11 “El Capitan”, which still receives updates from time to time, the newest release of Xcode needs at least macOS 10.13.2 “High Sierra”. And as an hobbyist iOS developer — it doesn’t pay any bills, for that reason I’m also employed as an iOS developer — I would like to have a machine capable of running a recent version of Xcode.</p> <p>Other reasons are the weight and the size, as I nearly always carry my personal computer with me. Compared to a 13-inch MacBook Air (1.35kg, up to 1.7cm), it feels pretty heavy with its weight of 2.0kg and its thickness of 2.41cm. It also lacks a backlit keyboard, has a worse built-in iSight camera, no card-reader, an old battery, <a href="https://support.apple.com/kb/SP500?viewlocale=en_US&amp;locale=en_US">and so on</a>.</p> <p>Nevertheless, Alex Repty <a href="https://twitter.com/arepty/status/921373010812162048">wrote nearly an entire game</a> on an aluminum MacBook in 2015 — it’s called <a href="http://www.cosmos-game.com">Cosmos</a> and I totally suck at it — and last year, Low End Mac published an “<a href="http://lowendmac.com/2017/ode-to-the-unibody-macbook/">Ode to the Unibody MacBook</a>”. So I guess, it’s still a good machine. </p> <p>Back in 2013 I bought a <a href="https://en.wikipedia.org/wiki/IPhone_(1st_generation)">1st generation iPhone</a> and used it for two weeks. It was an interesting experience, I even wrote a couple of blogposts (<a href="https://web.archive.org/web/20150421223813/http://blog.bullenscheisse.de:80/die-vorgeschichte">1</a>, <a href="https://web.archive.org/web/20150422143116/http://blog.bullenscheisse.de:80/die-vorbereitung/">2</a>, <a href="https://web.archive.org/web/20150423110827/http://blog.bullenscheisse.de:80/die-kandidaten/">3</a>, <a href="https://web.archive.org/web/20150422143111/http://blog.bullenscheisse.de:80/apps-apps-apps/">4</a>, <a href="https://web.archive.org/web/20130321003120/http://blog.bullenscheisse.de:80/das-iphone-experiment-wie-spotify-noch-unter-ios-3-1-3-lauft/">4.5</a>, <a href="https://web.archive.org/web/20150423111533/http://blog.bullenscheisse.de:80/das-iphone-experiment-halbzeit/">5</a>, <a href="https://web.archive.org/web/20150423104525/http://blog.bullenscheisse.de:80/das-iphone-experiment-fazit/">6</a>). Due to the fact that I limited myself I had to find new ways to do certain things: You want to listen to your music on Spotify? Okay, but you can’t do anything else then. You want to take pictures? Well, take this 2MP camera.</p> <p>Although everything worked out pretty well, it was a time consuming experience: The “widescreen iPod with touch controls”, the “revolutionary mobile phone” and the “breakthrough Internet communicator” felt quite slow in 2013.</p> <p>Now I want to repeat this with a ten year old computer: I want it to be my main machine for the next three weeks. </p> <p>To do so, I wanted to get rid of as many obstacles as I could. I couldn’t change neither weight nor size. Luckily, a friend pointed me to a tutorial on <a href="http://dosdude1.com/highsierra/">how to install macOS 10.13 “High Sierra” on an unsupported Mac</a>, so I could at least fix that. I installed “High Sierra” yesterday and everything went surprisingly well. Now my Late 2008 Aluminum MacBook, that doesn’t run High Sierra, runs High Sierra:</p> <p><img alt="Screenshot of Specs" src="https://bullenscheisse.de/img/IMG_155_Screenshot_Specs.png"/></p> <p>I use my computer for developing software (mostly apps for iOS), writing blogposts (like this one), recording a <a href="http://codestammtis.ch">podcast</a>, listening to music, writing tweets — as long as I can use a <a href="http://apps-of-a-feather.com">third-party twitter client</a> — and other kinds of communication. I don’t plan to build a whole video game,it so I can’t really say, what will be different — probably not a lot. I’m going to need more time for certain things, I guess, but that’s okay. </p> <p>I’m looking forward to the next couple of weeks and the experience of using a ten year old machine. Will it be frustrating? Will there be pain points? How many times will I have to switch back to the younger computer? Let’s see.</p> Mon, 09 Apr 2018 19:35:00 GMT tag:bullenscheisse.de,2018-04-09:/2018/a-ten-year-old-machine Internatsschüler unter sich https://bullenscheisse.de/2018/internatsschueler-unter-sich/ <p>Marco betreibt ein kleines, feines Medienimperium. Neben <a href="https://www.unmus.de">unmus</a> — seinem Blog für längere Texte — schreibt er kürzere für die <a href="https://www.unmus.de/zimtwolke/">Zimtwolke</a>, lässt seine <a href="https://www.unmus.de/pinseldisko/">Pinsel tanzen</a> und fotografiert <a href="https://www.unmus.de/raketenstaub/">Raketenstaub</a>. Und er führt Gespräche mit Menschen, nimmt sie auf und stellt sie als <a href="https://www.unmus.de/zirkusliebe/">Zirkusliebe</a> ins Netz — neudeutsch: Podcast.</p> <p>Anfang des Jahres hatte ich die Ehre, <a href="https://www.unmus.de/zirkus012-internatsschueler-unter-sich/">einer dieser Menschen zu sein</a>. Wir spielen uns die Bälle zu und unterhalten uns über alles Mögliche:</p> <blockquote> <p>Wer sind die Iron Blogger? Wie ist das Leben in einem Internat? Sind da auch Jungen und Mädchen brav voneinander getrennt? Wie ist die Arbeit in einem Großkonzern? Muss man bei einem StartUp wirklich schuften ohne Ende? Die Welt verbessern oder doch lieber alles anzünden? Wer sind die Könige der Welt? Wo fängt der Kapitalismus an? Was ist der Sinn einer Aktiengesellschaft? Wer ist der reichste Mensch der ganzen Welt? Wem darf jetzt nicht die Luft ausgehen? Wie steht es um die Kommentarkultur in der Blogosphäre? Was verdienen Nathan und Marco mit ihren Blogs? Wer mag nicht aufstehen, wenn er auf der Coach liegt? Welches iPhone wackelt? Was zahlt Marco zur Not auch in Bar? Wer muss n'bissl vordenken? Gehört das Design zum Leseerlebnis? Wer hat eine Abmahnung von der AFD erhalten? Was geht nicht mehr von alleine weg?</p> </blockquote> <iframe width="100%" height="290" src="https://www.unmus.de/wp-content/plugins/podlove-podcasting-plugin-for-wordpress/lib/modules/podlove_web_player/player_v4/dist/share.html?episode=https://www.unmus.de/?podlove_player4=89" frameborder="0" scrolling="no"></iframe> <p>Lieber Marco, vielen Dank für die Einladung und das Gespräch.</p> Mon, 02 Apr 2018 12:57:00 GMT tag:bullenscheisse.de,2018-04-02:/2018/internatsschueler-unter-sich Von A nach https://bullenscheisse.de/2018/von-a-nach/ <p>Vor einigen Jahren fragte ich mich, wie ich in einigen Jahren leben möchte. Wo ich mich sehe. Es ist vergleichbar mit der Frage, wo ich mich in einem Jahr beruflich sehe, die in jedem meiner Personalgespräche eine Rolle spielte. Eine Frage, auf die ich nie eine Antwort habe. Ich mag das Gefühl, unterwegs zu sein. Zu reisen. Dabei andere Perspektiven zu sehen. Zu lernen, wie Probleme auf andere Art gelöst werden und darüber zu schmunzeln. Aus dem Fenster eines Zuges, eines Buses, eines Flugzeuges zu blicken. Auf dem Weg zu sein, von A nach... ja, nach wo eigentlich? </p> <p>Vor einigen Jahren erwuchs der Wunsch, dass ich mehr reisen möchte. In letzter Zeit geistert mir der Gedanke im Kopf, dass ich auf der Reise zum Reisen auf einem guten Weg bin. Ich reise gerne und bin dank Teilzeit an ziemlich vielen Wochenenden unterwegs — am liebsten und meistens mit leichtem Gepäck.</p> <p>Gestern lief ich. Vom Ferienhaus zum Meer. Der Gedanke schlich sich in meinen Kopf und begleitete mich auf dem Weg zurück. In den letzten Jahren kam ich im Rahmen meiner Möglichkeiten ganz gut rum. Habe ein paar neue Länder, Regionen und Städte gesehen. Und doch nur einen Bruchteil: Irland, England, Österreich, Ungarn, die Schweiz, Dänemark, Griechenland, die Vereinigen Staaten von Amerika, Sachsen, das Ruhrgebiet, Köln, Hamburg, Stettin, Dresden, Köln.</p> <p>Ich habe viel Zeit im Zug verbracht. Gemerkt, dass zehn Stunden Zug am Stück und vierzehn Stunden am Tag viel sind. Festgestellt, dass ein achtstündiger Flug, obwohl ich sehr, sehr gerne fliege, irgendwann einfach langweilig wird. Und trotzdem möchte ich die Reise fortsetzen. Mehr alleine reisen, länger reisen, weitere Strecken zurücklegen.</p> <p><img alt="" src="https://bullenscheisse.de/img/IMG_133_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_134_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_135_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_136_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_137_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_138_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_139_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_154_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_140_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_141_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_142_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_143_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_145_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_153_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_144_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_146_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_147_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_148_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_149_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_150_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_151_instagram.jpg"/> <img alt="" src="https://bullenscheisse.de/img/IMG_152_instagram.jpg"/></p> <p>Marco hat neulich übrigens seine <a href="https://www.unmus.de/instagram-on-unmus/">Fotos nach Hause geholt</a> und mich dadurch auf die Idee gebracht, wie ich diese Gedanken bebildere. Instagram ist für mich eine Art privates Fotoalbum, in dem ich ein oder zwei Fotos jeder Reise einklebe. Ich habe den jetzigen Urlaub genutzt, um die Reisebilder mal herunterzuladen und die schönsten hier in den Blog zu schieben, wobei ich zugeben muss, dass ich von Fotografieren eigentlich keine Ahnung habe</p> <p>Vor langer Zeit habe ich bei Maik mal ein paar <a href="https://www.langweiledich.net/so-machst-du-bessere-fotos/">Tricks für bessere Fotos</a> gefunden, die ich jedes Mal halbherzig zu beherzigen versuche.</p> Sun, 01 Apr 2018 13:18:00 GMT tag:bullenscheisse.de,2018-04-01:/2018/von-a-nach pretix auf einem Uberspace https://bullenscheisse.de/2018/pretix-auf-einem-uberspace/ <p>Im Oktober 2015 schrieb ich eine <a href="https://bullenscheisse.de/2015/pretix-auf-einem-uberspace-installieren/">Anleitung</a>, wie man <a href="https://github.com/pretix/pretix">pretix</a> auf einem <a href="https://uberspace.de">Uberspace</a> installiert. Nun ist heute nicht mehr Oktober 2015 und die alte Anleitung entsprechend nicht mehr aktuell. Mich haben mehrere Leute darauf hingewiesen. Ausserdem brauche ich aus <a href="https://bullenscheisse.de/2018/osstatus-com/">Gründen</a> selbst ab und an mal eine pretix-Instanz und habe mich entschlossen, die Anleitung mal zu überarbeiten und in diesem Blogpost auf einen neueren Stand zu bringen.</p> <h4>Einleitung</h4> <p>pretix ist ein Stück freie Software, mit dem man Tickets für Konzerte, Messen, Barcamps und sonstige Veranstaltungen verkaufen kann. Das Tool setzt auf <a href="https://www.djangoproject.com">Django</a> und benötigt Python 3. </p> <p>Es lässt sich unter <a href="https://docs.pretix.eu/en/latest/admin/installation/manual_smallscale.html">Linux</a> installieren, die Anleitung dafür kann man aber nicht eins zu eins auf die Ubernauten übertragen. Im Folgenden möchte ich beschreiben, was ich tun musste, um pretix auf einem Uberspace zumindest zum Laufen zu bringen. Der Benutzername für den Uberspace ist <code>barcamp</code>, der Uberspace selbst heisst <code>kaul</code>. Ich möchte noch darauf hinweisen, dass diese Installation eine SQLite-Datenbank nutzt. Die Dokumentation sagt dazu:</p> <blockquote> <p>If you have real users on your system you’ll really want to use</p> <p>A database (MySQL or PostgreSQL)</p> <p>A reverse proxy web server (nginx or Apache)</p> </blockquote> <p>Die Datenbank ist dieser Anleitung egal. Ausserdem fehlen noch ein, zwei andere Kleinigkeiten (siehe unten), um so Sachen wie SSL musst du dich ebenfalls selbst kümmern. Im Großen und Ganzen habe ich mich an die Anleitung der Ubernauten für <a href="https://wiki.uberspace.de/cool:django">Django</a> gehalten und sie mit besagter Installationsanleitung für Linux gekreuzt. </p> <p>Trotzdem gilt: Du wirst diese Anleitung nicht in dieser Form übernehmen können. <strong>Lies sie aufmerksam und benutze deinen eigenen Kopf, um Anpassungen zu machen</strong> Wenn du irgendwo nicht weiterkommst oder eine Anregung hast, dann freue ich mich natürlich über <a href="https://bullenscheisse.de/about/">Fragen und Feedback</a>.</p> <p>Wenn du — warum auch immer — keine eigene pretix-Instanz betreiben möchtest, kannst du ja mal darüber nachdenken, die gehostete Version zu nutzen. Raphael bietet die Software auch as a Service an — zu <a href="https://pretix.eu/about/de/pricing">sehr erschwinglichen Konditionen</a>.</p> <h4>Anleitung</h4> <h5>pretix-Installation an sich</h5> <p>In einem erste Schritt lege ich einen Ordner für die eigentliche pretix-Installation, die Virtual Environment und das Verzeichnis für die pretix-Daten an:</p> <pre class="highlight"><code>[barcamp@kaus ~]$ mkdir pretix_installation [barcamp@kaus ~]$ cd pretix_installation</code></pre> <p>Anschließend richte ich die <a href="https://virtualenv.pypa.io/en/stable/">virtuelle Umgebung</a> mit Python 3.6 ein und aktiviere sie:</p> <pre class="highlight"><code>[barcamp@kaus pretix_installation]$ python3.6 -m venv env [barcamp@kaus pretix_installation]$ source env/bin/activate</code></pre> <p>Zwar gibt es pretix auch im <a href="https://de.wikipedia.org/wiki/Pip_(Python)">Python Package Index</a>, aber weil ich ein paar Uberspace-spezifische Anpassungen in der <code>settings.py</code> vornehmen muss, bringt das — zumindest nach meinem Kenntnisstand, vielleicht weißt du es besser, dann lass mich bitte an deinem Wissen teilhaben — wenig. Zeit, das entsprechende Repository auf Github zu klonen und in den Ordner zu wechseln:</p> <pre class="highlight"><code>(env) [barcamp@kaus pretix_installation]$ git clone https://github.com/pretix/pretix.git (env) [barcamp@kaus pretix_installation]$ cd pretix</code></pre> <p>Wenn du ein spezielles Release möchtest, wäre jetzt der richtige Zeitpunkt, den entsprechenden Branch oder Tag auszuchecken. Ich gehe davon aus, dass das Repository in einem Ordner namens <code>~/pretix_installation/pretix</code> liegt. Nun geht es daran, die Abhängigkeiten von pretix zu installieren:</p> <pre class="highlight"><code>(env) [barcamp@kaus pretix]$ pip install -U gunicorn (env) [barcamp@kaus pretix]$ pip install -U -r src/requirements.txt</code></pre> <p>Danach muss ich — wie bereits erwähnt — die <code>settings.py</code> erweitern, wie bei den Ubernauten beschrieben:</p> <pre class="highlight"><code>(env) [barcamp@kaus pretix]$ cat &lt;&lt; __EOF__ &gt;&gt; src/pretix/settings.py USE_X_FORWARDED_HOST = True __EOF__</code></pre> <p>Wie ebenfalls oben bereits erwähnt, braucht pretix ein Ordner, in dem es alle möglichen Daten ablegen kann. In diesem Beispiel ist es unter anderem die SQLite-Datenbank.</p> <pre class="highlight"><code>(env) [barcamp@kaus pretix]$ mkdir ../data_dir</code></pre> <p>pretix schaut an einigen Stellen nach der benötigten <a href="https://docs.pretix.eu/en/latest/admin/config.html">Konfigurationsdatei</a>, unter anderem im Home-Verzeichnis. Aus Bequemlichkeitsgründen lege ich sie deshalb einfach mal da an:</p> <pre class="highlight"><code>(env) [barcamp@kaus pretix]$ cat &lt;&lt; __EOF__ &gt; ~/.pretix.cfg [pretix] instance_name=Frische Tickets! url=https://pretix.barcamp.kaus.uberspace.de currency=EUR datadir=/home/barcamp/pretix_installation/data_dir [database] ; Replace mysql with postgresql_psycopg2 for PostgreSQL backend=sqlite3 __EOF__</code></pre> <p>Wahrscheinlich — hoffentlich — wird deine anders aussehen. In der Konfigurationsdatei stehen alle möglichen Informationen, abhängig davon, was du alles nutzen möchtest. Beispielsweise steht hier die URL, unter der pretix erreichbar ist oder auch, wo sich das Verzeichnis für die Daten befindet.</p> <p>Hier sei nochmal ein Blick in die entsprechende <a href="https://docs.pretix.eu/en/latest/admin/config.html">Dokumentation</a> von pretix empfohlen — sie ist sehr gut. Danach initialisiere ich die Datenbank und lasse die statischen Dateien erstellen. Das hat mir bei etwas gedauert:</p> <pre class="highlight"><code>(env) [barcamp@kaus pretix]$ python src/manage.py migrate (env) [barcamp@kaus pretix]$ python src/manage.py rebuild (env) [barcamp@kaus pretix]$ deactivate</code></pre> <p>Damit bin ich mit der Installation von pretix durch.</p> <h5>Deamon und Erreichbarkeit</h5> <p>Ich könnte pretix jetzt wie jede andere Django-Anwendung starten. Es würde jedoch nicht im Hintergrund laufen und wäre noch nicht aus dem Internet erreichbar. Darum kümmere ich mich jetzt. Zuerst brauche ich dafür einen Port. Die <a href="https://wiki.uberspace.de/cool:django#deamon_einrichten">Ubernauten empfehlen folgenden Weg</a>, den ich einfach mal guttenberge:</p> <pre class="highlight"><code>[barcamp@kaus ~]$ DJANGOPORT=$(( $RANDOM % 4535 + 61000)); netstat -tulpen | grep $DJANGOPORT &amp;&amp; echo &quot;versuch's nochmal&quot;</code></pre> <blockquote> <p>wenn hier keine Ausgabe <code>versuch's nochmal</code> erscheint, passt alles. Wenn <code>versuch's nochmal</code> kommt - versuchs noch mal :)</p> </blockquote> <p>Danach richte ich den eigentlichen Service ein, der sich darum kümmert, dass pretix im Hintergrund läuft:</p> <pre class="highlight"><code>[barcamp@kaus ~]$ test -d ~/service || uberspace-setup-svscan [barcamp@kaus ~]$ uberspace-setup-service pretix /home/barcamp/pretix_installation/env/bin/gunicorn --error-logfile ~/error-log --reload --chdir /home/barcamp/pretix_installation/pretix/src --bind 127.0.0.1:$DJANGOPORT --workers 4 pretix.wsgi --name pretix --max-requests 1200 --max-requests-jitter 50</code></pre> <p>Im letzten Schritt muss ich dafür sorgen, dass dieser Service aus dem Internet ansprechbar ist:</p> <pre class="highlight"><code>[barcamp@kaus ~]$ mkdir /var/www/virtual/barcamp/barcamp.kaus.uberspace.de [barcamp@kaus ~]$ cat &lt;&lt; __EOF__ &gt; /var/www/virtual/barcamp/pretix.barcamp.kaus.uberspace.de/.htaccess RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteBase / RewriteRule ^(.*)$ http://127.0.0.1:$DJANGOPORT/$1 [P] RequestHeader set X-Forwarded-Proto https env=HTTPS __EOF__</code></pre> <p>Das war's.</p> <h5>Läuft bei mir</h5> <p>pretix wäre bei mir jetzt unter <a href="https://pretix.barcamp.kaus.uberspace.de">https://pretix.barcamp.kaus.uberspace.de</a> erreichbar.</p> <p><img alt="Startbildschirm von pretix" src="https://bullenscheisse.de/img/IMG_132_pretix.png"/></p> <p>Da sieht man denn natürlich nicht viel, weswegen ich mich unter <code>http://pretix.barcamp.kaus.uberspace.de/control/login?next=/control/</code> anmelden kann. Als Benutzername habe ich <code>admin@localhost</code>, als Passwort <code>admin</code> verwendet. <strong>Bitte denk daran, die Anmeldedaten zu ändern!</strong></p> <p><img alt="Anmeldebildschirm von pretix" src="https://bullenscheisse.de/img/IMG_99.png"/></p> <h4>Was noch fehlt</h4> <h5>Domain</h5> <p>Wie dir vielleicht aufgefallen ist, läuft pretix unter einer Subdomain — apropos Domain: <a href="https://pretix.barcamp.kaus.uberspace.de">pretix.barcamp.kaus.uberspace.de</a> ist wesentlich weniger lesbar als beispielsweise <a href="https://pretix.domain.tld">pretix.domain.tld</a>, du willst vielleicht also eine <a href="https://wiki.uberspace.de/domain">Domain</a> haben.</p> <p><del>Ich habe es zwischendrin mal hinbekommen, dass pretix auch in einem Unterordner lief, mir aber nicht aufgeschrieben, wie es geklappt hat und nun kann ich als Django/Python-Amateur das nicht mehr nachvollziehen. Falls jemand einen Hinweis hat, bin ich dankbar.</del></p> <p><a href="https://twitter.com/_rami_/status/978015739939577856">Raphael schrieb eben auf Twitter</a>, dass pretix im Unterordner schlicht nicht mehr unterstützt wird und üble Hacks braucht. Ich bin wohl auf so einen üblen Hack gestoßen und eventuell ist es gut, dass ich ihn nicht mehr nachvollziehen kann.</p> <h5>pretix-worker, Mails, MariaDB, Plugins...</h5> <p>Was ebenfalls nicht läuft, ist der in der pretix-Dokumentation erwähnte <em>pretix-worker</em>, ebenfalls fehlen sämtliche — bisweilen obligatorische — Zusatzssachen wie Mail, eine ordentliche Datenbank, <em>redis</em>, HTTPS, Plugins... Kurz: Sieh diese Anleitung bitte als einen ersten Schritt und kümmere dich anschliessend selbst darum, dass deine pretix-Installation gut und sicher läuft. Danke.</p> <h4>Links</h4> <ul> <li><a href="https://pretix.eu/about/de/">pretix im Netz</a></li> <li><a href="https://github.com/pretix/pretix">pretix auf Github</a></li> <li><a href="https://docs.pretix.eu/en/latest/">pretix-Dokumentation</a></li> </ul> Fri, 23 Mar 2018 11:21:00 GMT tag:bullenscheisse.de,2018-03-23:/2018/pretix-auf-einem-uberspace Dein Freund und Rauswerfer https://bullenscheisse.de/2018/dein-freund-und-rauswerfer/ <p>Vor ein paar Tagen gab es einen dieser Abende, an denen es so furchtbar kalt war. Gut verpackt lief ich vom Späti nach Hause, wobei der Späti mangels echter Spätis im Kiez eigentlich ein Discounter war. An einer Strassenecke parkte ein Polizeiwagen. Die beiden dazugehörigen Polizisten standen im Hauseingang eines Gebäudes, das seinerseits hinter dem Polizeiwagen stand. Ein Angestellter eines Sicherheitsdienstes hatte sie gerufen, weil sich ein Mensch in eben diesem Hauseingang schlafen gelegt hatte — es war ungefähr 22:00 Uhr.</p> <p>Man hörte ein wütendes Fluchen auf einer fremden Sprache. Ich hielt inne und beobachtete die Szene aus einigen Metern Entfernung, bis einer der Polizisten auf mich aufmerksam wurde. Was ich hier wolle, fragte er mich. Schauen, was Sie jetzt täten, entgegnete ich, schauen, was jetzt passiere. Der Plan war anscheinend, den schlafenden Menschen einfach in die Kälte zu schicken, weil er jegliche Hilfe abgelehnt hätte. In Notunterkünften würde er nur beklaut werden und dafür waren ihm seine Habseligkeiten verständlicherweise zu wichtig. Er — und nicht die Obdachlosigkeit — war ein Problem und der Job war nicht, das Problem zu lösen, sondern es loszuwerden.</p> <p>Ob er das richtig fände, wollte ich von dem Polizisten wissen und so fingen wir an zu diskutieren. „Obdachlose wollen doch so leben! Die haben es sich doch so ausgesucht!“ Ob er mal daran gedacht hätte, dass Schicksalsschläge Menschen aus ihrer Bahn werfen könnten, fragte ich. Auf die Frage, wie sein Leben aussehen könnte, wenn er einen lieben Menschen, beispielsweise eine Partnerin, verlieren würde, erwiderte er, dass er gar nicht verheiratet sei.</p> <p>Die Obdachlosen würden es in Berlin ausserdem ziemlich gut haben. Sie würden viel Geld verdienen und anders, als beispielsweise in Warschau, würden sie nicht verprügelt werden. Das sei übrigens der Grund, warum Warschau so sauber sei. Es klang unterschwellig so, als würde ihm das gefallen.</p> <p>Ich fragte ihn, wie sich Menschen einfach so in die Kälte zu entlassen, mit dem Selbstbild der Polizei als „Freund und Helfer“ oder „Da für dich“ vertrage. Ein „Freund und Helfer“ sei die Polizei seit dem Ende der Weimarer Republik nicht mehr. Ausserdem sei die Polizei eine Behörde. Und überhaupt. Wenn ich helfen wolle, solle ich „Gutmensch“ diesen Obdachlosen doch einfach mit zu mir nach Hause nehmen. „Dann können Sie sich um ihn kümmern! Dann kann er bei Ihnen alles vollscheißen und vollkotzen! Hat er letztens an der Straßenbahnhaltestelle auch getan!“ Er sei polizeibekannt und man schlage sich schon länger mit ihm rum.</p> <p>Unabhängig davon, ob der Mensch sich helfen lassen wollte oder nicht, finde ich, dass sich der Sicherheitsbediensteter hätte anders verhalten können. Natürlich kann ich nachvollziehen, dass er seinen Job machen möchte, aber er hätte bei dem Wetter vielleicht mal ein Auge zudrücken können. Die wenigsten Menschen verkriechen sich freiwillig im Eingangsbereich eines Hochhauses.</p> <p>Der Mensch, um den es ging, hatte sich während meiner Unterhaltung mit dem Polizisten aus dem Staub gemacht. Heute morgen sah ich ihn wieder. Er schlief vor dem Gebäude.</p> <p>Andere Länder gehen das Problem Obdachlosigkeit anders an, zum Glück. In <a href="http://www.zeit.de/gesellschaft/zeitgeschehen/2018-03/finnland-soziale-gerechtigkeit-grundwohnen-juha-kaakinen-interview/komplettansicht">Finnland</a> beispielse hat man ein anderes Konzept, um Menschen, die auf der Strasse leben, zu helfen. Ausserdem möchte ich noch zur <a href="https://www.berliner-stadtmission.de/aktuelles/kaeltehilfe-app/51abe73e12471c6a2f27744ead0f3829">Kältehilfe-App der Berliner Stadtmission</a> — danke Uli für den Hinweis — und zu <a href="https://www.brichbag.de">brichbag</a> verlinken.</p> <p>Ich wäre ein schlechter Sicherheitsdienstmitarbeiter.</p> Thu, 15 Mar 2018 11:51:00 GMT tag:bullenscheisse.de,2018-03-15:/2018/dein-freund-und-rauswerfer Urteil am 6. Februar https://bullenscheisse.de/2018/urteil-am-6-februar/ <p>Vor knapp zwei Wochen war die <a href="https://bullenscheisse.de/2018/gerichtstermin-wegen-wir-sind-afd-de/">mündliche Verhandlung</a> im Falle „Alternative für Deutschland (AfD) Bundesverband ./. Mattes, Nathan“. Zuerst möchte ich mich bei den Menschen bedanken, die nach Köln gekommen sind, um mir den Rücken zu stärken: Vielen Dank.</p> <p>Weil schon einige von euch gefragt haben, wie es gelaufen ist und ob ich jetzt direkt, ohne über „Los“ zu gehen, in den Knast gehe: Der Richter hat das Urteil für den 6.2. angekündigt. Als juristischer Laie würde ich sagen, dass die Verhandlung nicht allzu prickelnd für mich lief. Mehr wahrscheinlich in den nächsten Tagen.</p> Tue, 30 Jan 2018 10:46:00 GMT tag:bullenscheisse.de,2018-01-30:/2018/urteil-am-6-februar osstatus.com https://bullenscheisse.de/2018/osstatus-com/ <p>Ich sitze gerade an einer kleinen App fürs iPhone, einer Art <a href="https://play.google.com/store/apps/details?id=eu.pretix.pretixdroid&amp;hl=de">pretixdroid</a> für iPhone. Da liegen noch ein paar Abende Arbeit vor mir. Unter anderem speichert die App Dinge in der Keychain. Da es das erste Mal ist, dass ich irgendetwas schreibe, das etwas in die Keychain schreibt, stolpere ich hier und da noch gelegentlich und bekomme OSStatus-Codes. Da mir die Bedeutung von „-25299“ eher weniger sagt als „The item already exists.“, habe ich mal kurz das Internet durchforstet und stieß dabei auf <a href="https://www.osstatus.com">osstatus.com</a>.</p> Wed, 24 Jan 2018 17:56:00 GMT tag:bullenscheisse.de,2018-01-24:/2018/osstatus-com Gerichtstermin wegen wir-sind-afd.de https://bullenscheisse.de/2018/gerichtstermin-wegen-wir-sind-afd-de/ <p>Seit dem <a href="https://bullenscheisse.de/2017/update-zur-abmahnung-wegen-wir-sind-afd-de/">letzten Update zu wir-sind-afd.de</a> sind einige Monate ins Land gezogen, so wie die AfD leider in den Bundestag. Die Anwält_innen der AfD haben dann wenig später eine Klage vor dem LG Köln eingereicht. Ich werde es mir da demnächst <del>auf der Anklagebank</del> als Beklagter auf einem Sitzmöbelstück bequem machen dürfen.</p> <p>Der Gütetermin mit anschließender erste mündlicher Verhandlung findet am <strong>16. Januar 2018</strong> um <strong>13:00 Uhr</strong> im <strong>Sitzungssaal 235</strong> des <a href="https://www.google.de/maps/place/Landgericht+K%C3%B6ln/@50.9223221,6.9341594,17z/">LG Köln</a> statt. Die Verhandlung ist öffentlich. Wenn ihr also nichts Besseres zu tun habt, dann kommt doch rum und schaut euch das an. Ich freue mich sehr über Unterstützung. Weil Sicherheitskontrollen stattfinden, müsst ihr allerdings ein Ausweisdokument (Perso, Reisepass) mitbringen. Der Termin ist so wichtig, es gibt sogar eine <a href="https://bullenscheisse.de/2018/gerichtstermin-wegen-wir-sind-afd-de/PM_Muendliche_Verhandlung_AfD_Mattes.pdf">Pressemitteilung</a>.</p> <p>Ich möchte mich an dieser Stelle nochmal bei euch für eure Solidarität und meinem anwaltlichen Beistand für den anwaltlichen Beistand bedanken. Es gilt immernoch, was ich im Mai 2017 schrieb:</p> <blockquote> <p>In so einer Situation zu merken, dass man sowas nicht alleine durchstehen muss, tut unglaublich gut.</p> </blockquote> <p>Weil die Frage, wie man mich unterstützen kann, schon mehrfach kam — auch dafür: Danke. — möchte ich darauf noch kurz eingehen: Im Moment habe ich alles, was ich brauche. Im <em>worst case</em>, sprich: Wenn die Gegenseite den Prozess gewinnt, wäre ich zum einen die Domain los, zum anderen kämen für die erste Instanz knapp 6.000€ Prozesskosten auf mich zu. Falls das passiert, müsste ich euch doch um die eine oder andere Mark bitten.</p> <p>Bis dahin: Erfreut euch einfach weiterhin an Zitaten von Politiker_innen einer rechtsextremen, rassistischen, menschenverachtenden Partei, gut auffindbar unter <a href="https://wir-sind-afd.de/">wir-sind-afd.de</a>.</p> <p>Oh man, eine Pressemitteilung. Wie so ein Erwachsener.</p> Fri, 05 Jan 2018 11:00:00 GMT tag:bullenscheisse.de,2018-01-05:/2018/gerichtstermin-wegen-wir-sind-afd-de Aus Scheiße Gold machen https://bullenscheisse.de/2017/aus-scheisse-gold-machen/ <p>Die ZEIT sammelt heute <a href="http://www.zeit.de/mobilitaet/2017-12/deutsche-bahn-fahrplan-probleme-kunden/komplettansicht">Verbesserungsvorschläge</a> für die Deutsche Bahn. Das reicht von einem besseren Krisenmanagement und mehr Informationen, wenn etwas schief läuft, bis zu einer vereinfachten App.</p> <p>Im Großen und Ganzen bin ich beeindruckt von der Leistung der Bahn. Natürlich gibt es hier und da durchaus Verbesserungspotential, keine Frage. Trotzdem fahre ich gerne mit dem Zug und bin dankbar, dass ich sicher und einigermaßen entspannt und pünktlich ans Ziel komme.</p> <p>Worüber ich mich jedes Mal ärgere, sind die kostenpflichtigen Toiletten an Bahnhöfen. Anstatt sie selbst zu betreiben, zieht die Bahn es vor, dieses Angebot wohl aus Kostengründen von externen Partnerunternehmen anbieten zu lassen. Die bieten das sehr sichere Geschäft dann natürlich gerne an, weil Menschen einfach regelmässig pinkeln müssen. Und bereit sind, für die Befriedigung von Grundbedürfnissen Geld auszugeben.</p> <p>Am Berliner Hauptbahnhof beträgt der Preis für einen Toilettenbesuch einen Euro. Dafür bekomme ich einen 50-Cent-Gutschein, den ich bei einigen Geschäften im Bahnhof einlösen kann, wenn ich Brötchen, Burger, Kaffee oder Zeitschriften für einen bestimmten Mindestbestellwert kaufe — sprich: noch mehr Geld ausgebe.</p> <p>Man könnte auch sagen, dass die Firmen <a href="http://www.wc-fresh.com/">wc-fresh</a> und <a href="https://www.sanifair.de">Sanifair</a> aus Scheiße Gold macht, weil irgendjemand sparen und Toilettenkosten auf Kund_innen umlegen wollte.</p> <p>Mein Wunsch ist eigentlich ganz einfach: Liebe Bahn, macht die Toiletten bitte kostenlos. Sorgt dafür, dass sie sauber sind. Toiletten gehören für mich zum Service. Ja, es kostet Geld und ich verstehe, dass ihr, solange ihr als Privatunternehmen Geld verdienen müsst, Geld verdienen müsst. Aber mal ehrlich: </p> <p>Ihr erhöht die Ticketpreise mit einer Pünktlichkeit, von der eure Züge manchmal nur träumen können. Ihr habt Geld für Bahnhöfe, deren Kosten im Nachhinein — oh Wunder! — explodieren. Geld für Tunnel unter Stuttgart. Geld für Zugstrecken von <a href="https://de.wikipedia.org/wiki/Verkehrsprojekt_Deutsche_Einheit_Nr._8">Berlin nach Nürnberg</a>. Wie bitte? Was sagst du da? Das müsst ihr gar nicht alles selbst bezahlen, weil Steuerzahler_innen helfen? Und ausserdem gehörst du eh zu <a href="http://www.bundesfinanzministerium.de/Content/DE/Standardartikel/Themen/Bundesvermoegen/Privatisierungs_und_Beteiligungspolitik/Beteiligungspolitik/deutsche-bahn-ag.html">100% dem Bund</a>? Na großartig, dann könnt ihr es euch ja gleich umso mehr leisten, Toiletten in den Bahnhöfen kostenlos anzubieten. Oder etwa nicht?</p> Sun, 10 Dec 2017 10:01:00 GMT tag:bullenscheisse.de,2017-12-10:/2017/aus-scheisse-gold-machen Für nichts und wieder nichts https://bullenscheisse.de/2017/fuer-nichts-und-wieder-nichts/ <p>2013 konnte man einen <a href="https://de.wikipedia.org/wiki/Bitcoin">Bitcoin</a> für ungefähr 800 Euro kaufen. Damals gab es einen ersten Hype, auf dessen Höhepunkt ich ein bisschen Geld investierte. Im schlimmsten Fall würde ich das bisschen Geld verlieren, dachte ich mir, das könnte ich verkraften. Im besten Fall hätte ich halt ein bisschen verdient. Ich nahm mir vor, einfach mal zu schauen, was daraus wird.</p> <p>Ein paar Tage verfolgte ich regelmässig den Kurs, dann wurde es langweilig. Ausserdem beschäftigte ich mich mit anderen Dingen: Klausuren. Lohnarbeit. Menschen. Und irgendwann habe ich meine Investition dann tatsächlich vergessen.</p> <p>Mitte diesen Jahres wurde ich wieder daran erinnert: Die Kurse für Bitcoin kannten nur eine Richtung, viele Medien griffen das Thema auf und seitdem habe ich immer mal wieder einen Blick darauf geworfen. Vor ein paar Tagen habe ich bei einem Kurs von fast 12000 Euro pro Bitcoin verkauft. Mich plagte kurz ein schlechtes Gewissen, dass ich meinen Besitz und den Markt genutzt habe, um meinen Besitz zu mehren. Wie so ein gewissenloser Kapitalist.</p> <p>Ein Teil des Erlöses — 2013 waren es ungefähr 6,50 Euro, ausserdem vier Jahren Zeit und Angebot und Nachfrage — habe ich genutzt, um <a href="https://twitter.com/zeitschlag/status/939080296212959232">einen Küchentisch, Handtuchhalter und einige Küchenutensilien</a> zu kaufen. Man könnte also sagen: Ich habe für einen <a href="http://www.ikea.com/de/de/catalog/products/80091713/">neuen Tisch</a> etwas mehr als zwei Euro bezahlt.</p> <p>Ausserdem habe ich es im <a href="https://twitter.com/zeitschlag/status/920353831438909440">Späti</a> mal so richtig krachen lassen und alles gekauft, worauf ich Lust hatte: eine Pomelo, eine Spezi, Apfelsaft aus Apfelsaftkonzentrat, Orangensaft aus Orangensaftkonzentrat, eine Süßkartoffel, Nudeln, Pesto aus dem Glas und ein paar Grundnahrungsmittel haben mich 16 Euro gekostet. Später habe ich mir dann noch ein Eis gekauft.</p> <p>Vor fast drei Jahren war ich in der Schweiz und habe 3,93 Euro verdient, weil die Schweizer Nationalbank die Bindung des Franken an den Euro aufgehoben hat. <a href="https://bullenscheisse.de/2015/fuer-nichts/">Damals schrieb ich</a>:</p> <blockquote> <p>Ich habe 3,93 Euro verdient. Was habe ich dafür getan? Nichts. Fühlt es sich richtig und gut an? Nein.</p> </blockquote> <p>Dieses Jahre habe ich durch den Besitz von 7 Euro ungefähr 90 verdient. Was habe ich dafür getan? Ich habe vor ein paar Jahren Besitz riskiert und gewartet, sonst nichts. Fühlt es sich richtig und gut an? Nein. Immer noch nicht.</p> Sat, 09 Dec 2017 10:35:00 GMT tag:bullenscheisse.de,2017-12-09:/2017/fuer-nichts-und-wieder-nichts Einkaufszettl 0.6 https://bullenscheisse.de/2017/einkaufszettl-0-6/ <p>Eine kurze Durchsage zum <a href="https://bullenscheisse.de/einkaufszettl/">Einkaufszettl</a>: Es gibt mal wieder eine neue Version im <a href="https://itunes.apple.com/de/app/einkaufszettl/id1016435355?l=de&amp;ls=1&amp;mt=8">App Store</a>.</p> <p><img alt="Screenshot vom iPhone X mit dem Einkaufszettl" src="https://bullenscheisse.de/img/IMG_131_Einkaufszettl_iPhone_X.png"/></p> <p>Das ursprüngliche Zeit war, endlich mal auf Barrierefreiheit zu achten und sie dort, wo sie fehlt, noch nachzurüsten. Heute morgen fiel mir auf, dass ich da nochmal Hand anlegen darf. Es ist beispielsweise nicht per VoiceOver ersichtlich, ob ein Produkt bereits auf der Liste steht oder schon gekauft wurde.</p> <p>Eine Folge davon, für mehr Barrierefreiheit zu sorgen, war, dass man nun in der App wählen kann, ob man sie wie bisher mit der Wischgeste bedienen möchte oder die Dinge lieber antappt, um sie auf den Einkaufszettl zu schreiben oder sie als gekauft zu markieren. Die App einzig und alleine mit der Wischgeste zu bedienen, habe ich zumindest mit VoiceOver nicht geschafft.</p> <p>Ende der Durchsage.</p> Tue, 05 Dec 2017 20:40:00 GMT tag:bullenscheisse.de,2017-12-05:/2017/einkaufszettl-0-6 60 Euro. Bedauerlicherweise. https://bullenscheisse.de/2017/60-euro-bedauerlicherweise/ <p>Ich stieg vorhin in eine Regionalbahn. Dort lächelte mich ein Aufkleber des Verkehrsverbundes zum Thema Fahren ohne Fahrschein an:</p> <blockquote> <p><strong>Es hat sich nie weniger gelohnt.</strong> Nach den Gemeinsamen Beförderungsbedingungen müssen wir diesen Betrag (60€) von Ihnen erheben, wenn Sie öffentliche Verkehrsmittel ohne gültigen Fahrschein benutzen.</p> </blockquote> <p>Mich machen hier zwei Sachen traurig:</p> <ol> <li>Die Formulierung. Sie erweckt den Eindruck, dass es der Bahn leid täte, würde sie mich ohne gültigen Fahrschein erwischen. Eigentlich wollen sie mir dafür keine 60 Euro abknöpfen, seien aber aufgrund der Beförderungsbedingungen bedauerlicherweise dazu verpflichtet. Wenn es euch leid tut, dann setzt euch dafür ein, die gemeinsamen Beförderungsbedingungen zu ändern.</li> <li>Die Tatsache, dass das Benutzen des ÖPNV ohne Fahrschein 60 Euro kostet. Ein fahrscheinloser ÖPNV ist Teil einer Welt, in der ich gerne leben würde. 2013 schätzte man die Kosten dafür deutschlandweit auf <a href="http://www.tagesspiegel.de/berlin/diskussion-um-gratis-fahrten-in-berlin-kostenloser-nahverkehr-ist-in-anderen-staedten-gescheitert/9159568.html">rund 12 Milliarden Euro</a>. Jährlich. Grob überschlagen wären das pro Kopf in Deutschland und Monat etwa 12 Euro. Dass wir uns das leisten können, das steht ausser Frage. Wenn wir uns <a href="http://www.zeit.de/mobilitaet/2017-02/bus-bahn-oeffentlicher-nahverkehr-studie-grafiken/komplettansicht">Monatstickets leisten können</a>, können wir uns auch 12 Euro im Monat leisten, wenn man den fahrscheinlosen ÖPNV nicht über Steuern finanzieren könnte. Natürlich müsste massiv in Infrastruktur investiert werden, aber das wäre etwas, wovon alle profitieren würden. Es sollte uns das wert sein.</li> </ol> Mon, 04 Dec 2017 06:11:00 GMT tag:bullenscheisse.de,2017-12-04:/2017/60-euro-bedauerlicherweise miniflux + unread https://bullenscheisse.de/2017/miniflux-+-unread/ <p>Vor ein paar Tagen änderte sich wieder einmal alles. </p> <h4>Was bisher geschah</h4> <p>Zumindest, was mein Setup zum Lesen von <a href="https://de.wikipedia.org/wiki/RSS_(Web-Feed)">RSS-Feeds</a> betrifft. Bisher verwendete ich dafür über mehrere Jahre hinweg <a href="https://tt-rss.org/">Tiny Tiny RSS</a> — kurz: tt-rss — auf einem Uberspace, um diverser Feeds abzugrasen. Zum Lesen nutzte ich auf dem Mac, nachdem die Entwicklung von microRSS, einem Desktop-Client für tt-rss <a href="https://bullenscheisse.de/2015/microrss-ist-open-source/">Mitte 2015 eingestellt</a> worden war, die Weboberfläche von tt-rss. Für das iPhone hatte ich mir vor Ewigkeiten eine App namens „<a href="https://itunes.apple.com/de/app/tiny-reader-rss/id689519762?mt=8">tiny Reader RSS</a>“ gekauft, die ich seitdem verwendete.</p> <p>Dieses System war nicht perfekt, es gab durchaus Sachen, die echt genervt haben. So störte mich an der App beispielsweise, dass sie jedes Mal, wenn sie in den Vordergrund kam, eine Aktualisierung anstieß. Wenn du in der Berliner Ubahn bist, ist das echt nervig. Auch die Wischgesten in tiny RSS waren nervig, ebenso die Tatsache, dass die Originalansicht der Artikel in der App und nicht mittels Safari implementiert war.</p> <p>Ich konnte auch nicht sagen, dass die Weboberfläche von tt-rss umwerfend war. Sie war okay. Aber der <em>pain in the ass</em> war nie groß genug, um etwas zu ändern oder mich nach etwas Neuem umzuschauen. Stattdessen gewöhnte ich mich größtenteils an die Nachteile. Erspart euch das. <a href="https://twitter.com/search?f=tweets&amp;vertical=default&amp;q=%23f%C3%BCrwenigernervimleben&amp;src=typd">#fürwenigernervimleben</a></p> <p>Als Leah dann vor einigen Tagen ausgrub, welche <a href="https://twitter.com/_nazco_/status/929081977805987841">Kategorien es im Forum von tt-rss</a> gibt, Cheatha nachfragte und der <a href="https://discourse.tt-rss.org/t/a-category-named-gas-chamber/649">Entwickler von tt-rss sich wie ein Arschloch benahm</a>, sah ich den Zeitpunkt gekommen, mein Feedreader-Setup mal so zu überdenken, dass es nicht mehr auf tt-rss aufbaute.</p> <h4>Was ich will/brauche/will</h4> <p>Ich lese meine Feeds selbstverständlich absolut nie im Büro, dafür auf Toilette, in der Ubahn, im Bett, in Wartezimmern. Ich hätte also gerne eine Lösung, die eine iOS-App, die nicht bei jedem Aufruf alle Feeds synchronisiert, und eine zweckmässige, idealerweise hübsche Weboberfläche enthält. Wenn es noch einen nativen Client für den Mac gibt, sage ich auch nicht nein. Noch dazu wäre es schön, wenn die Lösung beispielsweise stündlich die Feeds abgrast.</p> <p>Idealerweise ist das ganze Open Source und ohne großen Aufwand auf einem <a href="https://uberspace.de/">Uberspace</a> installierbar. Und wenn es was kostet, ist das auch in Ordnung, schließlich nutze ich das täglich im Büro, auf Toilette, in der Ubahn, im Bett, in Wartezimmern.</p> <h4>Was ich mir angeschaut habe</h4> <p>Ich liebäugelte anfangs auch mit Diensten wie <a href="https://feedwrangler.net/welcome.html">Feedwrangler</a>, <a href="http://netnewswireapp.com/">NetNewsWire</a>, <a href="https://feedly.com/i/welcome">Feedly</a> oder <a href="https://feedbin.com/">Feedbin</a>, nahm dann aber relativ schnell wieder Abstand, weil ich eben etwas Selbstgehostetes haben wollte oder sie wie NetNewsWire nicht über ein Webinterface verfügten. Wenn ich mich eines Tages nicht mehr selbst um die Wartung kümmern möchte, komme ich darauf vielleicht zurück, fürs Erste waren die raus.</p> <p>Andere Kandidaten waren <a href="https://miniflux.net/">miniflux</a>, <a href="https://github.com/swanson/stringer">Stringer</a> und <a href="https://selfoss.aditu.de/">selfoss</a>, wobei ich selfoss hässlich fand und deswegen nur Stringer und miniflux in die engere Auswahl kamen. </p> <p>Kandidaten für die iOS-App waren <a href="https://www.goldenhillsoftware.com/unread/">Unread</a> und Reeder. felix schwenzel, der seit einem jahr <a href="http://wirres.net/article/articleview/10389/1/0/">ebenfalls miniflux nutzt</a>, hat dazu vor geraumer zeit mal <a href="http://wirres.net/article/articleview/7148/1/6/">einen artikel geschrieben</a>. Beide Apps können an verschiedene APIs gehängt werden, unter anderem auch an die <a href="https://feedafever.com/api">Fever API</a>, die viele Open Source-RSS-Services implementieren.</p> <h4>Wie es jetzt aussieht</h4> <p>Weil ich irgendwann aufgab, Stringer auf einem Uberspace installieren zu wollen, also quasi aus meiner eigenen Inkompetenz — vielleicht schafft es jemand, der*die mehr Ahnung als ich hat — wurde es schlussendlich miniflux.</p> <p>Als App für das iPhone habe ich mich für Unread entschieden, unter anderem deshalb, weil die App eine Testphase anbietet: Bevor ich Geld ausgebe, kann ich 50 Artikel lesen. Ich war anfangs skeptisch, ob das reicht, aber um ein Gefühl für die App zu kriegen und mich zu überzeugen, war es genug: Ich gab die 8,99€ aus.</p> <p>Dass es mit dem IAP ein paar mehr Themes in der App gibt, ist nett, aber mir reichen im Grunde zwei:</p> <p><img alt="Day-Theme, Night-Theme" src="https://bullenscheisse.de/img/IMG_130_Unread_Themes.PNG"/></p> <p>Mit das Beste an Unread im Vergleich zu tiny RSS ist die Tatsache, dass Unread die Synchronisierung der Feeds wesentlich eleganter im Hintergrund hinbekommt, sie offline vorhält und ich meine Feeds so auch in der Berliner Ubahn lesen kann. Ausserdem sind die Wischgesten ordentlich und nachvollziehbar implementiert und die ganze UX ist nicht so kacke.</p> <p>Ich bin alles in allem zufrieden damit. Wie es langfristig funktioniert, wird sich zeigen.</p> <h4>Wo ich auch Hürden gestoßen bin</h4> <p>Die einzige Hürde, die mir auffiel, war die Installation von miniflux. Zwar lässt sich miniflux auch mit MySQL betreiben, wenn man das in der <a href="https://twitter.com/zeitschlag/status/931816223817523200">Konfigurationsdatei konfiguriert</a>, aber die MySQL-Version meines Uberspace war zu alt. Das fand ich raus, weil ich bei der Installation von miniflux Encoding-Fehler sah. Lösung des Problems: Du willst <a href="https://wiki.uberspace.de/database:mysql#mariadb_100">MariaDB auf deinem Uberspace</a> nutzen. Dann klappt es auch mit der Installation.</p> <p>Ansonsten:</p> <h4>Was ich gut finde</h4> <p>Das jetzige Setup erledigt einfach seinen Job: Es lässt mich meine Feeds überall da lesen, wo ich möchte. Es nervt dabei nicht, es sieht dabei gut aus, Updates für miniflux lassen sich relativ problemlos einspielen und auch Unread wird regelmässig vom Entwickler aktualisiert.</p> <h4>Womit ich nicht zufrieden bin</h4> <p>Das Bindeglied zwischen App und miniflux ist wie geschrieben die Fever API. Damit fühle ich mich tatsächlich ein bisschen unwohl, weil Fever seit einigen Jahren nicht mehr weiterentwickelt wird. Und somit kümmert sich auch niermand um die API. Wenn der Entwickler von Unread sich jetzt entscheidet, die Fever API nicht mehr zu unterstützen, habe ich ein Problem. Wenn die Entwickler*innen von miniflux sich jetzt entscheiden, die Fever API nicht mehr zu unterstützen und stattdessen lieber an miniflux 2 arbeiten, habe ich ein Problem.</p> <p>Wenn es soweit ist, sehe ich weiter. Notfalls lerne ich PHP oder muss mir dann doch mal meinen eigenen Feedreader fürs iPhone schreiben.</p> <p><strong>Wie sieht dein RSS-Setup aus? Hast du Fragen?</strong></p> Mon, 27 Nov 2017 19:41:00 GMT tag:bullenscheisse.de,2017-11-27:/2017/miniflux-+-unread XNetflixions - Gastbeitrag bei condomsbydefault.de https://bullenscheisse.de/2017/xnetflixions-gastbeitrag-bei-condomsbydefault-de/ <p>Vor knapp einer Woche habe ich einen <a href="http://condomsbydefault.de/xnetflixions-lasst-uns-ueber-guten-porn-reden/">Gastbeitrag für Condoms by Default</a> geschrieben. Er ist tendentiell leider eher NSWF, was aber weniger mit dem Inhalt, als vielmehr mit dem, was W als SFW ansieht, zu tun hat: Der Blogpost beschäftigt sich mit dem Thema, warum wir so wenig über Pornos und Sex reden. Und um Netflix geht es auch. Und um faire Pornos. Oh je, jetzt werde ich bestimmt nie wieder einen anderen Job finden. Wir sollten mal dringend über Pornos reden und darüber, was als NSFW angesehen wird.</p> <p>Die Idee, bei Djure einen Gastbeitrag zu veröffentlichen, hatte ich ein paar Tage vorher, den Mut, ihn anzusprechen, irgendwann nachts. Anfangs war ich mir unsicher, ob ich meinen Namen unter den Blogpost setzen möchte oder ob es nicht doch besser wäre, das ganze unter falschem Namen zu veröffentlichen. Als ich dann diesen Blogpost schrieb, dachte ich mir: „Du kannst dir nicht zum einen mehr Offenheit wünschen und dich dann hinter einem Pseudonym verstecken.“</p> <p>Das war dann auch der Grund, warum da jetzt mein Name drüber steht. Dabei habe ich gemerkt, dass ich eigentlich sehr gerne blogge. Das merke ich aber so ziemlich jedes Mal, wenn ich schreibe.</p> <p>Lieber Djure, vielen Dank, dass ich den Gastbeitrag bei dir verfassen durfte.</p> Tue, 31 Oct 2017 12:55:00 GMT tag:bullenscheisse.de,2017-10-31:/2017/xnetflixions-gastbeitrag-bei-condomsbydefault-de Life Is Strange https://bullenscheisse.de/2017/life-is-strange/ <p>Am Wochenende — das dauerte dieses Mal von Donnerstag bis Dienstag, gerne mehr davon — habe ich das erste Mal <a href="https://de.wikipedia.org/wiki/Life_Is_Strange">Life is Strange</a> gespielt, bisher habe ich die erste Episode geschafft. Mir gefällt die Musik unglaublich gut, eigentlich könnte man das Spiel starten, im Hauptmenü verweilen und einfach nur der Musik lauschen. Aber dann würde man ihm Unrecht tun.</p> <p>In dem Spiel hat man Zugriff auf eine Art Tagebuch von Max, der Hauptfigur, in dem diverse Informationen abrufbar sind, unter anderem gibt es Interessantes zu den Charakteren zu lesen. Auf der Seite, die <a href="https://vignette.wikia.nocookie.net/rememberme/images/2/22/Warren_Entry.png/revision/latest?cb=20150209230731">Warren beschreibt</a>, sind einige mathematische Gleichungen zu sehen, beginnend mit:</p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mfrac><mrow><mi>x</mi><mo>-</mo><mn>1</mn></mrow><mn>4</mn></mfrac><mo>-</mo><mfrac><mn>4</mn><mrow><mi>x</mi><mo>-</mo><mn>1</mn></mrow></mfrac><mo>=</mo><mn>0</mn></mstyle></math> </p> <p>Als ich das sah, war mein Interesse geweckt. Auch wenn ich Informatik studiert habe, war ich nie besonders gut in Mathe. Es hat mir meistens Spaß gemacht, aber ich war eben nie besonders gut. Statistik und Stochastik sind mir bis heute beispielsweise ein Rätsel. Ich hatte das Bedürfnis, die Gleichung aus dem Spiel zu lösen — das, was in dem Buch stand, konnte nicht stimmen. Also kramte ich in meinem Kopf in einer Kiste mit der Aufschrift „Mathe 10. Klasse“ und begann, die beiden Brüche auf einen Nenner bringen, in dem ich jeden Bruch mit dem Nenner des anderen erweiterte:</p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mfrac><mrow><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow><mrow><mn>4</mn><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mfrac><mrow><mn>4</mn><mo>⋅</mo><mn>4</mn></mrow><mrow><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mn>4</mn></mrow></mfrac><mo>=</mo><mn>0</mn></mstyle></math> </p> <p>Danach ziehe ich beide Brüche auf einen Bruchstrich ...</p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mfrac><mrow><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mn>16</mn></mrow><mrow><mn>4</mn><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mn>0</mn></mstyle></math> </p> <p>... um anschliessend die zweite binomische Formale auszumultiplizieren</p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mfrac><mrow><msup><mi>x</mi><mn>2</mn></msup><mo>-</mo><mn>2</mn><mi>x</mi><mo>+</mo><mn>1</mn><mo>-</mo><mn>16</mn></mrow><mrow><mn>4</mn><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></mfrac><mo>=</mo><mn>0</mn></mstyle></math> </p> <p>Nun multipliziere ich beide Seiten der Gleichung mit <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mn>4</mn><mrow><mo>(</mo><mi>x</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mstyle></math>, um den Bruch aufzulösen.</p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msup><mi>x</mi><mn>2</mn></msup><mo>-</mo><mn>2</mn><mi>x</mi><mo>+</mo><mn>1</mn><mo>-</mo><mn>16</mn><mo>=</mo><mn>0</mn><mo>⇒</mo><msup><mi>x</mi><mn>2</mn></msup><mo>-</mo><mn>2</mn><mi>x</mi><mo>-</mo><mn>15</mn><mo>=</mo><mn>0</mn></mstyle></math> </p> <p>Diese beiden Schritte hätte ich auch in umgekehrter Reihenfolge machen können.</p> <p>Hört ihr das? Wir haben eine <a href="https://de.wikipedia.org/wiki/Quadratische_Gleichung">quadratische Gleichung</a>, die nach der <a href="https://de.wikipedia.org/wiki/Quadratische_Gleichung#L.C3.B6sungsformel_f.C3.BCr_die_Normalform_.28p-q-Formel.29">pq-Formel</a> mit <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mi>p</mi><mo>=</mo><mrow><mo>-</mo><mn>2</mn></mrow><mo>,</mo><mi>q</mi><mo>=</mo><mrow><mo>-</mo><mn>15</mn></mrow></mstyle></math> schreit.</p> <p>Wir müssen noch überprüfen, ob die Diskriminante <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mi>D</mi></mstyle></math> negativ ist: <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mi>D</mi><mo>=</mo><msup><mi>p</mi><mn>2</mn></msup><mo>-</mo><mn>4</mn><mi>q</mi><mo>;</mo><mi>p</mi><mo>=</mo><mrow><mo>-</mo><mn>2</mn></mrow><mo>,</mo><mi>q</mi><mo>=</mo><mrow><mo>-</mo><mn>15</mn></mrow><mo>⇒</mo><mi>D</mi><mo>=</mo><mn>4</mn><mo>-</mo><mn>4</mn><mo>⋅</mo><mrow><mo>(</mo><mrow><mo>-</mo><mn>15</mn></mrow><mo>)</mo></mrow><mo>=</mo><mn>4</mn><mo>+</mo><mn>60</mn><mo>=</mo><mn>64</mn></mstyle></math>, passt also, her mit der <em>normalen</em> pq-Formel.</p> <p>Der Rest ist einsetzen und ausrechnen oder einen Taschenrechner bemühen:</p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msub><mi>x</mi><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow></msub><mo>=</mo><mfrac><mrow><mo>-</mo><mi>p</mi></mrow><mn>2</mn></mfrac><mo>±</mo><msqrt><mrow><msup><mrow><mo>(</mo><mfrac><mi>p</mi><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>-</mo><mi>q</mi></mrow></msqrt><mo>;</mo><mi>p</mi><mo>=</mo><mrow><mo>-</mo><mn>2</mn></mrow><mo>,</mo><mi>q</mi><mo>=</mo><mrow><mo>-</mo><mn>15</mn></mrow></mstyle></math> </p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msub><mi>x</mi><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow></msub><mo>=</mo><mfrac><mn>2</mn><mn>2</mn></mfrac><mo>±</mo><msqrt><mrow><msup><mrow><mo>(</mo><mfrac><mrow><mo>-</mo><mn>2</mn></mrow><mn>2</mn></mfrac><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mn>15</mn></mrow></msqrt></mstyle></math> </p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msub><mi>x</mi><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow></msub><mo>=</mo><mn>1</mn><mo>±</mo><msqrt><mrow><msup><mrow><mo>(</mo><mrow><mo>-</mo><mn>1</mn></mrow><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><mn>15</mn></mrow></msqrt></mstyle></math> </p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msub><mi>x</mi><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow></msub><mo>=</mo><mn>1</mn><mo>±</mo><msqrt><mrow><mn>16</mn></mrow></msqrt></mstyle></math> </p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msub><mi>x</mi><mrow><mn>1</mn><mo>,</mo><mn>2</mn></mrow></msub><mo>=</mo><mn>1</mn><mo>±</mo><mn>4</mn></mstyle></math> </p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msub><mi>x</mi><mn>1</mn></msub><mo>=</mo><mn>5</mn><mo>,</mo><msub><mi>x</mi><mn>2</mn></msub><mo>=</mo><mrow><mo>-</mo><mn>3</mn></mrow></mstyle></math> </p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><mi>q</mi><mo>.</mo><mi>e</mi><mo>.</mo><mi>d</mi><mo>.</mo></mstyle></math> </p> <p>In die Ursprungsgleichung eingesetzt, ergeben sowohl <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msub><mi>x</mi><mn>1</mn></msub></mstyle></math>, als auch <math xmlns="http://www.w3.org/1998/Math/MathML"><mstyle><msub><mi>x</mi><mn>2</mn></msub></mstyle></math> eine wahre Aussage. Diese Rechnung weicht ein bisschen von der aus dem Spiel ab. Da mir im Matheunterricht regelmässig Flüchtigkeits- und/oder Vorzeichenfehler unterlaufen sind, war ich immer noch skeptisch. Ich schoss mit Kanonen auf Spatzen und schmiss ein CAS an. Auch das bestätigte mir meine beiden Ergebnisse und ich war zufrieden.</p> <p><img alt="Screenshot vom CAS" src="https://bullenscheisse.de/img/Life_is_strange_CAS.png"/></p> <p>Warum die Gleichung mit Rechenfehlern auf der Seite von Warren in Max' Tagebuch stehen? Keine Ahnung, aber vielleicht erfährt man das irgendwann in einer der anderen Episoden.</p> Wed, 04 Oct 2017 05:48:00 GMT tag:bullenscheisse.de,2017-10-04:/2017/life-is-strange