Meshviewer - Development

Hallo,

wir (auch Entwickler von anderen Communitys wie Bremen) entwickeln vermutlich als einzige Community den Meshviewer komplett weiter. Wir nutzten ein eigens Format ca ~1/3 vom {nodes,graph}.json v2 mit Yanic als Backend. Yanic kann weiterhin andere Formate genieren, da unser Format nur relevante Infos für den Meshviewer liefert.

Aktuelle Tests

  • ServiceWorker - einfach formuliert, Meshviewer Funktioniert auch offline, soweit die Tiles schon einmal angesehen wurden. Wenn ich den Meshviewer auf den Home Screens speicher und später wieder starte hab ich den Stand noch da, falls ich offline bin. Funktioniert in: Chrome, Firefox, Edge (flag only - nicht default bisher)
  • Eigenes Format meshviewer.json wurde implementiert mit neuen Infos (2 TQ pro Link, Split 2,4 Ghz/5 Ghz/andere (lan, usw,), nexthop/gateway/gateway6). Gemerged
  • Neuer Router (URL) live - weiter Infos weiter unten
  • Sidebar umbau live - weiter Infos weiter unten

Entwicklung

Wir werden auch weiterhin kein Halt vor „breaking changes“ machen und sind aktuell nur mit dem Yanic backend kompatibel. Breaking commit ist mit [!!!] markiert und letzte funktionierende stand mit {nodes,graph}.json v2 hat ein den Tag v0.0.0.

Struktur

Grafik anzeigen

Struktur PDF mit Links (81,2 KB)

Github

https://github.com/ffrgb/meshviewer

PR tests

Alle PR und pushes werden auf netlify gebaut und stehen zum testen zur Verfügung

Dokumentation inkl. Liste von aktuellen Instanzen

Config, Installation usw. beschrieben.
doc.meshviewer.org

IRC

Zentrale Kommunikationsplattform für die Entwicklung
irc.hackint.org #meshviewer

Übersetzung

Wir nutzten eine Plattform außerhalb von GitHub um mehr Sprache zu ermöglichen. Sprachen mit anderer Laufrichtung unterstützten wir bisher nicht.
https://poeditor.com/join/project/VZBjPNNic9

Tileserver

Wir nutzten aktuell unseren eigenen Tileserver, auf Anfrage geht auch eine Mitnutzung. Unsere Tiles sind 30-50% kleiner zum OSM Style und als Retina verfügbar.

Logo/Icon (Für App Icons usw, kann einfach ausgetauscht werden)

Releases

Wir haben uns entschlossen ein Version zu releasen. Aktuelle Milestones sind auf GitHub. Es gibt bisher noch kein Release Date.

Debug

Wir haben eine selfhosted sentry ( Sentry | Error Tracking Software — JavaScript, Python, PHP, Ruby, more ) im debug Branch, die kann gerne ausgerollt werden (machen wir in Regensburg und haben schon paar sporadische Fehler gefunden).

Forks/Entwicklung

Original

Wir haben mit Nils geschrieben, bezüglich des Namens „Meshviewer“ und alles ist OK. ffnord entwickelt nicht mehr aktiv und wir sind mit mehreren Maintainern einer der aktivsten. Nochmals vielen Dank an Nils für die Arbeit.

Hopglass

Wir stehen mit @PetaByteBoy in Kontakt und er möchte auf unseren Stand aktualisieren, falls ihm die Sachen passen, und Teile seiner Anpassungen beibehalten bzw. nach Absprache „upstream“ schicken.

Viele Grüße,
Xaver
Freifunk Regensburg e.V.

13 Likes

Gute Sache! Wir Bremer sind mit @xaver und den Regensburgern jetzt seit ein paar Monaten in Kontakt und versuchen zu helfen wo wir können. Ich persönlich bin begeistert von der Entwicklung und Performanceverbesserung, welche ich beobachten durfte.
Ich idle im IRC-Channel und kann so recht viel mitbekommen und mitdiskutieren. Macht Spaß :smile:

Ich freue mich über mehr Unterstützung!
Joda.

1 Like

Hallo @xaver,

meinst du mit MeshViewer wirklich das Original oder den Fork HopGlass? Falls es zwei getrennte Forks sind, worauf legt ihr den Schwerpunkt, bzw. was ist der Schwerpunkt von HopGlass?

Auf den ersten Blick wirkt es wie doppelte Arbeit, wenn zwei Forks weiterentwickelt werden, daher würde es mich interessieren, ob es dafür Gründe gibt.

Grüße
Matthias

Meines wissens sind es zwei getrennte Forks. Wobei sich einer nach wie vor „Meshviewer“ nennen darf und dem andren (HopGlass) die Nutzungs des „Meshviewer-Namens“ untersagt sagt wurde. (oder zumindest wiederholt nachdrücklich darum gebeten wurde, von der Nutzung Abstand zu nehmen und sich etwas eigenes zu suchen.)
Von daher gehe ich davon aus, dass -so die Leute bei Hopglass sich an ihre Einwilligung halten- sie ihren Code nicht mehr in einen anderen Fork geben können, der wieder den Namen „Meshviewer“ trägt.
Denn das wäre dann faktisch ein Unterlaufen/Umgehen dieser Absprache.

@adorfer Das stimmt so vorne und hinten nicht.

Die Umbenennung in „Hopglass“ erfolgte letztes Jahr nach diesem Posting:

Darauf hin hiess das dann „Hopglass“

Hallo,

@adorfer Der Name ist OK, ich hab auch mit Nils geschrieben. Warum Hopglass „Hopglass“ heißt hat auch eventuell nicht so ersichtliche Gründe. Es gibt auch Sachen und Kommunikation die nicht im Forum nicht breit getreten wird.

@MPW ich hatte auch ein paar Sachen an Hopglass commited. Codestyle hat mir absolut nicht gefallen und @PetaByteBoy wollte es wegen Kompatibilität nicht ändern (verstehe ich völlig). Dann hab ich den Fork aus beiden und einige Sachen der Issuelisten erstellt. Da manche Features Geschmackssache sind, hab ich auch paar Sachen rausgeworfen. Wir orientieren uns an an keinem der beiden.
Wir haben aktuell > 210 Commits und einige Sachen sind in Arbeit. Wir haben neben Features auch alle Libarys aktualisiert, also grunt v1 bzw. inzwischen gulp, Leaflet v1 usw. (siehe liste im Repo).

Viele Gruesse
Xaver

2 Likes

nice, verzichtet ihr wirklich auf den Netwerk Graphen? das is hart, vor allem wenn nicht alle Knoten geocoordinaten haben, oder „experten“ 10 Knoten die gleiche Geokoordinate geben

@fuzzle ? Wir haben den Graph drinnen nur mit D3.js v4 und nicht v3.

1 Like

Hallo,

so noch ein Test :smile: der groessere Auswirkungen auf den Meshviewer hat und noch nicht final ist. Es geht um Router (URL).

Zu finden unter und in der „Developer Console“ werden immer deep links ausgeben (Links in der GUI keine deep links, außer View toggle)

Beispiele:
Sprache (Verbesserungspotenzial da, Router wird erst später geladen)

Sprache, View, Link:

EDIT:
Location verlinken

Alle Parameter sind optional. Geplant in der Zukunft sind zudem noch Filter und Location.
https://github.com/ffrgb/meshviewer/issues/83

EDIT:
LIVE :slight_smile: - Links updated

Viele Gruesse
Xaver

(PS; Update den auch abundzu, daher kann auch ein teil der Beschreibung fehlerhaft sein)

4 Likes

Hallo,

aktueller Test mit umgebauter Sidebar - Header bleibt immer auch bei nodes, location und link.
EDIT:
Bei uns inzwischen live:
https://regensburg.freifunk.net/netz/karte/

gruss
xaver

PS: Ist das OK, wenn ich für neue Features einen neuen Post mache (groessere Änderungen/visuelle Unterschiede/Bedienung)? Feedback ist willkommen oder Ideen.

2 Likes

So jetzt ist vom Performance „Project“ auch der letzte (aktuelle) Punkt gefallen. :tada:
Virtual-dom wurde ersetzt.
https://github.com/ffrgb/meshviewer/projects/1
(Werde das Project sicher noch mit ein oder anderen Task fuellen. Muss mal wieder schauen wo aktuell die groessten Bottlenecks sind.)

Neben schnellerem Aufbau merkt man die Verbesserung auch bei Filter Operationen.

4 Likes

So jetzt verfügt der forcegraph wieder über Animation und das heran zoomen von aufrufen direkt via URL klappt wesentlich besser.

GW filter und GW Ausgabe bei der Node wurde auf Wunsch hinzugefügt. GWs werden nicht wie in anderen Implementierungen über eine Liste gepflegt, sondern alle mit dem gw flag ist eine Liste und diese löst die Namen auf.

Ansonsten noch paar andere Sachen wie Libary Updates oder kleinere Modifikationen (inkl fix vom Meshlink count, tilte-tag Umbau usw.).

Moin, ist leider gerade nicht erreichbar.

Sry, ja es gab ein technisches Problem am Cluster. SSD Cache kaputt, Daten werden migriert usw. und da wir das gestellt bekommen und nichts zahlen, waren wir eine niedrige Priorität. Jetzt ist der Server umgezogen und wenn der DNS durch ist sollte es gehen. Google DNS Flush ist passiert.

EDIT:
Das Backup hat leider nicht den aktuellen Stand. muss das nochmal deployen.

EDIT2:
So wieder deployed - strg + F5 - JS hat dann ein cache breaker.

2 Likes

Hallo,

Entwicklung geht weiter:

  • Neuer Kartenserver läuft (Update von Zoomlevel und attribution nötig)
  • Umbau nodes.json ist in zusammen spiel mit yanic an der Reihe. Aktuell wird ein massiver Overhead mit ausgeliefert (ca. 50%), aber auch ein paar neue Informationen. Aktuell noch am planen und testen.
  • Kleinere Bugfixes und Updates

Viele Gruesse
xaver

PS:
Kann leider nicht meinen ersten Post updaten (kaputter Link) usw.

3 Likes

Sag mal kann dieser MV auch mit nodes.json Version 1 umgehen und hat er multi nodes.json support um mehrere jsons auf der gleichen Karte anzeigen zu können?

  1. Nein, es gibt ein Konverter Script - das war mal drin, Das kostet Leistung und kannte keine Community mit v1. Hätte eher ein Proxy Script gebaut. Wir planen ja auch v2 den Rücken zu kehren. Beispielsweise möchte ich einige Sachen viel dynamischer bauen Wenn möglich via Config Felder definieren die ausgeben werde (wenn alles klappt). Als Backend Yanic (und jeder andere der irgendwie so raus bekommt - Vorteil von dynamischen config wenns geht).
  2. Ja
1 Like

Hast du da mal einen Link?

Muss mal schauen - das war mal im Code drin - eigentlich wandelt es nur etwas die Struktur um. Hab mich nie mit v1 groß beschäftigt.