Warnung an die Nutzer. Bin gerade genervt, gefrustet und müde.
Mimimi.
Was es heißt, eine Anwendung für mehr als sich selber zu betreiben.
Wie fing es an?
Hannes Sein Futterrechner sollte mir bloß helfen, eine Wiederkehr von Hannes seinen erst Struvit- und später Cystin-Harnsteinen zu vermeiden, ohne dass ich Fertigfutter vom Tierarzt füttern muss. Er musste auf meinem uralten iPad 1 in der Küche funktionieren und somit ging Excel nicht. Das Ding musste also ins Internet und per WLAN auf den Browser gebracht werden.
Also im Januar 2018 ein paar Tabellen auf der Server-Datenbank angelegt, ein paar html-Seiten und ein css-Stylessheet in mein Content-Management-System eingebaut, ein paar SQL-Queries gestrickt, das alles mittels php und JavaScript parametrisiert und los ging es:
Ab März 2018 konnte ich in der Küche am Ort der Rationsbereitung ein Futtertagebuch für Hannes führen und neben der Kalorien- und Nährstoffversorgung täglich seinen zu erwartenden Harn-pH und die zugeführte Mineralienmenge kontrollieren.
Meine Ziele waren erreicht: Ich habe die Prinzipen der Hundefütterung verstanden und meine Programmierkenntnisse nicht nur aufgefrischt, sondern drastisch erweitert.
Beim Futter wie beim Programmieren bin ich Autodidakt. D.h.: Ich mache keine formale Ausbildung, besuche keine Kurse oder Workshops, kämpfe mich nicht durch Tutorials, sondern ich fräse mich in die jeweilige selbst gestellte Aufgabe hinein, bis ich sie gelöst habe.
Warum ging es weiter?
Ich las und las und las alles über Hundefütterung. Das eine oder andere erschloß sich mir erst beim selber Rechnen. Excel ist nur auf dem stationären PC verfügbar – also baute ich nach und nach eine Mengenberechnung für Fertigfutter ein, dann Futterpläne für BARFer oder Selberkocher. Allerhand Lebensmittel wollten erst mal für sich alleine und im Zusammenspiel mit weiteren Zutaten analysiert werden, bevor sie in den Hund wandern durften. Die Datenbank wuchs auf ca. 150 Lebensmittel an. Von Hand aus Nährwerttabellen.
Schön wäre ein inhaltlicher Austausch mit Menschen, die ähnlich ticken wie ich. Ich trat einigen Facebook-Hundefutter-Gruppen bei – tatsächlich bereichernd waren die nicht so für mich: Da kommt die BARF-Fraktion mit Prozentrechnung und im Zweifel erheblichen Defiziten im Hund aus, die Fertigfutter-Fraktion will immer nur wissen, welches Futter das Beste ist und die Selberkocher betreiben BARF minus Knochen plus Zusatzpulver. Dennoch konnte ich sogar in Facebook so einiges lernen über die Hundefütterung und wie Hundehalter bzgl. Futter so ticken. Immer wieder gab es in diesen Gruppen grundlegende Highlights zum Verständnis. Und ich fand tatsächlich eine Gruppe, die sich ernsthaft mit den Grundlagen der Hundeernährung befasst.
Schließlich fand ich, was mein Rechner kann, ist mindestens das, was kommerzielle Rechner auch können. Anderswo (z.B. bei Dietcheck, Barfcheck, Napfcheck) muss man aber erst mal Eintritt zahlen – sofern man als Nicht-Tierarzt überhaupt einen Zugang kaufen kann.
Also entstand die Seite Hannes hat Hunger, auf der ich über Hannes seinen Futterrechner schreibe und was mir sonst an wichtigen oder unterhaltsamen Dingen zur Hundeernährung über den Weg läuft. Ich postete in einigen Gruppen den Link und gewann ein paar Nutzer. Leider gewann ich keinen Dialog mit meinen Nutzern – aber ich hüte mich, irgendwen zu kontaktieren, der das nicht von selber anstrebt.
Aber meine Neugier war unstillbar und ich rechnete den einen oder anderen Futterplan oder die eine oder andere Fertigfutter-Zusammensetzung nach, um mir eine Meinung über die Versorgungslage bilden zu können. Ich befasste mich ausführlich mit der Zusammensetzung und Qualität von Proteinen.
Der Rechner wuchs und wuchs
Mittlerweile sind über 300 Lebensmittel und 2.500 Fertigfutter in der Datenbank enthalten, und 176 Nutzer registriert. (Update Stand 11.6.2022: 734 Lebensmittel, 9.283 Fertigfutter und 4.045 Nutzer)
Jede Funktion einer Internet-Applikation muss – anders als bei Excel – ausdrücklich programmiert werden. Gebe ich in Excel eine Formel mit Zellbezügen ein, aktualisieren sich die Werte und zugehörige Grafiken bei Änderung einer Zelle von selber – hier muss ich alles durch Funktionenselber durchdenken und formal korrekt notieren. Von a + b = c, über wenn – dann, Sortierung von Tabellen bis hin zur Nutzer-, Hunde- und Rezeptverwaltung sowie Buttons, Hilfetexte, Erklärungen und Anleitungen und jedem Strich und jeder Funktion in interaktiven Grafiken. Wann wird was wo angezeigt und was wird wie damit berechnet.
Aktuell sind neben den html- und css-Gerüsten in acht dynamischen Einzelseiten diverse Module in php nebst SQL und javaScript mit über 200.000 Zeichen Code entstanden. Nebenbei sind ein paar kleine mobil nutzbare und anmeldungsfreie Tools für Fertigfutter und Welpenfütterung entstanden. Für ein zeitgemäßes “Anhübschen” der Anwendung fehlte mir bisher die Zeit.
Warum ich gerade echt genervt bin
Ich wollte vor einer Woche mal eben einbauen, dass Hunde mit Übergewicht einen passenden Kalorienbedarf zum Abnehmen bekommen: Hannes hat “über Nacht” seine sportliche Sanduhr-Figur zum Bratwurst-Format gewechselt und ich möchte das ändern – also muss Hannes sein Futterrechner auch da mitrechnen.
Da braucht’s dann mal ein neues Feld, das funktionsmäßig an allen Stellen des Futterrechners eingreift und ganz neue Algorithmen benötigt. Und wenn ich schon dabei bin, kann ich ja auch mal Funktionen für Hunde im Wachstum einbauen, die dieses Feld auch benötigen. Obwohl das so nicht gedacht war, sind inzwischen 9 Hunde mit einem Alter unter einem Jahr registriert – die Nutzer erhalten also sowieso Quatsch im Ergebnis. Und eine Freundin erwartet Welpen und hat keine Futterpeilung. Das baue ich auch mal ein. Ist etwas komplexer und braucht noch zwei Felder.
Was soll ich sagen: Ich muss mich in den 200.000 Zeichen Code neu orientieren. Die Zeilen sind teilweise vor anderthalb Jahren entstanden und ich muss mich wieder ganz neu da reindenken. Als wenn das jemand anders geschrieben hätte.
Nach einer Woche funktioniert der Rechner immer noch nicht so wie ich das möchte. Man kann sagen, er erfasst zwar Daten korrekt – spuckt aber nicht immer (und genau jetzt gar nicht) richtige Ergebnisse aus. Ich kann damit umgehen – aber so ein normaler Nutzer? Wohl eher nicht. Und just in dieser Woche registrieren sich vier neue Nutzer.
Toll.
Die neuen Nutzer und auch die vorherigen kriegten im Bestfall allerhand sinnfreie Popups angezeigt, die ich zur Überprüfung brauchte – im schlechtesten Fall schien der Rechner zu funktionieren, obwohl er zwischendurch Unsinn auslieferte. Das ist mir nun wirklich arg peinlich, aber nicht mehr zu ändern.
Immerhin habe ich einen Disclaimer angebracht: Der Nutzer hat keinen Anspruch auf gar nichts, weil es sich um ein Hobbyprojekt handelt.
Wenn ich das Ding jetzt endlich wieder zum korrekten Rechnen überredet habe, wird erst mal ein paralleles Entwicklungssystem errichtet. Da kann ich dann auch mal über Tage oder Wochen etwas entwickeln und tiefgreifende Änderungen unfertig stehen lassen, während die letzte lauffähige Version einfach weiter läuft. Somit könnte jeder Nutzer zu jedem Zeitpunkt mit zufriedenstellender Funktionalität arbeiten.