Meine Frau und ich haben spaßeshalber angefangen unsere Adultpoints zu zählen. Alles fing mit einem Comicstrip von Tumbledrycomics an den wir beide sehr passend fanden. Wir fingen also an uns gegenseitig Nachrichten mit Bilder zu schicken. Mal waren es die leeren Mülleimer in der Küche, mal die aufgehängte Wäsche und hatte dann auch schnell eine Ausrede parat auf der Couch zu versacken. Jetzt suche ich ja schon seit geraumer Zeit eine Motivation um endlich mal ein bisschen Zeit in Rails zu investieren. Wer mal in meinen Github Account geguckt hat, wird schnell feststellen, dass es entweder dringend nötig oder hoffnungslos ist. Mich als Sysadmin nervt es etwas, von Softwareentwicklung keine Ahnung zu haben. Scripten ist das eine, umfangreich Scripten geht auch noch, spätestens bei komplexen Systemen wie einem schlüssigen Backupsystem, oder Scripten zur Automatisierung von Hostings, kann ich nur noch Code lesen, und das auch nur wenn es nicht zu sehr in die tiefe geht. Selber schreiben geht dann doch sehr über meinen Horizont hinaus. Das will ich jetzt aber ändern.

Warum Rails?

Nach allem was ich bis jetzt gelesen habe ist Ruby on Rails eine erstklassige Sprache für Einsteiger. Sie ist sehr mächtig, verzeiht Fehler, ist nicht allzu strikt, hat eine große Community, ich habe jeden Tag damit zu tun, und so weiter. Ich verstehe auch die Leute die gegen das Konzept von Ruby und Ruby on Rails sind, und ich stimme mit vielen Argumenten überein. In einer Sprache sollte es einen guten Weg geben ein Ziel zu erreichen, nicht zehn. Aber ich bin noch so weit am Anfang, dass ich bereit bin erstmal vorwärts zu kommen. Feinschliff kommt dann später. Ich bin auch eher ein Freund von Webanwendungen, da man diese auch mal mit dem Smartphone bedienen kann.

Jetzt brauche ich nur noch ein Projekt zum basteln. Und da kommen die Adultpoints gerade richtig. Ich stelle mir erstmal eine kleine Webanwendung vor, welche Datum, Aktivität und Person in eine Datenbank schreibt und dann nach Datum, Woche, Monat oder Jahr sortiert die Punkte der einzelnen Personen ausgibt. Damit man nicht immer jeden Punkt einzeln tippen muss, sollen einmal eingegebene Posten, z.B. Sport gemacht, in einer Liste auswählbar sein. Es entwickelt sich bestimmt genau so unspektakulär wie es sich anhört. Dann will ich mal ans Werk. Zum Zeitpunkt dieses Blogartikels habe ich ca. neun Stunden damit verbracht meine Entwicklungsumgebung wieder auf einen aktuellen Stand zu bringen. Und so kommt man von Hölzchen auf Stöckchen und stellt irgendwann fest, Ich habe zwar schon das Projekt angelegt und viel Zeit investiert, aber ich habe noch nicht eine Zeile Code geschrieben. Wo ist nur die Zeit geblieben? In falschen Konfigurationen und Problemen mit git, Sub Modulen und neovim.

Da ich zuhause eher ungerne am Notebook arbeite, schließlich habe ich einen erstklassigen Rechner zum Zocken mit mehreren Monitoren, einer mechanischen Tastatur und einem Arbeitsplatz, welcher auch mal Produktiv genutzt werden will. Auf dem Rechner läuft leider Windows und das ist nun wirklich nicht zum Entwickeln geeignet. Ich ziehe meinen Hut vor jedem der das gerne macht. Ich kenne nur Java Entwickler die unter Windows entwickeln. Aber die sind ja Kummer gewohnt. Also kurz cygwin installiert und auf einen meiner Server verbunden welcher jetzt als Entwicklerkiste dient. Und dann ging es los, RVM für das richtige Ruby, Rails installieren, Puma konfigurieren, NGINX als reverse Proxy für Puma einrichten, SSL Zertifikat mit Let’s Encrypt bestellen, neovim installieren, feststellen, dass das eigene dotfiles Repository total veraltet ist und git Sub Module wirklich eigenwillig sind. Aber dafür ist das dotfiles Repository jetzt richtig schön aufgeräumt und dokumentiert (ich muss dringen noch ein init und update Script schreiben). Let’s Encrypt wurde von mir auch automatisiert, alle abgelaufenen Zertifikate stimmen wieder, das Monitoring checkt die jetzt auch richtig, Supervisor kümmert sich um Puma, die NGINX Konfiguration ist auch im git und gut dokumentiert. Aber nicht eine Zeile Code ist in der Anwendung gelandet.

Darum kümmere ich mich in den nächsten Tagen.