Meshviewer - Development


#1

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.


Meshviewer.org
#39

Der erste Post ist jetzt ein Wki Artikel und bekommt immer wieder Updates (links sollten funktionieren).
EDIT: Struktur noch eingefügt

Aktuelle Entwicklung mit dynamischen Node Detail und bald auch Functions als config. Möglichkeit Bilder oder andere Infos auszugeben die gewünscht sind außerhalb des Upstreams.


Merged

Bezüglich doppelter Links werden nach dem Merge alle links ausgeben.

Release wird bald fertig sein. Allgemein gab es paar breaking changes in den letzten Tagen (yanic zusammen mit meshviewer). Aktuelle Yanic master bzw. Meshviewer develop sollten zusammen laufen.


#2

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.


#3

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


#7

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


#4

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.


#5

@adorfer Das stimmt so vorne und hinten nicht.


#8

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


#10

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)
https://regensburg.freifunk.net/meshviewer/

Beispiele:
Sprache (Verbesserungspotenzial da, Router wird erst später geladen)
https://regensburg.freifunk.net/meshviewer/#/ru/

Sprache, View, Link:
https://regensburg.freifunk.net/meshviewer/#/fr/graph/687251165830-14cc20cd2742/

EDIT:
Location verlinken
https://regensburg.freifunk.net/meshviewer/#/en/map/17/49.01877564388026/12.093865871429445/

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)


#11

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.


#6

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

Darauf hin hiess das dann “Hopglass”


#12

So jetzt ist vom Performance “Project” auch der letzte (aktuelle) Punkt gefallen. :tada:
Virtual-dom wurde ersetzt.


(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.


#13

So jetzt verfügt der forcegraph wieder über Animation und das heran zoomen von aufrufen direkt via URL klappt wesentlich besser.
https://regensburg.freifunk.net/meshviewer/#/de/graph/0019995fb35f

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.).


#9

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


#14

Moin, ist leider gerade nicht erreichbar.


#16

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.


#25

Hier ist auch noch mal ein codeschnipsel, der helfen könnte eine invers funktion zu erstellen:

Damit kann man im hopglass-server eine nodes.json im v1 format erstellen, siehe hopglass README option in “possible-webserver-queries”:

/mv1/nodes.json 	Meshviewer nodes.json v1

Allerdings ist das alles noch keine Lösung für uns.

  • Entweder brauchen wir in Nord und Hamburg einen Workaround, der aus unserer nodes.json v1 eine neuere v2 erstellt, damit hopglass damit läuft
  • oder wir müssen unser generate_aliases.py Script neu erstellen, das in die nodesV1 die geokoordinaten reinrechnet damit es dies auch in einer nodes.jsonV2 reinrechnen kann, so dass wir gleich das neuere Format benutzen können. Dazu hab ich das hier von @kantorkel gefunden: was hat es mit dem generate_aliases_v2.py auf sich? Ist das für eine nodes.json im v2 format gedacht? Oder ist das nur eine neue version des scripts und das v2 hat nichts mit nodes.json v2 zu tun?

#17

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?


#26

Wir hatten v2 schon mit ffmap backend und wie beschreiben planen wir das ganze zu ändern. Backend kann theoretisch alles sein, aber erste wird Yanic sein. Unser Meshviewer unterstützt “offiziell” kein HopGlass Backend.


#27

Großes Update geplant:

  • Version releasen - master branch - bisher hab es immer nur den develop
  • nodes.json und Graph komplett überarbeiten - yanic wird gleich das passende Backend liefern.
  • TQ in beide Seiten und kein Durchschnitt mehr.
  • Updates auch in der infobox content

Alles weitere gibt es im issue tracker und Milestone.