CFW: Jupyter/IPython auf dem TXT

Community-Firmware (cfw), Selbstbaucontroller (TX-Pi, ftduino, usw.), usw.
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

CFW: Jupyter/IPython auf dem TXT

Beitrag von richard.kunze » 20 Nov 2016, 01:00

Hallo zusammen,

mit Commit https://github.com/ftCommunity/ftcommun ... 9bef384b42 enthält die Community-Firmware jetzt Unterstützung für Jupyter-Notebooks mit IPython. Bisher ist das Ganze noch nicht sauber in unser Webinterface integriert (und IPython-Notebooks sind auch keine TXT-Apps), aber einen ersten Eindruck kann man schon bekommen. Zum Ausprobieren startet man Jupyter als Benutzer "ftc" auf dem TXT mit

Code: Alles auswählen

jupyter notebook --ip=$DIE_IP_DES_TXT --no-browser
und geht dann mit einem Browser auf http://$DIE_IP_DES_TXT:8888 (dabei jeweils $DIE_IP_DES_TXT durch die passende IP-Adresse ersetzen).

Richtige Integration wie in viewtopic.php?f=8&t=3841 angerissen kommt später.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Jupyter/IPython auf dem TXT

Beitrag von MasterOfGizmo » 20 Nov 2016, 10:25

Was wäre denn ein brauchbarer Weg, das ganze zu starten und zu stoppen? Eine App zum Ein- und Ausschalten und ein Plugin, um anzuzeigen, dass IPython läuft (und Resourcen verbraucht)? Eine App, die man jeweils zum Starten und Stopnne urz öffnet? Oder eine, die die ganze Zeit offen ist und IPythong beendet sobald man die App schließt? Fällt Dir ein schöneres Konzept ein?

Ich nehme an, dass man aus IPython in irgendeiner Form auf den TXT-Bildschirm zugreifen will. Soll das wie bei einer normalen App passieren? Also indem das Notebook eine komplett echte QT-GUI enthält?

Man kann m.E. aus einem IPython-Notebook auch den reinen Python-Code exportieren. Das könnte dann auf dem TXT auch als ganz normale Stanbd-Alone-App laufen. Im Prinzip genau wie bei Blockly.

Wenn Du mir sagst, was Du da gerne als GUI hättest, dann kann ich was passendes bauen.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: CFW: Jupyter/IPython auf dem TXT

Beitrag von richard.kunze » 20 Nov 2016, 11:33

MasterOfGizmo hat geschrieben:Was wäre denn ein brauchbarer Weg, das ganze zu starten und zu stoppen? Eine App zum Ein- und Ausschalten und ein Plugin, um anzuzeigen, dass IPython läuft (und Resourcen verbraucht)? Eine App, die man jeweils zum Starten und Stopnne urz öffnet? Oder eine, die die ganze Zeit offen ist und IPython beendet sobald man die App schließt? Fällt Dir ein schöneres Konzept ein?
Vom Konzept her passt es denke ich am besten, wenn die "IDE" (bzw. der "jupyter notebook"-Prozess) durch den Zugriff auf die Einstiegs-URL im Webinterface getriggert wird, dann im Hintergrund läuft, und sich automatisch beendet wenn er nicht mehr benutzt wird. Probleme dabei:
  1. "jupyter notebook" braucht ziemlich lang zum starten (beim Testen hier über 10 Sekunden). Das muss man in der Weboberfläche irgendwie sinnvoll überbrücken.
  2. Bei einer Web-Applikation ist es etwas knifflig herauszufinden, wann sie nicht mehr gebraucht wird und abgeschaltet werden kann. Insbesondere wenn man sich da wegen Punkt 1) eigentlich nicht erlauben darf, versehentlich zu früh abzuschalten.
Wie ich das genau mache weiß ich noch nicht, aber auf irgendwas in der Art wird es wohl rauslaufen.
MasterOfGizmo hat geschrieben: Ich nehme an, dass man aus IPython in irgendeiner Form auf den TXT-Bildschirm zugreifen will. Soll das wie bei einer normalen App passieren? Also indem das Notebook eine komplett echte QT-GUI enthält?
Im Prinzip schon, denke ich. Vom Konzept her entspricht ein Notebook einer TXT-App, und eine aktive TXT-App macht beim Start ein Fenster auf und hat über PyQT Zugriff auf den TXT-Bildschirm. Das Notebook muss den Zugriff nicht aktiv nutzen, aber ich denke jedes aktive Notebook sollte mindestens ein (gegebenenfalls leeres) Applikations-Fenster aufmachen - allein um anzuzeigen, dass da jetzt gerade eine "App" läuft.

Wie man das genau hinbekommt weiß ich allerdings noch nicht. Da muss ich mir erstmal etwas detaillierter anschauen, wie die einzelnen Teile des Jupyter/IPython-Systems zusammenspielen und wo man sich da am besten einklinken kann.
MasterOfGizmo hat geschrieben: Man kann m.E. aus einem IPython-Notebook auch den reinen Python-Code exportieren. Das könnte dann auf dem TXT auch als ganz normale Stanbd-Alone-App laufen. Im Prinzip genau wie bei Blockly.
Ja, und das ist auch der Plan. Probleme (bzw. offene Fragen) hierbei:
  • Was passiert mit den Ausgaben, die normalerweise per Webinterface im Notebook landen? Einfach wegschmeissen?
  • Welche "Zellen" des Notebooks sollen ausgeführt werden, wenn eine "Notebook-App" standalone (d.h. ohne Kontakt zum Browser) läuft? Sinnvollerweise vermutlich alle (d.h. ein Start über den Launcher ist dann äquivalent zu "Cell->Run All" im Notebook-Webinterface).
Eventuell kann Torsten da ja was zu sagen, der hat hier denke ich die meiste Erfahrung mit Jupyter und IPython.
MasterOfGizmo hat geschrieben:Wenn Du mir sagst, was Du da gerne als GUI hättest, dann kann ich was passendes bauen.
Danke, aber viel GUI wird es da denke ich eher nicht geben - im Wesentlichen das leere "Standard-Fenster", und eventuell ein paar Convenience-Funktionen, mit denen man aus dem Notebook heraus einfach Zugriff darauf bekommt. Das kriege ich vermutlich auch selber hin :-)

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Jupyter/IPython auf dem TXT

Beitrag von MasterOfGizmo » 20 Nov 2016, 12:40

richard.kunze hat geschrieben:Das kriege ich vermutlich auch selber hin :-)
Prima. Darfst Dich aber gerne melden, wenn Du Assistenz bei der GUI haben willst. Inzwischen gehen die mir recht flott von der Feder ...

Mit dem Blockly beschäftigst Du Dich erstmal nicht? Dann schaue ich mir das mal genauer an.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Jupyter/IPython auf dem TXT

Beitrag von MasterOfGizmo » 20 Nov 2016, 12:46

richard.kunze hat geschrieben: und sich automatisch beendet wenn er nicht mehr benutzt wird.
Für's erste würde ich den Teil komplett ignorieren. Den TXT macht man eh aus, wenn man ihn gerade nicht benutzt. Damit beedet sich die laufende IPython-Session sowieso. Ggf. gibt man halt während des Starts (der dauert ja eh eine Weile) per Web-Interface kurz die Info aus, dass IPython nun startet und bis zum nächsten Abschalten im Hintergrund laufen wird und der TXT generell dadurch etwas langsamer werden kann.

Wenn wir es generell schaffen, dass sich diese IDEs immer web-seitig aktivieren lassen, also ohne expliziten App-Start auf dem TXT, dann ist das cool. Und wenn auf dem TXT selbst dann davon nicht mehr zu sehen ist als ein paar Apps, die dann dort "magisch" entstehen, dann ist das m.E. auch intuitiv und schlüssig.
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: CFW: Jupyter/IPython auf dem TXT

Beitrag von richard.kunze » 20 Nov 2016, 13:08

MasterOfGizmo hat geschrieben:Prima. Darfst Dich aber gerne melden, wenn Du Assistenz bei der GUI haben willst. Inzwischen gehen die mir recht flott von der Feder ...
Klar, mach ich bei Bedarf.
MasterOfGizmo hat geschrieben:Mit dem Blockly beschäftigst Du Dich erstmal nicht? Dann schaue ich mir das mal genauer an.
Doch, mach ich durchaus. Ich hab auch schon ein paar ziemlich konkrete Ideen wie das aussehen soll und welche Blöcke es geben soll, und ich weiß auch schon grob wie ich das umsetzen will.

Da gibts aber einige Überschneidungen bei der Integration in die Weboberfläche zu Jupyter/IPython (bzw. genereller zu allen IDEs, die es irgendwann mal auf dem TXT geben wird), deshalb wollte ich vorher erst mal die nötigen Basisfunktionen für Jupyter/IPython in der Community-Firmware haben damit ich dann daran arbeiten kann, das beides zusammen vernünftig in die Weboberfläche zu integrieren.

Der nächste Schritt auf meiner Seite ist daher, Blockly selbst in die Firmware zu bekommen (das ist eher simpel), und dann mal anfangen, das beides ordentlich (und möglichst konsistent) in die Weboberfläche zu kriegen. Für Blockly wird das vermutlich eher erstmal ein Mockup ohne echte Funktion (d.h. Load/Save/Run tut noch nichts, aber der Editor selber geht), dann ein Template für eine "leere" Blockly-App und funktionierendes New/Load/Save/Run, und am Schluss dann die TXT-spezifischen Blöcke.

Benutzeravatar
MasterOfGizmo
Beiträge: 2720
Registriert: 30 Nov 2014, 07:44

Re: CFW: Jupyter/IPython auf dem TXT

Beitrag von MasterOfGizmo » 20 Nov 2016, 13:46

richard.kunze hat geschrieben: Der nächste Schritt auf meiner Seite ist daher, Blockly selbst in die Firmware zu bekommen (das ist eher simpel), und dann mal anfangen, das beides ordentlich (und möglichst konsistent) in die Weboberfläche zu kriegen. Für Blockly wird das vermutlich eher erstmal ein Mockup ohne echte Funktion (d.h. Load/Save/Run tut noch nichts, aber der Editor selber geht), dann ein Template für eine "leere" Blockly-App und funktionierendes New/Load/Save/Run, und am Schluss dann die TXT-spezifischen Blöcke.
Das klingt gut. Wir können uns das gerne so teilen, dass ich dann die Launcher/Web-Server-Seite mache. Sobald Du Dein Mockup hast fülle ich dann die Server-Seite mit Leben. Oder so ... wie Du magst.

Was wir auch gebrauchen können wäre jemand, der sich mit CSS und SVG prima auskennt und dem ganzen Web-seitig einen FT-Style verpasst. Diese Steckverbinder in Blockly schreien ja quasi danach, wie FT-Zapfen auzusehen ... So jemanden gibt es hier doch bestimmt, oder?
Arduino für fischertechnik: ftDuino http://ftduino.de, ftDuino32 http://ftduino.de/32

Benutzeravatar
ski7777
Beiträge: 870
Registriert: 22 Feb 2014, 14:18
Wohnort: Saarwellingen

Re: CFW: Jupyter/IPython auf dem TXT

Beitrag von ski7777 » 20 Nov 2016, 13:47

CSS gar nicht, dafür aber SVG .

Sagt mir bescheid, sobald ihr etwas braucht.

Raphael

richard.kunze
Administrator
Beiträge: 583
Registriert: 26 Dez 2015, 23:49
Wohnort: Rhein-Main-Gebiet

Re: CFW: Jupyter/IPython auf dem TXT

Beitrag von richard.kunze » 20 Nov 2016, 14:29

MasterOfGizmo hat geschrieben:Was wir auch gebrauchen können wäre jemand, der sich mit CSS und SVG prima auskennt und dem ganzen Web-seitig einen FT-Style verpasst. Diese Steckverbinder in Blockly schreien ja quasi danach, wie FT-Zapfen auzusehen ... So jemanden gibt es hier doch bestimmt, oder?
Klasse Idee. Sollten wir aber da weiter diskutieren, hier ist das Off-Topic.

Antworten