Wohin gehts mit dem Hive?

All das bitte hier rein.

Wie geht es weiter?

Der Hive - so wie er ist - soll weiter ausgelotet werden
6
38%
Ich finds ok wenn neben dem Hive V1 was Neues entsteht
6
38%
Neue Entwicklungen binden Ressourcen, die dem Hive 1 dann fehlen
0
Keine Stimmen
Ihr werdet das schon richten - bin gepannt auf den neuen Hive!
1
6%
Ich seh hier überhaupt kein Problem - bleibt doch alles kompatibel!
2
13%
Mir ist es egal - ich mach so oder so mein Ding
1
6%
 
Insgesamt abgegebene Stimmen: 16

Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: Wohin gehts mit dem Hive?

Beitrag von zille9 »

Ich kann mir nicht helfen aber Ihr zieht Linux und Konsorten als Vergleich zum Hive-Projekt heran. Was sind denn das für Vergleiche? Linux besteht aus hunderttausenden Zeilen Code, hunderten von Modulen und Libraries. Wir haben 3 Chips mit lediglich 32kB nutzbaren Speicher. Bleibt doch mal bitte auf dem Teppich. Ich stimme einer grundsätzlichen Vereinheitlichung des Codes der verschiedenen Projekte ja zu aber es sollte auch sinnvoll sein.
TRIOS bildet den Grundstamm, der mit den Sepia-Funktionen und den Netzwerkfunktionen vereinheitlicht werden sollte.
Ich verstehe ehrlich gesagt auch die ganze Diskussion nicht, seit Jahren (wie Drohne235 schon bemerkt hat) ist der TRIOS-Code bei Google verfügbar, jeder kann sich einbringen.

Ich bin gewiss kein Programmierer, so möchte ich mich wirklich nicht bezeichnen aber ich weigere mich tonnenweise auskommentierten Code in meinen Dateien zu belassen, nur damit die Konformität gewahrt ist, dafür bin ich zu sehr Praktiker. Programme werden erst recht nicht besser lesbar, wenn dutzende (auskommentierte) Optionen enthalten sind. Was in meinen Augen viel wichtiger ist, den Code ausreichend zu kommentieren.

Übrigens, worum ging es hier nochmal?
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: Wohin gehts mit dem Hive?

Beitrag von joergd »

zille9 hat geschrieben:Übrigens, worum ging es hier nochmal?
U.a. um diese Meinung:
micha hat geschrieben:Wahrscheinlich ist einfach die Halbwertszeit der Konstruktion abgelaufen
Die Gründe für eine solche Meinung werden hier gerade analysiert. Und mit meiner These, daß die Software-Fraktion bisher evtl. zu kurz kommt, sehe ich bisher bestätigt...
zille9 hat geschrieben:Ich kann mir nicht helfen aber Ihr zieht Linux und Konsorten als Vergleich zum Hive-Projekt heran. Was sind denn das für Vergleiche? Linux besteht aus hunderttausenden Zeilen Code, hunderten von Modulen und Libraries. Wir haben 3 Chips mit lediglich 32kB nutzbaren Speicher.
Wie hat denn Linux angefangen? Mit einem Chip (na gut: eine CPU und ein paar andere Chips) und auch nicht viel Speicher.
zille9 hat geschrieben:Ich verstehe ehrlich gesagt auch die ganze Diskussion nicht, seit Jahren (wie Drohne235 schon bemerkt hat) ist der TRIOS-Code bei Google verfügbar, jeder kann sich einbringen.
Macht aber keiner. Wenn ich das richtig sehe, wurden bisher immer nur die Releases nach Fertigstellung dort hochgeladen. Die richtige Nutzung eines solchen Systems sieht aber anders aus. Wie schon geschrieben, bin ich da ja selbst bisher auch kein Vorbild - der Netzwerk-Code liegt auf dem eigenen Git-Server. Aber ich habe zumindest Besserung gelobt ;) Insgesamt würde es mir auch leichter fallen, mir einen Google-Account zuzulegen, wenn auch andere (außer nubok) positive Signale zur Nutzung einer Versionverwaltung senden würden. Ich kann mir nicht erklären, woher die Abneigung einiger resultiert. Einige der Vorteile haben nubok und ich schon versucht zu verdeutlichen. Als Gegenargument wurde bisher nur der höhere Aufwand genannt. Ich denke aber, da ist das Gegenteil der Fall.
Ich bin auch durchaus bereit, mich an dieser Stelle etwas mehr einzubringen. Angefangen mit dem Einchecken des Netzwerk-Codes bei Google über die Prüfung eingereichter Patches bis zum Zurverfügungstellen eines eigenen Git-Servers. Git würde ich übrigens auch bevorzugen, auch Google Code könnte man darauf umstellen. Letzten Endes richte ich mich da aber gern nach den Vorlieben der Allgemeneinheit.
zille9 hat geschrieben:Ich bin gewiss kein Programmierer, so möchte ich mich wirklich nicht bezeichnen aber ich weigere mich tonnenweise auskommentierten Code in meinen Dateien zu belassen, nur damit die Konformität gewahrt ist, dafür bin ich zu sehr Praktiker. Programme werden erst recht nicht besser lesbar, wenn dutzende (auskommentierte) Optionen enthalten sind. Was in meinen Augen viel wichtiger ist, den Code ausreichend zu kommentieren.
Da soll doch nichts auskommentiert werden. BST bietet nicht umsonst die Möglichkeit, mit #IF und #DEFINE zu arbeiten. Das sieht dann so aus:

Code: Alles auswählen

#ifdef SEPIA
[der komplette sepia-code]
#endif
#ifdef NET
[der komplette netzwerk-code]
#endif
Will man dann daraus ein Binary mit Netzwerk-Code erzeugen, wird so compiliert:

Code: Alles auswählen

bst -D NET ...
Mit Netzwerk und Sepia:

Code: Alles auswählen

bst -D NET -D SEPIA ...
Das halte ich weder für kompliziert noch für unübersichtlich.
Viele Grüße

Jörg
Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: Wohin gehts mit dem Hive?

Beitrag von zille9 »

joergd hat geschrieben:Da soll doch nichts auskommentiert werden. BST bietet nicht umsonst die Möglichkeit, mit #IF und #DEFINE zu arbeiten. Das sieht dann so aus:
Code:
#ifdef SEPIA
[der komplette sepia-code]
#endif
#ifdef NET
[der komplette netzwerk-code]
#endif
Genau mit diesen #Define-Funktionen wird der nicht benötigte Code auskommentiert und verbleibt in der Datei, bei ein paar kleinen Funktionen mag das praktikabel sein. Im Bellatrixcode für Basic oder Plexus beispielsweise, ist das einfach mal Irrsinn, da der komplette Bellatrixcode anders aussieht und auch komplett andere Funktionen beinhaltet.
Wie gesagt, bis zu einem gewissen Punkt stimm ich der Vereinheitlichung zu, aber nicht um jeden Preis.
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: Wohin gehts mit dem Hive?

Beitrag von joergd »

zille9 hat geschrieben:bei ein paar kleinen Funktionen mag das praktikabel sein. Im Bellatrixcode für Basic oder Plexus beispielsweise, ist das einfach mal Irrsinn, da der komplette Bellatrixcode anders aussieht und auch komplett andere Funktionen beinhaltet.
Ich muß schon wieder das Linux-Beispiel bringen: da wird das exzessiv an jeder Stelle so gemacht. Unübersichtlich muß das mit etwas Kreativität nicht werden, im Gegenteil:

Code: Alles auswählen

OBJ
#ifdef BASIC_GFX_DRV
  gfx : "basic_gfx"
#elseif PLEXUS_GFX_DRV
  gfx: "plexus_gxf
#else
  gfx: "trios_gfx"
#endif

PUB draw_line
  gfx.draw_line
Der eigentliche Code liegt dann in basic_gfx.spin, plexus_gxf.spin und trios_gfx.spin. Ich halte das für sehr praktikabel. Im richtigen Leben wird es evtl. noch ein paar #ifdef in PUB draw_line geben, aber mit etwas gutem Willen wird das richtig schön...
Viele Grüße

Jörg
Benutzeravatar
Micha
Beiträge: 812
Registriert: Sa 24. Mär 2012, 21:45
Wohnort: Merseburg
Kontaktdaten:

Re: Wohin gehts mit dem Hive?

Beitrag von Micha »

Weia, da hab'sch ja ne Lawine losgetreten mit diesem Thread. Dabei wollte ich doch *eigentlich* nur mal ausloten wie die Meinungen zur hardware- und softwaremäßigen Zukunft des Hive so verteilt sind.

Versionskontrolle ist für mich bisher (noch) ein Buch mit sieben Siegeln. Selber entwickle ich bisher einfache bis mittelschwere Hobbyprojekte immer im Alleingang, da war das (noch) kein Thema. Aber interessieren tut mich das Thema schon auch. Nachdem hier mehrfach auf GIT verwiesen wurde werd ich mir wohl mal ein Beispiel schnappen (die Firmware des CPMputers) und mal schauen wie ich die in so ein System reingequetscht bekomme. Schaun 'mer ma... sehr interessantes Thema auf jeden Fall.

Mir selber ist es beim Hive im Rückblick so ergangen, dass der Hive ein wunderbarer Einstieg in die Welt der "selbergelöteten Schaltungen" war. Man wurde ermutigt es zu probieren und es gab ziemlich prompt ein Erfolgserlebnis. Aber den Hive softwaremäßig auszuloten ist eine ganz andere Liga. Das Ding ist ziemlich komplex und von jemand anderem erdacht worden. Ich hab bis heute mehrere halbherzige Anläufe unternommen, wirklich gründlich zu verstehen wie der Hive im Inneren tickt - ohne den ganz großen Durchbruch.

Viel spannender war es für mich allerdings bisher immer, eine vergleichsweise einfache Schaltung vom Stand Null selber zu konzipieren und die Firmware dann auch selber dafür zusammenzustricken. So war der CPMputer gegen Ende des letzen Jahres entstanden. Bei dem kenne ich wirklich jedes Byte persönlich, beim Hive (um ausnahmsweise mal ehrlich zu sein) nicht wirklich...
Also vonder Sache här tätch jetz ma behaupten "Mischn ägomplischd" un so...
Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: Wohin gehts mit dem Hive?

Beitrag von zille9 »

joergd hat geschrieben:Der eigentliche Code liegt dann in basic_gfx.spin, plexus_gxf.spin und trios_gfx.spin. Ich halte das für sehr praktikabel. Im richtigen Leben wird es evtl. noch ein paar #ifdef in PUB draw_line geben, aber mit etwas gutem Willen wird das richtig schön...
Und genau das setzt voraus, das alle Bibliotheken auch die gleichen Funktionsaufrufe benutzen, bin ich wirklich so schwer zu verstehen?
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
Benutzeravatar
yeti
Beiträge: 2300
Registriert: Fr 27. Aug 2010, 14:48
Wohnort: Wrong Planet
Kontaktdaten:

Re: Wohin gehts mit dem Hive?

Beitrag von yeti »

Wohin gehts mit dem Hive?

Ich sehe ein Problem, das nach Aktion ruft:
joergd hat geschrieben:Da soll doch nichts auskommentiert werden. BST bietet nicht umsonst die Möglichkeit, mit #IF und #DEFINE zu arbeiten.
TriOS braucht einen Compiler mit #idfef und Freunden und hat sich sicherlich auch mit noch ein paar anderen Details auf BST eingeschossen...

...aber BST ist sooowas von tot... es läuft jetzt nur noch 'ne Weile kopflos herum, wie ein Huhn, dem man grad den Kopf abgeschlagen hat. Der Autor hat die Quellen nie rausgegeben, seit laaaangem eh keinen Bock mehr, dann irgendwann einen Plattencrash und daß er selber auch keine vollständigen Backups des Quelltextes mehr habe gemeldet. Es ist nur eine Frage der Zeit, wann sich die Betriebssysteme, deren APIs und Libraries von den jüngsten noch existierenden BSTKompilaten so weit wegentwickelt haben, daß sie auf aktuellen OSen nimmer laufen werden.

Nebenbei hat BST auch Macken und die werden so nun nie mehr korrigiert werden.

Eines der brennendsten Dinge auf der MachMichMalAmBestenSogarSchonGestern-Liste für den Hive sollte Umstieg auf einen Spin-Kompiler mit Zukunft sein.
𝖂𝖎𝖗 𝖐𝖔̈𝖓𝖓𝖊𝖓 𝖆𝖑𝖑𝖊𝖘 𝖆𝖚𝖘𝖘𝖊𝖗 𝖎𝖓 𝕱𝖗𝖚̈𝖍𝖑𝖎𝖓𝖌, 𝕾𝖔𝖒𝖒𝖊𝖗, 𝕳𝖊𝖗𝖇𝖘𝖙 𝖚𝖓𝖉 𝖂𝖎𝖓𝖙𝖊𝖗! – 𝕯𝖊𝖚𝖙𝖘𝖈𝖍𝖑𝖆𝖓𝖉.
"Du willst hier nicht klicken. Dies interessiert Dich nicht." — Yeti.
"DNA is a four letter word!" — Yeti.
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: Wohin gehts mit dem Hive?

Beitrag von joergd »

BST: Sehe ich auch so. Allerdings vielleicht nicht ganz so kritisch: Notfalls könnte man den BST auch in einer VM mit einem älteren Betriebssystem laufen lassen. Aber eine Alternative wäre schon schön.
zille9 hat geschrieben:Und genau das setzt voraus, das alle Bibliotheken auch die gleichen Funktionsaufrufe benutzen, bin ich wirklich so schwer zu verstehen?
Nein, ich denke schon, daß ich Dich verstehe. Sei doch mal ein bißchen kreativer ;)
Bei unterschiedlichen Funktionsaufrufen bastelt man halt einen Wrapper dazwischen. Oder sowas:

Code: Alles auswählen

OBJ
  gfx_b: "basic_gfx"
  gfx_p: "plexus_gxf
  gfx_t: "trios_gfx"

PUB draw_line
#ifdef BASIC_GFX_DRV
  gfx_b.draw_line(a,b,c,d)
#elseif PLEXUS_GFX_DRV
  gfx_p.draw_line(c,d,a,b)
#else
  gfx_t.draw_line(d,c,b,a)
#endif
Im Übrigen ist das Ganze ja nur eine erste Idee, um Herr über das Auseinanderdriftens des TriOS-Codes zu werden. Bessere Vorschläge (außer "geht nicht") werden gern entgegengenommen.
Micha hat geschrieben:Weia, da hab'sch ja ne Lawine losgetreten mit diesem Thread.
Macht doch nichts. Im Gegenteil, ist ja interessant, einmal die verschiedenen, teils gegensätzlichen Meinungen mitzubekommen.

Zu Versionskontrolle: Wer Interesse hat, dem richte ich zum Probieren auch gern mal einen Account auf "meinem" Git-Server ein. Prinzipiell funktionierts aber auch erstmal ganz ohne Server.
Micha hat geschrieben:den Hive softwaremäßig auszuloten ist eine ganz andere Liga. Das Ding ist ziemlich komplex und von jemand anderem erdacht worden.
Klar, man muß sich erstmal eine Weile einarbeiten. Durch TriOS kann man aber den Hive recht schnell beherrschen. Gerade wenn es "nur" um eine Anwendung wie z.B. den FTP-Client geht - da ruft man quasi nacheinander verschiedene IOS-Funktionen auf, was dabei auf dem Bus und in den 3 Propellern passiert ist relativ egal. Am Ende war es aber eigentlich auch nicht sooo kompliziert, wen Netzwerk-Code zu integrieren. Und so schlau bin ich auch nicht, daß das kein anderer hinbekommen hätte ;)

Was mich generell wundert: Warum bauen sich viele (fast 400?) einen Hive und schließen das Thema nach erfolgreichem Zusammenbau bereits wieder ab? Der Hive ist ein Computer mit vergleichsweise wenig fertiger Software. Das kann man eigentlich bereits vor der Beschaffung und dem Zusammenbau erkennen. Also beginne ich doch eigentlich nur, wenn ich mich auch mit der Software-Erstellung beschäftigen will. Ansonsten wäre doch der Einstieg in ein reines Hardware-Projekt oder eines mit fertiger Software geeigneter. Unter diesen Voraussetzungen sollten doch alle Drohnen mit dem Hive erstmal über lange Zeit ausgelastet sein.

Mal eine ketzerische Frage an die, welche hier von einem Hive2 mit Propeller2, einem 19"-Hive oder was auch immer schwärmen: Wenn das dann zusammengebaut ist und funktioniert - was macht ihr dann damit, was man nicht mit dem Hive machen könnte?
Viele Grüße

Jörg
Benutzeravatar
zille9
Beiträge: 399
Registriert: Do 4. Okt 2012, 21:56
Wohnort: Berlin

Re: Wohin gehts mit dem Hive?

Beitrag von zille9 »

joergd hat geschrieben:Sei doch mal ein bißchen kreativer
Der Spruch ist jetzt echt süß, Kreativität war bisher ja wohl nicht mein Problem.

Code: Alles auswählen

OBJ
  gfx_b: "basic_gfx"
  gfx_p: "plexus_gxf
  gfx_t: "trios_gfx"

PUB draw_line
#ifdef BASIC_GFX_DRV
  gfx_b.draw_line(a,b,c,d)
#elseif PLEXUS_GFX_DRV
  gfx_p.draw_line(c,d,a,b)
#else
  gfx_t.draw_line(d,c,b,a)
#endif 
Deine Beispiele gehen immer von gleichen Funktionsaufrufen aus, was machst Du, wenn neue Funktionen hinzukommen, die es bisher nicht gab und oder keine freie Kommandonummer mehr existiert?

Nach wie vor bin ich PIC's Meinung, TRIOS sollte einen einheitlichen Grundstamm haben, der als Basis dient. Erweiterungen, soweit sinnvoll und machbar, können fest implementiert werden. Alles darüber hinausgehende behindert die Kreativität und läßt Neuerungen gar nicht zu, weil sie nicht (mehr) in die Kommandostruktur passen.
Computer lösen die Probleme, die man ohne sie gar nicht hätte!
joergd
Beiträge: 124
Registriert: Fr 20. Dez 2013, 20:08
Wohnort: Ronneburg

Re: Wohin gehts mit dem Hive?

Beitrag von joergd »

zille9 hat geschrieben:Der Spruch ist jetzt echt süß, Kreativität war bisher ja wohl nicht mein Problem.
War ja auch nicht so ernst gemeint, deswegen war ja auch der ;) dahinter.
zille9 hat geschrieben:Deine Beispiele gehen immer von gleichen Funktionsaufrufen aus, was machst Du, wenn neue Funktionen hinzukommen, die es bisher nicht gab und oder keine freie Kommandonummer mehr existiert?
Dann bin ich kreativ ;)
Neue Funktionen werden einfach in den zur Bibliothek passenden #ifdef ... #endif Block aufgenommen. Ein Programm, welches die neue Funktion nutzt, muß dann natürlich eine Bellatrix-/Administra-Version anfordern, welche per #define die Bibliothek mit der neuen Funktion eincompiliert hat.
Wenn keine Funktionsnummern mehr frei sind, muß eben die Bus-Kommunikation angepaßt werden. Z.B. könnte der gesamte Nummernkreis (0...255) an einzelne Treiber vergeben werden, mit einem zusätzlichen Befehl wird am Anfang der gewünschte Treiber ausgewählt.

Ich werde es halt einfach mal an einem Beispiel umsetzen müssen. Entweder verstehst Du dann, was ich meine oder ich merke, daß meine Idee nicht funktioniert...
Viele Grüße

Jörg
Antworten