From 7e8a8a5b764a92c492aca2867dd442d5b798827e Mon Sep 17 00:00:00 2001
From: Ichthyostega
+ ...was aber normalerweise passiert bei der Behandlung des »Expose«-Events von X
+
+ was ich hier angebe, ist eine Grenz-Version; viele der Unterseiten wurden schon länger nicht geändert, und der letzte Capture in Archive.org liegt schon mehrere Jahre zurück; daher wird dann die nächst-neuere Version geliefert, die typischerweise aus 2021 stammt und bereits auf GTK-4 bezogen ist
+
+ #include <gtkmm.h>
+
+ #include <iostream>
+
+
+
+ class MyApp
+
+ : public Gtk::Application
+
+ {
+
+ protected:
+
+ // install into the default startup handler
+
+ void
+
+ on_startup() override
+
+ {
+
+ Gtk::Application::on_startup ();
+
+ Glib::signal_timeout ().connect (sigc::ptr_fun (&MyApp::on_timeout), 1000);
+
+ }
+
+
+
+ static bool
+
+ on_timeout()
+
+ {
+
+ std::cout << "Periodic task executed" << std::endl;
+
+ return true; // Return true to continue calling this function
+
+ }
+
+ };
+
+
+
+ int main (int argc, char *argv[])
+
+ {
+
+ auto app = MyApp::create ();
+
+ return app->run (argc, argv);
+
+ }
+
+ wichtiger Hinweis: OpenColorIO LUT statt ICC-Profilen verwenden!
+
+ ...er ist inzwischen sehr tief in Ardour eingestiegen; xjadeo hat er schon „viele Jahre nicht mehr angeschaut“ — da hatte er vor langer Zeit mal beim konsolidieren geholfen; viel von dem Wissen ist dann in Ardour's video-Anzeige in der Timeline eingeflossen.
+
+
+
+ Nach dem letzten Event, im »le Sucre« an der confluence von Rhône und Saône, sind dann Frank Neumeier, ich, Robin und Jörg Nettingsmeyer zusammen spät nachts quer durch Lyon zurück ins Hotel gewandert
+
+ In die Pipeline gehören im Besonderen auch Operationen, die spezifisch sind für ein bestimmtes Ausgabe-System... +
++ Allerdings gibt es Schritte, die sind dann an die konkrete Ausgabe-Verbindung gebunden und insofern Zustands-behaftet: +
++ XSync leert die Event-Queue. Wenn sie leer ist, wird per IO nach weiteren Events gesucht. Was so gesammelt wurde, wird als Batch an den XServer gegeben und blockend gewartet, bis dieser diese Events abgearbeitet hat. Zwischenzeitlich können weitere Events aufgelaufen sein; diese kann man dann einfach wegwerfen (discard = true) oder in der Queue lassen (discard = false) ohne sie zu bearbeiten +
+ + ++ war verlinkt von einer Stackoverflow-Antwort zum Thema "redraw unter X" +
++ https://stackoverflow.com/a/17035752/444796 +
+ + ++ Das war praktisch der Anfang der Diskussion, Benny sagte, die Einleitung wirke steif, und hat einige Vorschläge im Chat skizziert +
+ + ++ ...aus dem, was ich geschrieben habe, aber nur der 2. Hälfte, und Benny's Formulierung, die um einiges glatter wirkt, da sie mehr an weithin aktzeptierte Formulierungen anknüpft. Das halte ich aber nun auch für besser, da es ja nur zum Thema hinführen soll. +
+ + ++ "is established" ist zweifellos eine viel dezentere und neutralere Formulierung, aber weicht eben auch einer Aussage in der Sache aus. Das ist immer wieder der Konflikt zwischen uns Beiden; ich mache die Aussage in der Sache ja, weil ich einen Gedankengang entwickle, anstatt nur bekannte Umstände möglichst geläufig anzusprechen; damit ist meine Formulierung meist schwierig und herausfordernd. Nachdem dann Benny einmal alles geglättet hat, stößt er dann auf die Kernaussage und sagt: das ist jetzt aber komisch, wie kommst Du da drauf? Und in der Tat, nachdem der ganze Gedankengang in der Sache weg ist, ist die Aussage, bei der der Gedankengang ankommen sollte, nur noch beliebig und far fetched. +
++ +
++ Da ich diese Erfahrung in der Zusammenarbeit mit Benny nun schon oft gemacht habe, weiß ich, daß ich an zentralen Stellen den Konflikt suchen muß. Denn letztlich bin ich es, der einen Gedanken sieht und einen Entwurf macht. Würde Benny, auf seine Weise, etwas Entsprechendes tun, ich wäre der letzte das anzugreifen...! +
+ + ++ siehe deutsche Wikipedia +
+ + ++ siehe englische Wikipedia +
+ + ++ TODO this commit requires a review +
++
'essence' does not work here. Don't know why, probably gramatical; but I+
know what you'd like too say.+
The problem with my suggestion, 'core', ist that core has several meanings.+
One meaning refers to responsibility or location. So making an insigificant+
code modification in this area; which is noot the meaning you intended with+
'essence'. However 'core' can also mean 'essence'....so this is ambiguous using+
core.+
+
'fundamental operation of the code base' might be better suited; but everyone+
gets 'core' immediately.+ + +
+ ...will sagen, er hat den generischen Ausdruck gewählt, den ich ganz bewußt nicht genommen habe, der eigentlichen Aussage wegen. Das hatten wir schon mehrfach. +
+ + ++ A complex integration process is also +
++ required for large and intricately structured systems: changes will first be accommodated within a subsystem, +
++ which is followed by joining subsystem branches into a new state of integration +
+ + ++ ebenso hier: das meiste ist sehr gut, +
++ aber manches versteht Benny anscheinend nicht +
+ + ++ was für einen native speaker schwierig zu verstehen ist, läßt er nicht gelten +
+ + ++ interessanterweise beharrt er darauf, +
++ das sei rein grammatikalisch +
+ + ++ Das passiert uns immer wieder mal, bei der Arbeit an einem Text. Und es handelt sich immer um Gedanken, die man sehr wohl im Englischen ausdrücken kann (siehe die Übersetzung philosophischer Werke, daher habe ich es ja) aber die Engländer und Amerikaner der Tendenz nach nicht gebrauchen; und das liegt wohl mehr in ihrer eigenen Kultur: die Esssenz, der Wesenskern, ein Begriff der diesen trifft — so etwas ist ihnen suspekt, das erscheint ihnen wie ein "Label" das man künstlich draufklebt +
+ + ++ Dieser gegenwärtige Trend ist kein Pendelschlag in die andere Richtung, und es geht nicht darum, die bewährten alten Methoden gegen Neuerungen zu positionieren. Allerdings laufen die propagierten Methoden im Grunde auf eine Restauration hinaus; es werden wieder mal Tools und Technologien propagiert, allerdings unter dem Thema einer aggressiven Beschleunigung und Steigerung +
+ + ++ Rein der Sache nach wäre auch nicht mehr notwendig; was derzeit an Argumenten vorgebracht wird ist vor allem dummes Zeug, formuliert von Leuten, die keine Erfahrung haben, und wieder einem naiven Technik-Glauben anhängen.... +
+ + ++ ich vermute aber, dahinter steht eine ernst zu nehmende Tendenz: Industrialisierung +
+ + ++ und impliziert eine Gegenposition — ohne sie direkt zu bezeichnen +
+ + ++ Ich würde diese Gegenposition wie folgt charakerisieren: „egal was von Deiner Industrialisierung zu halten ist — Erfahrung brauchst Du trotzdem, Entscheidungen wirst Du weiterhin treffen müssen, und den Grenzen Deiner Fähigkeiten entgehst Du nicht“ +
+ + ++ Mail-Thread "Workflow and Structure" +
+ + + ++ Mail-Thread "Workflow document update" +
+ + + ++ desen Bilder liegen im Website-Repository +
+ + ++ {imgg} = /media/img/design.gui +
+ + ++ Noch vor der ersten wirklichen Veröffentlichung, so daß die Bilder sich nicht im Core-Git niederschlagen. +
+ + ++ In v1 hatte Wouter Bilder in kleinerer Auflösung eingebaut, die auch noch manuell in Gimp beschnitten werden mußten; jetzt könnte ich diese allesamt durch die besseren Bilder aus v2 substituieren (und damit ein paar 110k Storage sparen) +
+ + ++ In design/gui/GuiDiscussion/TimelineDiscussion.txt ... der zeigt immer noch auf eine externe Adresse +
+ + ++ überprüft, das gilt für alle (es sind bisher nur ganz wenige, in den GUI-Proposals); ich hatte mich einfach darum nie gekümmert +
++ Zeile 297: +
++ +
++ /* -------- Image -------- */ +
++ span.image img { +
++ border-style: none; +
++ } +
++ +
++ div.imageblock img { +
++ padding-left: 13%; +
++ border: 0px solid silver; +
++ } +
+ + ++ commit 694ade36042c420efdeface2c80c0906ea3f5fa6 +
++ Author: Ichthyostega <prg@ichthyostega.de> +
++ Date: Mon Feb 21 01:38:15 2011 +0100 +
++ +
++ small CSS tweaks/fixes +
++ +
++ +
++ commit ed7a397aecb0c5b3b284663bb09e08494adb087d +
++ Author: raffa <raffaella.traniello@livecom.it> +
++ Date: Sun May 25 17:51:31 2008 +0200 +
++ +
++ Added tools for building a web page with asciidoc +
+ + ++ commit 8ee898954a38d9d68ef6fac0a93ceb5ffa587a6e +
++ Author: raffa <raffaella.traniello@livecom.it> +
++ Date: Sat Jan 3 18:41:09 2009 +0100 +
++ +
++ Added 13% padding to images +
+ + ++ ...denn diese würden eine Angabe direkt im <img...>-Tag übersteuern — und damit gäbe es keine Möglichkeit mehr, direkt aus dem Asciidoc heraus das Layout von Bildern zu steuern +
+ + ++ Mail-Thread "Workflow document update", direkt nach unserem Treffen auf der FrOSCon +
++ minimale Abweichungen: Wouter hat das Handle der Overlay-Bar schmaler gemacht +
+ + ++ das Bild hatte ich lediglich stärker komprimiert, um Platz zu sparen +
+ + ++ hier hat Wouter einen neuen Screenshot gemacht (vermutlich war im alten Screenshot die Position des Cursors falsch) +
+ + ++ Entwerfe auf theoretischer Ebene ein schlüssiges Konzept, wähle aber zugleich einen Zugang der dieses von den Fundementen her aufrollt +
+ + ++ siehe Blender! +
+ + ++ In der Tat, daran kann ich mich erinnern, Wouter hat diese naheliegende Konsequenz sofort gesehen. Das sollte in die Zusammenfassung rein +
+ + +You might want to rephrase "We also do not support translations that require a re-ordering of the UI" to something like "As of now, we have no plans to support translations that require... ", just to indicate that you're not opposed to the idea itself.+ + +
I've also watched your FrOSCon presentation last week. Very interesting topic and well presented! I enjoyed watching it and learned a few things about GPU's and Linux that I had no clue about.+ + +
+ Vorschlag von mir mit möglichen Themen... +
+ + ++ Commands operate at a current position +
+ + ++ commands establish parameters and qualifications from current context and previous use +
+ + ++ parameters and qualifications can be adjusted immediately +
+ + ++ Every command structure must map-down to common mouse-based handling standards; however, this down-grade can involve using specific bindings and profiles +
+ + ++ mußte dabei die scons-Soup zusammenführen; trivial ⟶ ich hab zwei neue Funktionen im V1-Stil (Resultat wird zwar nicht funktionieren, aber das ist mir egal) +
+ + ++ in Debian: linkchecker +
+ + ++ +
++ Beispielaufruf: +
++ linkchecker http://localhost:8888/ --check-extern --timeout=30 --ignore-url='.*lumiera.org' +
+ + ++ Vorsicht mit dem user agent +
+ + ++ git://git.lumiera.org/extra/froscon.git +
++ Subdir: ichthyo +
+ + ++ heute ist OpenGL ein Zugang zu einem computation device +
+ + ++ EGL verwendet ein Extension-Modell: es wird für die jeweilige Plattform eine passende Extension installiert. Diese ist nicht komplett neutral, d.h. der Client-Code hängt noch von einem allgemeinen Zugriffschema ab: man bekommt irgendwie eine »Surface« — die dann aber an verschiedene moderne APIs gebunden werden kann: OpenGL core-profile, OpenGL ES, OpenVG (2D -Grafik), Vulkan +
+ + ++ Zusätzlich gibt es eine Skizze für SDL, die ich aber auf dem Legacy-Level belassen habe (aus Zeitgründen). Also SDL 1.x (weithin gebräuchlich ist SDL v2, aktuell 2025 ist sogar v3 erschienen) +
+ + ++ Die aktuelle Struktur ist aus Kompromissen entstanden und gewachsen, erfüllt aber derzeit noch ihren Zweck. Trotzdem ist die Website-Infrastruktur etwas mühsam. +
++ Bei der Diskussion (mit Benny, in Bernbach, August 2025) ist uns aufgefallen, daß die Website eigentlich gut auf das Muster von Git-Submodulen passen würde. Es werden wohl weitere Module dazukommen, vor allem durch die von mir geplante »Knowledge Base«. Allerdings bedeuten Git-Submodule dann aber auch ein Anheben der Komplexität im Umgang mit der Website; man muß wohl zusätzliche „Handgriffe“ sich einprägen, oder die Automatisierung weiter treiben. Wir haben beschlossen, damit so lange zu warten, wie der Zustand mit den Bildern/Medien im »website-Repository« noch tragbar ist; perspektivisch werden wir die »documentation«-Struktur dann wohl doch aus dem Haupt-Repository herauslösen, vielleicht auch nur das eigentliche User-Manual. +
++ Die einzige Maßnahme, die wir nun unmittelbar umsetzen, ist, die Symlinks aus Git herauszunehmen — so daß man per manueller Einrichtung auf einer Maschine gleichzeitig mehrere Varianten der Website haben kann +
+ + ++ Das ist ein Thema mit langer Historie: theoretisch sollten Root-relative Links auf jeder Website funktionieren, in der Praxis gab es damit immer wieder Probleme. Gilt im Besonderen, wenn man die Website lokal mit einem Mini-HTTPD laufen läßt. Fazit: sollte eigens getestet werden, auch mit einem lokalen Webserver +
+ + ++ Das widerstrebt mir sofort — denn um das angemessen zu machen, bräuchte man mehr als ein »pfiffiges bash-script«. Schon nach den ersten zwei Zusatzfeatures beginnen die Probleme und Wechselwirkungen. +
++ STOP! Das bisherige Setup war so genial, weil es minimalistisch ist und genau eine Sache macht; im Grunde war es bereits problematisch, Menugen zu integrieren (aber dennoch sinnvoll). +
++ +
++ Wenn überhaupt, dann sollte man das alles durch ein kleines Python-System ersetzen, das die Website-Sources scannt, Asciidoc anstößt und sonstige Infrastruktur generiert. +
+ + ++ Tagger: Ichthyostega <prg@ichthyostega.de> +
++ Date: Mon Sep 1 02:27:12 2025 +0200 +
++ +
++ Review: Website infrastructure improvements by Cehteh from 2018 +
++ +
++ Regrouped thematically: +
++ - generic improvements of build_website.sh +
++ - additional features (Linkchecking, cleaning) +
++ - website maintainance and fixing of broken links +
++ -----BEGIN PGP SIGNATURE----- +
++ +
++ iHUEABYKAB0WIQTVnM7D++M2pMSFPUOUEG/3stxoAQUCaLToYAAKCRCUEG/3stxo +
++ Ad9LAP9rje8hIMWOY6gV5UnrbJ0+wnopy4j6GxRMWxMSoPpWVwD5AQ4HRKh9tdKe +
++ cz2r08O5G0ofTTc5fnV0GSXTZZq02g0= +
++ =ZDyL +
++ -----END PGP SIGNATURE----- +
+ + ++ bei genauerer Betrachtung ist dieses Skript auch vorher bereits extrem pfiffig — es ist ein minimales Build-System in wenigen Zeilen Bash +
+ + ++ wirlich überprüfen kann ich das nicht, ohne das Skript analtyisch auseinanderzunehmen +
+ + ++ ...ich vermute, daß diese früher automatisch den Pfadnamen "gitweb" aufgegriffen hat, und jetzt (durch Christian's Umbenennung) unter einem anderen Namen in der Datenstruktur steht. +
++ Resultat: es sind nun zwei Nodes in dem Submenü, und einer davon hat eine falsche URL +
+ + +mußte dabei die scons-Soup zusammenführen; trivial ⟶ ich hab zwei neue Funktionen im V1-Stil (Resultat wird zwar nicht funktionieren, aber das ist mir egal)
- - +- Wichtig: hier nur was wirklich gebaut ist und funktioniert! + Wichtig: auf der Doku-Seite zum Paket nur was wirklich gebaut ist und funktioniert!
From 25eb6a61e39e0f968a087f0ffce6af7cba025145 Mon Sep 17 00:00:00 2001 From: Ichthyostega+ Wir sollten darauf achten, auf den oberen Ebenen die Anzahl der Kategorien knapp zu halten — um eine gewisse systematische Auffindbarkeit zu gewährleisten; im Gegenzug dazu sind weitere Unterkategorien auf tiefer geschachtelten Ebenen eine praktisch kostenlos verfügbare Ressource, da die Kapazität eines Baumes exponentiell mit der Tiefe wächst +
+ + ++ Wenn die Design- und Archtektur-Bereiche zu sehr in die Details abgleiten, fächern sie sich in technische Belange auf, welche nicht mehr so recht systematisch in eine Kategorie passen wollen. Für die technische Dokumentation ist das kein Problem, denn diese ist ohnehin quantitativ ausgelegt. +
+ + ++ wie so oft hatte Christian eine ganz pfiffige Lösung, die zu kurz greift aber in die richtige Richtung zeigt (und auf die man erst mal kommen muß!) +
+ + ++ es gibt einen RfC: »WebsiteSupportMarkup« +
+ + ++ Die Implementierung braucht sehr wahrscheinlich einen kompletten Scan über alle Dokumente; das zu vermeiden führt direkt in ein DB-basiertes CMS. Daher, gemäß KISS sollte man erst mal versuchen das zu implementieren und beobachten, wie groß der Schmerz ist. Auch Menuegen selber war mal in zwei Tagen implementiert, ist schwer zu warten, aber erfüllt seinen Zweck inzwischen seit mehr als 10 Jahren +
+ + ++ Das größte Problem ist wohl, daß wir nicht genau wissen, was wir brauchen (abgesehen von der Vorstellung, irgenwie magisch funktionierende Cross-Links zu bekommen)... +
++ nun sind wohl 10 Jahre vergangen +
++ und das Problem besteht unverändert +
+ + ++ ...was aber vor allem daran liegt, daß ich allein bin und für mich sowiso alles per Mindmap organisiere; daher konnte ich das Problem bisher »aussitzen« — was aber leider dazu geführt hat, daß das TiddlyWiki (und meine Mindmap) ins Unermessliche gewachsen sind. Dennoch ist das Problem eigentlich brennend ernst: außer mir blickt keiner durch, und ohne mich findet niemand die Ergebnisse der umfangreichen Konzeptionsarbeit. +
+ + ++ Dieser Vorschlag stammt von Christian, und (selbst wenn der Vorschlag zunächst in zweifelhaftem Kontext stand) — es ist die einzige bisher vorgeschlagene Lösung, die mit einfachen Mitteln umsetzbar ist, letztlich sogar ohne jedwede Automatisierung +
+ + ++ ...all die weiteren seinerzeit hitzig diskutieren »Killer-Features« sind meines Erachtens Extras, die man oben drauf setzen kann; auch Übersichts- und Kategorieseiten erreicht man letztlich wieder über einen ID-Link. Der einzige Knackpunkt ist, das Eingangs-Format der Links so hinzubekommen, daß es tragfähig ist. +
+ + ++ Micro-HTTPD expandiert nicht automatisch *.html +
+ + ++ Aus mehrerlei Gründen +
++ »solange Vorrat reicht« — die ganze Frage der Duplikat-Resolution kann später auf technischer Ebene gelöst werden, solange es nur für jede verwendete ID einen Link gibt +
+ + ++ Stichworte allein sind ein flat namespace +
+ + ++ Das wäre eigentlich eine schöne Lösung, die uns weiterhin ein Content-Management-System erspart: wir erzeugen beim Seiten-Rendern eine Linkfarm, und die Links werden anhand von Tags aufgelöst, die in den Seiten als Kommentar stehen (ähnlich wie derzeit die Steuerung des Menüs) +
+ + ++ Seinerzeit wollte Christian das mal eben schnell in Lua implementieren, war aber am nächsten Tag zurückgerudert (als ihm klar wurde, daß die eigentliche Aufgabe schon etwas komplexer ist). Dann wollte sich Benny darum kümmern, ist aber bei einem Glossary-Generator steckengeblieben. Und ich — ich würde das wohl in 1-2 Wochen hinbekommen, würde dafür aber auch Menuegen neu schreiben, weil beide Aufgaben gleichermaßen eine Traversierung aller Sources erfordern. Meine Sorge dabei ist, daß das ein Performance-Bottleneck wird; denn dann brauchen wir inkrementelle Verarbeitung und damit eine Datenbank — und würden dann selber ein Content-Management-System schreiben. +
+ + ++ Und das Problem hierbei ist so typisch Christian: „man kann dann ja mit Tags arbeiten!“ — Junge, ein System von Tags aufbauen, das für unsere Zwecke funktionert, das ist die eigentliche Aufgabe. +
+ + ++ Lumiera ist keine Plattform und kein Framework — wir haben lediglich Framework-artige Infrastruktur wie in jeder größeren Applikation +
+ + + ++ hier stimmt was nicht mit dem Link auf das allgemeine Essay +
+ + ++ Okt.2009 hatten wir eine Kooperation mit der ffis.de vereinbart; in den nächsten Jahren gab es ein paar Klein-Spenden, die wir aber nicht von der ffis abgerufen haben, da wir damals keinen Bedarf hatten (Idee war z.B. immer gewesen, einem Entwickler die Reise zum Treffen zu zahlen — aber die Beteiligten konnten die Reise zur FrOSCon immer problemlos selber zahlen). Das ist zwar schön für uns .... aber eine derart veraltete Spenden-Seite wirft ein schlechtes Licht auf uns! +
+ + ++ man kann Exclusions von Exclusions definieren; das klappt aber nur, wenn diese doppel-Exclusions spezieller sind als die allgemeine ignore-Regel. Insofern wird empfohlen, solche Regeln paarweise zu definieren +
+ + ++ klar machen: Diskusssion ist abgeschlossen +
+ + ++ Name + Datum als Asciidoc-Delimited-Block +
+ + ++ also mit + einleiten und dann mit -- umschließen +
+ + ++ ...da hatte anfangs niemand von uns dran gedacht; inzwischen haben wir dutzende RfCs, und so manche gute griffige Namen sind bereis weg; generell sollte man +
+man kann Exclusions von Exclusions definieren; das klappt aber nur, wenn diese doppel-Exclusions spezieller sind als die allgemeine ignore-Regel. Insofern wird empfohlen, solche Regeln paarweise zu definieren
- - +klar machen: Diskusssion ist abgeschlossen
- - +Name + Datum als Asciidoc-Delimited-Block
- - +also mit + einleiten und dann mit -- umschließen
- - ++ Das erachte ich als dringend, denn wer schreibt, der bleibt: der typische, durchschnittliche »Techie« hat keine Ahnung vom Arbeiten mit Medien und auch keine Ahnung von Interaction-Design; die typsichen Feature-Requests, mit denen wir geflutet werden, kann man weitgehend ignorieren, es wäre schädlich für die Applikation, sie umzusetzen, bevor ein vollständiges GUI/Workflow-Konzept mit strikten Richtlinien da ist. Und ein solches Konzept auszuarbeiten, kostet Zeit und Kraft. Es ist strategisch sinnvoll, diesen Aufwand von der laufenden Entwicklungstätigkeit abzuzweigen, hoffentlich bevor das Thema allgemein bemerkt wird. Wenn man »die Leute« machen läßt, dann wird Lumiera die ursprüngliche Vision verfehlen. Denn man kennt heut nur, worauf einen der industrielle Prozeß konditioniert, und man will dann bloß das Gleiche, aber umsonst. +
+ + ++ Das ist entstanden, weil Benny zunächst allgemein helfen/beitragen wollte; ich habe vorgeschlagen, er solle sich mit dem Thema Video-Output beschäftigen, unter der Maßgabe, ob es da bereits fertige und einfach nutzbare Frameworks gibt. Er hat dann relativ bald sich auf GStreamer konzentrierte, sehr schnell ein Tutorial-Beispiel gehabt für einen Video-Player, ist an der Stelle aber stecken geblieben. Im Rückblick muß ich sagen, daß GStreamer für unser Thema vermutlich keine gute Quelle ist — man bekommt nur ein massives Framework zu fassen — allerdings hat sich Benny auch nicht selbständig lateral bewegt. Im Frühjahr 2025 haben wir überlegt, was wir zur FrOSCon machen könnten; es war bereits beschlossen, daß wir nun jedes Jahr mit mindestens einem Vortrag präsent sein wollen. Ich hatte dann die Idee, diese Recherche gemeinsam weiterzuführen, da ich die Ergebnisse nun absehbar demnächst brauche, um die Engine zu testen. +
+ + ++ Das ist ein Geschehen, das nicht „absichtlich betrieben“ wird, sondern sich den Menschen aufdrängt, in der Form eines Anspruches: Sachverhalte und Umstände erscheinen plötzlich in einem anderen Licht, in einem Zusammenhang, und diejenigen, die das nicht sehen, nimmt man plötzlich als unmoralisch wahr. +
+ + ++ ...so meine Schlußfolgerung; denn es fällt auf, daß ich keinen der noch bestehenden Links in der Wayback-Maschine finde... +
+ + ++ einige meiner Texte habe ich als HTML gespeichert +
+ + ++ andererseits: alle wichtigen Ideen für Lumiera waren von Anfang an da +
+ + ++ ...denn das ist das ist dann irgend ein Text, der 15 Jahre später in Git auftaucht; für den »Cinelerra_woes«-Text habe ich das wenigstens zeitnah gemacht +
+ + ++ einigermaßen beweiskräftig ist Publikation, welche +
++ ...denn in diesen Fällen kann man zumindest schon durch den Kontext eine gewisse Beweiskraft ableiten. Für alle anderen Formate gilt sets, daß man sie im Grunde jederzeit erstellen könnte, im Besonderen wenn die eigentliche Formatierung viel später oder in einem neuen Format stattfindet. Solche Dokumente haben dann nur einen Wert wie eine Zeugenaussage +
+ + ++ ...außer »Cinelerra woes« ... +
++ ich bin halt ein unverbesserlicher Sammler, und nachdem ich wußte, wonach ich suchen muß, hab ich sie auch ganz schnell gefunden +
+ + +
+ ...ich frage mich nämlich inzwischen oft, wann ich mir diese Ideen zugezogen habe; diese Seiten belegen für mich, daß es ich bei Lumiera im Kern um eine »Vision« handelt, die ich 2007 hatte. Und nicht um ein Konzept, welches ich mir durch endloses Nachdenken über viele Jahre ohne Realitätskontakt »zusammengesponnen« hätte.
Also im Grunde sehr ähnlich, wie bei Christian, der ja wohl auch damals bereits die komplette Plugin-Applikation vor seinem geistigen Auge gesehen hat
+
+ Sofern Lumiera scheitert, oder zu etwas ganz anderem wird, oder überhaupt jemand sich die Mühe macht, die Historie auszuleuchten — dann könnten solche Seiten auch erheblich negativ ausgedeutet werden: so eine absurde Idee, und sowas von weltfern... und dann hält man daran auch noch jahrelang fest, anstatt sich »vernünftiger Methoden« zu bedienen oder sich »wertvolle Ziele« zu setzen. +
+ + ++ dann sind es nämlich wohl nur drei Seiten; alle anderen Seiten finden sich nahezu vollständig als erste Versionen späterer RfCs +
+ + ++ 2008-03-06T06:22:27+01:00 : ProcPlacementMetaphor.html +
++ 2008-03-06T06:22:56+01:00 : ProcBuilder.html +
++ 2008-03-06T06:23:09+01:00 : ArchitectureOverview.html +
++ 2008-03-06T06:23:38+01:00 : Cinelerra_woes.html +
++ 2008-03-06T06:23:48+01:00 : best_practices.html +
++ 2008-03-06T06:24:05+01:00 : Cin3_Project_Proposal.html +
++ 2008-03-06T06:24:22+01:00 : Possibilities_at_hand.html +
+ + ++ ...im zweiten Teil hat dieser Capture vom 2008 deutlich überarbeitete Inhalte, im Vergleich zu der Version, die ich 2011 für die Historien-Seite publiziert habe. Überdies bin ich (lt. Git) damals 2011 von Moin-Moin-Markup ausgegangen. Also mußte ich irgendwo eine noch ältere Version gespeichert haben, als dieser capture hier von 2008. +
++ Beschluß: für die Historien-Seite bleibe ich bei der älteren (roheren) Fassung, aber ich dokumentiere diese Fassung trotzdem hier in der Git-Historie von dem Seitenbranch, den ich im Moment aufbaue +
+ + ++ Taucht erstmals in einem Merge-Commit im Mai 2008 auf (da habe ich das SVG wohl noch mit reingestopft) +
++ +
++ commit c0d7ae1aa2073e4e5b29f864d32a639c2864e9a1 +
++ Merge: b5d2e9486 2e58b02b8 +
++ Author: Ichthyostega <prg@ichthyostega.de> +
++ Date: Tue May 27 02:11:35 2008 +0200 +
++ +
++ Merge added builder documentation +
+ + ++ ...sie stammen alle (mit Ausnahme von »Cinelerra woes«, von dem ich noch original-MoinMoin-Markup hatte) aus einem HTML-Snapshot im März 2008. Tatsächlich habe an ganz wenigen Stellen nun doch die Grammatik repariert, denn manche Sätze waren nahezu unverständlich in der Originalform. Außerdem habe ich manuell auf Asciidoc umgeschrieben, und dabei auch bisweilen die Formatierung minimal angepaßt (Umbrüche, Titel-Level vereinheitlicht, an einer Stelle eine Bullet-List aus einer Aufzählung gemacht) +
+ + ++ Da die RfCs immer noch als eine wichtige Ebene in unserer Dokumentation gelten, sollte ihr Inhalt nicht gleichgültig sein, sondern auf Relevanz geprüft werden. +
+ + ++ bisweilen ist die Formulierung so unbeholfen, daß das Gemeinte kaum verständlich ist; manchmal fehlt etwas Kontext und ein paar Hinweise wären sinnvoll +
+ + ++ Es gibt einige RfCs aus der allerersten Zeit, die im Rückblick gradezu visionär wirken — oft aber ist bei diesen Entwürfen die Tragweite nicht klar. Daher sollten solche RfCs behutsam durch Kommentare und Textredaktion nachgeschärft und eingeordnet werden. Nicht zuletzt auch deshalb, weil man weiterhin auf diese Einträge wird verlinken müssen. +
+ + ++ eine Menge RfCs waren politisch aufgeladen +
+ + ++ Es gab eine Zeit erheblicher Spannungen zwischen mir und Christian, die gekennzeichnet war von einem Ringen um den Stli des Projekts. Stil hier im weiten Sinn. Dem entsprechend finden sich viele doppelbödige Formulierungen, oder Vorschläge, die — nüchtern betrachtet — nachgerade durchgeknallt wirken. Auch für diese RfCs halte ich eine gewisse Einordnung für angezeigt Das kann durch einen historischen Zusatz erfolgen, oder dadruch, daß ich sie in aller Form verwerfe und mir dadurch das die Deutungshoheit in der Sache aneigne. Das kann bisweilen eine Gratwanderung sein — denn es geht mir nicht darum, zu siegen oder Recht zu haben, sondern es geht mir darum, das Projekt der Sache angemessen zu navigieren. Allerdings ist das, „was Sache ist“, ein Urteil, das ich fälle, nachdem ich duch die Sachverhalte durchgegangen bin, und zwar, sein vielen Jahren, allein. +
+ + ++ Eine ganze Reihe der RfCs aus der allerersten Zeit gehören in diese Kategorie: sie entwerfen einen Arbeitsstil im Projekt, oft auch mit einer bestimmten Erwarung und Vorstellung bezüglich Formalismen und Automatisierung. Bezeichnenderweise stammen alle diese RfC von Christian. Einige wenige beschreiben Projekt-Konventionen, die sich tatsächlich auch so gehalten haben (z.B. die Anordnung der Repositories). Einge ganze Reihe weiterer Vorschläge erscheint mir komplett weltfremd (wie z.B. daß ein größeres Projekt funktionieren könnte, indem einfach jeder in Git eincheckt und nach belieben merged was gefällt, oder daß man jedwede Projektorganisation auf Git-commits zurückführen kann). Dem entsprechend hat auch nie jemand ernsthaft versucht, im Projekt so zu arbeiten. Das sollte dann auch im jeweiligen RfC vermerkt sein. Und schließlich gibt es einige wenige RfC, die die Organisation aus der Anfangszeit beschreiben; diese sind dadruch obsolet geworden, daß ich nun schon so ewig lange allein bin, und dem entsprechend anders vorgehen kann und muß. +
+ + ++ explizit wieder in die Design-Phase zurück +
+ + ++ habe ich schon vor einigen Jahren explizit verworfen +
+ + ++ Dieser RfC ist wieder so typisch Christian: er besteht aus einem sehr naheliegenden und sinnigen Vorschlag (Tags verwenden, Tags automatisch generieren, Tag-Verzeichnis generieren). Aber dann besteht er größtenteils aus einer teils genialen, teils unausgegorenen Idee, die sofort absolut gesetzt wird: eine Ontology über Tags definieren, mit logischen Operationen darauf. +
++ +
++ Diese Art Vorschläge bringen mich immer wieder in das gleiche Dilemma +
++ Und mit beiden Problemen läßt einen Christian dann allein; er hätte nur noch Interesse daran, einen extrem pfiffigen Prototypen für den weitreichenden Vorschlag ganz minimalistisch zu implementieren und dann das Thema abzuhaken. Ich finde mich dann immer wieder in dem ärgerlichen Dilemma: entweder ich lasse alle möglichen Vorschläge offen hängen, und dann laufe ich Gefahr, daß Christian irgendwann einfordert, das nun einfach mal zu akzeptieren (ohne weiter was für zu tun). Oder ich bin derjenige, der seine Vorschläge komplett verwirft, oder ich bin derjenige, der seine Vorschläge dann runter-strippt und implementiert, und mit den sich dann zeigenden konzeptionellen Problemen allein gelassen wird (so geschehen beim Lock-Cycle-detector, bei den Thread-Wrappern, seinem Interface/Plugin-System oder der Configuration). +
++ +
++ Hier entscheide ich mich dafür, den Vorschlag komplett zu verwerfen, mit den Argumenten, die ich damals schon als Diskussionsbeitrag geschrieben habe. Und zwar mache ich das aus Sorge, daß später irgend jemand auf die Idee kommt, den Vorschlag mal zu implementieren — was bestenfalls nutzlos wäre, schlimmstenfalls aber andere, wichtige Einrichtungen behindert oder verdirbt (man denke nur mal daran, wenn ein Website-Cross-Link-Generator implementiert wird, aber nur limitiert auf die hier vorgeschlagene Semantik) +
+ + ++ Dieser RfC ist ein Kuriosum — eine »Duftmarke« aus der ersten Zeit. +
++ Christian hat das vorgeschlagen im März 2008; damals waren wir schon in einer festen Projekt-Organisation als »Lumiera« unterwegs. Ich kann mich definitiv nicht mehr erinnern, was ich damals von dem Vorschlag gehalten habe. Ich weiß noch, das Christian eine heftige Aversion gegen Bugzilla hatte (und wohl auch gegen jede Art von Ticket-Management). +
++ +
+
+ Diese Erinnerung schreibe ich jetzt auch in das Ticket rein, denn was soll man sonst damit machen? So für sich betrachtet (aus gegenwärtigem Kontext) erscheint es nur absurd, einen solchen RfC überhaupt zu formulieren, aber ich sollte Christian den Kredit geben, daß er ein Problem gesehen hat.
+
+ +
++ Jedenfalls klar ist, wenig später hatten wir ein Trac, dafür habe ich gesorgt, und Christian hat es zwar anfangs auch genutzt, aber letztlich immer für "Ichthyos Ding" gehalten. +
+ + ++ daher müssen die meisten RfCs aus heutiger Sicht neu beurteilt werden +
+ + ++ Diese dokumentieren den Stil und das »Mindset« aus der Zeit der entstehenden Bewegung, aus der später das Lumiera-Projekt wurde. Typisch für diese RfCs ist, daß sie ein wesentliches Element des Stils im Projekt bereits vorgreifend darstellen, aber typischwerise auch total „über das Ziel“ hinausschießen, indem Methoden und Verfahren vorgeschlagen werden, oder gar schon als gelebte Praxis deklariert werden, welche — nüchtern betrachtet — in unserer gegenwärtigen Zeit nicht funktionieren und ihren Zweck niemals erfüllen können. Solche RfC müssen explizit eingeordnet werden +
+ + ++ ⟹ heißt: hier hat er eine Vision, die ihm wichtiger als alles andere ist +
+ + ++ ...ich fand Christian's Vorschläge in diese Richtung immer nur etwas „sonderbar“ und realtitätsfern, meist so völlig überzogen, daß ich nur „ja ja“ gesagt habe (wohl wissend, daß nichts konkretes folgend wird). Dumm gelaufen. Jetzt haben wir ein ganzes Bündel von solchen RfCs, und alle wurden entweder durchgepresst, oder durchgewunken, ohne weitere Diskussion. Ausnahme: die »Semantic Tags« von 2012. Da habe ich im Dev-Meeting kontra gegeben, und es kam bereits zueiner überraschend hitzigen Diskussion. +
+ + ++ "points define a periphery" ... möglicherweise hilft es, nicht an den jeweiligen Vorschlägen hängen zu bleiben, sondern mich zu fragen: worauf will Christian hinaus? +
++ +
++ Ich war jetzt lange Zeit allein, und insofern waren die RfC egal, denn ich weiß ja, was geschehen ist. Da ich aber nun das Ziel ins Auge fasse, ein Team aufzubauen, ändert sich die Situation. Ich muß nun dafür sorgen, meine Deutungshoheit zu ratifizieren. Ich habe diese Deutungshoheit durch harte Arbeit erlangt, nicht durch Magie. Alle entscheidenden Durchbrüche in den letzten Jahren beruhen vor allem auf Denkarbeit, also viele Stunden Reflexion, die auch aufgeschrieben und wieder gelesen wird. +
++ +
++ Meine Haltung zu dem, was Christian's Vision sein könnte (letztlich meine Auslegung!), hat sich in den letzten Jahren geändert. Und zwar von „schaug' mer mal was es in Beweung setzt“ auf „ich sehe jetzt wohin das führt und ich will nicht in dieser Zukunft leben, sondern in einer anderen“. +
++ Diese forumulieren wesentliche Elemente der Vision aus, unter der das Projekt begonnen wurde. Einige dieser RfC wurden sofort beschlossen — und die Realität in der Codebasis hat sich dann ganz anders entwickelt. Andere RfC wurden erst mal auf „noch mehr Arbeit erforderlich“ gestellt — was in jedem Fall realisitischer ist, denn in der Regel ist ein weiter Weg notwendig, um dieser Vision auch nur nahe zu kommen. Diese RfC müssen also explizit von mir neu beurteilt werden +
+ + ++ Diese RfC gibt es in verschiedensten Formen, von einer kurz hingeworfenen Idee bis zu einem elaboriert ausgearbeiteten Konzept. Allen gemeinsam ist, daß man sie alsbald beiseite geschoben hat, da den Entwicklern eigentlich von Anfang an klar war, was für ein weiter Weg vor uns liegt. Diese RfC können getrost liegen bleiben, so wie sie sind. +
+ + ++ Diese RfC sind allesamt mit Konflikten verbunden, und wurden nur deshalb formuliert, weil der Initiator schon ahnte, daß es Widerstand gegen diese Idee geben würde. Hier kann man zwei Klassen beobachten +
++ Der Beschluß-Status dieser RfC ist fragwürdig. Tatsächlich wurde über alle diese Vorschläge eine faktische Entscheidung von mir getroffen, indem ich eine Richtung eingschlagen habe, die ich für richtig halte und begründen kann. Die notwendige Diskussion mußte ich dazu mit mir selber führen und ein formaler Beschluß war nicht mehr möglich. Im Ergebnis sind nun praktisch alle charakteristischen Vorschläge von Christian von mir verworfen worden und die allermeisten meiner Vorschläge wurden weiterentwickelt und dabei jedoch substantiell verändert. Insofern ist für diese RfC eine Klarstellung notwendig +
+ + ++ Der eigentliche RfC schlägt nur vor, Lua zur verbindlichen Scriptsparche zu machen, und C-Bindings einzurichten. Die Kommentare ergeben dann aber, daß Christian diesen RfC sehr wohl im Zusammenhant mit seiner Plugin-Vision gesehen hat, und tatsächliche alle internen Interfaces öffnen und von Lua aufrufbar machen wollte. +
++ +
++ Dieser Zusammenhang haftet dem RfC nun an, und auch meine Ablehnung stellt darauf ab ⟹ es ist nicht sinnvoll, diesen RfC zu „reparieren“ +
+ + ++ ...das ist vermutlich ein Fehler in der MoinMoin-2-Asciidoc-Konvertierung gewesen: viele Diskussionsbeiträge beginnen mit einem "--", was von Asciidoc u.U. als Beginn eines »delimited block« interpretiert wird +
+ + ++ ...wodurch sie Asciidoc nicht erkennt, sondern dem vorhergehenden Absatz zuschlägt +
+ + ++ ...das geht vermutlich zurück auf das Moin-Moin-Wiki von Cehteh: Dort war es üblich, Stichworte mal vorsorglich als Link zu schreiben; in wiki-typischer Weise wurden daraus dann nicht-existente Seiten, die man sukzessive erstellen konnte. Duch die automatische Umwandlung in Asciidoc sind daraus leider sehr viele Links nach dem Muster link:blablubb[] enstanden. +
+ + ++ ...die dann aber dem gekennzeichneten Inhalt widersprechen können +
+ + ++ After a talk on IRC ichthyo and me agreed on making lumiera a multi language +
++ project where each part can be written in the language which will fit it best. +
++ Language purists might disagree on such a mix, but I believe the benefits +
++ outweigh the drawbacks. +
+
+
+
+
+ ct:: '2007-07-03 05:51:06' +
++ +
++ und zwar für zwei Dinge +
++ nenne es »can be solved« +
+ ++ deute es als ein Festhalten an einer »einfachen« Lösung +
+ ++ dahinter steckt eine Form des Verfallens +
+ ++ ⟹ auf Frederick Brooks zurückgreifen +
+ ++ Recherche: das war ja noch alles viel dramatischer +
+ ++ ...und darin liegt der Wirkmechanismus: da die Plug-ins von jemandem Anderes geschrieben werden, kann ich jetzt bereits die komplette Lösung deklarieren (und alle Einwände werden pariert mit "can be solved as a Plug-in") +
+ ++ Das meine ich auf mehreren Ebenen +
++ Warnung: gefühlte Realität +
+ ++ ...sinnlos dagegen zu argumentieren, man darf sie aber auch nicht einfach vom Tisch wischen und für „unreal“ erklären +
+ ++ Ich fand meinen Entwurf nicht sonderlich visionär, ehr naheliegend, und der Sache angemessen. Mein Entwurf wurde mit Begeisterung aufgenommen — sonst hatte nämlich niemand überhaupt einen Plan, oder auch nur einen Horizont, im HInblick auf Film, Medien und freie Software. Ich habe die Idee ernst genommen, daß man selber gestaltend handeln kann und sollte. Ich hatte mir erhofft, mit anderen zusammen gestaltend zu handeln +
+ ++ Ich fand mich in einer Bewegung und Gruppendynamik, die ich als widerwärtig und pupertär empfunden habe. Das was ich vorgeschlagen habe, wurde allerdings von den Filmemachern und Medien-Leuten sofort verstanden, nicht aber von all diesen »Techies«, auf deren Beitrag ich gerechnet hatte. +
+ ++ Aufgrund meiner auch damals schon erheblichen Erfahrung habe ich gesehen, daß mein Entwurf nicht mit allgemeinen Wünschen harmoniert (zumindest nicht anfangs, man muß einen Fokus setzen für ein derart großes Projekt). Ich habe daraufhin geschickt navigiert, und tatsächlich die anderen beteiligten Interessen ausmanövriert. Ich ging davon aus, daß mein Entwurf für das Projekt so offensichtlich ist, daß sich schon brauchbare Unterstützer finden werden. Dann hat sich aber das Klima gedreht, und jetzt sitze ich seit mehr als 10 Jahren allein in dem Projekt, und mußte mich jahrelang mit den Folgen dieser Manöver plagen. Es gab keine Möglichkeit mehr, den Konflikt auszutragen (und das Projekt ist sowiso niemals allein zu bewältigen, ich allein kann grade verhindern, daß es ganz untergeht) +
+ ++ Auseinandersetzung mit der Historie ⟹ habe Liberalismus dahinter entdeckt +
+ ++ Vor dem Hintergrund der veränderten Situation (Plan einer Stiftung) habe ich begonnen, Altlasten aufzuräumen; damit sind all diese lang begrabenen Themen wieder hochgekommen. Ich habe die aufgehobenen Dokumente und Protokolle durchgesehen, und die Erzählung zur Historie von Lumiera weiter geschrieben. Erst in dem Zusammenhang wurde mir klar, daß hinter dieser Spinnerei mit den Plug-ins eine konsistente Ideologie steckt, welche sich bei näherer Betrachtung als eine Spielart des liberalistischen Glaubens an unsichtbare Heilkräfte herausstellt. Im Rückblick erscheint das plausibel, das war (und ist) der Zeitgeist. Das kann ich aber nicht als Lösung akzeptieren, sondern empfinde es als ungerecht. +
+ ++ Darin steckt mein Verlangen nach Rache: ich habe zig mal die Erfahrung gemacht, daß ich meine Haltung und meinen Entwurf überhaupt nicht formulieren kann, weil man mir gar nicht zuhört, sonder wie verblödet immer nur seinem Aberglauben an die magischen Kräfte des Kollektivs frönt. Nun schaffe ich mir eine Konstellation, in der alle diese Kollektiv-Schafe ihr blödes Maul zu halten haben. +
+ ++ Meine Haltung war bisher — ehrlicherweise eingestanden — auch nur eine intuitive Einschätzung „das kann so nicht funktionieren was ihr euch da so vorstellt“. Damit allein werde ich keine Debatte bestehen können, und schon gar nicht gegen einen »Zeitgeist«. Also brauche ich eine bessere Position, die die Frage nach der konkreten Architektur und der Rolle von Plug-ins auf einen Boden stellt, auf dem überhaupt argumentiert werden kann. Wenn überhaupt, dann ist die Gelegenheit für strategische Weichenstellungen jetzt (auch bezüglich dessen, was ich für später offen lasse) +
+ ++ Das ist ein strategischer Ansatz +
++ ...das war am Ende eine erhebliche Schwierigkeit, und hat mich fast eine Woche Arbeit gekostet. Denn zunächst einmal bin ich induktiv vorgegangen, und damit meine ich, aus einem Verständnis des Stoffes — der Text ist nun sehr lang und mühsam zu lesen. Zwar geht es mir um das, was zwischen den Zeilen steht. Aber beim Lesen muß man dennoch das Gefühl haben, daß der Text wohin führt. Und zwar, da es sich um einen Essay handelt, und nicht um einen wissenschaftlichen Artikel, sollte der Text zum Anfang zurückführen. +
+ ++ habe nun alle RfC durchgesehen und verstehe einige Zusammenhänge besser +
+ ++ Erste Mail: Oktober 2006. +
++ Diese Mail war versehentlich auf die Mailingliste geraten, und zeigte, daß damals Cehteh und Johannes Sixt (vom Cinnelerra-CV-Team) zusammen ein Git-Repo aufgesetzt hatten +
+ ++ zunächst bezogen auf ein Independent-Film Project, für das versucht wurde, auf Cinelerra zu editieren, weil Cinelerra damals die erste leicht zugängliche Methode war, HDV-Video zu editieren. +
+ ++ war aber bereits etwas skeptisch, da er Cinelerra länger kannte als Cehteh +
+ ++ Und zwar lediglich, weil er davon nichts wußte. Diese Initiative war nämlich nirgends angekündigt; man mußte viel auf IRC sein, um mitzubekommen, daß da was lief. Ichthyo hatte sogar Cehteh und Johannes Sixt chatten gesehen, und nicht recht verstanden, worum es ging: sie haben nämlich versucht, die neueste Version Cinelerra v2.1 mithilfe von Git nochmal gemerged zu bekommen. Cehteh und Ichthyo sind erst im Mai direkt ins Gespräch gekommen, und dann hat Cehteh sofort Ichthyo eingeladen, sich auf pipapo.org einzubringen (d.h. Ichthyo bekam Schreibrecht auf das Wiki). Allerdings hatte Cehteh bereits ein halbes Jahr vorher für Ichthyo ein Git-Repo auf pipapo.org eingerichtet (mit Schreibrecht), welches Ichthyo genutzt hat, um weitere Patches für Cinelerra vorzubereiten und mit Johannes Sixt abzustimmen. Ichthyo hat aber damals noch nicht verstanden, daß da eine Initiative entstand, die unabhängig von Cinelerra-CV war. Er dachte zunächst, dieses Git-Repo wäre eine neue Einrichtung von Jonannes Sixt, für Cinelerra-CV +
+ ++ ...und zwar, im Bezug auf Änderungen, die sich von der Heroine-Version von Cinelerra wegbewegen. Der Grund war offensichtich, daß der die Situation kannte, und keine Möglichkeit sah, sie zu ändern. Johannes hatte einen full-time Job als Entwickler, und ohnehin wenig Freizeit, die er nicht komplett nur für Cinelerra verbraten wollte. Er war es auch, der die Merges überhaupt zustandegebracht hat, und damit eine ganz kleine Möglichkeit geschaffen hatte, neue Patches zu akzeptieren; aber jeder Patch hat ihm persönlich Probleme bereitet (weil er dann den nächsten Merge „ausbaaden“ durfte). +
+ ++ Und zwar, obwohl (oder weil) er ein extrem erfahrener Programmierer und Project-Lead war. Er wußte einfach, daß er keinen Code mehr anfassen würde. +
++ Dahinter verbirgt sich eine tragische Geschichte: er hatte ADHS, war mit Ritalin behandelt worden, und Ritalin-süchtig geworden, hatte einen kompletten Zusammenbruch mit Burnout durchgemacht, und war von Opera in Frührente geschickt worden (mit 40 Jahren). Er war bereits mit bedrohlichen Nebenwirkungen vom Ritalin-Abusus konfrontiert, und die Ärzte hatten ihm vorhergesagt, daß er vermutlich in wenigen Jahren in eine Art Demenz gleiten würde. +
+ ++ hat aber — mangels Erfahrung — sich nicht getraut, viel Code beizutragen; er hat den Code gelesen, Typos in Kommentaren korrigiert, Formulierungen in den Wikis verbessert und viele (sehr gute!) Fragen gestellt. +
+ ++ ...und hat dabei sehr viel gelernt, was im Umkehrschluß bedeutet, daß Cehteh ihn intensiv gementored hat, und ihm viele Programmiertechniken beibringen mußte, die auf der Uni nicht gelehrt wurden. Er hatte nur ein Semester "systemnahe Programmierung" gehabt, und Spaß daran gefunden, aber die Uni hat nicht mehr geboten, als ein paar Programmieraufgaben in C. +
+ ++ die C++ - Strukturen von Ichthyo hat er bewundert, +
++ vieles aber nicht verstanden und wollte dort keine Last sein. +
+ ++ Und zwar überwiegend in der Rolle eines »Bewunderers«: er war bei allen Diskussionen dabei, hat sich oft nichteinmal getraut, Fragen gestellt, und dann anschließend in langen Chat-Sitzungen sich alles im Detail von Ichthyo erklären lassen. Er sagte damals immer wieder, daß er so gerne mit dabei sein wolle, aber was hier gemacht würde, sei um „mehrere Stockwerke zu hoch“ für ihn +
+ ++ Das war von Cehteh als „eigentlich ein Anfänger-Job“ eingestuft. Daher hat Cehteh ihn angehauen, „Siemon, das packst Du!“. Tatsächlich hat Simeon den größten Teil der Implementierung geschrieben, so wie sie dann viele Jahre in der Codebasis verblieb. Allerdings brauchte er permanente Hilfe von Cehteh; die beiden waren beinah täglich zusammen im Chat und Cehteh hat den Code von SimAV reviewed +
+ ++ Und zwar handelte es sich um Code von hoher Qualittät, rein als Library konzipiert, sauber strukturiert, gründlich getestet +
+ ++ ...er ist aber nie selber eingestiegen, sondern hat darauf gewartet, daß Cehteh die entsprechenden Teile im Backend implementiert, in denen seine Library eingebunden würde; die Developer-Gruppe hate Anfangs in aller Form beschlossen, daß Lumiera auf dem Gmerlin/Gavl-Framework von Burkhard aufbauen sollte. Burkhard hat immer klar gemacht, daß er nicht direkt in das Lumiera-Projekt einsteigt, weil sein eigenes Projekt (der Gmerlin Videoplayer) bereits seine volle Kapazität braucht. Und da Christian kaum je etwas für das Backend getan hat, sondern Plugins und Frameworks gebaut hat, kam auch Burkhard nie weiter in das Projekt und verschwand irgendwann von der Bildfläche +
+ ++ OpenStreetMap project. +
+ ++ Hatte damals die Idee, +
++ die verschiedensten Video-Entwickler +
++ in einem Meta-Projekt »Open Video« +
++ zusammenzubringen +
+ ++ Die Mailingliste dazu hat Cehteh auf der Infrastruktur von pipapo.org und später von Lumiera gehostet; leider ist diese Initiative relativ schnell ausgetrocknet (es gab wenig zu besprechen, jeder hat sein Ding gemacht) +
+ ++ Fazit: es hat sich erübrigt +
+ ++ commit 13b963ba5bc39603c1d425752f07d8b3941f01ba +
++ Author: Christian Thaeter <ct@pipapo.org> +
++ Date: Mon Jun 18 01:14:12 2007 +0200 +
++ +
++ initial commit, just tiddlywiki tests +
+ ++ commit 0a9c2599dd49990b8ccf779a44abdaba626bdd86 +
++ Author: Ichthyostega <prg@ichthyostega.de> +
++ Date: Tue Jul 3 00:13:12 2007 +0200 +
++ +
++ some cleanup. Set Version=3+alpha.01, add a helloworld-main to make it compile +
+ ++ commit 0a9c2599dd49990b8ccf779a44abdaba626bdd86 +
++ Author: Ichthyostega <prg@ichthyostega.de> +
++ Date: Tue Jul 3 00:13:12 2007 +0200 +
++ +
++ some cleanup. Set Version=3+alpha.01, add a helloworld-main to make it compile +
+ ++ commit a313ea87a588241a1db72b6cac6e2aee2b512fc7 +
++ Author: Christian Thaeter <ct@pipapo.org> +
++ Date: Sun Jul 15 02:23:37 2007 +0200 +
++ +
++ Work in progress, just for review +
++ src/lib/plugin.c +
++ src/lib/plugin.h +
+ ++ commit 471148b7db2e41f2c081760cc367710ce6999da9 +
++ Author: Christian Thaeter <ct@pipapo.org> +
++ Date: Thu Jul 19 05:10:14 2007 +0200 +
++ +
++ basic automake setup +
+ ++ commit ebb4da6cc738392c015c7d66c54c6483331459f4 +
++ Author: Ichthyostega <prg@ichthyostega.de> +
++ Date: Wed Aug 8 04:50:02 2007 +0200 +
++ +
++ ** Start Coding ** Renderengine sources generated, reformatted and made compilable. +
+ ++ commit ed4decb5de9c6c22bb0f9173e3d239fefe9453e7 +
++ Author: Christian Thaeter <ct@pipapo.org> +
++ Date: Sun Aug 12 04:10:10 2007 +0200 +
++ +
++ added notes from yesterday irc discussion +
+ ++ commit 45c21677009dfc733d0ecd6f26d783c99b2818d5 +
++ Author: Ichthyostega <prg@ichthyostega.de> +
++ Date: Mon Aug 13 09:55:32 2007 +0200 +
++ +
++ wrote a very simple Test-Suite runner and provided a Tests source tree +
+ ++ commit ce3eb42131b0f8f809b00ef9a7759eb885e684d3 +
++ Author: Christian Thaeter <ct@pipapo.org> +
++ Date: Mon Aug 13 17:22:07 2007 +0200 +
++ +
++ test suite works now basically +
+ ++ Die Git-Historie der ersten Wochen ist im Rückblick durchaus aufschlußreich. In der offiziellen Kommunikation haben Cehteh und Ichthyo über eine gemeinsame prototypsiche Applikation geredet, während gleichzeitig jeder auf seinem Branch »Fakten geschaffen« hat, die nicht koordiniert waren, und sich konzeptionell widersprechen. Das hier ist ein gutes Beispiel... +
++ Jeder integriert „seine“ Tests natürlich in „das“ Buildsystem (was auch bereits disjunkt war, Autotools für Cehteh, SCons für Ichthyo). Es ist definitiv klar daß man Unit-Tests wollte. So klar, daß seinerzeit nicht weiter darüber geredet wurde +
+ ++ Ein Rant von einem User aus Argentinien. Das "Cinelerra-3"-Projekt war offenbar nur wenigen bekannt. Christian und Hermann Robak haben irgendwann im Thread geantwortet +
+ +
+ <e.chalaron@xtra.co.nz> wrote:
+
++
+ Well I am sorry, but the way icons look is of the last relevance
I + don't work better because icons look better. They could look better
but + I could not care less either.
+
+ +
+ +marquitux caballero wrote:+
++in the comunity very cool people tried to explain me thos things, but +they seems to be very focused in specific issues, and those BASIC +things, are not important in this part of the coding process, and they +told me those things are BUGs... really? bugs? or bad plannig, or even +no global vision?+
Few people from IRC gathered together to plan a rewrite/redesign of what +ought to become 'Cinelerra 3'. + +Please take a look at: +http://www.pipapo.org/pipawiki/Cinelerra3/DesignProcess/Manifest +http://www.pipapo.org/pipawiki/Cinelerra3 + +So far we have very cool ideas about a new design which allows a lot of +things which are currently not possible, some coding has started but +this is rather in a experimental, preparation phase. + +The downside is that we massively lack developers, unfortunally many +previous contributors fallen away because they finished university, got +new jobs or whatever. We aim to make cinelerra3 a open project where +anyone can join and help as much as possible! If you are coder and +interested, just join us. + +I've send a http://www.pipapo.org/pipawiki/Cinelerra3/Announcement about +this 'cinelerra 3' project to all developers, so far the responses where +very sparse but postive. + +A note to all 'users' reading this: Please refrain from sending feature +request and ideas to us, its way to early and only costs our time to +explain that we consider this things later. Ichthyo and me decided to +design cin3 from ground up. Interested people should start by checking +out the git repositories and review what is there. If you know how to do +things better ask the responsive author of the current thing on IRC or +via mail and do a discussion with the involved people about it. Speaking +for me, I would like to see improvements and new ideas, but I don't want +to become overthrown by people just dropping ideas and then disappear. + +Further note about HV's involvement: I informed him at first about this +ideas, but his responses are sparse as usual. It is clear that this may +only become Cinelerra 3 if he acknowledge on this project at some time +and he is invited to join and contribute whenever and as much he wants +to do (we aim to reuse code and ideas from cin2 anyways). Cinelerra is a +heroinewarrior project, Cinelerra CV is a (friendly) fork of it, we +don't want to take over the project, our goal is just to make the best +free Linux Video editor in existence . + + Christian + +_______________________________________________ +Cinelerra mailing list +Cinelerra@skolelinux.no +https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra ++
+ +
+ +This my maybe arguable view how to hive Cinelerra CV out of its +develoment stall: + +1) Change the focus of CinelerraCV +Currently CVs goal is repackaging the HV version and fixing bugs. +But a real community version should acknowledge progress and new +features which are contributed by the community. + +2) Stop using SVN +Even if commit access is generously handled to people who ask, it's +still a big blocker as I explained earlier. As long we have only one +linear history everything has global impact and there is no easy way to +add new features without running in troubles. There is no easy way that +small groups of people try and review new features, no easy way to get +good but intrusive new ideas back into CV. + +3) Make releases +Cinelerra CV has only this SVN there is no release schedule and no +defined point when the source is called to be stable (well we can't +define in a lack of testsuite and presense of many bugs anyways). This +yields the result that anyone (including distributors and packagers) +build on some (maybe recent?) svn revision. There are packages from many +different versions out there which makes it not really easy to track +reported bugs down. Users have doubts which is the best version for them +already just because this linear revision history without release +statements, which is imo more worse than a magnitude of git branches +with defined releases (and maybe bugfix revisions on them) + +4) Make tracking HV less important +We want some branch which tracks heroines versions and refactors it into +smaller commits as we are doing now, but this should be considered as +tool and foundation of any work which is done on our releases. This +means the CV version should be maintained in another branch and new +features should be added on our development (or release) branches. +Finally we may provide a backporting branch where imminent bugfixes are +prepared to be mergeable with the hv-tracking version. So this becomes a +way how we can contribute back to HV which is currently not a easy case. +Maybe Adam once speaks about what he wants, so far he complained that +the community didn't provide much useable feedback .. and admitably he +was right, takeing HV less important will actually allow us to do more +work and thus may provide more benefits for HV getting some +contributions feed back. + + + Christian + +_______________________________________________ +Cinelerra mailing list +Cinelerra@skolelinux.no +https://init.linpro.no/mailman/skolelinux.no/listinfo/cinelerra ++ +
+ ...also der ganze Kreis an einführenden Seiten, die bis heute in meinem Renderengine-TiddlyWiki herumhängen. Und alle wesentlichen UML-Diagramme. Sogar über die Builder-Entities habe ich mir bereits ausführlich Gedanken gemacht +
+ ++ Error, Locking, Plugin und eine Linked List +
+ ++ Zunächst einmal, ich wußte mit UML umzugehen, Christian hat nach einem ersten Gehversuch aufgegeben. Daher habe ich per Generierung bereits einen großen Haufen Klassen angelegt, d.h. der C++ - Code dominierte absolut. Aber für Christian war das einfach durchschaubar (und ich habe das auch betont). +
++ +
++ Abgesehen davon hatte ich ein Asset + MObject-Framework angelegt und Tests für CRUD-Operationen in der Session. Wobei die Session damals ein kompletter Mock war. Außerdem hatte ich eine Reihe von Test-Skeletten für den Builder und den Aufruf von Nodes, aber dort war alles praktisch nur Platzhalter-Code, und ich kam bereits nur noch langsam voran. +
++ +
++ Im Vergleich hat Christian nur sehr wenig gebaut, und das waren elementare Sachen, die aber vollsändig und routiniert. Ich habe eine weit ausgreifende Struktur skizziert, die fast nur aus Dummies besteht +
+ ++ In diversen Diskussionen, die ich heute gelesen habe, ist immer nur von "CT" die Rede. Auch Herman Robak rehted immer nur von Christians Initiative. Ich sehe Antworten von mir, die wie "5. Rad am Wagen" rüberkommen, oder wie jemand, der sich wichtig machen möchte, und sehr akademisch redet. Meine wenigen Aussagen wurden in Diskussionen in diesem ersten Herbst praktisch nicht aufgegriffen. Allerdings bin ich in die Threads mit den Usern auch wenig eingestiegen, deren Argumente waren mir zu blöd, um darauf einzugehen. Das war ganz anders als sonst, ich finde viele Beiträge von mir, in denen ich Usern mit Cinelerra geholfen habe, und daraus ist ein Gespräch entstanden. +
+ ++ ich erinnere mich, daß andere Leute von "Deinem neuen Projekt" geredet haben, und Christian dann immer darauf hingewiesen hat, daß das nicht "sein" Projekt ist. Er wollte es auch nicht auf pipapo.org hosten. +
+ ++ Ich erinnere mich, argumentativ auf die Leute einzugehen, und zwar vor allem auf die Anfänger. Ich kann mich erinnern, daß Christian grade den Anfängern gegenüber oft von oben herab kam, und schnoddrig war. Ich erinnere mich auch, in Debatten auf IRC stark präsent gewesen zu sein, und sehr für unser Projekt geworben zuhaben. Ich hatte auch lange, lange Gespräche mit Raffa und Co. über allgemeine Themen und Film. Chistian dagegen hing auf dutzenden anderen Channels herum, und hat dem Cinelerra-Channel nur begrenzte Aufmerksamkeit gewidmet. Er war auf anderen Channels oft in routiniertes Ping-Pong mit unendlich vielen anderen Leuten involviert, die sich alle kannten. Demgegenüber war ich dort ein kompletter Außenseiter, und hab mich auf diesen anderen Channels (z.B. Debian, Free Software) auch tunlichst rausgehalten. +
+ ++ Also das Gefühl, daß das alles dermaßen gut aufgeht, und wir so unglaublich produktiv sind, daß sich ein laufendes System in ein paar Monaten hinstellen läßt, wenn man nur wirklich hart arbeitet. Es bringt mir auch die Erinnerung zurück, daß ich nicht hinterfragt habe, wie das Verhältnis zu Cinelerra ist. Das hier war »Cinelerra-3« und im übrigen gab es ja meinen Projektplan, mit dem man das irgendwie den ersten Meilensteinen zuordnen könnte. Auch das Gefühl: wie wir dann weiter vorgehen und das in Cinelerra einbauen, überleg ich mir, wenn die Engine läuft. Denn eine laufende Engine kann ja schon mal nicht falsch sein. +
+ ++ Diese Erinnerung bringt erstmals das Gefühl einer auszehrenden Schwere. Ich bin einen ganzen Tag dagesessen, draußen regenete es. Von Zeit zu Zeit war ein rätselhaftes "Tuuut" auf 1kHz draußen zu hören, das ich nicht verstanden habe, nicht klar ob eine Glocke oder ein Signal. Währenddessen habe ich mit mit der Asset- und MObject-Hierarchie herumgeplagt, die Struktur und die Logik wollte nicht aufgehen, ich sah keine Möglichkeit, einen Test zu schreiben, und ich habe vergeblich nach einem Ankerpunkt gesucht, von dem her ich den Code aufrollen konnte. Es war ja letztlich eine Sammlung von UML-generierten Klassen-Skeletten, die ich nun versuchte, zusamenzuhängen. +
++ +
++ Später, als es schon dämmerig wurde, bin ich in den Supermarkt gegangen (war damals noch nicht einmal der Rewe). Vor dem Eingang hab ich wieder das rätselhafte "Tuuut" gehört, bin dann im Regen die Aberlestraße entlanggefahren und durch den Park im Südbad. Auch dort war es zu hören, und ich konnte nicht orten, von woher es kam, oder was es war. Erst einige Tage später habe ich oben, hinter der Margarethen-Kirche eine Baustelle an der S-Bahn entdeckt. Es war also ein ganz banaler 1kHz-Sinuston aus Lautsprechern, die an der Strecke entlang standen. +
+ ++ Und zwar in den ersten dokumentierten Diskussionen, auf der Cinelerra-Mailingliste mitte August. (Beachte, Adam konnte das lesen — das zeigt, daß Christian unreflektiert gehandelt hat). +
++ +
++ Des genaueren sagte Christian, er habe versucht, die Cinelerra-Codebasis zu refactorn und verbessern, und habe es aufgegeben, da "bottomless pit". Ich weiß aber definitiv, daß er das nicht im Sommer getan haben kann. Also muß er bereits im Frühjahr zu diesem Schluß gekommen sein, hat aber andererseits meinen Umbau-Plan zumindest verbal unterstützt (aber schon solche kommentare reingeschrieben, wie "wäre es nicht besser allses neu zu bauen?" +
++ +
++ De facto hat Christian nur an seiner Applikations-Basis gearbeitet: das erste war der Plugin-Loader v1, dann kam das Errorhandling und die Tests. Es war alles von Anfang an ausschließlich auf C angelegt. Auch hat er nur kurz etwas mit SCons gespielt und dann nur noch mit seinem Autotools gearbeitet. +
+ ++ Ich weiß ganz sicher, daß ich niemals einem Projekt beigetreten wäre, einen Video-Editor komplett neu zu schreiben. Da hätte ich eine ganz andere Organisation vorausgesetzt, und eine echte Design-Phase. Ich kann mich auch erinnern, daß ich Christian's Glaube an die "Community" als naiv empfunden habe. Ich sah das, was wir machen, als ein alternatives Basissystem, mit dem man sich in eine bestehende, große Applikation einklinkt. +
++ +
++ De facto habe ich an einer naiv objektorientierten Klassenhierarchie gearbeitet, und erst mal versucht, als Java-Entwickler mit C++ klar zu kommen. Um den C-Code von Christian habe ich mich kaum gekümmert, und mir gedacht, wird man dann schon irgendwie aufrufen können, schließlich kann C++ ja auch C. Ich erinnere mich auch, daß ich Angst vor der Systemprogrammierung hatte, und froh war, daß mir Christian das abnehmen wird. Ich dachte, die Beiträge von Christian werden schon noch kommen. Das was er anfangs gemacht hat, habe ich gar nicht erst genommen, und für Experimente gehalten. +
+ ++ die Plug-in-Kontroverse war bereits damals, in den ersten Wochen +
+ ++ wie kam es daß wir neu gebaut haben? +
+ ++ Einsicht: der Plugin-Streit war bereits in den ersten Wochen +
+ ++ ...das habe ich in der Erinnerung komplett anders angebunden: mein Bild war, daß das erst Jahre später passiert ist, und sich langsam hochgeschaukelt hat +
+ ++ schon die erste lange Antwortmail ("how to proceed?") erscheint latent-feindselig. Und die zweite, grundsätzliche Mail ist eine Kriegserklärung. +
++ Im Rückblick waren dafür die Anzeichen schon viel länger da, aber ich habe sie übersehen, bzw. als Joke abgetan. Hätte Christian gleich von Anfang klar gesagt, daß er sich gegen moderne Methoden definiert, und nur die Imperative Pogrammierung alten Schlages für sinnvoll hält, dann hätte ich mich vermutlich überhaupt nicht näher auf ihn eingelassen, und das gesamte Projekt wäre nie zustandegekommen. Christian aber war locker-eschmeidig, und ich war ebenso stets aufgeschlossen und interessiert und habe ebenso nicht gesagt, daß ich einen solchen Ansatz als "oldschool" komplett ablehnen würde. Hinzu kommt, daß Chistian selbstbewußt auftritt, und ich dagegen sehr stark meine eigenen Schwächen sehe, und daher stets vorsichtig bin und meine Position absichere. +
+ ++ Und das hat mehrere Quellen +
++ Und zwar in zweierlei möglichen Richtungen (ich erinnere mich jetzt, nach Lektüre der ganzen Dokumente, daß ich das damals bereits so gesehen habe) +
++ Deshalb ist die Beurteilung dieser Kontroverse so schwierig +
++ Bedingt durch diese Diffusität, hat sich das Thema plötzlich in eine Debatte entladen, wurde aber nicht geklärt. Infolgedessen konnte Christian seine Vision nicht realisieren und hat letztlich mit Lumiera gefremdelt, aber jahrelang noch versucht, Elemente seiner Vision doch noch unterzubringen. Und ich habe jahrelang versucht, mit seinen Beiträgen zurecht zu kommen, die aber nicht wirklich mit der Applikation zusammenpassen, die real entstanden ist +
+ ++ 8.7. +
+ ++ 9.7. +
+ ++ Ersichtlich erst schon in den Mails, aber ganz schlagend in der einzigen Debatte, die ein direktes Gespräch war (auf IRC am 10.7): +
++ Christian blieb im Projekt, das Projekt lief weiter, und ich habe von seinem Netzwerk profitiert +
+ ++ das eigentliche Projekt, das grade so hoffnungsvoll begonnen hatte, und das für mich so beglückend aussah, war mit einer Explosion untergegangen. Ich hatte gehofft, als einer von Gleichen, aufgrund meiner Fähigkeiten anerkannt zu werden, und gemeinsam etwas zu schaffen. Das war nun nicht mehr möglich; stattdessen mußte ich nun taktieren, lavieren und manipulieren. +
+ +Wow Du hast hast mächtig vorgelegtb mit deiner uml/wiki doc. + +Wie Du vllt siehst hab ich ausser bisschen wiki kosmetik noch nicht viel +gemacht, ich schreib gerade mal was zum backend was ich hoffentlich +nacher noch einchecken werde. Deine sachen hab ich alle bei mir gemerged +und alles auch in den mob geschoben. + +Ich hab noch ein paar fragen/vorschläge: + +* Beim wiki mergen hatte ich den ersten conflikt der von hand aufgelöst +werden musste. Beim schreiben von tiddern sollten wir drauf achten das +sie mit einer 'newline' enden, damit das abschliessende <\pre> auf eine +eigene zeile kommt, das sollte wesentlich besser zu mergen sein. + +* sollten wir nicht ein gemeinsames UML modell machen, dann kann man +komponenten des andern mitbenutzen und wir sehen gleich wie das mit +mergen der projectfiles klappt. Ausserdem muss man dann die +konfiguration nur einmal pflegen. + +* Dein wiki-draft ist klasse (auch wenn ich noch nicht alles blicke, +unfertig), aber wie stellst du dir das vor das man die daten pflegt? Ich +wollte anfangs eigentlich nur 'source' files im git tracken und alles +andere inklusive dokumentation wird dann vom build system gebaut. Jetzt +wo ich dein wiki gesehn hab, bin ich aber überzeugt, das wir ruhig +einige generierte sachen mit versioniern sollten. das problem ist nur, +das so hinzubekommen das es sich immer noch einfach pflegen lässt. + +Vorschlag währe das man Bouml nach doc/uml/ generiern lässt +....+
+ (es flogt nur eine Diskussion wohin man Bilder und HTML generiert, und was man in Git eincheckt) +
++ +
+ +Voßeler Hermann wrote:+
++Hallo Christian, + +gestern hab ich zum ersten mal aus den bisher im UML angelgten Klassen +Code generiert. Dazu bin ich erst mal auf einen eigenen Zweig +"prototype" gegangen, den Du auch auf cinelerra3/ichthyo findest.+
Check generierten code bitte nicht ein solange er 'nur' generiert ist, +bzw bouml noch alles parsen kann (hatten wir schon mal drüber geredet). +Ansonsten wollte ich mir das auch mal anschauen. Nebenbei hab ich noch +einige probleme mich mit UML und Bouml anzufreunden. + ++
++Natürlich sind da jetzt jede Menge Fragen offen, so z.B. den +Einrückungsstil betreffend, die Paketstruktur, wie wir die +Namespaces handhaben etc. Kann man glaub ich alles besser +anhand von einem konkreten Beispiel diskutieren+
Sollte im pipapo wiki passieren, damit zumindest Plouj und auch andere +interessierte davon was mitbekommen anstatt privater mails. + ++
+ (es flogt eine lange Diskussion über Details in meiner Mail...) +
+ ++ Bis dahin war Christian immer sehr ermutigend, fand alles Toll, hat zu allem weitere (sehr sinnvolle) Vorschläge gemacht.... +
+ ++ das war mir damals zwar unbewußt aufgefallen, +
++ ich hatte es aber schnell wieder verdrängt +
+ ++ Woher weiß ich das? +
++ Ganz einfach, ich hatte diese gesammte Mail-Kommunikation komplett und restlos vergessen; ich hatte vielmehr die Vorstellung, der Streit über Plug-Ins sei erst ein Jahr später ausgebrochen, als wir schon im Lumiera-Projket waren, und wir hätten dann den Streit "ausgeräumt" bei meinem ersten Besuch in Karlsruhe. +
++ +
++ Nun sehe ich diese Mails, und mir kommt sofort das Lebensgefühl von damals wieder, und ich kann mich an einzelne Details wieder erinnern, sogar was ich beim Schreiben einzelner Zeilen gedacht habe +
+ +++Vorhin hab ich gesehen, daß Du auch grade die ersten Schritte +in UML gemacht hast; bin schon gespannt...+
bin am fluchen, verdammt lange her das ich UML das letzte mal angeschaut +hab, das war 1.0 und da hat sich einiges getan, ausserdem fehlen mir +oder bouml einfach ein paar sachen um bestimmte dinge zu modelliern. + + Christian + ++ +
+ Er hat auf einem separaten 'prototype' branch anscheinend damit schon einen UML-generierten Satz an Klassen gebaut. Von diesem Prototype-Branch gibt es keine Spur mehr (wichtig! denn das zeigt, daß bereits vor Ende Juni mit Experimenten zur Klassengenerierung begonnen wurde) +
+ +Ichthyostega wrote:+
++So, could you please have a look at this prototype buildsystem? I pushed out to cinelerra3/ichthyo + #scons - just the buildsystem + #prototype - contains the same code plus the files of my experimental/prototype branch to compile+
morning, trying it out now , next i'll write some DesignProcess +proposals about C nameing rules, plugins and interfaces. (i am back ;)) + +note about gnu style: (how I/emacs interpret it)+
+ .... +
+ ++ ganz klar eine Anspielung an "Terminator" +
++ ... wir hatten uns eingehend über die Filme unterhalten +
+ ++ After a talk on IRC ichthyo and me agreed on making lumiera a multi language project where each part can be written in the language which will fit it best. Language purists might disagree on such a mix, but I believe the benefits outweigh the drawbacks. +
++ 2007-07-03 05:51:06 +
++ angeblich hätte er sich mir mir auf ein Multi-Language-Projekt geeinigt +
+ ++ ist das möglich oder eine dreiste Lüge? +
+ ++ Der 3.7 war ein Sonntag, das heißt, ich mußte am nächsten Tag ins Büro, bin jedoch in diesen Jahren in der Regel erst Mittags dort gewesen. Es war sehr typisch für mich, in der Nacht Sonntag ⟶ Montag noch (zu) lange wach zu sein... +
+ ++ Also eindeutig mit Smily, und ich habe entsprechend witzelnd (und wie ich denke, deutlich) geantwortet; Christian hat daraufhin sofort einen Rückzieher gemacht. Mir erscheint es allerings plausibel, daß eine solche Diskussion in einer früheren, lockereren Phase stattfand, nicht in diesem bereits angespannten Moment.... +
++ Beachte dazu auch folgendes: der erste (wichtigere) RfC »All Plugin Interfaces are C« ist datiert auf 26.9. Nur dieser erste Kommentar trägt den Timestamp 3.7. — außerdem steht dort im Pro/Contra-Teil unter "Alternatives" +
++ Just only use C++ +
++ Maybe SWIG? +
++ Implement lumiera in C instead C++ +
++ Das würde dazu passen, daß Christian vorher schon mal vorgefühlt hat +
+ ++ Und zwar in mehrerlei Hinsicht. Zum einen, Christian hat den wichtigeren + grundsätzlichen RfC gar nicht erwähnt! (Ich hatte ihn + wahrscheinlich trotzdem schon bemerkt, ich war und bin in entscheidenden + Phasen immer sehr aufmerksam). Er hat im Mail-Austausch an eben jenem + Morgen geschrieben: +
+morning, trying it out now , next i'll write some DesignProcess +proposals about C nameing rules, plugins and interfaces. (i am back ;))+
+ Natürlich könnte diese Mail für mich der Anlaß gewesen sein, nochmal + eben in den IRC zu schauen (es war 3 Uhr früh) und dann mit Christian + locker zu chatten. Warum hätte ich dann aber die Diskussion über den + GNU-Stil per Mail weitergeführt? Vielleicht, damit Plouj das auch + mitbekommt? Wäre nicht meine Art gewesen (typischerweise habe ich + wichtige Diskusionen explizit in einer Mail an alle zusammengefaßt). Und + es wäre total unplausibel, daß ich in einem Thread über GNU-Stil mich + ausbreite, aber das Thema »Multi-Language« überhaupt nicht erwähne, + obwohl es ein Punkt in einer dazwischenliegenden IRC-Diskusion gewesen + war. +
++ +
++ Was aber überhaupt sehr gegen einen möglichen mündlichen Beschluß am + frühen morgen auf IRC spricht: am nächsten Abend gehe ich auf das + gesamte Thema mit einer eMail ein, und erwähne explizit die + Einschränkungen durch plain-C als Bullet-point, mit einer grundsätzlich + reservierten bis ablehnenden Haltung. Ebenso spricht dagegen, daß ich + mir nur drei IRC-Logs aufgehoben habe, von denen das erste am 8.7. + zwischen Herman Robak und Christian stattfand (aus den IRC-Logs geht + auch hervor, daß ich zu der Zeit massiv unter Zeitdruck stand und grade + ein Orgel-Tonaufnahme-Projekt lief) +
+ ++ ich habe C-Funktionen stets nur als eine Konzession betrachtet +
+ ++ Denn ich war bereits in den 90er Jahren ziemlich ablehnend gegenüber C (nicht C++). Ich hab die C-Kultur als eine Kultur der Schlaumeier und Taschenspieler betrachtet. Wenn ich also vor diesem Hintergrund nun sage, "es macht nicht Sinn, alles zwingend in Objekte zu packen", dann war das von mir als Ausdruck von Offenheit und Konzillianz gemeint. Ich wollte ausdrücken, daß ich kein OO-Fanatiker bin. Ich weiß auch sehr genau, daß meine Vorstellung ehr dain ging, daß man zwar ein *.cpp-File hat, in diesem aber nur Funktionen schreibt, die imperativ mit For-Schleifen etc. implementiert sind. Genau deshalb hat mich dann auch Christian's Versuch, reines C zu etablieren (später, wie es um main() und das Start-up ging), ziemlich empört. Ich fühlte mich ausgenutzt und betrogen, denn in meinem Verständnis hatte ich eben nur konzediert, daß man auch rein imperativen Code schreiben kann. +
+ ++ Nach dieser Leseart hätte es also zu dem Zeitpunkt keine entsprechende Diskussion auf IRC gegeben, aber Christian hat sich daran erinnert, daß ich einige Woche früher mal gesagt habe, es müsse ja nicht alles in Klassen gepackt werden, und für reine Video-Berechnung würde auch C gehen. Er hat das dann als Zustimmung aufgefaßt, und wollte jetzt ehr versuchen, das Gewicht insgesamt Richtung C zu verschieben, weil er sich eigentlich erhofft hatte, ein reines C-Projekt starten zu können, in das auch seine ganzen C-Tools gut reinpassen. Diese Lesart halte ich im Moment für die plausibelste Deutung. Insofern war es keine Lüge, sondern nur ein Manipulationsversuch, der mir zu dem Zeitpunkt sogar entgangen ist +
+ +Btw: seen my Interface / CStyleGuide proposal in the pipapo wiki? please +review it carefully if it looks ok, I straight go into make a referene +implementation, since this is a very low level building block. + + Christian + ++ +
+ "review it carefully if it looks ok, I straight go into make a referene implementation...." +
++ Ich lese das zwischen den Zeilen so +
++ "since this is a very low level building block." +
++ Normalerweise verwendet Christian viel "very important". Hier verwendet er "very lowlevel", das klingt, als würde er die Sache herunterpspielen wollen. Hier könnte das noch ein Zufall sein, aber in dem nachfolgenden, sehr hitzingen Streit verwendet er exakt diesen Ansatz als Hauptverteidungunslinie (Ist ja nur ein Experiment, ist ja nur optional, ich will halt bloß keine Möglichkeiten abschneiden, wir können das alles noch diskutieren, es gilt ja nicht für das C++ Zeug) +
+ +Am Dienstag, den 03.07.2007, 20:51 +0200 schrieb Christian Thaeter: + ++
++Btw: seen my Interface / CStyleGuide proposal in the pipapo wiki? please +review it carefully if it looks ok, I straight go into make a referene +implementation, since this is a very low level building block. + ++
yes, I have seen it this morning. I have to look at it more carefull +tonight, when at home. Basically, it looks OK for all external +interfaces, i.e. interfaces other external apps or components will use +to call to cinelerra or to embed within cinelerra. Good examples for +this type of things are LADSPA plugins or some video codec interface + +For use /within/ the application we should consider the following +questions first: +* how much "plugin architecture" do we want? Does a "micro + kernel/plugin" aproach help? how then do we handle extension points? +* why should we constrain ourselfs to just C linkage? For example for + the effects plugins it's just natural to require each plugin to define + a GUI object as well and then proxy the communication (Cinelerra2 + basically does the same, just does it create two instances of each + plugin class, one for the processing and one for the gui). Same for + exceptions: they wouldn't be used so commonly if they weren't + helpfull . On the other hand: for a data storage plugin/interface + I don't see much use in using classes at all because this is + procedural by nature. (Thats the point where people start intventing + all those silly singleton classes...) +* the internal interfaces shouldn't be fixed this much, because this + hinders refacturing. Well, at least until we reach beta 0.98 + +Hermann + + ++
+ +
+ ++ effektiv ist das eine freundlich verpackte Ablehnung +
+ ++ hier sage ich explizit, und mir Argument, +
++ daß ich C als Einschränkung empfinde +
+ ++ Das meine ich als echte Frage, und die ist wichtig, zum Verständnis dessen, was dann geschah. +
++ Christian antwortet am selben Abend völlig naiv und macht klar was er will +
+ +Voßeler Hermann wrote:+
++Am Dienstag, den 03.07.2007, 20:51 +0200 schrieb Christian Thaeter: + ++++Btw: seen my Interface / CStyleGuide proposal in the pipapo wiki? please +review it carefully if it looks ok, I straight go into make a referene +implementation, since this is a very low level building block. + ++yes, I have seen it this morning. I have to look at it more carefull +tonight, when at home. Basically, it looks OK for all external +interfaces, i.e. interfaces other external apps or components will use +to call to cinelerra or to embed within cinelerra. Good examples for +this type of things are LADSPA plugins or some video codec interface + +For use /within/ the application we should consider the following +questions first: +* how much "plugin architecture" do we want? Does a "micro + kernel/plugin" aproach help? how then do we handle extension points?+
imo as much as possible, I stated that the cinelerra main app should be +only a skeleton using plugins. (do we want to start more monolithic and +then factor plugins out, or plugins from start on?) + +Extensions shall be considered when designing this interfaces. I also +considered to make the plugin interface extensible without breaking +compatibility (naturally it will turn out whats needed during +development of new features) + +consider my favorite example + (based on cin2, cin3 might be little diffrent): +Cinelerra has tracks on the timeline, these tracks shall be plugins (we +provide plugins for audio and video tracks, but someone might provide +tracks for midi, 3D animation or such) + +Tracks have some gui components + 1. patchbay + 2. timline drawing (thumbs for video, waveform for audio, notes for +midi, ...) + +some internal components: + 1. list of clips on the track + 2. attached effects container + +(and some more) + +we now need to define/collect what interfaces are needed to implement +tracks. There will be not a single interface but a group of related +interfaces which in sum define the behaviour and gui rendering of a track. + * cinelerra_track_gui_patchbay_interface + defines the patchbay gui + * cinelerra_track_gui_timeline_interface + how timeline is rendered + * cinelerra_track_effects_container_interface + manage effects on the track + * cinelerra_track_clips_interface + manages clips (add/remove, order, ...) + + +these 'tracks' use in turn other interfaces we define, effects, codecs, ... + + +for effects plugins this is quite similar, we need at least a interface +for the gui component and one for the internal workings. + + ++
++* why should we constrain ourselfs to just C linkage? For example for + the effects plugins it's just natural to require each plugin to define + a GUI object as well and then proxy the communication (Cinelerra2 + basically does the same, just does it create two instances of each + plugin class, one for the processing and one for the gui). Same for + exceptions: they wouldn't be used so commonly if they weren't + helpfull . On the other hand: for a data storage plugin/interface + I don't see much use in using classes at all because this is + procedural by nature. (Thats the point where people start intventing + all those silly singleton classes...)+
The Idea is here to make it possible to write plugins in any other +language, C bindings are the best thing to make this possible. The +downside is that glueing C++ is not effortless. I think it's still worth +it, but this is just a proposal. + ++
++* the internal interfaces shouldn't be fixed this much, because this + hinders refacturing. Well, at least until we reach beta 0.98+
yes, my proposal only applies to 'external' interfaces. Unfortunally many +interfaces are considered external by this plugin architecture (whatever +we provide for us, we provide for people extenting it too) + ++
+ +
+ ++ Das geht mir jetzt so, und das ging mir vermutlich damals nicht anders. +
++ Wenn ich darauf eingehen müßte: ich wüßte nicht, wo ich anfangen soll mit dem Argumentieren... +
+ ++ Und damit meine ich eine Applikation, nicht OS-level Code. +
++ Er skizziert ja, wie er sich das vorstellt: +
+we now need to define/collect what interfaces are needed to implement tracks.+
+ Das ist das gefürchtete "dann kann man" ... und andere Leute sollen sich gefälligst mal den Arsch aufreißen, ich hab euch jetzt das Prinzip gezeigt. +
++ +
++ Chistians Vorschlag operiert auf einer formal-strukturellen Ebene: er definiert ein Schema der Machbarkeit, und da dieses offensichtlich aufgeht, ist er zufrieden und hält das für eine gute Idee — alles Weitere sind die "lots of details are still in progress to be worked out" wie er typischerweise schreibt. Dazu kommt bei Christian stets dieses Bild von der Community, die letztlich entscheidet, wohin es gehen soll, und insofern kommt es erst mal nur darauf an, etwas angefangen zu haben, was unfertig genug ist, damit andere Leute da einsteigen können. (Achtung: mir erscheint diese Haltung komplett unplausibel — und deshalb muß ich sehr vorsichtig sein, Christian nicht falsch zu „lesen“: er meint das Ernst und sieht seinen Beitrag als einen ordentlichen Schritt in die richtige Richtung) +
+ ++ Das macht diesen Vorschlag so »entwaffnend«: +
++ +
++ Wenn Du gesehen hast, wie eine Code-Basis degeneriert und kaum noch zu handhaben ist, dann stellst Du einen Bezug her zu gefährlichen Methoden und Ansätzen. Das läßt sich aber niemals belegen. So jemand wie Christian kann das immer einfach vom Tisch wischen, und behaupten, das läge nur an XYZ (zum Beispiel, weil man C++ verwendet hat). +
++ +
++ Wenn man einen Anfänger hat, der mit solchen Ideen um die Ecke gebogen kommt, dann sagt man (wenn man Zeit hat und freundlich ist): "setzt Dich mal hin und mach das so, und wir schauen uns das Ergebnis zusammen an...." Dann läßt man den Junior rudern, bis er völlig verzweifelt ist, und reitet ihn immer tiefer rein. Und dann zeigt man ihm, wo er falsch abgebogen ist. +
++ +
++ Aber das Problem ist, ein 40-jähriger Mann mit robustem Selbstbewußtsein, der sich selbst als "Coder" definiert, wird sich niemals auf ein solches Setting einlassen. Das war mir klar (und leider ließ sich nicht vermeiden, daß wir diese unapetittliche Erfahrung dann später auch noch konkret durchbuchstabieren mußten, als es um Thread-Wrapper, Lock-Checker und den MPool ging) +
+ ++ Fazit: ich stecke nun bis über die Ohren in der Scheiße +
+ ++ Er findet Macros gut, ist stolz auf sein Programmierschema mit "goto" und besteht darauf, daß man auf einem gemeinsamen Datenmodell arbeiten muß, weil was anderes mit C ja nicht geht. (Die beiden letztgenannten Punkte ergänze ich aus der Erinnerung, sie gehen nicht aus den Mails hervor. Es könnte auch sein, daß Christian diese Punkte erst später ausgeführt hat — aber es war zu diesem Zeitpunkt mit wünschenswerter Klarheit deutlich, daß er alle die Argumente gegen das imperative Programmieren entweder nicht kennt, oder nicht gelten läßt. +
+ ++ C++ Klassen sind immer "fett", C-Interfaces sind immer schlank und klar. Abstraktionen und Interfaces werden mit C++ assoziiert und als kompliziert und schwierig dargestellt +
+ ++ Wenn man diese Mail unvermittelt liest, kann man nur den Kopf schütteln. Ich greife mir einen Widerspruch in Christians Aussagen heraus, und leite daraus die Forderung nach Entscheidung ab; aber diese Entscheidung treffe ich sofort selber, auf argumentativer Ebene: Etwa so: Es gibt bei diesem Thema hier nur einen Ansatz, der nicht Unfug ist, und der ist sehr aufwendig und komplex. Spielraum für Abwägungen und Auslegungen lasse ich keinen. +
++ In der Sache ist das tatsächlch zutreffend, aber weder gibt es einen allgemeinen Konsens in der Richtung (damals noch viel weniger als heute), noch ist es angemessen, ein solches Thema der Haltung und Präferenzen derart kagetorial zu behandeln.... +
++ Im Rückblick deute ich das wie folgt +
++ Das bedeutet: mein Handeln war aus meiner Sicht ein Befreiungsschlag, und zielte darauf, das ansonsten Unvermeidliche doch noch überraschend wenden zu können: daß ich nämlich das Projekt aufgeben muß, mit dem ich mich grade eben sehr stark identifiziert hatte (denn in 2007 gabe es mehrere dieser atmosphärischen Umschläge, auch in meinem eigenen Leben; zudem tauchte ein sehr ähnlich gelagerter Konflikt bereits sehr bedrohlich mit meinen Kollegen und meinem Chef auf) +
+ ++ Christian war einfach nicht zu stoppen. Er labert und labert und labert und hört nicht zu. Er hat mich auch etwas von oben herab behandelt, in dem Sinn "hehe, der Typ mit Java und der Bank, die arbeiten doch nur mit bloatware, also sind seine Urteile mit Vorsicht zu genießen..." +
++ +
++ Dazu kam, daß Cehristian immer im IRC war und viel mit dutzenden Leuten geredet hat, während ich under Mehrfachbelastung stand, und auch generell nicht arbeiten konnte, während ich ein IRC-Log beobachte; Christian konnte das sehr gut, aber er hat nicht genau gelesen und selten wirklich mitgedacht, sondern nur auf Stichworte reagiert. Deshalb: ich mußte mir Gehör verschaffen. +
++ +
++ Mein Argument war differenziert, Christian hatte eigentlich gar kein Argument, sondern eine Überzeugung. +
+ ++ Es könnte sein, daß Christian verstanden hat, daß ich angreife, daß er aber meiner Argumentation überhaupt nicht folgen kann, weil er gedanklich „anders abbiegt“ (z.B. weil er gewisse Argumentationsschritte von mir nicht versteht, weil ihm der Kontext fehlt, und er sie dann als „unverständlich“ abtut, und meinen Gedankengang anders „interpoliert“). Er macht in dieser Diskussion Statements, die man eigentlich gar nicht mehr so machen kann, wenn man auch nur einen Teil der Disussion der vorausgegangenen 10 Jahre zum Thema Architektur und Methoden bewußt gelesen und nachvollzogen hat. Diese Beobachtung ist mir damals komplett entgangen. +
+ ++ Ich deutet das so, daß ich durch meinen Angriff einer Vision den Boden entzogen habe, die tatsächlich für Christian sehr bedeutend war. Im Rückblick gibt es dutzende Belege dafür in den Dokumenten. Mir war das damals jedoch nicht klar, und ich dachte, es würde helfen, das Thema nachzuschärfen; meine vorgetragene Problemanalyse war ja weithin bekannt und diskutiert worden in den vorausgegangenen Jahren. Vermutlich hatte ich sogar damit gerechnet, daß sich eine Diskussion über eine Plugin-Architektur besser führen läßt, als eine Diskussion um die grundlegende Haltung zum Programmieren. +
+ ++ Bei der Lektüre jetzt bekomme ich den Eindruck, daß das passiert, weil ich vor der Konsequenz ausgewichen bin, den dahinter liegenden Grundsatz-Streit direkt auszutragen. Ich habe mich stattdessen auf die Frage nach einer Plugin-Architektur konzentriert, was Christian damit gekonntert hat, daß er das ja gar nicht will — wobei jede seiner sachlichen Ausführungen dem explizit widerspricht. Dadurch war ich durch ein Double-Bind gefesselt (und das war nicht das erste Mal, daß mir das in meinem Leben passiert ist). +
++ In den folgenden Jahren bin ich, in vielen ähnlich gelagerten Debatten-Situationen (vor allem in meiner Tätigkeit bei der Bank) graduell zu der Einsicht gekommen, daß es darauf ankommt, wer als erster die gemeinen Tricks anwendet, sobald eine Debattensituation eigentlich entschieden ist, aber keiner der Gegner aufgeben möchte. +
++ +
++ Auf die Situation hier übertragen, würde dieser Ansatz etwa so funktionieren: (Christian): "Aber das will ich ja gar nicht" (Ich): OK, dann war dieses Proposal ein Irrtum und wir können es in aller Form verwerfen. Um es gleich in aller Form festzustellen, eine Plugin-Architektur geht nur »ganz oder gar nicht«, jede Lösung darunter ist gefährlich, und wir schließen das daher explzit aus. Plugins für einzelne Fälle werden wir später brauchen, und wir vertagen die gesamte Techologie bis auf diesen späteren Zeitpunkt" (ich weiß aus praktischer Erfahrung, daß man leider einen solchen Satz in einer persölichen Diskussion dem Gegenüber ins Gesicht brüllen muß, sonst gibt er nicht auf). Mit hoher Wahrscheinlichkeit ist eine konstruktive Zusammenarbeit danach aber nicht mehr möglich +
+ ++ Ich bin jetzt erstaunt, welche bedeutende, und auch besonnene Rolle dieser Mann in den ersten Wochen gespielt hat. Das war mir komplett entfallen. +
+ ++ Sein Vorschlag +
++ Und (daran erinnere ich mich jetzt sogar wieder) das habe ich nicht als Taktik oder Heimtücke empfunden, denn ich hatte doch meine Argumente in der grundsätzlichen Mail komplett offen dargelegt; diesen Argumenten zufolge wird dieses Experiment vorhersagbar scheitern. +
+ ++ Sehr aufschlußreich wie Christian pariert: das wäre Zeitverschwendung. Er will die Grundsatz-Entscheidung jetzt (zu dem Zeitpunkt, wo wir, in gemeinsamen Verständnis, tatsächlich zu coden anfangen) +
+ ++ Christian will das System jetzt öffnen und die Entscheidung darüber fixieren +
+ ++ 11.7 : Christian erklärt den Plugin-RfC einseitig für anerkannt +
+ ++ after a talk on irc, we decided to do it this way, further work will be documented in the repository (tiddlywiki/source) +
++ 2007-07-11 13:10:07 +
++ Der Grund ist aus den IRC-Logs ersichtlich: Christian und ich hatten uns wiederholt auf IRC nicht getroffen (ich war extrem mit Arbeit überlastet in der Zeit, Orgel + Cin-2 + Baaderbank). Ich hatte am 10.7. eine Diskussion mit Plouj + Hermanr (aber Christian schlief um die Zeit). Plouj hat das IRC-Log an Christian weitergeleitet, der es dann selektiv in seiner Mail gequotet hat, aber nicht auf meine Argumente eingegangen ist +
+ ++ Chistian nimmt Auszüge aus IRC, gequotet in der Mail, und setzt darunter jeweils ein Statement, das das Gegenteil von dem argumentativen Stand einfach affirmiert. +
++ +
++ Die Diskussion scheint allerdings in einem versönlichen Tonfall zu enden — ohne jedoch den Dissens auszuräumen +
+ ++ Das Log dazu habe ich aufgehoben in meinem privaten Trac. +
++ Daraus geht auch klar hervor: das war die einzige Debatte mit Christian auf IRC. Somint ist das Bild vollständig. +
+ ++ Er hat mich selten überhaupt ausreden lassen. Er hat permanennt auf einzelne Stichworte reaagiert, und diese nach seiner Sicht »entkräftet«: +
++ Nicht wirklich, aber im Zusammenhang war das der Eindruck +
++ Christian hat wohl geglaubt, mit ein paar mündlichen Zusagen hat der diesen ängstlichen Typen jetzt ruhiggestellt, und sein Ding ist durch. Und es ging ihm vermutlich darum, Code vorlegen zu dürfen. Er glaubte wohl, wenn man erst mal seinen Code sieht, dann wären alle Mißverständnisse ausgeräumt, und es würden dann alsbald die Wunder geschehen, von denen er überzeugt war; daher war vermutlich das sein einziges Ziel, und deshalb war er auch mündlich bereit, so viele Zugeständnisse wie möglich zu machen, bis zu dem Punkt, daß er sich selber komplett widerspricht. Er dachte vermutlich, er muß dieses Ding jetzt nur reinbekommen, und alles wird gut, alles weitere wird sich dann schon von selber zeigen, Leute werden Plugins in Massen schreiben, die Creativität pur bricht aus, und dieser komische Bank-Mensch, wer redet dann noch über den...? +
+ ++ ich kann mich jetzt wieder erinnern, +
++ das als eine Niederlage empfunden zu haben. +
++ Ich hab mich elend gefühlt. +
+ ++ Im Rückblick halte ich es für wahrscheinlich, daß ich dieses ziemlich dreiste Vorgehen von Christian nicht sofort und auch (bis jetzt nicht) in vollem Umfang realisiert habe. Den Status des RfC als "final" habe ich natürlich irgendwann gesehen, möglicherweise hat mich Christian sogar darauf hingewiesen. Und ich habe dann wohl geschluckt, und gemerkt, daß mir nach all dem Streit jetzt praktisch nichts anderes übrig bleibt, als so zu tun, als wäre das belanglos +
+ ++ im Rückblick nicht klar: warum habe ich den Kompromiß nicht explizit klargestellt? +
+ ++ Ich hätte sofort eine Mail rumschicken können, in dem ich den Kompromiß aus meiner Sicht zusammenfasse, und die von Christian zugesagten Punkte festnagle. +
+ ++ ...nachdem Christian den RfC unqualifiziert für angenommen erklärt hat, hätte ich entweder ihm gegenüber daruf bestehen können, daß er die Einschränkungen im Text aufführt (das wäre ein direkter Affront und Chistian würde dann weiter versuchen, zu manipulieren) oder ich hätte den RfC einfach editieren können, die Einschränkungen im Text vermerken, und das mit einem Kommentar bestätigen "ich habe diesem Vorschlag nur unter den genannten Bedingungen zugestimmt) +
+ ++ Das ist ausschließlich Spekulation bzw. Interpolation. +
++ Meine Erinnerung hat sich überlagert mit den späteren Erfahrungen +
+ ++ ...allein schon von dem Umstand, daß wir nun plötzlich diese Diskussion haben; möglicherweise war ich noch voller Begeisterung und Drive und habe das Verhältnis zu Christian als kollegial und wohlgesonnen empfunden (was es bis vor kurzem war). Dieser Hypothese zufolge habe ich den Streit aus Notwehr vom Zaun gebrochen und war bloß froh, daß der Tonfall am Ende versöhnlich war, und es weiterging. Ich wollte zu dem angenehmen Zustand zurück +
+ ++ Dieser Hypothese zufolge wäre es mir unangenehm gewesen, daß dieser Streit plötzlich so eskaliert ist. Ich wäre dann bloß froh gewesen, daß es nochmal "mit einem blauen Auge" abgegagen ist und kein Bruch daraus entstanden ist. Ich wäre froh gewesen, daß das Thema jetzt vom Tisch ist und wir uns mündlich auf einen vernünftigen Kompromiß geeinigt haben. Es hätte mich dann zwar gewurmt, daß Christian den RfC unqualifiziert als "angenommen" markiert, aber ich hätte dann gegen mich selber argumentiert, das solle man mal nicht zu wörtlich nehmen und darauf herumreiten, eigentlich hat er ja nix falsches gesagt. Insgesamt hätte ich damit geglaubt, wir hätten einen Dissens gehabt, und uns dann "unter Männern" geeinigt, und beide würden sich selbstverständlich an die Absprache halten. +
+ ++ Für diese Hypothese habe ich keinerlei Anhaltspunkt, sie wäre aber durchaus plausibel, gemessen an meinem allgemeinen Verhalten: wenn mir Wertschätzung entgegengebracht wird und wenn ersichtlich auf meinen Beitrag geachtet wird, dann erzeugt das bei mir ein starkes Verpflichtungsgefühl und eine starke emotionale Bindung (weil es mir in meinem Leben bis damels ehr selten zuteil geworden ist, jenseits der Familie). Demnach wäre mir emotional vor allem daran gelegen gewesen, den angenehmen Zustand aufrecht zu erhalten, und ich war froh, den (notwendigerweise gestarteteten) Konfilkt einigermaßen gut wieder losgeworden zu sein. (dafür würde auch sprechen, daß ich grade zu der Zeit von mehreren anderen Seiten erheblich unter Druck stand) +
+ ++ Dieser Hypothese zufolge hätte ich die Situation strategisch eingeschätzt, und mich auf mein professionelles Urteil verlassen, dem zufolge die Versprechungen von Christian zwangsläufig an der Wirklichkeit scheitern würden. Es wäre mir demnach lediglich darum gegeangen, genügend »Bremse« gegeben zu haben, so daß Christian nicht unmittelbar loslegt und ein Kettensägenmassaker anrichtet. Für den Rest hätte ich mich darauf verlassen, daß er nicht viel zustande bringen wird und daß ich eventuelle Restprobleme später schon noch abgebogen bekomme, z.B. indem ich dann im Einzelfall eben ekelhaft auf Qualitätsmerkmalen bestehe (die er mit seinem Plan niemals wird erfüllen können). Ich habe keinerlei Anhaltspunkt ob diese Hypothese irgendwie gerechtfertigt ist, und ich damals so gedacht haben könnte; jedenfalls im Rückblick wäre das eine realistische Einschätzung gewesen. Es ist ja exakt so gekommen, wie ich in meinem Einwand vorhergesagt habe: es werden immer Wunder versprochen, aber praktisch bleiben diese Art "leichtgewichtigen" Plug-ins praktisch bedeutungslos. +
+ ++ Dieser Hypothese zufolge hatte ich mich plötzlich in einem spannenden Projekt gefunden (was ich als Glücksfall betrachte) und hatte schon Ideen, mit denen ich mich identifiziere und die ich realisieren möchte. Daher wollte ich bloß diese sich plötzlich auftuhenden Hindernisse aus dem Weg haben, und nachdem das "nach Bauchgefühl" der Fall war, war mir alles egal, solange ich mit dem Zeug weiter machen konnte, was ich wollte. Dieser Hypothese zufolge hätte ich mich rein opportunistisch verhalten (interesssanterweise exakt genauso wie Christian, wenn man eine ähnlich gelagerte Leseart anwendet, was heißen würde, wir waren uns insgeheim einig) und hätte keinerlei Bewußtsein dafür gehabt, was eine solche Haltung für die Zukunft bedeutet. Mein Verhalten im nächsten halben Jahr würde ziemlich gut zu dieser Hypothese passen +
+ ++ dieser Hypothese zufolge wäre ich zu der Einschätzung gelangt, daß es unmöglich ist, im Augenblick mehr zu bekommen, als ich konkret hatte: nämlich die Möglichkeit, ungestört weiterzumachen plus eine mündliche Zusage von Christian, daß er jetzt nicht durchmarschiert und sich an die Einschränkungen hält. Im Besonderen wäre meine Einschätzung dieser Hypothese zufolge gewesen, daß Christian ein »Festnageln« als ungeheuerlichen Affront versteht, und mich entweder sofort vor die Tür setzt (er hatte die technische Hoheit über die ganze Infrastruktur), oder aber sich dann der Streit endlos fortsetzt, mit dem Ergebnis, daß wir anschließend auseinandergehen, und das schöne Projekt gestorben wäre, bevor es begonnen hat +
+ ++ ich kann jetzt den Zusammenhang gedanklich fassen +
+ ++ Einige erfahrene Männer, die allesamt ihr Handwerk verstehen, gehen mit einem gemeinsamen Werk vorran und leiten eine Bewegung ein. +
+ ++ allerdings nie irgend etwas zum DataBackend +
+ ++ er hat sich dann zu 150% auf das uWiki geworfen +
+ ++ und zwar passiert hier bereits der Streit über die Plug-in-zentrische Architektur +
+ +
+ Ich hatte mir gemerkt, daß wir auf der Terrasse in Karlsruhe saßen, und das Thema angesprochen haben. Das war aber mindestens ein Jahr später. Außerdem habe ich mir gemerkt, daß es irgendwie mit dem Thema Application start-Up zusammenhing. Das wäre sogar zwei Jahre später.....
Wie sich nun eindeutig aus den Quellen ergibt, sind alle diese Erinnerungen zwar korrekt, ich habe aber die falschen Schlüsse gezogen. Der eigentliche Streit ist sofort ausgebrochen, nachdem wir begonnen haben, ernsthaft zusammezuarbeiten. Das ist auch plausibel so. Die späteren Erinnerungen hängen damit zusammen, daß wir wohl beide (Christian und ich) dem Streit ausgewichen sind, weil wir das Bauchgefühl hatten, daß er nicht lösbar ist. Auch diese Einschätzung ist wohl korrekt, es stehen Fragen der Weltanschauung dahinter.
+
+ ....und hab auch tatsächlich Fortschritte gemacht, wenngleich die auch komplett im Mißverhältnis standen zu der Absicht, die ursprünglich hinter diesem Prototypen stand: +
+mark carter schrieb:+
++Maybe a lot of my problem is that I'm new to the code. Coming in from +fresh on such a big project is bound to be daunting,....+
well, but my personal experience was that, contrary to other projects, +things get worse when you get accustomed. Trying to work with the +current codebase is just plain frustrating, you find yourself +fighting against windmills all the time. + ++
++Looking at the codebase, I realise that there's quite a lot of it, and +think that a ground-up rewrite is likely to be doomed. I think that we +must find a way of remoulding the existing code into a more stable form.+
This indeed /is/ a big problem. +At the moment I just choose to ignore it and picked me one region, namely +the render engine / render pipeline and rewrite that one. Christian concentrates +on some aspects of file handling media loading.+ +
At the moment I just choose to ignore it and picked me one region, ...+ +
+ gemeint war, Lumiera ist ein Projekt, das auch heroischen Einsatz einfach spurlos aufsaugt, wie ein trockener Schwamm +
+ ++ »Weihnachten« ist insofern wichtig, als ich im Sommer das Gefühl hatte, bis Weinachten zusammen mit Christian eine laufähige Renderengine „auf die Beine stellen“ zu können. Ab August wurde die Arbeit bei mir „zäh“, jeodoch habe ich diese zeitliche Vorstellung immer noch irgendwie im Kopf gehabt, Stichwort »hart arbeiten«. Das war das Muster: wenn ich wirklich alle Kraft und Entschlossenheit einsetze, dann kann ich (toller Hecht) das doch nageln. Das war in früheren Projekten, seit meiner Studienzeit, immer wieder die Situation gewesen, und es war dann auch jeweils (mit gewissen Einschränkungen) erfolgreich; dieses Muster war Teil meines Selbstverständnisses, damals. +
++ +
++ Insofern gibt der »Visitor« einen wichtigen Hinweis: der sollte ja ultimativ das Grundgerüst für den Builder sein — ein Thema, an dem ich laut offizieller Verlautbarung den ganzen Herbst gearbeitet habe. Tatsächlich hatte ich nur Objektmodell über Objektmodell geschichtet und getestet, und versucht, im Design Mechanismen und Primitive zu entwerfen, mit denen sich das Thema packen ließe (die Builder-Mould, der Operation-Point). Kurz vor Weihnachten habe ich mich dann gewissermaßen auf die Framework-Ebene geflüchtet, und dort eine Ersatz-Schlacht geschlagen und „gewonnen“: ich habe das (bekanntermaßen problematische) GoF-Pattern (das mich immer schon fasziniert hatte) durch eine techologische Lösung ersetzt, die ich nach einiger Recherche im Internet aus bestehenden Ansätzen entwickelt habe: einen Tabellen-getriebenen Visitor, der „azyklisch“ ist, Subklassen-Semantik unterstützt (»is-a«) und durch Template-Metaprogramming realisiert wird. Das hat dann doch bis in den Januar gebraucht, ich hab meinen gesamten Feitertags-Urlaub pausenlos durchgecodet, das Ergebnis ist wohl tatsächlich eine Leistung (nach der bloß niemand gefragt hat) — und am Ende stellte sich heraus, daß ich damit den »Builder« nicht „packen“ kann, da die Objekte eingepackt in Smart-Pointer daherkommen. Danach habe ich den Sarg mit dem WrapperPtr zugenagelt und mich Scheiße gefühlt. +
+ ++ z.B. wir sollten doch alles in QT bauen, weil es dadurch viel einfacher wird, und obendrein auch gleich noch portabel +
+ ++ Wichtig: er hat sich nie in dieser Rolle „gesonnt“ — sondern sets die festgelegten Formeln wiederholt und auf meinen Beitrag eigens hingewiesen +
+ ++ Bis zum Frühjahr 2008 hat Christian absolut nichts mehr zum eigentlichen Coding beigetragen, sondern immer mehr seine Vision betont, daß durch distributed Tooling und ein offenes Projekt-Setup die Probleme von Open-Source (die sich damals schon sehr deutlich zeigten) aufgebrochen und gelöst werden könnten. Man muß nur „die Community enablen“, damit diese „als Benevolent Dicatator agieren kann“ +
+ ++ Ich bekam Reichweite, die ich mir selber niemals hätte aufbauen können: denn bedingt durch den sonderbaren Zustand, daß ich allein weiter gecodet habe, wurde mir regelmäßig das Wort erteilt und ich konnte mich als Experte bewundern lassen +
+ ++ ...das in diesen Monaten im Herbst vor allem dadurch getragen war, daß man nur hart genug arbeiten muß, dann kann man es nageln. Niemand hat mehr nach einem Projektplan gefragt, niemand wollte erklärt haben, wie das überhaupt zusammenpaßt (mit Cinelerra). Außerdem habe ich in der Zeit überhaupt erst C++ gelernt (das geht bei mir üblicherweise sehr schnell), viele neue Paradigmen aufgegriffen und mich bis Dezember sogar in das (damals total esoterische) Thema »Template-Metaprogramming« hineingebissen. Ich hatte nun in kurzer Zeit einen anderen Horizont gewonnen, und fand meine Ansätze aus dem Herbst (mit den Assets und MObjects) bereits problematisch, hab davon aber niemanden was gesagt (und es bisweilsen sogar vor mir selbst verborgen) +
+ ++ Zunächst einmal sogar die Frage, ob das noch Cinelerra ist, oder schon eine neue Applikation; auch die Frage, warum man überhaupt ein solches Projekt starten sollte („the world needs Lumiera“). Aber auch auf technischer Ebene, wurden Mystifikationen eingesetzt und durch stetige Wiederholung affirmiert: Da ist zum einen das DataBackend (für das, so muß man jetzt im Rückblick sagen, fast überhaupt nichts jemals implementiert wurde, mit Ausnahme der Memory-mapped Files), des Weiteren sind da die Placements, die auf viele Jahre hinaus aus „da kann man“ bestanden, die Config-Rules waren (für mich offensichtlich) ein Fernziel, das ich aber sehr oft in der öffentlichen Diskussion als Pluspunkt aufgeführt habe; ganz ähnlich steht es mit den Plug-ins: Christian hat über ein Jahr lang nichts Konkretes mehr zu dem Thema gesagt oder getan, aber die flexiblen Plugins waren weiterhin einer der immer wiederkehrenden Bullet-points. Und den Builder habe ich nach Januar 2008 erst mal liegen gelassen, und das auf verschiedene Weise plausibel gemacht. Damit war effektiv der Prototyp aufgegeben, und es wurde stattdessen die große Architektur gebaut. +
+ ++ Raffaella und Odin haben dieses Moment aufgegriffen — +
++ und in die Naming- / Logo-Contests übersetzt +
+ ++ ...das heißt, ich habe dazu keinen Beschluß gefaßt, das weiß ich ganz genau; vielmehr brauchte Joel nund einen Gegenpart, und ich hab mir sofort dafür den Arsch aufgerissen und geliefert. +
+ ++ August 2008 war ich zum ersten Mal in Karlsruhe (für mich ganz besonders magisch, denn ich hat aus meinem früheren Leben eine sehr tiefe Beziehung zu Karlsruhe), habe bei Christian übernachtet, und wir haben so manche Streitigkeiten auf der Terasse sitzend geregelt, „von Mann zu Mann“. Das hatte dann auch in vieler Hinsicht den Charakter eines Vertrages, wir haben Claims abgesteckt. Anschließend sind wir zusammen zur FrOSCon gefahren, für mich das erste Mal. Und anschließend habe ich den Kontakt mit meiner Verwandtschaft in Hagen wieder aufgenommen (Hagen hat für mich eine ähnlich tiefe Bedeutung, auch da reichen die Bezüge in meine Schulzeit zurück) +
+ ++ ohne sie explizit breitzutreten! +
+ ++ Wir hatten den »Drive« und wir hatten ein Konzept, das in überschaubarer Zeit machbar erschien +
+ ++ Denn die beiden Elemente stammen aus einem komplett unterschiedlichen, und inkompatiblen Hintergrund; das Konzept, das (wenn ungefähr betrachtet) so plausibel erschien, läßt sich zwar realisieren, aber nur durch sorgfältiges, planvolles Vorgehen und Festhalten an einem Ziel. Also eine extrem lange Zeit ohne »Begeisterung« und »Inspiration« +
+ ++ Damit meine ich: ein »Mission Statement« und ein »Projektkonzept«, das plausibel und machbar erscheint, und nicht „völlig durchgeknallt“ +
+ ++ ...und anfangs auch tatsächlich plausibel war +
+ ++ hier meine ich mit normaler Dynamik: Man geht in einer freien Community auf Nahziele zu, baut, was man sich leicht vorstellen kann und was kurzfristig Spaß machen kann. All das konnte sich in der festgefahrenen Projektstruktur nicht entfalten. Das Projekt war „langweilig“ und hatte keine Drive +
+ ++ man hat sich auf einen Weg gemacht, +
++ auf den man sich vernünftigerweise +
++ niemals gemacht hätte +
+ ++ Erzählen auf dem Grundton: das kann doch nicht gutgehen... +
+ ++ das Thema der Flexibilität +
+ ++ ...das ist tatsächlich die Vision, die sich jetzt abzeichnet; mit »vertikal« meine ich, daß sie von low-level bis high-level integriert sind und kohärent bleiben ⟹ »medium level of abstraction« ⟹ wir schaffen kein Wunderding, sondern ein Werkzeug mit Kraftverstärkung +
+ ++ Benny hatte schon vor Monaten gesagt, +
++ ich möge ihn da einbeziehen +
+ ++ ...und zwar hatte ich angedeutet, daß ich irgendwann den Disput über Plug-ins irgendwo als Text fassen muß; Benny sagte dann, es erscheine ihm plausibel, daß ich das möchte, aber ich solle bitte den Text von ihm gegenlesen lassen, bevor er irgendwo veröffentlicht wird; ich halte das auch für angemessen, und war/bin Benny sehr dankbar... +
+ ++ Damit meine ich: soweit der Impetus im Moment trägt, also bis in das 1.Jahr. Insgesamt möchte ich den Text noch weiter führen, kann das aber im Moment sicher nicht stemmen. Nun habe ich also den Text erst mal entworfen, dann die Quellen ausgearbeitet und dann den Text ausgefeilt. Er soll schließlich mit einem einzigen Commit online gestellt werden, ohne viel Aufhebens. +
+ ++ danke Benny! +
+ ++ we don't say this in this context. Does transliterate refer to 'meaning', +
+'spelling', ... but not 'format'. I'm not entirely sure; but it is not+
_generally_ used like this. But I am nearly certain you will find it+
as a special process in, for example, a group of Archeologists where+
transliterate has a special meaning only to this group.+ +
+ Fix because 'properly' is here coloquial because, again, it is +
+ambiguous. Does 'properly' refer to the process of providing the+
credit, i.e., it was only written on a piece of paper, .. i.e.,+
'how' the credit was down; or is the creditation inappropriate?+
+
This kind of error is something similar to the many errors Trump+
makes and upsets many jurnalists, as the ambiguity is often+
critical and is much discussed on the BBC+ +
+ also ist Benny's Vorschlag inhaltlich viel bessern +
+ +Lately i had almost no time to hack on cinelerra and it doesn't seem +that situation will improve in forseeable future.+ +
+ ich muß hier eine Deutung machen, um den Sachverhalt klar zu fassen +
+ ++ Andraz hat es in seiner Mail "durch die Blume" gesagt, und die Community (oder zumindest die aufmerksamen Leser, hehe) haben verstanden, in welche Richtung das geht, ohne konkreter zu werden. +
+ ++ insofern: Benny's Formulierung ist sogar sehr gut, sie ist nämlich dezent +
+ ++ Christian hat nicht bloß mal ein Git-Repo eingerichtet, sondern er hat sich, so meine Deutung, davon erhofft, daß die Kombination von Technik und "kurzgeschlossener" Community von selber Heilungskräfte entfaltet. Das würde auch erklären, warum er... +
++ es sind jetzt ein paar Wochen vergangen; und ehrlich, für diese Einschätzung brauche ich Benny nicht. Es wäre nur schön gewesen, ihn mitzunehmen... +
+ ++ Andraz: "Leute, ich kann nicht mehr!" +
++ User-1 sagt, "ich hab da mal nen Patch" +
++ Cehteh: "und übrigens ich bastel an meinem Git-Branch, aber ich trage nix bei, sondern baue eine andere Infrastruktur" +
+ ++ auch die zweite Korrektur ist wohl stilistischer Natur (wäre interessant, Benny dazu zu befragen! Möglicherweise wieder so ein Fall, in dem sich Pidgin-English breit gemacht hat....) +
+ ++ ich kann nicht einschätzen, +
++ ob Benny hier nur auf "gutem Englisch" herumreitet +
+ ++ Ich bin immer wieder am Zweifeln, inwiefern Benny mit verschiedenen Sprachebenen umgehen kann. Selbstverständlich kennt er das Konzept, er hat mir oft Beispiele genannt, wie ein Adeliger reden würde. Dann macht er mir aber anderseits immer wieder Vorschläge, die für mein Ohr sehr "literarisch" klingen, und auch sehr "brittisch". Er korrigiert auch Redewendungen, die in der gedruckten Fachliteratur weit verbreitet sind. Außerdem habe ich immer wieder gemerkt, daß Benny keinerlei Sinn für das Verkürzen von Formulierungen hat, und sachen klarstellen möchte, die ich bewußt zweideutig gehalten habe. Er sagt dann auch immer, das sei grammatikalisch, ist es aber nicht (in dem Sinn, daß es einem in der Schule als Fehler angestrichen würde, man aber durchaus so reden und schreiben kann) +
+ ++ eine Qualifikation ist m.E. hier komplett überflüssig, aber es sollte gesagt werden, daß es sich um Git Repos handelt, und nicht um Subversion +
+ ++ Please check: i think you mean 'general' here +
++
'Common', here means 'working class' or cheap (and bad).+
But please check+ +
+ Create our own toolset to track issues, tasks, bugs in a distributed manner. +
+ ++ Und mir fällt auf, daß dies sein erster inhaltlicher RfC war +
+ ++ Er "mag keine Mailinglisten", er mag keine Foren, er findet Bugtracker eine einzige Müllhalde und sagt, er will nicht damit arbeiten. Er lästert bei jeder Gelegenheit über Spreadsheets, er kotzt über Projektplanungstools ab, er findet Wikis nur eine Krücke und will sie schnell wieder loswerden, er findet die typischen Buildserver total daneben (Cruise-Control damals, dann Hudson, Jenkins). Und, was mich völlig von den Socken gehauen hat: vor zwei Jahren wurde er plötzlich ganz leidenschaftlich wegen Ethereum, er fand das System sowas von verkünstelt und overengineered, und gradezu gegen den "spirit" von Blockchain. Auch gegen Bitcoin ist er ehr negativ eingestellt, denn es wäre ja bloß "Kapitalismus pur" ... und dann fängt er leidenschaftlich an, seine Vision von einem Geld zu entwickeln, das auf Community-Tasks beruht und Austausch von Hilfe. +
+ ++ wäre schön wenn man das noch dikutieren könnte, aber eigentlich geht es nur um Nuancen in der Bedeutung. Ich bin mir ziemlich sicher, daß Christian nicht "Microsoct Projects" durch Git-Magic ablösen wollte, sonder ehr der Meinung war, wer MS Projects verwendet, ist sowiso krank +
+ ++ versuche die grammatikalische Verbesserung aufzunehmen, +
++ bleibe aber bei meiner Formulierung "without a clear Resolution" +
+ ++ Benny hat sich jetzt 3 Wochen nicht mehr gemeldet, daher konzentriere ich mich nun auf das Wesentliche und räume solche Nebenthemen einfach ab +
+ ++ There appears to be widespread consensus that simple building blocks should be provided as free software, that “can be used to combine new functionality” +
+ ++ Die Frage ist: gehe ich mit dieser Mutmaßung zu weit? Es ist schon starker Tobak +
+ ++ Ohne ein solches Verzeichnis sieht man nur eine endlose Historie von Git-Commits über mehr als 10 Jahre, und kaum ein Thema „führt zu Ergebnissen“. Erst in den letzten Jahren ist durch die »Vertical Slices« soetwas wie eine Fürhungslinie gegeben +
+ ++ Vorausgegangen war Cehteh's letzter Vorstoß in Richtung einer Plug-in-Architektur, der damit endete, daß Ichthyo sein Konzept der Applikations-Struktur mit den Subsystemen durchgeprügelt hat. Das mündete in eine allgemeine Integrationsphase, in der die Code-Struktur und die Build-Systeme glattgezogen wurden, und das GUI als Plug-in integriert +
+ ++ und hat begonnen, dicke Bretter zu bohren: +
++ man hat wohl ein ganzes Jahr lang zwar die Meetings aufrecht erhalten, aber nur sich informell ausgetauscht +
+ ++ Das ist wichtig für mich selber: denn ich habe sehr unter diesen Konflikten gelitten. Nur fanden sie gar nicht wirklich statt, sondern bestanden in einer Diskrepanz zwischen dem Stand, den ich mir erarbeitet habe, und den endlos-eintönig-immer-gleichen Klischees, die von den anderen Entwicklern und Usern kamen. Insofern habe ich noch eine Rechnung offen mit dieser »Community« — aber diese Rechnung hat hier nichts zu suchen. Im Grunde habe ich alles Wichtige bereits in meinem Essay »Complexity and Flexibility« gesagt.... +
+ ++ die Darstellung könnte sich vor allem +
++ auf die kollektiven Aspekte konzentrieren +
+ ++ Technologie wird dabei eine »Mystifikation« und wird zum »Fetisch« — aber das ist nur oberflächlich. Die Technologie (konket: Git, Automatisierung, Plug-ins) soll nämlich eine Art Marktplatz der Ideen herstellen. Und der eigentliche, weltanschauliche Kern ist, daß »die Community« wie eine unsichtbare Hand alle Probleme löst, und man deshalb sich gedanklich nicht weiter anstrengen muß, ja sogar gar nicht darf, weil man sonst das heilsame Wirken der Marktkräfte stört. +
+ + ++ verstehe dies Verhalten als ein Anti-Pattern — dem man verfällt +
+ ++ Die Komplexität sorgt dafür, „daß die Bäume nicht in den Himmel wachsen“ — und demütigt den sich aus dem Anspruch der Technik ergebenden Herrschaftsanspruch. Der Komplexität kann man nur standhalten, durch Verzicht auf Wunder und durch Selbstbeschränkung auf einige wenige Themen. +
+ ++ Lumiera ist entstanden durch meine Verstrickung in diesen Konflikt +
+ ++ Ohne diese Verstrickung, und das damit verbundene Verfallen und die fehlende Reflexion, wäre dieses Projekt niemals zustande gekommen. Ich habe eine dialektisch-verhaftete Position eingenommen, die durch diesen Konflikt überhaupt erst ihre Form bekommen hat. Durch meine Hartnäckigkeit habe ich dem Projekt in der Anfangsphase den Weg zum »Erfolg« abgeschnitten. Dann aber passierte ein Wechsel des allgemeinen Klimas (der sich im Grunde bereits von Anfang an abgezeichnet hat). Das Resultat ist nun, daß ich, ganz allein, auf dieser Position stehe und über den damit verbundenen Anspruch bestimmen kann (solange niemand anders daherkommt — und auch nur wenn ich diesen Weg entschieden weiterverfolge). +
+ ++ ich sehe jetzt in dieser Position eine Chance +
+ ++ Geschrieben 10/2025 infolge der Auseinandersetzung mit den Anfängen des Lumiera-Projekts und implizit als Antwort auf den nie wirklich gelösten Architektur-Streit +
+ ++ das war nun eine +
++ intensive Auseinandersetzung +
+ +- Es gab eine Zeit erheblicher Spannungen zwischen mir und Christian, die gekennzeichnet war von einem Ringen um den Stli des Projekts. Stil hier im weiten Sinn. Dem entsprechend finden sich viele doppelbödige Formulierungen, oder Vorschläge, die — nüchtern betrachtet — nachgerade durchgeknallt wirken. Auch für diese RfCs halte ich eine gewisse Einordnung für angezeigt Das kann durch einen historischen Zusatz erfolgen, oder dadruch, daß ich sie in aller Form verwerfe und mir dadurch das die Deutungshoheit in der Sache aneigne. Das kann bisweilen eine Gratwanderung sein — denn es geht mir nicht darum, zu siegen oder Recht zu haben, sondern es geht mir darum, das Projekt der Sache angemessen zu navigieren. Allerdings ist das, „was Sache ist“, ein Urteil, das ich fälle, nachdem ich duch die Sachverhalte durchgegangen bin, und zwar, sein vielen Jahren, allein. + Es gab eine Zeit erheblicher Spannungen zwischen mir und Christian, die gekennzeichnet war von einem Ringen um den Stli des Projekts. Stil hier im weiten Sinn. Dem entsprechend finden sich viele doppelbödige Formulierungen, oder Vorschläge, die — nüchtern betrachtet — nachgerade durchgeknallt wirken. Auch für diese RfCs halte ich eine gewisse Einordnung für angezeigt. Das kann durch einen historischen Zusatz erfolgen, oder dadruch, daß ich sie in aller Form verwerfe und mir dadurch die Deutungshoheit in der Sache aneigne. Das kann bisweilen eine Gratwanderung sein — denn es geht mir nicht darum, zu siegen oder Recht zu haben, sondern es geht mir darum, das Projekt der Sache angemessen zu navigieren. Allerdings ist das, „was Sache ist“, ein Urteil, das ich fälle, nachdem ich duch die Sachverhalte durchgegangen bin, und zwar, sein vielen Jahren, allein.
@@ -163810,7 +168211,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo+ Effektiv habe ich die »Plugin-Architektur« nun beerdigt. Es wird kein generelles Interface-System geben, sondern nur ein neues Konzept für Plugins und Feature-Bundles +
+ ++ Ich habe vor 2 Jahren beschlossen, daß das System der C Error-States nur noch mitgeführt wird, aber den Exceptions untergeordnet ist. Das bedeutet, perspektivisch werden Ausnahmen nur noch per Exception signalisiert, und es ist nicht mehr akzeptabel einfach mal so eine Flag zu setzen (auch wenn sie Thread-local ist). Man sollte nicht mehr erwarten, daß irgendjemand einen Lumiera-Error-State prüft +
+ ++ Dieser Content erweckt ein falsches Bild. Ich werde dafür sorgen, daß niemand mehr ein »C-Ökosystem« aufmacht. Imperativ programmieren kann man auch in C++, und mithilfe der Standardlibrary. Die wenigen Verwendungen der hier aufgeführten Library-Datenstrukturen von Christian werden mit dem Config-Loader wegfallen. Diese C-Library ist aus der Dynamik der Anfangszeit entstanden, aber seit 2010 trage ich nahezu die gesamte Entwicklung allein, und setze daher die Maßstäbe. +
+ ++ In die kleine Tabelle im Kopf des RfC wird beim Anlegen ein Timestamp gesetzt; dieses Datum erscheint stets plausibel, Timestamps in Kommentaren sind zeitnah, aber etwas später. Oft wurden RfC auch in developer-meetings auf IRC besprochen; auch das ergibt ein schlüssiges Bild. +
++ ⟹ alle RfC lassen sich grob einer Phase des Projekts zuordnen +
+ ++ war trotzdem ein Monster-Aufwand +
+ ++ ....aber mußte mal sein; der Zeitpunkt erscheint mir richtig, denn ich ziehe anscheinend nun einige Trennlinien explizit und spreche Entscheidungen aus. Denn wenn es mir gelingt in dem Projekt wieder etwas in Bewegung zu setzen, werde ich alsbald für diese art Arbeit keine Zeit mehr haben! +
+ ++ Also es ist definitiv so, und zwar in jeder Installation die ich sehe. Jetzt kann ich mich aber gar nicht mehr erinnern, wie Benny auf diesen Vorschlag kam. War das nur eine rein-theoretische Überlegung, ist es in einer Diskussion passiert, ohne daß wir die Website gesehen haben (ich erinnere mich ganz dunkel, daß wir das in Bernbach besprochen haben) +
+ ++ ⚠ Achtung: im Website-Repo +
++ commit a32d3e0f7caf8d905e3203608c426953f85fd6e4 +
++ Author: Ichthyostega <prg@ichthyostega.de> 2013-10-26 23:55:23 +
++ Committer: Ichthyostega <prg@ichthyostega.de> 2013-10-26 23:55:23 +
+
+
+
+
+ Menu: attach the Doxygen node also into the documentation subdir +
++ +
+
und zwar für zwei Dinge
@@ -161590,9 +161606,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
nenne es »can be solved«
@@ -161602,9 +161616,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
deute es als ein Festhalten an einer »einfachen« Lösung
@@ -161617,9 +161629,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
dahinter steckt eine Form des Verfallens
@@ -161637,9 +161647,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
⟹ auf Frederick Brooks zurückgreifen
@@ -161654,9 +161662,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Recherche: das war ja noch alles viel dramatischer
@@ -161687,9 +161693,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
...und darin liegt der Wirkmechanismus: da die Plug-ins von jemandem Anderes geschrieben werden, kann ich jetzt bereits die komplette Lösung deklarieren (und alle Einwände werden pariert mit "can be solved as a Plug-in")
@@ -161706,9 +161710,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Das meine ich auf mehreren Ebenen
@@ -161735,9 +161737,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Warnung: gefühlte Realität
@@ -161745,9 +161745,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
...sinnlos dagegen zu argumentieren, man darf sie aber auch nicht einfach vom Tisch wischen und für „unreal“ erklären
@@ -161757,9 +161755,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Ich fand meinen Entwurf nicht sonderlich visionär, ehr naheliegend, und der Sache angemessen. Mein Entwurf wurde mit Begeisterung aufgenommen — sonst hatte nämlich niemand überhaupt einen Plan, oder auch nur einen Horizont, im HInblick auf Film, Medien und freie Software. Ich habe die Idee ernst genommen, daß man selber gestaltend handeln kann und sollte. Ich hatte mir erhofft, mit anderen zusammen gestaltend zu handeln
@@ -161769,9 +161765,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Ich fand mich in einer Bewegung und Gruppendynamik, die ich als widerwärtig und pupertär empfunden habe. Das was ich vorgeschlagen habe, wurde allerdings von den Filmemachern und Medien-Leuten sofort verstanden, nicht aber von all diesen »Techies«, auf deren Beitrag ich gerechnet hatte.
@@ -161781,9 +161775,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Aufgrund meiner auch damals schon erheblichen Erfahrung habe ich gesehen, daß mein Entwurf nicht mit allgemeinen Wünschen harmoniert (zumindest nicht anfangs, man muß einen Fokus setzen für ein derart großes Projekt). Ich habe daraufhin geschickt navigiert, und tatsächlich die anderen beteiligten Interessen ausmanövriert. Ich ging davon aus, daß mein Entwurf für das Projekt so offensichtlich ist, daß sich schon brauchbare Unterstützer finden werden. Dann hat sich aber das Klima gedreht, und jetzt sitze ich seit mehr als 10 Jahren allein in dem Projekt, und mußte mich jahrelang mit den Folgen dieser Manöver plagen. Es gab keine Möglichkeit mehr, den Konflikt auszutragen (und das Projekt ist sowiso niemals allein zu bewältigen, ich allein kann grade verhindern, daß es ganz untergeht)
@@ -161793,9 +161785,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Auseinandersetzung mit der Historie ⟹ habe Liberalismus dahinter entdeckt
@@ -161803,9 +161793,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Vor dem Hintergrund der veränderten Situation (Plan einer Stiftung) habe ich begonnen, Altlasten aufzuräumen; damit sind all diese lang begrabenen Themen wieder hochgekommen. Ich habe die aufgehobenen Dokumente und Protokolle durchgesehen, und die Erzählung zur Historie von Lumiera weiter geschrieben. Erst in dem Zusammenhang wurde mir klar, daß hinter dieser Spinnerei mit den Plug-ins eine konsistente Ideologie steckt, welche sich bei näherer Betrachtung als eine Spielart des liberalistischen Glaubens an unsichtbare Heilkräfte herausstellt. Im Rückblick erscheint das plausibel, das war (und ist) der Zeitgeist. Das kann ich aber nicht als Lösung akzeptieren, sondern empfinde es als ungerecht.
@@ -161817,9 +161805,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Darin steckt mein Verlangen nach Rache: ich habe zig mal die Erfahrung gemacht, daß ich meine Haltung und meinen Entwurf überhaupt nicht formulieren kann, weil man mir gar nicht zuhört, sonder wie verblödet immer nur seinem Aberglauben an die magischen Kräfte des Kollektivs frönt. Nun schaffe ich mir eine Konstellation, in der alle diese Kollektiv-Schafe ihr blödes Maul zu halten haben.
@@ -161829,9 +161815,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Meine Haltung war bisher — ehrlicherweise eingestanden — auch nur eine intuitive Einschätzung „das kann so nicht funktionieren was ihr euch da so vorstellt“. Damit allein werde ich keine Debatte bestehen können, und schon gar nicht gegen einen »Zeitgeist«. Also brauche ich eine bessere Position, die die Frage nach der konkreten Architektur und der Rolle von Plug-ins auf einen Boden stellt, auf dem überhaupt argumentiert werden kann. Wenn überhaupt, dann ist die Gelegenheit für strategische Weichenstellungen jetzt (auch bezüglich dessen, was ich für später offen lasse)
@@ -161841,9 +161825,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Das ist ein strategischer Ansatz
@@ -161869,9 +161851,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
...das war am Ende eine erhebliche Schwierigkeit, und hat mich fast eine Woche Arbeit gekostet. Denn zunächst einmal bin ich induktiv vorgegangen, und damit meine ich, aus einem Verständnis des Stoffes — der Text ist nun sehr lang und mühsam zu lesen. Zwar geht es mir um das, was zwischen den Zeilen steht. Aber beim Lesen muß man dennoch das Gefühl haben, daß der Text wohin führt. Und zwar, da es sich um einen Essay handelt, und nicht um einen wissenschaftlichen Artikel, sollte der Text zum Anfang zurückführen.
@@ -161903,9 +161883,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
habe nun alle RfC durchgesehen und verstehe einige Zusammenhänge besser
@@ -161922,9 +161900,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Erste Mail: Oktober 2006.
@@ -161941,9 +161917,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
zunächst bezogen auf ein Independent-Film Project, für das versucht wurde, auf Cinelerra zu editieren, weil Cinelerra damals die erste leicht zugängliche Methode war, HDV-Video zu editieren.
@@ -161956,9 +161930,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
war aber bereits etwas skeptisch, da er Cinelerra länger kannte als Cehteh
@@ -161968,9 +161940,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Und zwar lediglich, weil er davon nichts wußte. Diese Initiative war nämlich nirgends angekündigt; man mußte viel auf IRC sein, um mitzubekommen, daß da was lief. Ichthyo hatte sogar Cehteh und Johannes Sixt chatten gesehen, und nicht recht verstanden, worum es ging: sie haben nämlich versucht, die neueste Version Cinelerra v2.1 mithilfe von Git nochmal gemerged zu bekommen. Cehteh und Ichthyo sind erst im Mai direkt ins Gespräch gekommen, und dann hat Cehteh sofort Ichthyo eingeladen, sich auf pipapo.org einzubringen (d.h. Ichthyo bekam Schreibrecht auf das Wiki). Allerdings hatte Cehteh bereits ein halbes Jahr vorher für Ichthyo ein Git-Repo auf pipapo.org eingerichtet (mit Schreibrecht), welches Ichthyo genutzt hat, um weitere Patches für Cinelerra vorzubereiten und mit Johannes Sixt abzustimmen. Ichthyo hat aber damals noch nicht verstanden, daß da eine Initiative entstand, die unabhängig von Cinelerra-CV war. Er dachte zunächst, dieses Git-Repo wäre eine neue Einrichtung von Jonannes Sixt, für Cinelerra-CV
@@ -161986,9 +161956,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
...und zwar, im Bezug auf Änderungen, die sich von der Heroine-Version von Cinelerra wegbewegen. Der Grund war offensichtich, daß der die Situation kannte, und keine Möglichkeit sah, sie zu ändern. Johannes hatte einen full-time Job als Entwickler, und ohnehin wenig Freizeit, die er nicht komplett nur für Cinelerra verbraten wollte. Er war es auch, der die Merges überhaupt zustandegebracht hat, und damit eine ganz kleine Möglichkeit geschaffen hatte, neue Patches zu akzeptieren; aber jeder Patch hat ihm persönlich Probleme bereitet (weil er dann den nächsten Merge „ausbaaden“ durfte).
@@ -162003,9 +161971,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Und zwar, obwohl (oder weil) er ein extrem erfahrener Programmierer und Project-Lead war. Er wußte einfach, daß er keinen Code mehr anfassen würde.
@@ -162024,9 +161990,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
hat aber — mangels Erfahrung — sich nicht getraut, viel Code beizutragen; er hat den Code gelesen, Typos in Kommentaren korrigiert, Formulierungen in den Wikis verbessert und viele (sehr gute!) Fragen gestellt.
@@ -162037,9 +162001,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
...und hat dabei sehr viel gelernt, was im Umkehrschluß bedeutet, daß Cehteh ihn intensiv gementored hat, und ihm viele Programmiertechniken beibringen mußte, die auf der Uni nicht gelehrt wurden. Er hatte nur ein Semester "systemnahe Programmierung" gehabt, und Spaß daran gefunden, aber die Uni hat nicht mehr geboten, als ein paar Programmieraufgaben in C.
@@ -162049,9 +162011,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
die C++ - Strukturen von Ichthyo hat er bewundert,
@@ -162068,9 +162028,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Und zwar überwiegend in der Rolle eines »Bewunderers«: er war bei allen Diskussionen dabei, hat sich oft nichteinmal getraut, Fragen gestellt, und dann anschließend in langen Chat-Sitzungen sich alles im Detail von Ichthyo erklären lassen. Er sagte damals immer wieder, daß er so gerne mit dabei sein wolle, aber was hier gemacht würde, sei um „mehrere Stockwerke zu hoch“ für ihn
@@ -162081,9 +162039,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Das war von Cehteh als „eigentlich ein Anfänger-Job“ eingestuft. Daher hat Cehteh ihn angehauen, „Siemon, das packst Du!“. Tatsächlich hat Simeon den größten Teil der Implementierung geschrieben, so wie sie dann viele Jahre in der Codebasis verblieb. Allerdings brauchte er permanente Hilfe von Cehteh; die beiden waren beinah täglich zusammen im Chat und Cehteh hat den Code von SimAV reviewed
@@ -162096,9 +162052,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Und zwar handelte es sich um Code von hoher Qualittät, rein als Library konzipiert, sauber strukturiert, gründlich getestet
@@ -162109,9 +162063,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
...er ist aber nie selber eingestiegen, sondern hat darauf gewartet, daß Cehteh die entsprechenden Teile im Backend implementiert, in denen seine Library eingebunden würde; die Developer-Gruppe hate Anfangs in aller Form beschlossen, daß Lumiera auf dem Gmerlin/Gavl-Framework von Burkhard aufbauen sollte. Burkhard hat immer klar gemacht, daß er nicht direkt in das Lumiera-Projekt einsteigt, weil sein eigenes Projekt (der Gmerlin Videoplayer) bereits seine volle Kapazität braucht. Und da Christian kaum je etwas für das Backend getan hat, sondern Plugins und Frameworks gebaut hat, kam auch Burkhard nie weiter in das Projekt und verschwand irgendwann von der Bildfläche
@@ -162132,9 +162084,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Hatte damals die Idee,
@@ -162168,9 +162116,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Die Mailingliste dazu hat Cehteh auf der Infrastruktur von pipapo.org und später von Lumiera gehostet; leider ist diese Initiative relativ schnell ausgetrocknet (es gab wenig zu besprechen, jeder hat sein Ding gemacht)
@@ -162189,9 +162135,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Fazit: es hat sich erübrigt
@@ -162205,9 +162149,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit 13b963ba5bc39603c1d425752f07d8b3941f01ba
@@ -162229,9 +162171,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit 0a9c2599dd49990b8ccf779a44abdaba626bdd86
@@ -162253,9 +162193,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit 0a9c2599dd49990b8ccf779a44abdaba626bdd86
@@ -162277,9 +162215,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit a313ea87a588241a1db72b6cac6e2aee2b512fc7
@@ -162307,9 +162243,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit 471148b7db2e41f2c081760cc367710ce6999da9
@@ -162331,9 +162265,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit ebb4da6cc738392c015c7d66c54c6483331459f4
@@ -162355,9 +162287,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit ed4decb5de9c6c22bb0f9173e3d239fefe9453e7
@@ -162380,9 +162310,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit 45c21677009dfc733d0ecd6f26d783c99b2818d5
@@ -162404,9 +162332,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
commit ce3eb42131b0f8f809b00ef9a7759eb885e684d3
@@ -162427,9 +162353,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Die Git-Historie der ersten Wochen ist im Rückblick durchaus aufschlußreich. In der offiziellen Kommunikation haben Cehteh und Ichthyo über eine gemeinsame prototypsiche Applikation geredet, während gleichzeitig jeder auf seinem Branch »Fakten geschaffen« hat, die nicht koordiniert waren, und sich konzeptionell widersprechen. Das hier ist ein gutes Beispiel...
@@ -162460,9 +162384,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
Ein Rant von einem User aus Argentinien. Das "Cinelerra-3"-Projekt war offenbar nur wenigen bekannt. Christian und Hermann Robak haben irgendwann im Thread geantwortet
@@ -162473,9 +162395,7 @@ unsigned int ThreadIdAsInt = *static_cast<unsigned int*>(static_cast<vo
...also der ganze Kreis an einführenden Seiten, die bis heute in meinem Renderengine-TiddlyWiki herumhängen. Und alle wesentlichen UML-Diagramme. Sogar über die Builder-Entities habe ich mir bereits ausführlich Gedanken gemacht
@@ -162668,9 +162582,7 @@ Cinelerra mailing list
Error, Locking, Plugin und eine Linked List
@@ -162707,9 +162617,7 @@ Cinelerra mailing list
Zunächst einmal, ich wußte mit UML umzugehen, Christian hat nach einem ersten Gehversuch aufgegeben. Daher habe ich per Generierung bereits einen großen Haufen Klassen angelegt, d.h. der C++ - Code dominierte absolut. Aber für Christian war das einfach durchschaubar (und ich habe das auch betont).
@@ -162733,9 +162641,7 @@ Cinelerra mailing list
In diversen Diskussionen, die ich heute gelesen habe, ist immer nur von "CT" die Rede. Auch Herman Robak rehted immer nur von Christians Initiative. Ich sehe Antworten von mir, die wie "5. Rad am Wagen" rüberkommen, oder wie jemand, der sich wichtig machen möchte, und sehr akademisch redet. Meine wenigen Aussagen wurden in Diskussionen in diesem ersten Herbst praktisch nicht aufgegriffen. Allerdings bin ich in die Threads mit den Usern auch wenig eingestiegen, deren Argumente waren mir zu blöd, um darauf einzugehen. Das war ganz anders als sonst, ich finde viele Beiträge von mir, in denen ich Usern mit Cinelerra geholfen habe, und daraus ist ein Gespräch entstanden.
@@ -162745,9 +162651,7 @@ Cinelerra mailing list
ich erinnere mich, daß andere Leute von "Deinem neuen Projekt" geredet haben, und Christian dann immer darauf hingewiesen hat, daß das nicht "sein" Projekt ist. Er wollte es auch nicht auf pipapo.org hosten.
@@ -162761,9 +162665,7 @@ Cinelerra mailing list
Ich erinnere mich, argumentativ auf die Leute einzugehen, und zwar vor allem auf die Anfänger. Ich kann mich erinnern, daß Christian grade den Anfängern gegenüber oft von oben herab kam, und schnoddrig war. Ich erinnere mich auch, in Debatten auf IRC stark präsent gewesen zu sein, und sehr für unser Projekt geworben zuhaben. Ich hatte auch lange, lange Gespräche mit Raffa und Co. über allgemeine Themen und Film. Chistian dagegen hing auf dutzenden anderen Channels herum, und hat dem Cinelerra-Channel nur begrenzte Aufmerksamkeit gewidmet. Er war auf anderen Channels oft in routiniertes Ping-Pong mit unendlich vielen anderen Leuten involviert, die sich alle kannten. Demgegenüber war ich dort ein kompletter Außenseiter, und hab mich auf diesen anderen Channels (z.B. Debian, Free Software) auch tunlichst rausgehalten.
@@ -162773,9 +162675,7 @@ Cinelerra mailing list
Also das Gefühl, daß das alles dermaßen gut aufgeht, und wir so unglaublich produktiv sind, daß sich ein laufendes System in ein paar Monaten hinstellen läßt, wenn man nur wirklich hart arbeitet. Es bringt mir auch die Erinnerung zurück, daß ich nicht hinterfragt habe, wie das Verhältnis zu Cinelerra ist. Das hier war »Cinelerra-3« und im übrigen gab es ja meinen Projektplan, mit dem man das irgendwie den ersten Meilensteinen zuordnen könnte. Auch das Gefühl: wie wir dann weiter vorgehen und das in Cinelerra einbauen, überleg ich mir, wenn die Engine läuft. Denn eine laufende Engine kann ja schon mal nicht falsch sein.
@@ -162785,9 +162685,7 @@ Cinelerra mailing list
Diese Erinnerung bringt erstmals das Gefühl einer auszehrenden Schwere. Ich bin einen ganzen Tag dagesessen, draußen regenete es. Von Zeit zu Zeit war ein rätselhaftes "Tuuut" auf 1kHz draußen zu hören, das ich nicht verstanden habe, nicht klar ob eine Glocke oder ein Signal. Währenddessen habe ich mit mit der Asset- und MObject-Hierarchie herumgeplagt, die Struktur und die Logik wollte nicht aufgehen, ich sah keine Möglichkeit, einen Test zu schreiben, und ich habe vergeblich nach einem Ankerpunkt gesucht, von dem her ich den Code aufrollen konnte. Es war ja letztlich eine Sammlung von UML-generierten Klassen-Skeletten, die ich nun versuchte, zusamenzuhängen.
@@ -162812,9 +162710,7 @@ Cinelerra mailing list
Und zwar in den ersten dokumentierten Diskussionen, auf der Cinelerra-Mailingliste mitte August. (Beachte, Adam konnte das lesen — das zeigt, daß Christian unreflektiert gehandelt hat).
@@ -162836,9 +162732,7 @@ Cinelerra mailing list
Ich weiß ganz sicher, daß ich niemals einem Projekt beigetreten wäre, einen Video-Editor komplett neu zu schreiben. Da hätte ich eine ganz andere Organisation vorausgesetzt, und eine echte Design-Phase. Ich kann mich auch erinnern, daß ich Christian's Glaube an die "Community" als naiv empfunden habe. Ich sah das, was wir machen, als ein alternatives Basissystem, mit dem man sich in eine bestehende, große Applikation einklinkt.
@@ -162855,9 +162749,7 @@ Cinelerra mailing list
die Plug-in-Kontroverse war bereits damals, in den ersten Wochen
@@ -162871,9 +162763,7 @@ Cinelerra mailing list
wie kam es daß wir neu gebaut haben?
@@ -162888,9 +162778,7 @@ Cinelerra mailing list
Einsicht: der Plugin-Streit war bereits in den ersten Wochen
@@ -162973,9 +162859,7 @@ Cinelerra mailing list
...das habe ich in der Erinnerung komplett anders angebunden: mein Bild war, daß das erst Jahre später passiert ist, und sich langsam hochgeschaukelt hat
@@ -162986,9 +162870,7 @@ Cinelerra mailing list
schon die erste lange Antwortmail ("how to proceed?") erscheint latent-feindselig. Und die zweite, grundsätzliche Mail ist eine Kriegserklärung.
@@ -163008,9 +162890,7 @@ Cinelerra mailing list
Im Rückblick waren dafür die Anzeichen schon viel länger da, aber ich habe sie übersehen, bzw. als Joke abgetan. Hätte Christian gleich von Anfang klar gesagt, daß er sich gegen moderne Methoden definiert, und nur die Imperative Pogrammierung alten Schlages für sinnvoll hält, dann hätte ich mich vermutlich überhaupt nicht näher auf ihn eingelassen, und das gesamte Projekt wäre nie zustandegekommen. Christian aber war locker-eschmeidig, und ich war ebenso stets aufgeschlossen und interessiert und habe ebenso nicht gesagt, daß ich einen solchen Ansatz als "oldschool" komplett ablehnen würde. Hinzu kommt, daß Chistian selbstbewußt auftritt, und ich dagegen sehr stark meine eigenen Schwächen sehe, und daher stets vorsichtig bin und meine Position absichere.
@@ -163020,9 +162900,7 @@ Cinelerra mailing list
Und das hat mehrere Quellen
@@ -163043,9 +162921,7 @@ Cinelerra mailing list
Und zwar in zweierlei möglichen Richtungen (ich erinnere mich jetzt, nach Lektüre der ganzen Dokumente, daß ich das damals bereits so gesehen habe)
@@ -163070,9 +162946,7 @@ Cinelerra mailing list
Deshalb ist die Beurteilung dieser Kontroverse so schwierig
@@ -163095,9 +162969,7 @@ Cinelerra mailing list
8.7.
@@ -163107,9 +162979,7 @@ Cinelerra mailing list
9.7.
@@ -163119,9 +162989,7 @@ Cinelerra mailing list
Ersichtlich erst schon in den Mails, aber ganz schlagend in der einzigen Debatte, die ein direktes Gespräch war (auf IRC am 10.7):
@@ -163139,9 +163007,7 @@ Cinelerra mailing list
Christian blieb im Projekt, das Projekt lief weiter, und ich habe von seinem Netzwerk profitiert
@@ -163175,9 +163039,7 @@ Cinelerra mailing list
das eigentliche Projekt, das grade so hoffnungsvoll begonnen hatte, und das für mich so beglückend aussah, war mit einer Explosion untergegangen. Ich hatte gehofft, als einer von Gleichen, aufgrund meiner Fähigkeiten anerkannt zu werden, und gemeinsam etwas zu schaffen. Das war nun nicht mehr möglich; stattdessen mußte ich nun taktieren, lavieren und manipulieren.
@@ -163195,9 +163057,7 @@ Cinelerra mailing list
Bis dahin war Christian immer sehr ermutigend, fand alles Toll, hat zu allem weitere (sehr sinnvolle) Vorschläge gemacht....
@@ -163290,9 +163146,7 @@ interessierte davon was mitbekommen anstatt privater mails.
das war mir damals zwar unbewußt aufgefallen,
@@ -163303,9 +163157,7 @@ interessierte davon was mitbekommen anstatt privater mails.
Woher weiß ich das?
@@ -163325,9 +163177,7 @@ interessierte davon was mitbekommen anstatt privater mails.
Er hat auf einem separaten 'prototype' branch anscheinend damit schon einen UML-generierten Satz an Klassen gebaut. Von diesem Prototype-Branch gibt es keine Spur mehr (wichtig! denn das zeigt, daß bereits vor Ende Juni mit Experimenten zur Klassengenerierung begonnen wurde)
@@ -163367,9 +163215,7 @@ oder bouml einfach ein paar sachen um bestimmte dinge zu modelliern.
ganz klar eine Anspielung an "Terminator"
@@ -163407,9 +163251,7 @@ note about gnu style: (how I/emacs interpret it)
@@ -163432,9 +163274,7 @@ note about gnu style: (how I/emacs interpret it)
angeblich hätte er sich mir mir auf ein Multi-Language-Projekt geeinigt
@@ -163447,9 +163287,7 @@ note about gnu style: (how I/emacs interpret it)
ist das möglich oder eine dreiste Lüge?
@@ -163460,9 +163298,7 @@ note about gnu style: (how I/emacs interpret it)
Der 3.7 war ein Sonntag, das heißt, ich mußte am nächsten Tag ins Büro, bin jedoch in diesen Jahren in der Regel erst Mittags dort gewesen. Es war sehr typisch für mich, in der Nacht Sonntag ⟶ Montag noch (zu) lange wach zu sein...
@@ -163472,9 +163308,7 @@ note about gnu style: (how I/emacs interpret it)
Also eindeutig mit Smily, und ich habe entsprechend witzelnd (und wie ich denke, deutlich) geantwortet; Christian hat daraufhin sofort einen Rückzieher gemacht. Mir erscheint es allerings plausibel, daß eine solche Diskussion in einer früheren, lockereren Phase stattfand, nicht in diesem bereits angespannten Moment....
@@ -163509,9 +163343,7 @@ note about gnu style: (how I/emacs interpret it)
Und zwar in mehrerlei Hinsicht. Zum einen, Christian hat den wichtigeren
@@ -163553,9 +163385,7 @@ proposals about C nameing rules, plugins and interfaces. (i am back ;))
ich habe C-Funktionen stets nur als eine Konzession betrachtet
@@ -163563,9 +163393,7 @@ proposals about C nameing rules, plugins and interfaces. (i am back ;))
Denn ich war bereits in den 90er Jahren ziemlich ablehnend gegenüber C (nicht C++). Ich hab die C-Kultur als eine Kultur der Schlaumeier und Taschenspieler betrachtet. Wenn ich also vor diesem Hintergrund nun sage, "es macht nicht Sinn, alles zwingend in Objekte zu packen", dann war das von mir als Ausdruck von Offenheit und Konzillianz gemeint. Ich wollte ausdrücken, daß ich kein OO-Fanatiker bin. Ich weiß auch sehr genau, daß meine Vorstellung ehr dain ging, daß man zwar ein *.cpp-File hat, in diesem aber nur Funktionen schreibt, die imperativ mit For-Schleifen etc. implementiert sind. Genau deshalb hat mich dann auch Christian's Versuch, reines C zu etablieren (später, wie es um main() und das Start-up ging), ziemlich empört. Ich fühlte mich ausgenutzt und betrogen, denn in meinem Verständnis hatte ich eben nur konzediert, daß man auch rein imperativen Code schreiben kann.
@@ -163575,9 +163403,7 @@ proposals about C nameing rules, plugins and interfaces. (i am back ;))
Nach dieser Leseart hätte es also zu dem Zeitpunkt keine entsprechende Diskussion auf IRC gegeben, aber Christian hat sich daran erinnert, daß ich einige Woche früher mal gesagt habe, es müsse ja nicht alles in Klassen gepackt werden, und für reine Video-Berechnung würde auch C gehen. Er hat das dann als Zustimmung aufgefaßt, und wollte jetzt ehr versuchen, das Gewicht insgesamt Richtung C zu verschieben, weil er sich eigentlich erhofft hatte, ein reines C-Projekt starten zu können, in das auch seine ganzen C-Tools gut reinpassen. Diese Lesart halte ich im Moment für die plausibelste Deutung. Insofern war es keine Lüge, sondern nur ein Manipulationsversuch, der mir zu dem Zeitpunkt sogar entgangen ist
@@ -163591,9 +163417,7 @@ proposals about C nameing rules, plugins and interfaces. (i am back ;))
"review it carefully if it looks ok, I straight go into make a referene implementation...."
@@ -163633,9 +163455,7 @@ implementation, since this is a very low level building block.
"since this is a very low level building block."
@@ -163650,9 +163470,7 @@ implementation, since this is a very low level building block.
effektiv ist das eine freundlich verpackte Ablehnung
@@ -163712,9 +163528,7 @@ Hermann
hier sage ich explizit, und mir Argument,
@@ -163727,9 +163541,7 @@ Hermann
Das meine ich als echte Frage, und die ist wichtig, zum Verständnis dessen, was dann geschah.
@@ -163771,9 +163581,7 @@ Hermann
Christian antwortet am selben Abend völlig naiv und macht klar was er will
@@ -163781,9 +163589,7 @@ Hermann
Das geht mir jetzt so, und das ging mir vermutlich damals nicht anders.
@@ -163904,9 +163708,7 @@ we provide for us, we provide for people extenting it too)
Und damit meine ich eine Applikation, nicht OS-level Code.
@@ -163924,9 +163726,7 @@ we provide for us, we provide for people extenting it too)
Er skizziert ja, wie er sich das vorstellt:
@@ -163946,9 +163746,7 @@ we provide for us, we provide for people extenting it too)
Das macht diesen Vorschlag so »entwaffnend«:
@@ -163977,9 +163775,7 @@ we provide for us, we provide for people extenting it too)
Fazit: ich stecke nun bis über die Ohren in der Scheiße
@@ -163995,9 +163791,7 @@ we provide for us, we provide for people extenting it too)
Er findet Macros gut, ist stolz auf sein Programmierschema mit "goto" und besteht darauf, daß man auf einem gemeinsamen Datenmodell arbeiten muß, weil was anderes mit C ja nicht geht. (Die beiden letztgenannten Punkte ergänze ich aus der Erinnerung, sie gehen nicht aus den Mails hervor. Es könnte auch sein, daß Christian diese Punkte erst später ausgeführt hat — aber es war zu diesem Zeitpunkt mit wünschenswerter Klarheit deutlich, daß er alle die Argumente gegen das imperative Programmieren entweder nicht kennt, oder nicht gelten läßt.
@@ -164007,9 +163801,7 @@ we provide for us, we provide for people extenting it too)
C++ Klassen sind immer "fett", C-Interfaces sind immer schlank und klar. Abstraktionen und Interfaces werden mit C++ assoziiert und als kompliziert und schwierig dargestellt
@@ -164032,9 +163824,7 @@ we provide for us, we provide for people extenting it too)
Wenn man diese Mail unvermittelt liest, kann man nur den Kopf schütteln. Ich greife mir einen Widerspruch in Christians Aussagen heraus, und leite daraus die Forderung nach Entscheidung ab; aber diese Entscheidung treffe ich sofort selber, auf argumentativer Ebene: Etwa so: Es gibt bei diesem Thema hier nur einen Ansatz, der nicht Unfug ist, und der ist sehr aufwendig und komplex. Spielraum für Abwägungen und Auslegungen lasse ich keinen.
@@ -164061,9 +163851,7 @@ we provide for us, we provide for people extenting it too)
Christian war einfach nicht zu stoppen. Er labert und labert und labert und hört nicht zu. Er hat mich auch etwas von oben herab behandelt, in dem Sinn "hehe, der Typ mit Java und der Bank, die arbeiten doch nur mit bloatware, also sind seine Urteile mit Vorsicht zu genießen..."
@@ -164089,9 +163877,7 @@ we provide for us, we provide for people extenting it too)
Es könnte sein, daß Christian verstanden hat, daß ich angreife, daß er aber meiner Argumentation überhaupt nicht folgen kann, weil er gedanklich „anders abbiegt“ (z.B. weil er gewisse Argumentationsschritte von mir nicht versteht, weil ihm der Kontext fehlt, und er sie dann als „unverständlich“ abtut, und meinen Gedankengang anders „interpoliert“). Er macht in dieser Diskussion Statements, die man eigentlich gar nicht mehr so machen kann, wenn man auch nur einen Teil der Disussion der vorausgegangenen 10 Jahre zum Thema Architektur und Methoden bewußt gelesen und nachvollzogen hat. Diese Beobachtung ist mir damals komplett entgangen.
@@ -164106,9 +163892,7 @@ we provide for us, we provide for people extenting it too)
Ich deutet das so, daß ich durch meinen Angriff einer Vision den Boden entzogen habe, die tatsächlich für Christian sehr bedeutend war. Im Rückblick gibt es dutzende Belege dafür in den Dokumenten. Mir war das damals jedoch nicht klar, und ich dachte, es würde helfen, das Thema nachzuschärfen; meine vorgetragene Problemanalyse war ja weithin bekannt und diskutiert worden in den vorausgegangenen Jahren. Vermutlich hatte ich sogar damit gerechnet, daß sich eine Diskussion über eine Plugin-Architektur besser führen läßt, als eine Diskussion um die grundlegende Haltung zum Programmieren.
@@ -164147,9 +163929,7 @@ we provide for us, we provide for people extenting it too)
Bei der Lektüre jetzt bekomme ich den Eindruck, daß das passiert, weil ich vor der Konsequenz ausgewichen bin, den dahinter liegenden Grundsatz-Streit direkt auszutragen. Ich habe mich stattdessen auf die Frage nach einer Plugin-Architektur konzentriert, was Christian damit gekonntert hat, daß er das ja gar nicht will — wobei jede seiner sachlichen Ausführungen dem explizit widerspricht. Dadurch war ich durch ein Double-Bind gefesselt (und das war nicht das erste Mal, daß mir das in meinem Leben passiert ist).
@@ -164169,9 +163949,7 @@ we provide for us, we provide for people extenting it too)
Ich bin jetzt erstaunt, welche bedeutende, und auch besonnene Rolle dieser Mann in den ersten Wochen gespielt hat. Das war mir komplett entfallen.
@@ -164180,9 +163958,7 @@ we provide for us, we provide for people extenting it too)
Sein Vorschlag
@@ -164203,9 +163979,7 @@ we provide for us, we provide for people extenting it too)
Und (daran erinnere ich mich jetzt sogar wieder) das habe ich nicht als Taktik oder Heimtücke empfunden, denn ich hatte doch meine Argumente in der grundsätzlichen Mail komplett offen dargelegt; diesen Argumenten zufolge wird dieses Experiment vorhersagbar scheitern.
@@ -164215,9 +163989,7 @@ we provide for us, we provide for people extenting it too)
Sehr aufschlußreich wie Christian pariert: das wäre Zeitverschwendung. Er will die Grundsatz-Entscheidung jetzt (zu dem Zeitpunkt, wo wir, in gemeinsamen Verständnis, tatsächlich zu coden anfangen)
@@ -164228,9 +164000,7 @@ we provide for us, we provide for people extenting it too)
Christian will das System jetzt öffnen und die Entscheidung darüber fixieren
@@ -164241,9 +164011,7 @@ we provide for us, we provide for people extenting it too)
11.7 : Christian erklärt den Plugin-RfC einseitig für anerkannt
@@ -164251,9 +164019,7 @@ we provide for us, we provide for people extenting it too)
@@ -164276,9 +164042,7 @@ we provide for us, we provide for people extenting it too)
Der Grund ist aus den IRC-Logs ersichtlich: Christian und ich hatten uns wiederholt auf IRC nicht getroffen (ich war extrem mit Arbeit überlastet in der Zeit, Orgel + Cin-2 + Baaderbank). Ich hatte am 10.7. eine Diskussion mit Plouj + Hermanr (aber Christian schlief um die Zeit). Plouj hat das IRC-Log an Christian weitergeleitet, der es dann selektiv in seiner Mail gequotet hat, aber nicht auf meine Argumente eingegangen ist
@@ -164288,9 +164052,7 @@ we provide for us, we provide for people extenting it too)
Chistian nimmt Auszüge aus IRC, gequotet in der Mail, und setzt darunter jeweils ein Statement, das das Gegenteil von dem argumentativen Stand einfach affirmiert.
@@ -164308,9 +164070,7 @@ we provide for us, we provide for people extenting it too)
Das Log dazu habe ich aufgehoben in meinem privaten Trac.
@@ -164324,9 +164084,7 @@ we provide for us, we provide for people extenting it too)
Er hat mich selten überhaupt ausreden lassen. Er hat permanennt auf einzelne Stichworte reaagiert, und diese nach seiner Sicht »entkräftet«:
@@ -164344,9 +164102,7 @@ we provide for us, we provide for people extenting it too)
Nicht wirklich, aber im Zusammenhang war das der Eindruck
@@ -164368,9 +164124,7 @@ we provide for us, we provide for people extenting it too)
Christian hat wohl geglaubt, mit ein paar mündlichen Zusagen hat der diesen ängstlichen Typen jetzt ruhiggestellt, und sein Ding ist durch. Und es ging ihm vermutlich darum, Code vorlegen zu dürfen. Er glaubte wohl, wenn man erst mal seinen Code sieht, dann wären alle Mißverständnisse ausgeräumt, und es würden dann alsbald die Wunder geschehen, von denen er überzeugt war; daher war vermutlich das sein einziges Ziel, und deshalb war er auch mündlich bereit, so viele Zugeständnisse wie möglich zu machen, bis zu dem Punkt, daß er sich selber komplett widerspricht. Er dachte vermutlich, er muß dieses Ding jetzt nur reinbekommen, und alles wird gut, alles weitere wird sich dann schon von selber zeigen, Leute werden Plugins in Massen schreiben, die Creativität pur bricht aus, und dieser komische Bank-Mensch, wer redet dann noch über den...?
@@ -164391,9 +164145,7 @@ we provide for us, we provide for people extenting it too)
ich kann mich jetzt wieder erinnern,
@@ -164408,9 +164160,7 @@ we provide for us, we provide for people extenting it too)
Im Rückblick halte ich es für wahrscheinlich, daß ich dieses ziemlich dreiste Vorgehen von Christian nicht sofort und auch (bis jetzt nicht) in vollem Umfang realisiert habe. Den Status des RfC als "final" habe ich natürlich irgendwann gesehen, möglicherweise hat mich Christian sogar darauf hingewiesen. Und ich habe dann wohl geschluckt, und gemerkt, daß mir nach all dem Streit jetzt praktisch nichts anderes übrig bleibt, als so zu tun, als wäre das belanglos
@@ -164420,9 +164170,7 @@ we provide for us, we provide for people extenting it too)
im Rückblick nicht klar: warum habe ich den Kompromiß nicht explizit klargestellt?
@@ -164433,9 +164181,7 @@ we provide for us, we provide for people extenting it too)
Ich hätte sofort eine Mail rumschicken können, in dem ich den Kompromiß aus meiner Sicht zusammenfasse, und die von Christian zugesagten Punkte festnagle.
@@ -164445,9 +164191,7 @@ we provide for us, we provide for people extenting it too)
...nachdem Christian den RfC unqualifiziert für angenommen erklärt hat, hätte ich entweder ihm gegenüber daruf bestehen können, daß er die Einschränkungen im Text aufführt (das wäre ein direkter Affront und Chistian würde dann weiter versuchen, zu manipulieren) oder ich hätte den RfC einfach editieren können, die Einschränkungen im Text vermerken, und das mit einem Kommentar bestätigen "ich habe diesem Vorschlag nur unter den genannten Bedingungen zugestimmt)
@@ -164458,9 +164202,7 @@ we provide for us, we provide for people extenting it too)
Das ist ausschließlich Spekulation bzw. Interpolation.
@@ -164472,9 +164214,7 @@ we provide for us, we provide for people extenting it too)
...allein schon von dem Umstand, daß wir nun plötzlich diese Diskussion haben; möglicherweise war ich noch voller Begeisterung und Drive und habe das Verhältnis zu Christian als kollegial und wohlgesonnen empfunden (was es bis vor kurzem war). Dieser Hypothese zufolge habe ich den Streit aus Notwehr vom Zaun gebrochen und war bloß froh, daß der Tonfall am Ende versöhnlich war, und es weiterging. Ich wollte zu dem angenehmen Zustand zurück
@@ -164484,9 +164224,7 @@ we provide for us, we provide for people extenting it too)
Dieser Hypothese zufolge wäre es mir unangenehm gewesen, daß dieser Streit plötzlich so eskaliert ist. Ich wäre dann bloß froh gewesen, daß es nochmal "mit einem blauen Auge" abgegagen ist und kein Bruch daraus entstanden ist. Ich wäre froh gewesen, daß das Thema jetzt vom Tisch ist und wir uns mündlich auf einen vernünftigen Kompromiß geeinigt haben. Es hätte mich dann zwar gewurmt, daß Christian den RfC unqualifiziert als "angenommen" markiert, aber ich hätte dann gegen mich selber argumentiert, das solle man mal nicht zu wörtlich nehmen und darauf herumreiten, eigentlich hat er ja nix falsches gesagt. Insgesamt hätte ich damit geglaubt, wir hätten einen Dissens gehabt, und uns dann "unter Männern" geeinigt, und beide würden sich selbstverständlich an die Absprache halten.
@@ -164496,9 +164234,7 @@ we provide for us, we provide for people extenting it too)
Für diese Hypothese habe ich keinerlei Anhaltspunkt, sie wäre aber durchaus plausibel, gemessen an meinem allgemeinen Verhalten: wenn mir Wertschätzung entgegengebracht wird und wenn ersichtlich auf meinen Beitrag geachtet wird, dann erzeugt das bei mir ein starkes Verpflichtungsgefühl und eine starke emotionale Bindung (weil es mir in meinem Leben bis damels ehr selten zuteil geworden ist, jenseits der Familie). Demnach wäre mir emotional vor allem daran gelegen gewesen, den angenehmen Zustand aufrecht zu erhalten, und ich war froh, den (notwendigerweise gestarteteten) Konfilkt einigermaßen gut wieder losgeworden zu sein. (dafür würde auch sprechen, daß ich grade zu der Zeit von mehreren anderen Seiten erheblich unter Druck stand)
@@ -164508,9 +164244,7 @@ we provide for us, we provide for people extenting it too)
Dieser Hypothese zufolge hätte ich die Situation strategisch eingeschätzt, und mich auf mein professionelles Urteil verlassen, dem zufolge die Versprechungen von Christian zwangsläufig an der Wirklichkeit scheitern würden. Es wäre mir demnach lediglich darum gegeangen, genügend »Bremse« gegeben zu haben, so daß Christian nicht unmittelbar loslegt und ein Kettensägenmassaker anrichtet. Für den Rest hätte ich mich darauf verlassen, daß er nicht viel zustande bringen wird und daß ich eventuelle Restprobleme später schon noch abgebogen bekomme, z.B. indem ich dann im Einzelfall eben ekelhaft auf Qualitätsmerkmalen bestehe (die er mit seinem Plan niemals wird erfüllen können). Ich habe keinerlei Anhaltspunkt ob diese Hypothese irgendwie gerechtfertigt ist, und ich damals so gedacht haben könnte; jedenfalls im Rückblick wäre das eine realistische Einschätzung gewesen. Es ist ja exakt so gekommen, wie ich in meinem Einwand vorhergesagt habe: es werden immer Wunder versprochen, aber praktisch bleiben diese Art "leichtgewichtigen" Plug-ins praktisch bedeutungslos.
@@ -164520,9 +164254,7 @@ we provide for us, we provide for people extenting it too)
Dieser Hypothese zufolge hatte ich mich plötzlich in einem spannenden Projekt gefunden (was ich als Glücksfall betrachte) und hatte schon Ideen, mit denen ich mich identifiziere und die ich realisieren möchte. Daher wollte ich bloß diese sich plötzlich auftuhenden Hindernisse aus dem Weg haben, und nachdem das "nach Bauchgefühl" der Fall war, war mir alles egal, solange ich mit dem Zeug weiter machen konnte, was ich wollte. Dieser Hypothese zufolge hätte ich mich rein opportunistisch verhalten (interesssanterweise exakt genauso wie Christian, wenn man eine ähnlich gelagerte Leseart anwendet, was heißen würde, wir waren uns insgeheim einig) und hätte keinerlei Bewußtsein dafür gehabt, was eine solche Haltung für die Zukunft bedeutet. Mein Verhalten im nächsten halben Jahr würde ziemlich gut zu dieser Hypothese passen
@@ -164532,9 +164264,7 @@ we provide for us, we provide for people extenting it too)
dieser Hypothese zufolge wäre ich zu der Einschätzung gelangt, daß es unmöglich ist, im Augenblick mehr zu bekommen, als ich konkret hatte: nämlich die Möglichkeit, ungestört weiterzumachen plus eine mündliche Zusage von Christian, daß er jetzt nicht durchmarschiert und sich an die Einschränkungen hält. Im Besonderen wäre meine Einschätzung dieser Hypothese zufolge gewesen, daß Christian ein »Festnageln« als ungeheuerlichen Affront versteht, und mich entweder sofort vor die Tür setzt (er hatte die technische Hoheit über die ganze Infrastruktur), oder aber sich dann der Streit endlos fortsetzt, mit dem Ergebnis, daß wir anschließend auseinandergehen, und das schöne Projekt gestorben wäre, bevor es begonnen hat
@@ -164551,9 +164281,7 @@ we provide for us, we provide for people extenting it too)
ich kann jetzt den Zusammenhang gedanklich fassen
@@ -164569,9 +164297,7 @@ we provide for us, we provide for people extenting it too)
Einige erfahrene Männer, die allesamt ihr Handwerk verstehen, gehen mit einem gemeinsamen Werk vorran und leiten eine Bewegung ein.
@@ -164584,9 +164310,7 @@ we provide for us, we provide for people extenting it too)
allerdings nie irgend etwas zum DataBackend
@@ -164603,9 +164327,7 @@ we provide for us, we provide for people extenting it too)
er hat sich dann zu 150% auf das uWiki geworfen
@@ -164621,9 +164343,7 @@ we provide for us, we provide for people extenting it too)
und zwar passiert hier bereits der Streit über die Plug-in-zentrische Architektur
@@ -164634,9 +164354,7 @@ we provide for us, we provide for people extenting it too)
Ich hatte mir gemerkt, daß wir auf der Terrasse in Karlsruhe saßen, und das Thema angesprochen haben. Das war aber mindestens ein Jahr später. Außerdem habe ich mir gemerkt, daß es irgendwie mit dem Thema Application start-Up zusammenhing. Das wäre sogar zwei Jahre später.....
....und hab auch tatsächlich Fortschritte gemacht, wenngleich die auch komplett im Mißverhältnis standen zu der Absicht, die ursprünglich hinter diesem Prototypen stand:
@@ -164696,9 +164412,7 @@ we provide for us, we provide for people extenting it too)
gemeint war, Lumiera ist ein Projekt, das auch heroischen Einsatz einfach spurlos aufsaugt, wie ein trockener Schwamm
@@ -164748,9 +164458,7 @@ on some aspects of file handling media loading.
»Weihnachten« ist insofern wichtig, als ich im Sommer das Gefühl hatte, bis Weinachten zusammen mit Christian eine laufähige Renderengine „auf die Beine stellen“ zu können. Ab August wurde die Arbeit bei mir „zäh“, jeodoch habe ich diese zeitliche Vorstellung immer noch irgendwie im Kopf gehabt, Stichwort »hart arbeiten«. Das war das Muster: wenn ich wirklich alle Kraft und Entschlossenheit einsetze, dann kann ich (toller Hecht) das doch nageln. Das war in früheren Projekten, seit meiner Studienzeit, immer wieder die Situation gewesen, und es war dann auch jeweils (mit gewissen Einschränkungen) erfolgreich; dieses Muster war Teil meines Selbstverständnisses, damals.
@@ -164771,9 +164479,7 @@ on some aspects of file handling media loading.
z.B. wir sollten doch alles in QT bauen, weil es dadurch viel einfacher wird, und obendrein auch gleich noch portabel
@@ -164788,9 +164494,7 @@ on some aspects of file handling media loading.
Wichtig: er hat sich nie in dieser Rolle „gesonnt“ — sondern sets die festgelegten Formeln wiederholt und auf meinen Beitrag eigens hingewiesen
@@ -164801,9 +164505,7 @@ on some aspects of file handling media loading.
Bis zum Frühjahr 2008 hat Christian absolut nichts mehr zum eigentlichen Coding beigetragen, sondern immer mehr seine Vision betont, daß durch distributed Tooling und ein offenes Projekt-Setup die Probleme von Open-Source (die sich damals schon sehr deutlich zeigten) aufgebrochen und gelöst werden könnten. Man muß nur „die Community enablen“, damit diese „als Benevolent Dicatator agieren kann“
@@ -164815,9 +164517,7 @@ on some aspects of file handling media loading.
Ich bekam Reichweite, die ich mir selber niemals hätte aufbauen können: denn bedingt durch den sonderbaren Zustand, daß ich allein weiter gecodet habe, wurde mir regelmäßig das Wort erteilt und ich konnte mich als Experte bewundern lassen
@@ -164828,9 +164528,7 @@ on some aspects of file handling media loading.
...das in diesen Monaten im Herbst vor allem dadurch getragen war, daß man nur hart genug arbeiten muß, dann kann man es nageln. Niemand hat mehr nach einem Projektplan gefragt, niemand wollte erklärt haben, wie das überhaupt zusammenpaßt (mit Cinelerra). Außerdem habe ich in der Zeit überhaupt erst C++ gelernt (das geht bei mir üblicherweise sehr schnell), viele neue Paradigmen aufgegriffen und mich bis Dezember sogar in das (damals total esoterische) Thema »Template-Metaprogramming« hineingebissen. Ich hatte nun in kurzer Zeit einen anderen Horizont gewonnen, und fand meine Ansätze aus dem Herbst (mit den Assets und MObjects) bereits problematisch, hab davon aber niemanden was gesagt (und es bisweilsen sogar vor mir selbst verborgen)
@@ -164844,9 +164542,7 @@ on some aspects of file handling media loading.
Zunächst einmal sogar die Frage, ob das noch Cinelerra ist, oder schon eine neue Applikation; auch die Frage, warum man überhaupt ein solches Projekt starten sollte („the world needs Lumiera“). Aber auch auf technischer Ebene, wurden Mystifikationen eingesetzt und durch stetige Wiederholung affirmiert: Da ist zum einen das DataBackend (für das, so muß man jetzt im Rückblick sagen, fast überhaupt nichts jemals implementiert wurde, mit Ausnahme der Memory-mapped Files), des Weiteren sind da die Placements, die auf viele Jahre hinaus aus „da kann man“ bestanden, die Config-Rules waren (für mich offensichtlich) ein Fernziel, das ich aber sehr oft in der öffentlichen Diskussion als Pluspunkt aufgeführt habe; ganz ähnlich steht es mit den Plug-ins: Christian hat über ein Jahr lang nichts Konkretes mehr zu dem Thema gesagt oder getan, aber die flexiblen Plugins waren weiterhin einer der immer wiederkehrenden Bullet-points. Und den Builder habe ich nach Januar 2008 erst mal liegen gelassen, und das auf verschiedene Weise plausibel gemacht. Damit war effektiv der Prototyp aufgegeben, und es wurde stattdessen die große Architektur gebaut.
@@ -164879,9 +164573,7 @@ on some aspects of file handling media loading.
Raffaella und Odin haben dieses Moment aufgegriffen —
@@ -164902,9 +164594,7 @@ on some aspects of file handling media loading.
...das heißt, ich habe dazu keinen Beschluß gefaßt, das weiß ich ganz genau; vielmehr brauchte Joel nund einen Gegenpart, und ich hab mir sofort dafür den Arsch aufgerissen und geliefert.
@@ -164916,9 +164606,7 @@ on some aspects of file handling media loading.
August 2008 war ich zum ersten Mal in Karlsruhe (für mich ganz besonders magisch, denn ich hat aus meinem früheren Leben eine sehr tiefe Beziehung zu Karlsruhe), habe bei Christian übernachtet, und wir haben so manche Streitigkeiten auf der Terasse sitzend geregelt, „von Mann zu Mann“. Das hatte dann auch in vieler Hinsicht den Charakter eines Vertrages, wir haben Claims abgesteckt. Anschließend sind wir zusammen zur FrOSCon gefahren, für mich das erste Mal. Und anschließend habe ich den Kontakt mit meiner Verwandtschaft in Hagen wieder aufgenommen (Hagen hat für mich eine ähnlich tiefe Bedeutung, auch da reichen die Bezüge in meine Schulzeit zurück)
@@ -164932,9 +164620,7 @@ on some aspects of file handling media loading.
ohne sie explizit breitzutreten!
@@ -164943,9 +164629,7 @@ on some aspects of file handling media loading.
Wir hatten den »Drive« und wir hatten ein Konzept, das in überschaubarer Zeit machbar erschien
@@ -164971,9 +164653,7 @@ on some aspects of file handling media loading.
Denn die beiden Elemente stammen aus einem komplett unterschiedlichen, und inkompatiblen Hintergrund; das Konzept, das (wenn ungefähr betrachtet) so plausibel erschien, läßt sich zwar realisieren, aber nur durch sorgfältiges, planvolles Vorgehen und Festhalten an einem Ziel. Also eine extrem lange Zeit ohne »Begeisterung« und »Inspiration«
@@ -164983,9 +164663,7 @@ on some aspects of file handling media loading.
Damit meine ich: ein »Mission Statement« und ein »Projektkonzept«, das plausibel und machbar erscheint, und nicht „völlig durchgeknallt“
@@ -164994,9 +164672,7 @@ on some aspects of file handling media loading.
...und anfangs auch tatsächlich plausibel war
@@ -165007,9 +164683,7 @@ on some aspects of file handling media loading.
hier meine ich mit normaler Dynamik: Man geht in einer freien Community auf Nahziele zu, baut, was man sich leicht vorstellen kann und was kurzfristig Spaß machen kann. All das konnte sich in der festgefahrenen Projektstruktur nicht entfalten. Das Projekt war „langweilig“ und hatte keine Drive
@@ -165022,9 +164696,7 @@ on some aspects of file handling media loading.
man hat sich auf einen Weg gemacht,
@@ -165048,9 +164720,7 @@ on some aspects of file handling media loading.
Erzählen auf dem Grundton: das kann doch nicht gutgehen...
@@ -165069,9 +164739,7 @@ on some aspects of file handling media loading.
das Thema der Flexibilität
@@ -165084,9 +164752,7 @@ on some aspects of file handling media loading.
...das ist tatsächlich die Vision, die sich jetzt abzeichnet; mit »vertikal« meine ich, daß sie von low-level bis high-level integriert sind und kohärent bleiben ⟹ »medium level of abstraction« ⟹ wir schaffen kein Wunderding, sondern ein Werkzeug mit Kraftverstärkung
@@ -165109,9 +164775,7 @@ on some aspects of file handling media loading.
Benny hatte schon vor Monaten gesagt,
@@ -165122,9 +164786,7 @@ on some aspects of file handling media loading.
...und zwar hatte ich angedeutet, daß ich irgendwann den Disput über Plug-ins irgendwo als Text fassen muß; Benny sagte dann, es erscheine ihm plausibel, daß ich das möchte, aber ich solle bitte den Text von ihm gegenlesen lassen, bevor er irgendwo veröffentlicht wird; ich halte das auch für angemessen, und war/bin Benny sehr dankbar...
@@ -165136,9 +164798,7 @@ on some aspects of file handling media loading.
Damit meine ich: soweit der Impetus im Moment trägt, also bis in das 1.Jahr. Insgesamt möchte ich den Text noch weiter führen, kann das aber im Moment sicher nicht stemmen. Nun habe ich also den Text erst mal entworfen, dann die Quellen ausgearbeitet und dann den Text ausgefeilt. Er soll schließlich mit einem einzigen Commit online gestellt werden, ohne viel Aufhebens.
@@ -165152,9 +164812,7 @@ on some aspects of file handling media loading.
danke Benny!
@@ -165170,9 +164828,7 @@ on some aspects of file handling media loading.
we don't say this in this context. Does transliterate refer to 'meaning',
@@ -165204,9 +164860,7 @@ on some aspects of file handling media loading.
Fix because 'properly' is here coloquial because, again, it is
@@ -165227,9 +164881,7 @@ on some aspects of file handling media loading.
also ist Benny's Vorschlag inhaltlich viel bessern
@@ -165243,9 +164895,7 @@ on some aspects of file handling media loading.
ich muß hier eine Deutung machen, um den Sachverhalt klar zu fassen
@@ -165270,9 +164918,7 @@ that situation will improve in forseeable future.
Andraz hat es in seiner Mail "durch die Blume" gesagt, und die Community (oder zumindest die aufmerksamen Leser, hehe) haben verstanden, in welche Richtung das geht, ohne konkreter zu werden.
@@ -165286,9 +164932,7 @@ that situation will improve in forseeable future.
insofern: Benny's Formulierung ist sogar sehr gut, sie ist nämlich dezent
@@ -165312,9 +164956,7 @@ that situation will improve in forseeable future.
Christian hat nicht bloß mal ein Git-Repo eingerichtet, sondern er hat sich, so meine Deutung, davon erhofft, daß die Kombination von Technik und "kurzgeschlossener" Community von selber Heilungskräfte entfaltet. Das würde auch erklären, warum er...
@@ -165338,9 +164980,7 @@ that situation will improve in forseeable future.
es sind jetzt ein paar Wochen vergangen; und ehrlich, für diese Einschätzung brauche ich Benny nicht. Es wäre nur schön gewesen, ihn mitzunehmen...
@@ -165356,9 +164996,7 @@ that situation will improve in forseeable future.
Andraz: "Leute, ich kann nicht mehr!"
@@ -165375,9 +165013,7 @@ that situation will improve in forseeable future.
auch die zweite Korrektur ist wohl stilistischer Natur (wäre interessant, Benny dazu zu befragen! Möglicherweise wieder so ein Fall, in dem sich Pidgin-English breit gemacht hat....)
@@ -165386,9 +165022,7 @@ that situation will improve in forseeable future.
ich kann nicht einschätzen,
@@ -165399,9 +165033,7 @@ that situation will improve in forseeable future.
Ich bin immer wieder am Zweifeln, inwiefern Benny mit verschiedenen Sprachebenen umgehen kann. Selbstverständlich kennt er das Konzept, er hat mir oft Beispiele genannt, wie ein Adeliger reden würde. Dann macht er mir aber anderseits immer wieder Vorschläge, die für mein Ohr sehr "literarisch" klingen, und auch sehr "brittisch". Er korrigiert auch Redewendungen, die in der gedruckten Fachliteratur weit verbreitet sind. Außerdem habe ich immer wieder gemerkt, daß Benny keinerlei Sinn für das Verkürzen von Formulierungen hat, und sachen klarstellen möchte, die ich bewußt zweideutig gehalten habe. Er sagt dann auch immer, das sei grammatikalisch, ist es aber nicht (in dem Sinn, daß es einem in der Schule als Fehler angestrichen würde, man aber durchaus so reden und schreiben kann)
@@ -165417,9 +165049,7 @@ that situation will improve in forseeable future.
eine Qualifikation ist m.E. hier komplett überflüssig, aber es sollte gesagt werden, daß es sich um Git Repos handelt, und nicht um Subversion
@@ -165435,9 +165065,7 @@ that situation will improve in forseeable future.
Please check: i think you mean 'general' here
@@ -165453,9 +165081,7 @@ that situation will improve in forseeable future.
Create our own toolset to track issues, tasks, bugs in a distributed manner.
@@ -165465,9 +165091,7 @@ that situation will improve in forseeable future.
Und mir fällt auf, daß dies sein erster inhaltlicher RfC war
@@ -165477,9 +165101,7 @@ that situation will improve in forseeable future.
Er "mag keine Mailinglisten", er mag keine Foren, er findet Bugtracker eine einzige Müllhalde und sagt, er will nicht damit arbeiten. Er lästert bei jeder Gelegenheit über Spreadsheets, er kotzt über Projektplanungstools ab, er findet Wikis nur eine Krücke und will sie schnell wieder loswerden, er findet die typischen Buildserver total daneben (Cruise-Control damals, dann Hudson, Jenkins). Und, was mich völlig von den Socken gehauen hat: vor zwei Jahren wurde er plötzlich ganz leidenschaftlich wegen Ethereum, er fand das System sowas von verkünstelt und overengineered, und gradezu gegen den "spirit" von Blockchain. Auch gegen Bitcoin ist er ehr negativ eingestellt, denn es wäre ja bloß "Kapitalismus pur" ... und dann fängt er leidenschaftlich an, seine Vision von einem Geld zu entwickeln, das auf Community-Tasks beruht und Austausch von Hilfe.
@@ -165496,9 +165118,7 @@ that situation will improve in forseeable future.
wäre schön wenn man das noch dikutieren könnte, aber eigentlich geht es nur um Nuancen in der Bedeutung. Ich bin mir ziemlich sicher, daß Christian nicht "Microsoct Projects" durch Git-Magic ablösen wollte, sonder ehr der Meinung war, wer MS Projects verwendet, ist sowiso krank
@@ -165532,9 +165152,7 @@ that situation will improve in forseeable future.
versuche die grammatikalische Verbesserung aufzunehmen,
@@ -165570,9 +165188,7 @@ that situation will improve in forseeable future.
Benny hat sich jetzt 3 Wochen nicht mehr gemeldet, daher konzentriere ich mich nun auf das Wesentliche und räume solche Nebenthemen einfach ab
@@ -165583,9 +165199,7 @@ that situation will improve in forseeable future.
There appears to be widespread consensus that simple building blocks should be provided as free software, that “can be used to combine new functionality”
@@ -165606,9 +165220,7 @@ that situation will improve in forseeable future.
Die Frage ist: gehe ich mit dieser Mutmaßung zu weit? Es ist schon starker Tobak
@@ -165636,7 +165248,7 @@ that situation will improve in forseeable future.
Ohne ein solches Verzeichnis sieht man nur eine endlose Historie von Git-Commits über mehr als 10 Jahre, und kaum ein Thema „führt zu Ergebnissen“. Erst in den letzten Jahren ist durch die »Vertical Slices« soetwas wie eine Fürhungslinie gegeben
@@ -165659,9 +165269,7 @@ that situation will improve in forseeable future.
Vorausgegangen war Cehteh's letzter Vorstoß in Richtung einer Plug-in-Architektur, der damit endete, daß Ichthyo sein Konzept der Applikations-Struktur mit den Subsystemen durchgeprügelt hat. Das mündete in eine allgemeine Integrationsphase, in der die Code-Struktur und die Build-Systeme glattgezogen wurden, und das GUI als Plug-in integriert
@@ -165672,9 +165280,7 @@ that situation will improve in forseeable future.
und hat begonnen, dicke Bretter zu bohren:
@@ -165698,9 +165304,7 @@ that situation will improve in forseeable future.
man hat wohl ein ganzes Jahr lang zwar die Meetings aufrecht erhalten, aber nur sich informell ausgetauscht
@@ -165729,9 +165333,7 @@ that situation will improve in forseeable future.
Das ist wichtig für mich selber: denn ich habe sehr unter diesen Konflikten gelitten. Nur fanden sie gar nicht wirklich statt, sondern bestanden in einer Diskrepanz zwischen dem Stand, den ich mir erarbeitet habe, und den endlos-eintönig-immer-gleichen Klischees, die von den anderen Entwicklern und Usern kamen. Insofern habe ich noch eine Rechnung offen mit dieser »Community« — aber diese Rechnung hat hier nichts zu suchen. Im Grunde habe ich alles Wichtige bereits in meinem Essay »Complexity and Flexibility« gesagt....
@@ -165744,9 +165346,7 @@ that situation will improve in forseeable future.
die Darstellung könnte sich vor allem
@@ -165784,23 +165384,18 @@ that situation will improve in forseeable future.
Technologie wird dabei eine »Mystifikation« und wird zum »Fetisch« — aber das ist nur oberflächlich. Die Technologie (konket: Git, Automatisierung, Plug-ins) soll nämlich eine Art Marktplatz der Ideen herstellen. Und der eigentliche, weltanschauliche Kern ist, daß »die Community« wie eine unsichtbare Hand alle Probleme löst, und man deshalb sich gedanklich nicht weiter anstrengen muß, ja sogar gar nicht darf, weil man sonst das heilsame Wirken der Marktkräfte stört.
verstehe dies Verhalten als ein Anti-Pattern — dem man verfällt
@@ -165810,9 +165405,7 @@ that situation will improve in forseeable future.
Die Komplexität sorgt dafür, „daß die Bäume nicht in den Himmel wachsen“ — und demütigt den sich aus dem Anspruch der Technik ergebenden Herrschaftsanspruch. Der Komplexität kann man nur standhalten, durch Verzicht auf Wunder und durch Selbstbeschränkung auf einige wenige Themen.
@@ -165823,9 +165416,7 @@ that situation will improve in forseeable future.
Lumiera ist entstanden durch meine Verstrickung in diesen Konflikt
@@ -165833,9 +165424,7 @@ that situation will improve in forseeable future.
Ohne diese Verstrickung, und das damit verbundene Verfallen und die fehlende Reflexion, wäre dieses Projekt niemals zustande gekommen. Ich habe eine dialektisch-verhaftete Position eingenommen, die durch diesen Konflikt überhaupt erst ihre Form bekommen hat. Durch meine Hartnäckigkeit habe ich dem Projekt in der Anfangsphase den Weg zum »Erfolg« abgeschnitten. Dann aber passierte ein Wechsel des allgemeinen Klimas (der sich im Grunde bereits von Anfang an abgezeichnet hat). Das Resultat ist nun, daß ich, ganz allein, auf dieser Position stehe und über den damit verbundenen Anspruch bestimmen kann (solange niemand anders daherkommt — und auch nur wenn ich diesen Weg entschieden weiterverfolge).
@@ -165845,9 +165434,7 @@ that situation will improve in forseeable future.
ich sehe jetzt in dieser Position eine Chance
@@ -165918,9 +165505,7 @@ that situation will improve in forseeable future.
Geschrieben 10/2025 infolge der Auseinandersetzung mit den Anfängen des Lumiera-Projekts und implizit als Antwort auf den nie wirklich gelösten Architektur-Streit
@@ -167697,7 +167282,7 @@ that situation will improve in forseeable future.
das war nun eine
@@ -168454,18 +168037,16 @@ that situation will improve in forseeable future.
Effektiv habe ich die »Plugin-Architektur« nun beerdigt. Es wird kein generelles Interface-System geben, sondern nur ein neues Konzept für Plugins und Feature-Bundles
@@ -168475,9 +168056,7 @@ that situation will improve in forseeable future.
Ich habe vor 2 Jahren beschlossen, daß das System der C Error-States nur noch mitgeführt wird, aber den Exceptions untergeordnet ist. Das bedeutet, perspektivisch werden Ausnahmen nur noch per Exception signalisiert, und es ist nicht mehr akzeptabel einfach mal so eine Flag zu setzen (auch wenn sie Thread-local ist). Man sollte nicht mehr erwarten, daß irgendjemand einen Lumiera-Error-State prüft
@@ -168508,9 +168087,7 @@ that situation will improve in forseeable future.
Dieser Content erweckt ein falsches Bild. Ich werde dafür sorgen, daß niemand mehr ein »C-Ökosystem« aufmacht. Imperativ programmieren kann man auch in C++, und mithilfe der Standardlibrary. Die wenigen Verwendungen der hier aufgeführten Library-Datenstrukturen von Christian werden mit dem Config-Loader wegfallen. Diese C-Library ist aus der Dynamik der Anfangszeit entstanden, aber seit 2010 trage ich nahezu die gesamte Entwicklung allein, und setze daher die Maßstäbe.
@@ -168528,7 +168105,7 @@ that situation will improve in forseeable future.
In die kleine Tabelle im Kopf des RfC wird beim Anlegen ein Timestamp gesetzt; dieses Datum erscheint stets plausibel, Timestamps in Kommentaren sind zeitnah, aber etwas später. Oft wurden RfC auch in developer-meetings auf IRC besprochen; auch das ergibt ein schlüssiges Bild.
@@ -168705,9 +168280,7 @@ that situation will improve in forseeable future.
war trotzdem ein Monster-Aufwand
@@ -168715,9 +168288,7 @@ that situation will improve in forseeable future.
....aber mußte mal sein; der Zeitpunkt erscheint mir richtig, denn ich ziehe anscheinend nun einige Trennlinien explizit und spreche Entscheidungen aus. Denn wenn es mir gelingt in dem Projekt wieder etwas in Bewegung zu setzen, werde ich alsbald für diese art Arbeit keine Zeit mehr haben!
@@ -168743,9 +168314,7 @@ that situation will improve in forseeable future.
Also es ist definitiv so, und zwar in jeder Installation die ich sehe. Jetzt kann ich mich aber gar nicht mehr erinnern, wie Benny auf diesen Vorschlag kam. War das nur eine rein-theoretische Überlegung, ist es in einer Diskussion passiert, ohne daß wir die Website gesehen haben (ich erinnere mich ganz dunkel, daß wir das in Bernbach besprochen haben)
@@ -168755,9 +168324,7 @@ that situation will improve in forseeable future.
+ Da ich "autobrief" verwende, ist der erste Satz stets auch die Kurzbeschreibung. Zudem stelle ich die Langbeschreibung stets an den Anfang der Seite, weil ich dies für die nützlichste Info halte. Die ganzen sonstigen Member-Listen sind ehr verwirrend
+
+ Das Log ist geflutet mit Warnungen, und viele Querverweise funktionieren nicht. Leider sind Probleme mit Doxygen schwer zu diagnostizieren, da der Lauf lange dauert, und die Codebasis riesig ist. Es gibt daher keine klar definierte Agenda, die man sinnvoll abarbeiten könnte. Ich kann immer nur von Zeit zu Zeit stichprobenartige Kontrollen machen
+
+ ...obwohl ich diese Warnung abgeschaltet habe; wahrscheinlich handelt es sich um Fälle, wo ich (gemäß Clean Code) nur einen Parameter dokumentiert habe, der nicht selbsterklärend ist.
+
+ Ich finde die Seiten meist total verwirrend; es sind eigentlich nur die File-Kommentare sinnvoll. Selbst die Typ-Kommentare sind oft verwirrend, weil die Typen irgendwo stehen und der Kontext nicht so ersichtlich ist wie im Code. Hinzu kommt, daß der allgemeine Scope (auch Namespace) oft geflutet ist mit Metaprogramming-Definitionen, die nicht im richtigen Zusammenhang dargestellt werden. Es ist in dem Zusammenhang total unpraktisch, daß die Template-Parameter mit angegeben werden, und daß zusamengehörige Spezialisierungen nicht aufgesammelt werden. Das ist aber vermutlich gar nicht möglich.
+
+
+
+ Insgesamt scheint das Prinzip einer API-Doc nicht auf einen modernen, funktionalen Programmierstil zu passen.
+
+ Wobei allerdings (gemäß meinen Erfahrungen bei der Bank) die CI explizit so aufgesetzt werden muß, daß sie verschiedene »Linien« nicht vermischt. Es ist nicht möglich, die CI-Builds allein durch die Versionsnummer zu steuern. Vielmehr muß es eine dedizierte CI geben für
+ marquitux caballero wrote:
@@ -162591,9 +162509,7 @@ Cinelerra mailing list
This my maybe arguable view how to hive Cinelerra CV out of its
develoment stall:
@@ -162656,9 +162572,7 @@ Cinelerra mailing list
Wow Du hast hast mächtig vorgelegtb mit deiner uml/wiki doc.
@@ -163240,9 +163100,7 @@ Vorschlag währe das man Bouml nach doc/uml/ generiern lässt
Voßeler Hermann wrote:
@@ -163278,9 +163136,7 @@ interessierte davon was mitbekommen anstatt privater mails.
@@ -163355,9 +163205,7 @@ oder bouml einfach ein paar sachen um bestimmte dinge zu modelliern.
Ichthyostega wrote:
@@ -163390,9 +163236,7 @@ note about gnu style: (how I/emacs interpret it)
Btw: seen my Interface / CStyleGuide proposal in the pipapo wiki? please
review it carefully if it looks ok, I straight go into make a referene
@@ -163607,9 +163431,7 @@ implementation, since this is a very low level building block.
Am Dienstag, den 03.07.2007, 20:51 +0200 schrieb Christian Thaeter:
@@ -163700,9 +163518,7 @@ Hermann
Voßeler Hermann wrote:
@@ -163889,9 +163695,7 @@ we provide for us, we provide for people extenting it too)
Wie sich nun eindeutig aus den Quellen ergibt, sind alle diese Erinnerungen zwar korrekt, ich habe aber die falschen Schlüsse gezogen. Der eigentliche Streit ist sofort ausgebrochen, nachdem wir begonnen haben, ernsthaft zusammezuarbeiten. Das ist auch plausibel so. Die späteren Erinnerungen hängen damit zusammen, daß wir wohl beide (Christian und ich) dem Streit ausgewichen sind, weil wir das Bauchgefühl hatten, daß er nicht lösbar ist. Auch diese Einschätzung ist wohl korrekt, es stehen Fragen der Weltanschauung dahinter.
@@ -164671,9 +164389,7 @@ we provide for us, we provide for people extenting it too)
mark carter schrieb:
@@ -164725,9 +164439,7 @@ on some aspects of file handling media loading.
At the moment I just choose to ignore it and picked me one region, ...
@@ -164736,9 +164448,7 @@ on some aspects of file handling media loading.
Lately i had almost no time to hack on cinelerra and it doesn't seem
that situation will improve in forseeable future.
@@ -165260,9 +164910,7 @@ that situation will improve in forseeable future.
+