HopGlass - Development Thread

So Milan
Ich bin grade dabei es „ordentlich“/„ordentlicher“ einzubauen …

http://hopglass.meshviewer.net/

Das Bild wird nun in die Tabelle eingefügt
mittels der attributeEntry Funktion

diese hab ich dahin gehend erweitert das diese prüft ob ein string übergeben wird → wenn ja altes handling
ansonsten wird das bald eingefügt

(das handling bei nicht vorhanden Bild baue ich grade noch / kann dank adorfer noch testen http://hopglass.meshviewer.net/#!v:m;n:00156d001610
da ich die „Ubiquiti Rocket M2“ noch nicht gehastet habe :smile:

prinzipiell müsse ich da nur „nichts“ zurückgeben / und insgesamt alles etwas weiter nach oben …)

ist noch ein bisschen css Arbeit nötig und die config-bearbeitung

btw beim Hessen-Meshviewer hatten sheogorath und ich die Node, GW, whatever Farben configurierbar mit fallback gemacht …

2 „Gefällt mir“

Sieht genial aus!
Die Farben hätte ich eigentlich gerne einheitlich sonst wird es so verwirrend…

nur, damit ich’s schon mal $irgendwo hingeschrieben habe … :wink: :
ist es möglich irgendwie ne Art Fortschrittsbalken oder zumindest einen dreheden Kreis/„Throbber“/whatever einzubauen.? ich hab jetzt schon öfter Rückmeldungen von verstörten Benutzern gehört, die es irritierend finden, wenn die (Web-)Seite beim Aufruf einfach nur weiss bleibt und es dann irgendwann einfach »plopp« macht und die Karte ist da…

1 „Gefällt mir“

Adorfer hat etwas ähnliches am Montag ?!? war es meine ich angemerkt.

Ich glaube eine Art optionaler RSS feed war es.

irgendwann Plopp … :smiley:

beim Hessenweiten meshviewer sind es 5-6 MB an json’s da dauert es zu Hause ca 25-40s bis „es geschieht“ XD

Ich hatte irgendwo schon mal was in die Richtung errorhandling gesehen DAS war aber hässlich ^.^

Müsste man sich mal Gedanken drüber machen …

Kommt halt darauf an wie groß die Domäne ist wie lange der download der Daten braucht.

Wegen " nur, damit ich’s schon mal $irgendwo hingeschrieben habe … :wink: :"

Issues · hopglass/hopglass · GitHub bietet sich da an :wink:

Am besten mit in der Art " [Feature Request] loading animation "

Gruß
Daniel

1 „Gefällt mir“

Mein Ansatz ist, dass die Karte schon aufgebaut wird, bevor die Daten da sind. Die Daten werden dann „eingefügt“ sobald sie da sind.

1 „Gefällt mir“

ja wäre ist auch eine Möglichkeit / mein GIT-Stand ist ja etwas zurück :smiley:

Es liegt aber nach meinen Tests nicht am Netzwerk.

Die Daten kommen zuerst an (man kann im Browser ja in der Netzwerkanalyse schauen, wann nodes.json und graph.json da sind), aber dann dauert es immer noch ein paar Sekunden bis die Karte auftaucht.

Ja, der „Client“ verarbeitet die Daten noch. Das will ich in Zukunft auch noch verkürzen, indem der Server mehr von der Arbeit abnimmt und dann auch cached.

1 „Gefällt mir“

Das ist richtig die Daten müssen ja erst verarbeitet werden.
Im Falle des Hessen-Meshviewers
werden 12 Dateien geladen
Es wird geschaut welche Version der nodes.json vorliegt (Frankfurt und Wiesbaden benutzen meine ich V2 der Rest V1) das heisst es werden daten umgebaut auf die andere json version / dabei werden alle unknown nodes gekickt.

Gut bei Hopglass gibts den Aufriss nicht da es nur ein Datenformal gibt :smiley:

Gibts eigentlich ein Community die so 2500 Knoten hat und hopglass einsetzt ?
Der Meshviewer hatte bei der Anzahl drastische performance Probleme.

Benötigt zwar immer noch viel Leistung aber es geht mittlerweile.

Ich habe bei meinem jüngsten Tests JavaScript/ECMAScript spielereien durchaus festgestellt, dass da auch bei uns noch was geht. Allerdings müsste man dazu auf das V2 Format umsteigen. In manchen Dingen vorteilhaft in anderen weniger. Sollten wir nochmal prüfen.

Könnte zumindest in allen Browsers die V8 (Chrome, Opera, etc.) nutzen durchaus ein paar (~50) ms Unterschied (pro Schleife) machen.

Das Hauptproblem ist und bleibt die grafische Verarbeitung die schleppend ist, da viel nach gerendert wird (In der logischen Ansicht) und das Laden der Daten an sich.

Die Frage die sich hier stellt ist, wie viel will man wirklich von der Clientseite weg haben? Ich finde nämlich das eigentlich schöne am Meshviewer, dass er komplett clientseitig läuft. (Hat natürlich wie man merkt seine Tücken)

Wenn man nicht alles abgesehen der Anzeige auf die Serverseite Auslagern will (Heißt auch serverseitig die Filter verarbeiten) sehe ich leider wenig einsparpotential was Daten angeht :confused:

Ich überlege mir mal wie man das Caching besser gestalten könnte :wink:

Bevor man nicht alle Clients hat (also die Nodelist.json), vorher weiss der Client nicht, welche Karte (Mitte, Zoomstufe) er zeichnen soll.
Und dafür muss die Datei halt erstmal da sein, wird vom webserver ja hoffentlich gepackt übertragen.

Wenn das die Sorge wäre :smiley:

Das wäre noch relaltiv einfach zu machen, für jeden Knoten wären das folgende Daten:

{
  "id": "someid",
 "location":{
    "longitude":8.568458,
    "latitude":50.140776
  }
}

Das kann man gerne auch für sehr viel mehr Knoten übertragen, das sollte nicht das Problem sein, aber um die Nodes so wie in der aktuellen Version mit Filtern etc. verwalten zu können, sind mehr Informationen auf Anhieb erforderlich. Hier liegt der Hase im Pfeffer.

Hat sich jemand schonmal angeschaut, ob man unkompliziert Leaflet auf die aktuelle Version bumpen kann?

Ist gegebenenfalls low hanging fruit für Performance…

1 „Gefällt mir“

Da sind halt Patches drin, „wegen maximalem Zoom-Level“. und „Beschriftungen in dem MaxZoom“.

https://cdn.rawgit.com/Moorviper/Freifunk-Router-Anleitungen/master/orga/picsource/meshspinFF.svg

3 „Gefällt mir“

Das ist aber mittlerweile im hopglass abgefangen

fixed by yayachicken

https://cdn.rawgit.com/Moorviper/Freifunk-Router-Anleitungen/master/orga/picsource/meshspinFF.svg
Ist ja schön… aber so rein mechanisch würde ich bei einem Getriebe gegenläufige Achsen annehmen <g>

Warum habe ich jetzt die Idee, da eine Traktor-Kabine drauf zu zeichnen und „Landfunk“ drunter zu schreiben?

2 „Gefällt mir“

Das ist erst mal proof of concept :smiley:

1 „Gefällt mir“

Ich experimentiere gerade mal mit den neuen Features von HTTP/2.0 - i.e. Server-Push/Propose…
lies: der Server (wahlweise auch das HTML-Skelett selbst) sagt beim Abruf der index.html: »BTW: Du Browser wirst gleich noch die nodes.json und die graph.json brauchen… die kannst du dir im Side-Channel schon mal im Hintergrund laden…« (HTTP/2.0 implementiert einen multiplex-Stream)
Wenn dann die app.js soweit ist selbst die JSONs per XHR zu holen, dann liegen die potentiell schon im Browser-Cache und können direkt geparsed werden - sofern auch die Expire/Cache-control Header das zulassen…

Der blöde Autoformater m) hält ich lassen sollen so kann man anhand des diff’s nichts nachvollziehen was geändert wurde :smiley:
Eine Datei muss ich noch mal überarbeiten dann kann ich committen → dürfte so morgen Abend werden :wink: