bullshit

Ein Drama in n Akten

n-(n-1). Akt:

Nathan zieht in das Zimmer. Ihm fällt auf, dass es keine Gardinen hat und die Nachbarn ihn beobachten können. "Müsste man mal ändern", sagt er sich. Er sucht ein großes, schwedisches Möbelhaus auf, um sich ein Bett und einen Schrank zu kaufen. Ihm fällt auf, dass er nicht ausgemessen hat, wie breit die Fenster sind. Er beschließt, den Gardinenkauf auf ein anderes Mal zu verschieben.

n-(n-2). Akt:

Ein paar Tage später. Nathan besucht das große, schwedische Möbelhaus. Ihm fällt auf, dass er die Gardinen vergessen hat. Er kauft ein bisschen Kleinscheiß ein und beschließt, den Gardinenkauf auf ein anderes Mal zu verschieben.

n-(n-3). Akt:

Ein paar mehr Tage später. Seit Akt n-(n-1) sind knapp zwei Wochen ins Land gezogen. Nathan informiert sich auf der Internetseite eines großen, schwedischen Möbelhauses über Gardinen. "Die Grauen da, die will ich haben. Sind bezahlbar und grau." Ihm fällt auf, dass er an jenem Tag nicht zu Ikea fahren kann, denn er hat vergessen, die Breite der Fenster auszumessen. "Morgen früh denke ich dran", sagt er sich. "Morgen früh bringe ich in Erfahrung, wieviel Gardine ich brauche!", sagt er sich.

n-(n-4). Akt:

Wenige Tage - nicht morgen - später morgens. Nathan nimmt den Zollstock in die Hand und misst. "Heute gehe ich früher von der Arbeit, dass ich noch ein großes, schwedisches Möbelhaus besuchen kann."

n-(n-5). Akt:

Am Abend des Tages aus Akt n-(n-4). Nathan sitzt länger als geplant im Büro. Eine Stunde bevor das große, schwedische Möbelhaus für immer schließt, schafft es es, sich zum großen, schwedischen Möbelhaus aufzumachen. Wenn alles nach Plan läuft, dann bleibt ihm genau eine halbe Stunde, seine Gardineneinkäufe zu erledigen. Er verläuft sich unterwegs. 20 Minuten. Die gewonnenene/verlorene Zeit nutzt er, um sich die Artikelnummern der Gardinen, der Gardinenstangen, der Gardinenstangenhalterungen und der Gardinenstangenenden zu notieren.

n-(n-6). Akt:

Im großen, schwedischen Möbelhaus. 20 Minuten vor Ladenschluß. Nathan nimmt eine gelbe Tasche und die Abkürzung, um direkt zur Markthalle zu gelangen. Er gelangt zur Gardinenabteilung. Die Gardinen hat er schnell gefunden, für die Gardinenstangen braucht er etwas länger. Die Gardinenstangenhalterungen sind bei den Gardinenstangen, nur die Gardinenstangenenden findet er nicht. Er sucht und sucht und fragt eine Mitarbeiterin des großen, schwedischen Möbelhauses. Jemand hatte etwas vor die schwarzen Gardinenstangenenden, die er haben wollte, gestellt. Auf zur Kasse. Unterwegs wirft er noch ein paar Geschirrhandtücher und einen Fußabtreter in die gelbe Tasche. Er geht zur Selbstbedienungskasse. Dafür schneidet sich an der Verpackung der Geschirrhandtücher. Aber er hat es geschafft.

n-(n-7). Akt:

Der nächste Tag. Da er noch Dübel und Schrauben benötigt, um die Gardinenstangenhalterungen an der Wand zu befestigen, sucht er einen Baumarkt auf, um Dübel und Schrauben zu kaufen, um die Gardinenstangenhalterungen an der Wand zu befestigen. Ihm fällt nicht auf, dass es sich bei den Schrauben um Torx-Schrauben handelt. "Da ich jetzt die Gardinenstangenhalterungen, die Dübel und die Schrauben habe, um die Gardinenstangenhalterungen an der Wand zu befestigen, will ich morgen die Gardinenstangenhalterungen mit den Dübeln und Schrauben an der Wand befestigen", sagt er sich.

n. Akt:

Nathan hat alles: Bohrer, Leiter, Schrauben, Dübel, Zollstock, Staubsauger, Gardinen, Gardinenstangen, Gardinenstangenhalterungen, Gardinenstangenendungen. Er misst aus, wo er bohren muss, um dort die Gardinenstangenhalterungen mit den Dübeln und Schrauben zu befestigen. Er fängt an, die ersten zwei Löcher zu bohren. Er steckt die Dübel rein. Und dann fällt ihm auf, dass er Torx-Schrauben gekauft hat. Der Baumarkt hat noch eine halbe Stunde auf. Er geht hin und kauft einen entsprechenden Schraubenzieher. Und dann fällt ihm auf, dass er beim Bohren unvorsichtig war. Die Dübel haben zuviel Spiel. Irgendwie schafft er es, dass die Gardinenstangenhalterung durch eine Schraube gehalten wird. Bei den nächsten zwei Löchern bohrt er erst mit einem kleineren Bohraufsatz vor, bevor er das Loch mit dem für die Dübel notwendigen Aufsatz verbreitert. Doch auch hier hat der eine Dübel zuviel Spiel. Wieder schafft er es, die Gardinenstangenhalterung mit einer Schraube zu fixieren. Seinem Eindruck nach wird das wohl reichen. Die dritte Halterung. Wieder markiert Nathan die entsprechenden Bohrlöcher und will vorbohren. Doch der Bohraufsatz bricht nach der Hälfte und lässt sich nicht aus dem Bohrloch entfernen. Er misst erneut und markiert alternative Bohrlöcher, die er mit dem nächstgrößeren, kleineren Bohraufsatz vorbohren will. Es klappt. Er schraubt die Gardinenstangenhalterung an die Wand. Die letzten beiden Bohrlöcher. Markieren, vorbohren, aussaugen, nachbohren, aussaugen, Dübel einsetzen, Gardinenstangenhalterung festschrauben. Es klappt alles so reibungslos, als hätte er es schon hunderte Male gemacht. Die Dübel haben nicht zuviel Spiel, die Gardinenstangenhalterung sitzt. Nathan hängt die Gardinen auf. Ab.

Umschalten der Ansicht

Wie vor einigen Wochen (mittlerweile sind gefühlte Monate ins Land gegangen, tatsächlich sind es zwei) angekündigt, bekommt das nächste Update vom Einkaufszettl unter anderem die Kategorien. Das hatten sich einige gewünscht.

Es funktioniert soweit alles, wie es soll. Was mich hindert, die App zum Review anzumelden, ist die Benutzeroberfläche, genauer die Umschaltung zwischen der einfachen, bisherigen Ansicht und der Ansicht der Kategorien.

Ich habe mir da zwei Möglichkeiten überlegt, wie man das machen könnte. Die würde ich dir gerne vorstellen. Einmal könnte man das direkt in der App umschalten, die andere Variante wäre die Auswahl der Ansicht in den Einstellungen. Und genau da kommst Du ins Spiel: Was willst Du?

In der App

Die erste Möglichkeit ist die Umschaltung direkt in der App. Da wäre ganz oben der Umschalter. Der Vorteil ist ganz klar, dass man einfach umschalten kann. Das sieht dann ungefähr aus:

Umschalten der Ansichten in der App, gezeigt wird die einfache Liste, in der zwischen gekauft und nicht gekauft unterschieden wird. Umschalten der Ansichten in der App, gezeigt wird die Aufteilung in die Kategorien.

In den Einstellungen

Die zweite Variante funktioniert über die mitgelieferten Settings-App. Hier ist der Vorteil, dass die eigentliche Benutzeroberfläche immernoch sehr einfach gehalten ist. Außerdem stellt man die Ansicht ein und gut ist. Will man die Ansicht ändern, dann muss man halt die Settings-App aufrufen. Auch für diese Version habe ich ein paar Screenshots vorbereitet:

Alles wie bisher: Es gibt einfache Liste, bei der zwischen "gekauft" und "nicht gekauft" unterschieden wird. Unterscheidung der Produkte in Kategorien in der zweiten Variante. Screenshot der Settings-App mit dem Umschalter, welche Ansicht gewählt wird.

Vielleicht doch was ganz anderes?

Wie bereits geschrieben waren das zwei Möglichkeiten, die ich irgendwie sinnvoll und logisch erschienen. Vielleicht hast Du ja noch eine ganz andere Idee, wie man das machen kann, vielleicht wünscht Du dir auch einfach was neues?

Wie die Dinge innerhalb einer Kategorie sortiert werden, darüber können wir auch noch reden. Bisher sind sie alphabetisch sortiert, denkbar wäre aber auch hier eine Unterteilung nach gekauft/nicht gekauft und dann eine alphabetische Auflistung der jeweiligen Sachen.

Wenn Du die App noch nicht gekauft hast und sie dir einfach mal anschauen willst (und schnell genug bist ;) ), dann kannst Du sie dir einfach aus dem Store laden, indem Du einen der folgenden Gutschein-Codes einlöst:

Vielleicht gefällt die dir App ja, schaue sie dir doch einfach mal an! Auf jeden Fall freue ich mich über deine Meinung, dein Feedback, deinen Kommentar!

Nachtrag (10.1.16, 14:13)

Um es dir möglichst einfach zu machen, habe ich zu der Frage mal eine Twitter-Umfrage gestartet. Weil wie schon Stromberg sagte:

Wer nicht mit der Zeit geht, der muss mit der Zeit gehen.

Breaking hör ich Bad

Zur Zeit habe ich daheim keinen festen Internetanschluss. Das ist eine interessante Erfahrung. Ich verbringe die Zeit, indem ich (mal wieder) Breaking Bad sehe. Vor ein paar Tagen startete die "deutsche Version", besser bekannt als Morgen hör' ich auf mit Bastian Pastewka.

vergleichbar mit dem von Ihnen zitierten „Breaking Bad“ (sagte Norbert Himmler der FAZ)

Statt um einen an Lungenkrebs erkannten, überqualifierten Highschool-Lehrer geht es um einen Druckereibesitzer, dem das Wasser finanziell bis zum Hals steht. Er fängt dann an, Blüten zu drucken. Klingt gut, dachte ich, lud mir die aktuelle (erste) Folge aus der Mediathek und schaute sie mir an. Dabei fielen mir einige Gemeinsamkeiten und Unterschiede auf.

Jetzt werdet ihr alle sagen: "Och Nathan, vergleich doch Äpfel nicht mit Birnen. Und wann wolltest du dich eigentlich mal wieder so richtig schön in einem Blogpost über den aktuellen Zustand der Welt aufregen? Außerdem solltest du das Seriendings den Leuten überlassen, die das können! Bei dir wird das bestimmt nur so oberflächlicher Scheiß!" und ich werde sagen: "Ihr habt ja recht. Ist ja gut."

Meine Absicht ist es nicht, Morgen hör' ich auf schlecht zu reden. Bisher gibt es dazu keinen Grund (Spoiler!). Und nun los:

Der Teddy aus Breaking Bad, Anfang Staffel 2

Geldschein, der im Wasser schwimmt

Natürlich bin ich nicht der Erste (oder Einzige), der sich mit den beiden Serien beschäftigt hat. (Jetzt kommen die Leute, die es können.) Michael von Seriesly Awesome hat Breaking Bad beispielsweise gar nicht gesehen, weswegen er nichts vergleicht. SPON sagt, dass ab Folge 2 alles anders wird. Zeit Online sind der Teddy und der Fuffziger auf aufgefallen. Bei den Serienjunkies steht im Prinzip das Gleiche wie in diesem Blogpost. Ich freue mich auf die verbleibenden vier Folgen Morgen hör' ich auf. Und dann hör ich auf.

Es folgt: der Rant. Eigentlich habe ich mich schon mal darüber aufgeregt. Ich habe seit April wohl relativ wenig gelernt. Ich wollte gestern Abend den Teddy screenshoten. Heraus kam:

Screenshot von iTunes, auf dem man nichts sieht

Ich konnte es drehen und wenden, wie ich wollte. Ich bekam keinen Screenshot vom Teddy, obwohl ich mir die Staffeln bei iTunes gekauft hatte. Da war immer alles ausgegraut.

Es kotzt mich an. Ich zahle ~20 Euro für eine Staffel Breaking Bad und kann dann noch nicht mal einen Screenshot anfertigen. Nur weil irgendein gieriger Sack das Maul nicht voll genug bekommen kann und mir deshalb grundsätzlich misstraut. Das nächste Mal sollte ich mir das, was ich will, direkt aus einschlägigen Portalen herunterladen. Einfach aus Protest. Bis wir uns von DRM verabschiedet haben.

Liebe DRM-Verfechter: durch DRM wird niemand, der Missbrauch betreiben will, am Missbrauch gehindert. Vielleicht merkt ihr es ja bald mal selbst.

Berlin

Seit ein paar Tagen bin ich jetzt schon hier, heute hatte ich wirklich meinen ersten Arbeitstag. Mir sind da einige Sachen an Berlin aufgefallen:

Bisher gefällt es mir hier, auch die Leute, die ich bisher getroffen habe, sind echt freundlich.

Arbeiten überübermorgen, übermorgen und morgen

Am Wochenende war das Barcamp Rhein-Main 2015 in der FH Bingen. Es war ein sehr schönes Barcamp, an dieser Stelle nochmal vielen Dank an alle, die es möglich gemacht haben.

Bisher hatte ich auf nahezu jedem Barcamp, das ich besucht habe, eine Session angeboten. Dieses Mal war es eine interessante, lebhafte Diskussion darüber, wie wir morgen arbeiten wollen. Dieser Blogpost soll einfach ein paar Links sammeln, die während der Session durch den Raum flogen. Ich muss dazu sagen, dass in meiner Session nur Menschen saßen, die vorrangig mit dem Kopf arbeiten, von daher beschränkten wir uns auf die Wissensarbeit.

@tomww erwähnte den Film "Augenhöhe", der unter eine Creative Commons-Lizenz kostenlos auf Vimeo verfügbar ist. Darüber hinaus empfahl er das Buch "Architekten der Arbeit" von Sven Rahner.

Von Frank Hamm kamen ebenfalls einige Vorschläge. Er empfahl den Blog "The New Worker" und das Buch "Reinventing Organizations" (deutsch, englisch, Download) von Frederic Laloux. Außerdem gab es Mitte des Jahres ein Themencamp zum Thema Arbeiten 4.0, aus dem ein eBook hervorgegangen ist.

Am Schluss der Diskussion waren wir uns alle einige, dass eine vertrauensvolle Zusammenarbeit sehr wichtig in der Arbeitswelt von überübermorgen, übermorgen und morgen sein wird, wie Christine es schön zusammenfasste:

Vertrauensvolle Zusammenarbeit = ganz wichtig in „Arbeiten übermorgen“ sagt @coderbyheart in Session von @zeitschlag #bcrm15

— Christine Skupsch (@iqberatung) 22. November 2015

Ich möchte mich nochmal bei allen, die mitdiskutiert haben, herzlich bedanken. Es hat Spaß gemacht!

#seriousweggehbusiness

Ende September schloß ich mein Bachelor-Studium ab. Mittlerweile kann ich auch sagen, dass es erfolgreich war. Jetzt zeichnet es sich ab, dass ich meinen Lebensmittelpunkt von Heidelberg nach Berlin verlegen werde. Eine andere Stadt kam für mich als geborenen Schwaben nicht in Frage.

Einen Job, auf den ich mich freue, habe ich bereits. Was mir jetzt noch fehlt, das ist ein Dach über dem Kopf, am liebsten ein WG-Zimmer. Und da brauche ich eure Hilfe. Vielleicht kennt ihr jemanden, der jemanden kennt, dessen Tante einen Arbeitskollegen hat, dessen Schachpartner letztens einen getroffen hat, dessen Lebensgefährte von einem entfernten Verwandten mitbekommen hat, dass ein Klassenkamerad des Nachwuchses eines Bekannten dieses Verwandten jemanden kennt, der ein WG-Zimmer anzubieten hat. Kurz: Vkij,djk,dTeAh,dSlegh,dLveeVmh,deKdNeBdVjk,deWZah.

Ich werde im Norden von Schöneberg arbeiten, ein Schlafplatz nicht allzu weit entfernt wäre also was Feines. Vom Preis her stelle ich mir irgendwas zwischen 400 und 550 Euro vor. Laut den üblichen WG-Plattformen scheint das ein realistischer Preis zu sein. Wie groß der Raum sein soll: Vielleicht so um die 16-20qm?

Ich würde gerne in einer WG leben, die sich nicht nur das Badezimmer teilt, sondern auch mal was zusammen macht, gemeinsam kocht, abends Bier trinkt. Entsprechend würde ich die Leute, mit denen ich dann zusammenlebe, gerne vorher kennenlernen. Da müssten wir uns dann auf einen Termin in den nächsten Tagen einigen und dann schaue ich mal vorbei. Den Job trete ich zum 1.1. an, das heisst, dass ich nicht unbedingt an Silvester umziehen möchte. Ein Zimmer ab ungefähr Mitte Dezember wäre also super. Ich würde gerne zwischen den Jahren umziehen.

Ich selbst bin Nicht-Raucher, ich habe aber kein Problem damit, wenn jemand seine Lunge auf dem Balkon teert. Was nicht geht, sind Nazis, AfDler, die üblichen Verdächtigen. Ein guter Freund sagte mal über mich, dass man mit mir kein Problem hat, wenn man mit mir kein Problem haben will. Ansonsten bin ich 23, stubenrein, pflegeleicht und mache was mit Computern.

tl;dr: WG-Zimmer, Nähe Schöneberg, 400-550 Euro, 16-20qm, ab Mitte Dezember.

Wenn du jemanden kennst, der ein Zimmer übrig hat oder einen Nachmieter sucht: Wir sollten uns mal unterhalten! Schreib mir am besten eine Email oder twittere mich an. Das gilt natürlich auch bei Fragen.

reihenfolge

ich habe zwei fahrräder im keller stehen. mit einem fahre ich mehrmals pro woche, mit dem anderen hauptsächlich im sommer. und im frühjahr und auch im herbst, wenn schönes wetter herrscht. das andere muss ich also nicht so häufig entsperren wie das eine. und doch stand das andere etwas länger vor dem einen, weil ich es nicht geschafft habe, beide so abzuschließen, dass das andere hinten an der wand und das eine davor steht.

trotzdem ist es nervig, erst das schloss vom anderen zu entsperren, dann das eine zu entriegeln und das andere dann wieder anzuschließen, wenn ich mit dem einen fahren möchte, was, wie erwähnt, mehrmals die woche passiert. das ist einfach unnötiger aufwand.

vor ein paar tagen habe ich dann ein bisschen rumprobiert, ob es nicht doch einen weg gibt, das eine vor dem anderen an das andere zu schließen. und tatsächlich, es hat funktioniert.

Das soll in den Einkaufszettl 0.4

tl;dr: Kategorien, Tutorial Einstellungen, Veränderungen an der GUI, Kleinkram

Seit Freitag Abend ist Version 0.3 vom Einkaufszettl im App Store. Was sich da alles geändert hat, habe ich vor ein paar Tagen beschrieben.

Für die 0.4 gab's schon die ersten Wünsche. Elmar regte schon vor geraumer Zeit an, das Tutorial zu überarbeiten. Das würde ich gerne angehen. Torsten und Heiko (und ich auch) hätten gerne Kategorien/Regale/Schubladen, nach denen die Dinge auf dem Einkaufszettl geordnet werden können. Bisher werden sie als flache Liste alphabetisch sortiert. Die einzige Unterteilung ist die, ob du einen Gegenstand schon gekauft hast oder nicht. Aber wie Torsten richtig sagt:

@zeitschlag und warum ordnest du die nach alphabet, kein supermarkt ist so sortiert #usabilty

— Pixelaffe (@Pixelaffe), [October 29, 2015(https://twitter.com/Pixelaffe/status/659849152927543297)

Ansonsten würde ich gerne noch Einstellungen in die 0.4 schmuggeln, damit man beispielsweise die Erfolgsmeldung abschalten kann.

Die Einstellungen und die Kategorien werden wohl einen kleinen Umbau der GUI zur Folge haben, weil ich die Einstellungen gerne in der App machen würde und das Icon irgendwo unterbringen muss. Außerdem werde ich die gekauften Dinge von den noch nicht gekauften Sachen trennen müssen, wenn ich nach Kategorien sortiere. Sonst wird das wahrscheinlich ein bisschen unübersichtlich. Ich lasse mir da was einfallen.

Auch die Liste der Dinge, die von Haus aus dabei sind, wird wohl ein bisschen wachsen, eine integrierte Gemüsepedia, weil Torsten keine Ahnung hat, wie eine Kaki aussieht, kommt dagegen eher nicht. Auch ein integrierter Barcode-Scanner schafft es nicht in 0.4. Damit muss ich mich erst nochmal eingehender befassen. Gestorben ist die Idee aber nicht, weil ich mir vorstellen kann, dass das das Schreiben des Einkaufszettl und das Erstellen neuer Produkte sehr vereinfacht. Wenn nichts mehr dazu kommt, könnte ich mir sogar vorstellen, das Feature als 0.5 einzuschieben. Wir werden sehen :-)

Was denkst du? Was soll noch unbedingt in die nächste Version vom Einkaufszettl? Fehlt dir irgendetwas?

Das soll in den Einkaufszettl 0.3

Eigentlich wollte ich noch darüber bloggen, warum der Einkaufszettl bestimmte Funktionen nicht bietet oder warum er Geld kostet. Keine Sorge, das kommt alles noch. Ich würde jedoch gerne einen Blogpost einschieben, der sich mit der nächsten Version der App beschäftigt. Sie wird die Versionsnummer 0.3 tragen. Ich habe einige kleine Änderungen geplant, auf die ich kurz eingehen möchte. Es ist eher Evolution als Revolution.

Danke an Cordula, Heiko, Jan und Lukas für euer Feedback und eure Anregungen!

###Einzelne Dinge vom Einkaufszettl werfen

Im Hauptbildschirm kannst du jetzt keine Dinge mehr direkt löschen, sondern sie direkt wieder von der Einkaufsliste herunterwerfen. Das sieht dann so aus:

Bisher ging ich davon aus, dass es ausreicht, Dinge, die man doch nicht braucht entweder als gekauft zu markieren und dann beim nächsten Drücken auf den Mülleimer zu entfernen, oder in der Übersicht aller Produkte wieder von der Liste zu entfernen.

Die Änderung hat zur Folge, dass du Dinge nur noch in der Übersichtsliste und nicht mehr in der Einkaufszettl-Ansicht komplett löschen kannst.

###Badge

Ebenfalls neu in dieser Version ist die Möglichkeit, über ein Badge am rechten oberen Rand des Icons darüber informiert zu werden, wieviele Dinge du noch kaufen musst.

Dafür nervt dich einmal ein kleines Fenster, das dich fragt, ob es dich mit Benachrichtigungen nerven kann. Wobei das Nerven sich in diesem Fall auf einen kleinen runden Kreis mit einer weißen Zahl am rechten oberen Eck des Icons beschränkt. Und wenn du das doof findest, kannst du das einfach in den Einstellungen ausschalten.

###Einheiten umbenennen

Mit 0.3 hast du die Möglichkeit, Einheiten umzubenennen.

###Direkt zur Suche

Wenn du jetzt die Übersichtsliste der Dinge beziehungsweise der Einheiten aufrufst, kommst du direkt zum Suchfeld.

###Erfolgsmeldung

Wenn du alle Einkäufe erledigt hast, erinnert dich ein kleines Fenster an die wirklich wichtigen Dinge des Lebens.

###Kleinkram

Das ist das, was dich direkt als Benutzer betreffen wird. Im Hintergrund habe ich den Code ein bisschen aufgeräumt. Außerdem liegen die vorgefertigten Dinge der App jetzt direkt bei und müssen nicht mehr heruntergeladen werden. Daran hatte ich in der ersten Version gar nicht gedacht.

###Und jetzt du!

Ich habe die nächste Version noch nicht für die App-Review eingereicht, weil ich dein Feedback abwarten wollte. Wenn du die Version 0.3 vorab beta-testen möchtest, dann schreibe mir einfach eine Email. Dann kannst du die Änderungen, die ich dir in diesem Blogpost vorgestellt habe, direkt selbst testen.

Also los: Schau dir die Änderungen an! Was gefällt dir gut? Was findest du doof? Wo fehlt dir was? Ich freue mich auf deinen Kommentar :-)

pretix auf einem Uberspace installieren

Diese Anleitung ist nicht mehr aktuell. Eine neue Version findest du hier

Nach dem #bcrn15 gab es Kritik, dass wir die Tickets über Eventbrite abgewickelt haben. Eventbrite nutzt Server in den Staaten und überhaupt: Datenschutz. Also haben wir uns auf die Suche nach Alternativen gemacht.

Eine davon ist pretix, auf das uns Leah Oswald brachte. pretix erfindet Ticketvorverkäufe neu und wird von Raphael Michel als Open-Source-Projekt entwickelt.

pretix setzt auf Django, es benötigt Python 3. Es gibt zwar eine Dokumentation von pretix, die befindet sich aber noch im Aufbau, ebenso wie pretix selbst. Um testen zu können, ob pretix für das #bcrn16 taugt, habe ich versucht, es auf einem Uberspace zum laufen zu bringen. Dabei sind mir ein, zwei Stolpersteine aufgefallen. Im folgenden möchte ich beschreiben, was ich tun musste, damit pretix auf einem Uberspace funktioniert. Der Benutzername ist barcamp, der Uberspace heisst kaul. Ich möchte noch darauf hinweisen, dass diese Installation eine SQLite-Datenbank nutzt. Die Dokumentation sagt dazu:

If you have real users on your system you’ll really want to use

A database (MySQL or PostgreSQL)

A reverse proxy web server (nginx or Apache)

Tut diese Anleitung (noch) nicht.

Im Prinzip habe ich mich an die Anleitung der Ubernauten für Django gehalten. Raphael riet mir außerdem, doch mal einen Blick auf das Dockerfile zu werfen. Auch die Dokumentation von pretix war stellenweise eine kleine Hilfe.

In einem erste Schritt installierst du Django und gunicorn mit:

[barcamp@kaus ~]$ easy_install-3.4 django gunicorn

Anschliessend lädst du pretix von Github mit einem beherzten

[barcamp@kaus ~]$ git clone https://github.com/pretix/pretix.git

Ich gehe im folgenden davon aus, dass du das Repo in einen Ordner namens pretix geklont hast, der in deinem Home-Verzeichnis liegt. Als nächstes installierst du die Abhängigkeiten von pretix mit:

[barcamp@kaus ~]$ npm install less
[barcamp@kaus ~]$ pip3.4 install -r pretix/src/requirements.txt

Dann musst du in der Datei ~/pretix/src/pretix/settings.py folgendes ergänzen:

USE_X_FORWARDED_HOST = True

Danach kümmerst du dich um die Submodules:

[barcamp@kaus ~]$ cd pretix/
[barcamp@kaus pretix]$ git submodule init
[barcamp@kaus pretix]$ git submodule update

Danach kannst du die Datenbank initialisieren und ein Administratorkonto erstellen. Das Administratorkonto brauchst du später, wenn du dich bei deiner pretix-Instanz anmelden möchtest.

[barcamp@kaus pretix]$ cd src/
[barcamp@kaus src]$ python3.4 manage.py syncdb

Anschliessend erstellst du die statischen Dateien. Das hat mir bei etwas gedauert:

[barcamp@kaus src]$ python3.4 manage.py collectstatic --noinput
[barcamp@kaus src]$ python3.4 manage.py compress

Jetzt geht es an daran, pretix aus dem Netz ansprechbar zu machen. Dafür brauchst du zuerst einen Port, unter dem die Anwendung erreichbar ist. Die Ubernauten empfehlen folgenden Weg, den ich einfach mal guttenberge:

[barcamp@kaus ~]$ DJANGOPORT=$(( $RANDOM % 4535 + 61000)); netstat -tulpen | grep $DJANGOPORT && echo "versuch's nochmal"

wenn hier keine Ausgabe versuch's nochmal erscheint, passt alles. Wenn versuch's nochmal kommt - versuchs noch mal :)

Danach richtest du den eigentlichen Deamon ein:

[barcamp@kaus ~]$ test -d ~/service || uberspace-setup-svscan
[barcamp@kaus ~]$ uberspace-setup-service gunicorn gunicorn --error-logfile ~/error-log --reload --chdir ~/pretix/src --bind 127.0.0.1:$DJANGOPORT --workers 4 pretix.wsgi --name pretix --max-requests 1200 --max-requests-jitter 50

Anschliessend überlegst du dir, unter welcher URL du pretix ansprechen willst und speicherst sie in der Variable PRETIXURL. Meine Testinstallation läuft beispielsweise unter pretix.barcamp.kaus.uberspace.de:

[barcamp@kaus ~]$ PRETIXURL=pretix.barcamp.kaus.uberspace.de

Dann erstellst du eine Datei ~/.pretix.cfg und befüllst sie:

[barcamp@kaus ~]$ cat << \_\_EOF\_\_> ~/.pretix.cfg
[pretix]
url=http://$PRETIXURL

[django]
hosts=127.0.0.1:$DJANGOPORT
\_\_EOF\_\_

Hier sei nochmal auf die Dokumentation von pretix verwiesen, die den Aufbau und die Möglichkeiten der Konfigurationsdatei schon recht gut beschreibt.

Anschliessend sorgst du dafür, dass gunicorn und pretix aus dem Internet ansprechbar sind:

[barcamp@kaus ~]$ mkdir /var/www/virtual/$USER/$PRETIXURL
[barcamp@kaus ~]$ cat <<\_\_EOF\_\_> /var/www/virtual/$USER/$PRETIXURL/.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\_\_

Herzlichen Glückwunsch, du hast es geschafft! Du kannst pretix unter der URL, die du angegeben hast, im Browser aufrufen. Bei mir wäre das die URL http://pretix.barcamp.kaus.uberspace.de/control/login?next=/control/. Dann solltest den Anmeldebildschirm sehen. Dort kannst du dich beispielsweise mit den Administratordaten, die du vorhin eingegeben hast, anmelden.

Anmeldebildschirm von pretix

Eventuell sollte ich diese Anleitung mal aktualisieren.