Visualizer #3
Loading…
Reference in a new issue
No description provided.
Delete branch "rudi_s"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Improved JSON logging and visualization via chart.js in the browser.
Probiere gerade die Review-Funktion aus. Nimm das nicht zu ernst ;)
Muss auch feststellen, dass es in Go so manche interessante Syntax gibt, die ich als außenstehender nicht direkt verstehe. Aber es hat ja funktioniert, daher wird das schon passen :D
@ -0,0 +35,4 @@
go func() {
for {
path := os.Args[1]
dupPath := os.Args[2] + "." + time.Now().Format(time.RFC3339)
Eine Idee dazu noch: wenn man wirklich ein Replay von einem früheren JSON-Dump startet, indem man diesen statt dem FIFO als Args[1] angibt, wäre es cool, wenn man Args[2] weglassen könnte oder zumindest /dev/null angeben könnte. Letzteres geht leider nicht wegen dem Anhängen der Uhrzeit (was an sich aber schon sinnvoll ist).
Ist implementiert. Habs auch gleich rebased.
Schaut gut aus. Dann merge ich das mal :)
51ae5d6785
tod5aeb6c0bc
Ueber welchen interessanten Syntax bist du gestolpert?
Das eine war die Frage, warum da nochmal ein
go func() {...}
in dermain()
auftaucht, das andere war Zeile 120:Das scheint eine spezielle Kopieroperation zu sein, wegen mehreren Websocket-Clients, aber so richtig klar ist mir nicht, was das tut. Muss aber auch zugeben, dass ich auch noch nicht danach gesucht habe.
go x()
startetx()
in einer neuen Go-Routine (= "Green"-Thread).func() { ... }
ist ne anonyme Funktion (Lambda).Damit wird der Block "im Hintergrund" (parallel zum Rest der
main
) ausgefuehrt.ch
ist ein Channel (ne Message-Queue zwischen Go-Routinen).x = <-ch
nimmt ein Element aus dem Channel (und blockiert wenn nichts drin ist) und speichert es inx
,ch <- x
fuegtx
dem Channel hinzu (und blockiert wenn kein Platz mehr drin ist; die Kapazitaet kann man beimmake()
angeben).(Channels darf man in Go nicht kopieren wenn sie angelegt wurden. Deswegen speichere ich Pointer auf Channels, das ist erlaubt.)