Über / About
Der Name Biffo?
Die Verwendung des Begriffs „BIFFO“ ist relativ einfach erklärt. Der Begriff „BIFFO“ steht eigentlich für „Business Intelligence for front office“. Die Domain biffo.de wurde in den guten 2000‘er von mir reserviert um irgendwann einmal etwas mit „BI“ zu machen. Nachdem die goldene Internetzeit lange vorbei ist und die Domain bis heute keine Verwendung fand, daher eben „BIFFO“.
Zugegeben der Name könnte auch für Hundefutter stehen, allerdings sind die Auflagen für die Herstellung von Tiernahrungsmitteln noch höher, als ein Cookie-Banner bzw. eine Datenschutzerklärung umzusetzen. Meine Abneigung gegen administrativen Aufwand beschreibe ich im nächsten Absatz.
Warum Biffo?
Ich gehöre nicht gerade zu den besten und erfolgreichsten Menschen wenn es um das Thema der privaten Backend-Administration geht. Rechnungen, Briefe und sonstige Schriftstücke landen bei mir/uns regelmäßig „Irgendwo“ in einer Schuhschachtel oder einer Keksdose (Bahlsen sei dank). Daher bin bzw. war ich auch kein großer Freund von jährlichen Erklärungen gegenüber irgendwelchen Behörden. Ich vertrat die Ansichten „das FA holt sich sowieso was es braucht“, „der Firmensteuerberater wird mit der Datev-Software das schon richtig machen“ und „ich bzw. wir haben sowieso nichts zum absetzen“. Leider war das eine Fehlannahme. Dank der Grundsteuerreform habe ich 2022 die Aufforderung bekommen für die letzten 4 Jahre eine Steuererklärung nachzureichen. Dank meiner chaotischen Zettelwirtschaft war das kein leichtes Unterfangen. Also entschied ich mich nach einem einfachen DMS Ausschau zu halten. Kriterien waren OSS, NAS, niedrige Betriebskosten, S/FTP, einfache Bearbeitung wie Flip, Merge, Splitt, Re-PDF und natürlich auch eine einigermaßen funktionsfähige Suche. Da keine passende Lösung gefunden wurde und ich auch keinen Bock hatte viel Geld zu zahlen oder irgendwas auf Windows Basis zu betreiben, habe ich mich entschieden eine eigene Lösung umzusetzen.
Warum diese Codebasis?
Zu Beginn der Entwicklung wurde ich direkt gefragt „Warum Java?“, „Warum kein PHP?“, „Wieso nicht Python?“ und „Warum Linux?“. Die Antworten sind auch hier relativ einfach. Ich entwickle seit 1994 Software. Zu der damaligen Zeit waren Cobol, Assembler und C die Sprachen der Notwendigkeit. Irgendwann 2000/2001 ist dann Java als OO-Sprache hinzugekommen. Bei all diesen Sprachen ist eine feste Deklaration von Variablen-Typen eine Voraussetzung für deren Nutzung. Ich bin keine Freund von Variablen die von Text bis Datum alles aufnehmen können und dann der Interpreter entscheiden muss um welchen Type es sich handelt. Früher war Hauptspeicher ein streng begrenztes Gut und die CPU-Minute wurde mit 5,- DM (Für Leute die nicht wissen was DM bedeutet -> „https://de.wikipedia.org/wiki/Deutsche_Mark“) der jeweiligen Kostenstelle belastet. Wenn jemand in meinen Java-Script Code reinschaut, ist durchaus eine gewisse Abneigung zu erkennen. Zugegeben ohne eine gewisse Interaktion gegenüber dem Anwender kommt auch biffo nicht aus, dennoch habe ich versucht so wenig wie möglich Themen wie „Responsive“ oder „User-Experience“ zu implementieren. Ich bin kein großer Freund von CSS und verabscheue „Java-Script auf Java-Script, welches dann weitere fünf Java-Script Files nachlädt.“ Als Betriebssystem ist Linux (in meinem Fall Cent-OS) die einfachste Wahl. Läuft mit wenig Ressourcen, ich kann es installieren bzw. administrieren und irgendwann wird es wohl auch eine Dockerfile geben. Ziel ist weiterhin der Betrieb auf einer NAS unter der Vorgabe „Fire and Forgett“. Auch wenn es im Privat-Umfeld nicht unbedingt notwendig ist, so unterstützen die verwendeten Komponenten bereits eine umfangreiche Skalierung.
Warum ist das So?
Ich bin für Anregungen und Wünsche jederzeit empfänglich und offen. Dennoch habe ich in der Vergangenheit sehr oft den Satz „Wenn das nicht so ist, dann setzen wir es nicht ein!“ gehört. Bei einer kommerziellen Lösung mit Sicherheit ein starkes Argument, aber bei einer OSS Lösung ohne den Einwurf von Münzen, keine gute Verhandlungsbasis. Wer aber der Ansicht ist, das bestimmte Funktionen so zu implementieren seien, kann sich jederzeit selbst hinsetzen und etwas vergleichbares hochziehen.
Warum keine Verteilung über Github?
Entwickeln ist mit Zeit, Aufwand und Arbeit verbunden. Nachdem die Lösung rein aus meiner eigenen Hand stammt und ich bis dato keine weiteren Entwickler eingebunden habe, kann ich meine eigene Codeverwaltung nutzen. Zugegeben, es besteht ein gewisser Charme den Code über eine allgemeine Plattform zugänglich zu haben, dennoch sollte man der Gefahr ins Auge sehen, dass irgendwann ein System ähnlich wie Chat-Gpt den Betrieb aufnimmt und ich dann ohne viel Arbeit mir ein Programm „entwickeln“ lassen kann. Solche Mechanismen lehne ich strikt ab. Wer Fragen hat, kann sich gerne melden.
Ferner untersage ich hiermit die Bereitstellung und die Verteilung meiner Code-Basis auf Plattformen wie Git-Hub, u.Ä. Der Code kann als tar.gz von dieser Seite heruntergeladen werden.
Stichwort Cloud?
Ja, das System ist aufgrund seiner Architektur auch Irgendwo betreibbar. Es gibt keine eingebauten Hintertüren und das System telefoniert auch nicht nach Hause (siehe Quellcode). Wenn aber Begriffe wie Fail2Ban, Open-SSH und SELinux Fremdworte sind, dann sollte biffo nicht Irgendwo außerhalb der eigenen Firewall betrieben werden, außer man ist Anhänger der weitläufigen Theorie „Ich habe sowieso nichts zu verbergen.“.
Ich für meinen Teil übernehme grundsätzlich und absolut keinerlei Verantwortung bzw. Haftung.
Über mich?
– Jahrgang 1972
– Datev Ausbildung zum DV-Kaufmann danach Softwareentwicklungsassistent 2*
– SAP-EarlyWatch (Berater / Consultant)
– BusinessObjects (PreSales-Berater)
– BI Unternehmensberatung (MD)
– Aufbau der Firma Talend in Deutschland (Business Development Manager)
– Human Inference (Senior Advisor)
– SolvencyCheck (Partner)
* Kein Witz, die Bezeichnung gab es wirklich. Kurz vor meinem ausscheiden bin ich noch zum „Softwareentwicklungsassistent 1“ befördert worden.
Danksagung(en)
Der Dank für die Umsetzung dieser Lösung gilt meiner Lebensgefährtin, meinem Hund und meinem guten Freund Marcus. Ohne den Input der Dreien* wäre das System mit Sicherheit schon viel früher fertig gewesen.
* Ja mein Hund kann sprechen und mault wenn bestimmte Dinge nicht eingehalten werden. Ich würde das gerne mit einem Video belegen, allerdings möchte ich mir doch eine gewisse Seriosität vorbehalten und ich habe keine Lust auch noch irgendwelche rechtlichen Themen bzgl. Video-Verbreitung berücksichtigen zu müssen.