Vorstellung eines Freifunk Advisory Councils für die Communities

Information vom Förderverein freie Netzwerke e.V.

Liebe Freifunker_Innen,

wie im November des letzten Jahres angekündigt (siehe http://lists.freifunk.net/pipermail/wlantalk-freifunk.net/2014-November/000391.html), haben wir uns gemeinsam mit Euch Gedanken zur Gründung eines “Freifunk Advisory Councils” gemacht.

Das zu gründende Freifunk Advisory Council (AC) soll dem Förderverein freie Netzwerke e.V. zukünftig bei Entscheidungen zur Seite stehen.

Jede Community kann bis zum 14.05.2015 einen Vorschlag für ein Mitglied an die Mailingliste council-kandidaten@freifunk.net melden (ACHTUNG: Alle Eingänge sind über eine öffentliche Mailingliste einsehbar). Zum Besetzungschlüssel des Advisory Councils und Verfahrensweisen haben wir unten alles aufgelistet.

Das Council wird vorerst auf eine Zeit von 12 Monaten gewählt, in denen auch die weiteren Details zur Zusammenarbeit geklärt werden. Vor allem die möglichst kurzen Fristen zur Beantwortung von Anfragen und Abstimmungspunkten durch die Mitglieder_Innen.

Weitere Details finden sich unten.

Rückfragen bitte ins Pad unter https://pad.freifunk.net/p/faq_advisory_council eintragen, wir versuchen Sie so schnell zu bearbeiten.

Ziel ist es, das Council spätestens im Rahmen des anstehenden WCWs initial zu besetzen.

Viele Grüße, schönes Wochenende,
Euer Vorstand des Fördervereins freie Netzwerke e.V. und die Mitwirkenden

P.S.: Dieser Text ging auch an die Kontaktadressen aller Freifunk Communities in Deutschland.

Funktionsweise und Aufgaben des Freifunk Advisory Councils (AC)

Aufgaben

  • Das AC entscheidet in Streitfragen bei der Vergabe von freifunk.net Subdomains oder API Einträgen
  • Beratung und Hilfe zur Beilegung von Streitigkeiten in bzw. zwischen Freifunk Gruppen

Zusammenstellung

Zur Einreichung von Vorschlägen wird benötigt:

  • (Vollständiger) Name
  • Bundesland
  • Community (in API eingetragene Stand 17. April 2015)
  • Email/Kontaktadresse

Sollten die Einreichungen eines Bundeslandes zahlenmäßig die Anzahl der zu entsendenden Repräsentanten übersteigen, organisieren die Communities des Bundeslandes eine Wahl. Bis dahin bleibt die Position
unbesetzt.

Die Besetzung ist angelehnt an die föderale Struktur der Bundesrepublik Deutschland: 21 Mitglieder

  • Baden-Württemberg 2
  • Bayern 2
  • Berlin 1
  • Brandenburg 1
  • Bremen 1
  • Hamburg 1
  • Hessen 2
  • Mecklenburg-Vorpommern 1
  • Niedersachsen 2
  • Nordrhein-Westfalen 2
  • Rheinland-Pfalz 1
  • Saarland 1
  • Sachsen 1
  • Sachsen-Anhalt 1
  • Schleswig-Holstein 1
  • Thüringen 1

Organisiation

Organisiert und kommuniziert wird über eine Mailingliste, die der Förderverein freie Netzwerke e.V. zur Verfügung stellt. Für Anhörungen oder Diskussion wird ein mumble empfohlen.

Anfragen

Jede_r darf Anfragen an das AC per E-Mail richten.

Abstimmungen im AC über Domain und API Fragen

  • Abstimmungsfragen werden nach Darlegung des Sachverhaltes vom AC als Ja/Nein Fragen formuliert.
  • Entscheide werden mit einfacher Mehrheit beschlossen.
  • Keine Antwort gilt als NEIN.
  • Entscheidungen werden an die Beteiligten des Streitfalles gesendet.
  • Ablehnende Entscheidungen bedürfen einer Begründung.

Treffen

  • das AC trifft sich mindestens einmal im Jahr in Persona
  • der Termin und Tagesordung wird innerhalb des AC abgestimmt
  • in Härtefällen kann der Förderverein freie Netzwerke e.V. einen Reisekostenzuschuss bewilligen

Aufnahme neuer Mitglieder, Ausscheiden, Ausschluss, Vertretung

  • Nicht besetzte Positionen sind Enthaltungen.
  • Beim Ausscheiden von Mitgliedern kann nachbesetzt werden, siehe Zusammenstellung.
  • Der Verteilungsschlüssel muss beibehalten werden.
  • Das AC kann Personen mit Zweidrittelmehrheit ausschließen
  • Pro Mitglied kann zusätzlich ein Vertreter bestimmt werden, der bei Verhinderung des Mitglieds einspringt oder bei Ausscheiden des Mitglieds bis zur Nach- oder Neubesetzung dessen Aufgaben übernimmt.

Reporting

Das AC verfasst am Ende des Jahres einen zusammenfassenden Bericht, über die Zahl und Art der Anfragen und veröffentlicht diese unter blog.freifunk.net.

Freifunk API – Spendenkampagnen und Unterstützer, Metacommunities

Die Freifunk API wird in kleinen Schritten immer weiter entwickelt. Manchmal sind es nur kleine Verbesserungen z.B. im Generator, hin und wieder kommen aber auch neue Felder hinzu.

Neue Features

Zentrales Thema der letzten Iteration war die Unterstützung der lokalen Community. Neben Spendenkampagnen kann man auch Informationen zu einem Förderverein eintragen.

Unterstützende Vereine

Um die Metacommunities besser darzustellen, gibt es unter “How to support you?” einen Eintrag für einen unterstützenden oder fördernden Verein. Neben Name und Adresse kann man Emailadresse und Homepage angeben sowie den Vorstand nennen. Die Felder sind alle optional.

Spenden

Immer mehr Communities setzen auf Spendenkampagnen von betterplace. Bis vor kurzem haben wir versucht, die Übersichtsseite über diese Kampagnen von Hand zu pflegen. Wegen der großen Anzahl wurde das immer schwieriger. Wir fassten den Entschluss, die Spendenkampagnen über die API einzusammeln. Im Moment wird nur betterplace als Plattform unterstützt, da niemand eine andere nutzt und uns auch keine bekannt ist, die Gleiches leistet wir betterplace. Um eure Kampagne über die API bekannt zu geben müsst ihr lediglich die ID der Kampagne angeben und die Plattform “betterplace” auswählen. Eure ID könnt ihr in der URL zu eurer Spendenseite bei betterplace finden. Es ist die Zahl nach “/projects/”, bei “https://www.betterplace.org/de/projects/12172-freifunk-net” z.B. die 12172.

Die Spendenübersicht hat nun ein eigenes WordPress-Plugin bekommen, dass die Daten aus der API einsammelt und in einer Tabelle darstellt. Informationen zu einigen Trägervereinen sind schon vorhanden, vom Rest erwarten wir noch einen kleinen Text.

Daneben kann natürlich auch ein Bankkonto angegeben werden, um direkt Spenden zu bekommen.

Falls ihr auch eine eigene Spendenkampagne starten wollt, aber keinen gemeinnützigen Verein als Träger habt, könnt ihr auch den Förderverein Freie Netzwerke e.V. kontaktieren.

Timeline

DelphiN aus Franken arbeitet gerade daran, die Timeline-Daten aus der API aufzubereiten. Am Ende sollen sie in einem Zeitstrahl dargestellt werden. Viele Communities haben hier erfreulicherweise schon Daten eingetragen. Wir freuen uns, wenn es noch mehr werden. Einige Einträge sind jedoch zu fein granuliert, als dass man sie sinnvoll in einem Zeitstrahl zeigen kann. Es ist nicht sinnvoll, das Aufstellen einzelner Router oder jedes Treffen in der Timeline zu dokumentieren. In dieser sollen sich Meilensteine (z.B. 100 Router, 1000 Clients gleichzeitig), wichtige Daten (Gründung, ggf. Wiedergründung) oder Ereignisse von großer Tragweite wiederfinden. Einige Vorschläge für Einträge:

  • Ereignisse
    •   Gründung
    •   Neugründung
    •   Vereinsgründung
    •   RIPE-Mitgliedschaft
    •   Event vermesht (Festivalname, Ort, Link zu Blog)
    •   Wichtige Kooperation geschlossen (Partnername, Link zu Blog)
    •   wichtiger Standort vermesht, z.B. Rathaus, Kirche, Schule, Fußgängerzone (Standortname, Link zu Blog)
  • Technik
    •   Knoten
      •     Erster Knoten online
      •     mehr als 100 Knoten online
      •     mehr als 500 Knoten online
      •     mehr als 1000 Knoten online
  •   Clients
      •     mehr als 100 Clients parallel
      •     mehr als 500 Clients parallel
      •     mehr als 1000 Clients parallel
    • Firmware
      •   Major Release mit Firmware Name, Version

Umgang mit Metcacommunities

In letzter Zeit haben wir API-Entwickler intensiv über den Umgang mit Metacommunities diskutiert. Ausgangspunkt war, dass zwei sich zwei Metacommunities zusätzlich in das Directory eingetragen haben und die Gesamtknotenzahlen neben den einzelnen Werten aus den Communities gemeldet haben. Das verfälscht natürlich das Ergebnis. In Zukunft soll mit Metacommunities so umgegangen werden:

  • Es gibt für Metacommunities keinen eigenen Eintrag im Directory
  • Fördervereine werden stattdessen in die neue Sektion für Vereine eingetragen
  • Das Feld Metacommunity bleibt erhalten und kann zur Gruppierung der API-Daten verwendet werden.
  • Der Collector wird erweitert, um neben der flachen Ausgabe aller Communities wie bisher auch eine nach Metacommunities gruppierte Datei zurückzugeben. 

Das Vorgehen hat mehrere Vorteile: Die API-Dateien und das Verzeichnis bleiben in einer einfachen Struktur erhalten. Alle Daten, um Gruppierungswünsche zu realisieren sind weiterhin vorhanden und können genutzt werden. Zur Erstellung von API-Dateien nutzt Freifunk Franken z.B. Templates, die dann um jeweile regionale Daten ergänzt werden.

Weitere Entwicklungen – Helfer gesucht

Im Umfeld der API sind einige Werkzeuge und Anforderungen entstanden, für deren Weiterentwicklung und Umsetzung wir Mitstreiter suchen. Hilfe ist immer herzlich willkommen. Meldet euch über das Kontaktformular, wählt “Frage zur API” und schreibt uns.

Collector

Der Collector ist ein kleines Python-Propgramm, dass momentan aus den API-Daten eine HTML-Tabelle, ein JSON für die Communitykarte und eine Konkatenation aller API-Dateien generiert. Durch die Erweiterung soll eine weitere Ausgabe hinzukommen, die die Daten in der folgenden Struktur als JSON-File zurückgibt:

  • Metacommunity1
    •   Community1 in Metacommunity1
    •   Community2 in Metacommunity1
  • Community3 (hat keine Metacommunity)
  • Metacommunty2
    •   Community4 in Metacommunity2
    •   Community5 in Metacommunity2
  • Community6

DeepaMehta – Freifunk Query Client

Im Rahmen des Google Summer of Code 2014 hatten wir mit der Arbeit an einem Query Client begonnen. Erst in der Mitte des Projekts lernten wir DeepaMehta kennen, eine Software zur semantischen Datenablage und zum Wissensmanagement. Erste Ergebnisse zum Import des Verzeichnisses und einiger API-Daten konnten wir schon erzielen. Eine erste Abfrage selektiert alle Communities nach einem Routingprotokoll, z.B. Batman Advanced oder OLSR. DeepaMehta erfordert Kenntnisse in Java und Maven.

Links sammeln und Termine teilen

Was ist das?

Die beiden Werkzeuge LinkSink und Calcifer sind nun einsatzbereit. Mit LinkSink können wir für Freifunk Links zu unseren Themen zusammentragen und daraus RSS-Feeds erstellen. Durch Kategorisierung und Hinzufügen von Tags können wir damit sehr flexibel RSS-Feeds zu bestimmten Themen bereitstellen und bei vorhandenen Mediendateien sogar diese einbinden. Calcifer kann man zum Verwalten von Terminen und Erstellung von ics-Dateien verwenden. Auch hier kann nach Tags und Orten gefiltert werden.

Für einige Anwendungen nutzen wir beide Werkzeuge schon aktiv:

Wie funktioniert das?

Auswahl und Filter

LinkSink Filter

Auf der Startseite sind zunächst alle Einträge zu sehen. Durc h einen Klick auf ein Tag eines Eintrags oder durch Nutzung der Filterleiste kann man diese Auswahl einschränken. In Calcifer kann derzeit entweder nach Tags oder nach Orten gefiltert werden. Filter in LinkSink können Kategorie, Jahr und ein Tag enthalten.

Link zum Feed

Fü r ein Filterergebnis steht dann ein Link zum RSS-Feed oder der ICS-Datei bereit. Die URL des Feeds bleibt konstant, so dass diese in anderen Anwendungen permanent eingesetzt werden kann. Mit jedem Aufruf wird der dahinterliegende Feed neu erzeugt und mit aktuellen Daten gefüllt. Calcifer erzeugt dabei nur in der Zukunft liegende Termine. LinkSink ordnet die Einträge absteigend nach Erscheinungsdatum.

Neue Links oder Termine kann man mit einem Klick auf Neuer Link bzw. Neuer Termin oben in der Navigationsleiste anlegen. Dann öffnet sich das entsprechende Formular. Sind alle Pflichtfelder richtig gefüllt, kann der neue Eintrag gespeichert werden.

Formular MediendateienMediendateien wie bei Podcasts können zu einem Linkeintrag hinzugefügt werden. Die notwendigen Felder für Länge und Typ stellt LinkSink beim Speichern fest und schreibt die Werte in die Datenbank. Die RSS-Feeds sind so aufgebaut, dass Podcastclients integrierte Audiodateien erkennen können und abspielen.

Calcifer kann auch wiederholende, regelmäßige Termine anlegen. Als Intervalle sind wöchentlich, 2-wöchentlich und monatlich auswählbar. Das Verwaltung wiederkehrender Termine erreicht man durch einen Klick auf den Link in der Navigationsleiste oben.

BookmarkletZur Erleichterung der Aufnahme neuer Links gibt es ein sogenanntes Bookmarklet. Das ist in der Navigationsleiste rechts oben zu finden. Um es zu nutzen, zieht man es in die Bookmarkleiste des eigenen Browsers. Auf Webseiten, die als man als Link speichern möchte, drückt man dann auf dieses Bookmark und wird zu einem vorausgefüllten Formular in LinkSink weitergeleitet. Das Bookmarklet erfordert ein aktiviertes Javascript im Browser, bei Erweiterungen wie Privacy Badger müssen Ausnahmen für rss.freifunk.net erstellt werden, damit Javascript von einer anderen Seite ausgeführt werden kann.

Vereinbarungen

Damit das Chaos überschaubar bleibt sind hier noch ein paar wenige Regeln: 

  • soll ein Link im Medienspiegel auftauchen muss das Tag Medienspiegel gesetzt sein. Wenn es eine Community betrifft ist es schön, wenn ein weiteres Tag mit dem Communitynamen dazukommt
  • Für eine schöne Darstellung im Medienspiegel sollte das Quellmedium auftauchen. Der Titel für einen Medienspiegeleintrag sollte so aussehen: <Quellmedium>: <Titel>
  • Termine in Calcifer, die communityübergreifend stattfinden (z.B. WCW oder der Congress) verseht ihr bitte mit dem Tag freifunk_common. Diese Termine erscheinen dann im gemeinsamen Kalender mit der Markierung, dass es sich um einen übergreifenden Termin handelt. Communityeigene Termine taggt ihr bitte nicht mit freifunk_common, sondern z.B. mit eurem Communitynamen. Den Feed dafür könnt ihr dann per Freifunk API bereitstellen, wodurch sie ebenfalls in den gemeinsamen Kalender kommen. Dann sind sie aber als Termine eurer Community markiert.

Nutzung

Jede Community darf die beiden Werkzeuge gern benutzen. Achtet bitte darauf, die Tags und Orte richtig zu setzen, damit es nicht zu Überschneidungen mit anderen Communities kommt. Versucht auch, doppelte Einträge zu vermeiden, fügt lieber euer Tag zu einem Eintrag hinzu, falls ihr ihn auch in eurem Filterergebnis haben wollt.

Falls euch das alles zu unübersichtlich wird könnt ihr auch eigene Instanzen installieren. Beide Werkzeuge sind quelloffen und werden in Github-Repositories gepflegt (LinkSink, Calcifer) und freuen sich über weitere Installation oder Mithilfe und Anregungen zur Weiterentwicklung.

GSoC: Work on Freifunk API Query Client will go on

This is the final blogpost for my GSoC project for the Freifunk-API Query Client.

Goals
 
We want a comfortable tool to query all the Freifunk API files as there are nearly 100 communities all over Germany providing their data. There are already several applications like our community map, a common calendar, our feed aggrator or the community podcast collector. But it’s still hard to find communities by properties like routing protocols or focus topics.
 
Challenges
 
When we began this project we only planned to query the generated JSON data for the community in a browser and additionally provide query results via a webservice. But then we talked to several people and we heard about DeepaMehta with features like connectors to OpenStreetmap. So we did something what you don’t do normally: We changed our project goals before the midterm evaluations.
 
DeepaMehta is not just another database product, it provides a different way to store and handle data. It uses a graph to store connections between items and allows to modex complex datatypes and associations between them. We had to change our mind and had to learn a new kind of thinking. The API data is constantly evolving and changing and there a lot of cross-references in the data e.g. links to various nodemaps. We think the switch to DeepaMehta is useful because we can query the graph and add new relations and data without problems.

 
It’s difficult to handle different spec versions if you want to query all API files, because some fields changed, other fields were added to the specs or got another meaning. In an ideal world all communities update their files as soon as possible. But we all know, it will never happen like that. As a workaround we first focused on less fields, available in all versions.
 
What we got
 
We’re able to import communities from the API directory as a base entity. We also tried some different ways to import and store the specs, but we need some improvements here. By using the summarized API file, the import of our payload can be done via the DeepaMehta REST API.

The switch to DeepaMehta brought a lot of complexity to the project and I’m personally not happy my results at this point because I had trouble to spend enough time for the project. Additionally some basic problems like dealing with changing schema and data import are not really solved well at this point. The data is in DeepaMehta and can be queries with the included client but it’s not in a state where it’s usable for the community.

Overall the GSoC was an interesting experience for me. Through I’ve failed to set aside enough time for the tasks. The timely overlap with university lectures does not make it easier. So I can only recommend to know beforehand that you’ll have enough time to accomplish your goals. But the support from the Freifunk community was always great and helpful! As the project is not a state that can be considered ‘ready’ I’m continuing working on it.
 
Future Plans

I definitly want to finish the work at least to point where it can be used by the wider Freifunk community.

The default DeepaMehta client isn’t designated to query a lot of fields like our API provides. Here we need a new web based client to provide users an interface to select fields and get a proper response.

Work will continue on integrating the API data and DeepaMehta.

Repository: https://github.com/freifunk/query.api.freifunk.net

API in Progress

Die API-Entwickler haben einen großen Sprint eingelegt und viele Neuerungen implementiert. Das größte Ziel neben der Verbesserung der Nutzerfreundlichkeit war die Schaffung höherer Datenqualität. Dafür wurden einige Freitextfelder in Checkboxen umgewandelt und bestehende Auswahlfelder um weitere Optionen ergänzt. Textfelder, für die ein definiertes Format bekannt ist (z.B. Emailadressen oder URLs) prüfen wir bei der Validierung gegen Pattern.

Die wichtigsten Änderungen im Überblick:

  • neue Felder für Fokussierung, politische und technische Aspekte, z.B. Umgang mit Störerhaftung oder Updatemodus
  • Kategorie ‘podcast’ zu Feeds hinzugefügt
  • Länderfeld mit Auswahl und Speicherung von ISO-Codes
  • Top Level Domains in DNS umbenannt und für mehrere Domains geeignet
  • jede Community kann mehrere Routingprotokolle haben
  • Arten von Kartenlösungen erweitert
  • Formate und Beschreibungen hinter Feldern ergänzt, damit beim Ausfüllen mehr Klarheit über die erwarteten Daten herrscht
  • Doppelte oder überflüssige Felder entfernt (z.B. topology data, bootstrap, “needs to be defined”)

Durch die Umwandlung einiger Freitextfelder in eine Mehrfachauswahl müssen die betroffenen Felder neu belegt werden. Der API-Generator in seiner aktuellen Version weist auf diese Felder hin.

Auch in anderen Bereichen gibt es Fortschritte. Durch die Erweiterung der Feeds um Podcasts bietet freifunk.net nun auch einen aggregierten Podcastfeed aus den Podcasts der Communities an.

Weitere Entwicklungen gibt es auch beim Kalender: Ein WordPressplugin ermöglicht es nun, die einzelnen Kalender der Communities zu einem großen Gesamtkalender zusammenzufassen.

Ihr seht, es gibt mehr als genug Gründe, eure API-Files zu aktualisieren und anzupassen. Falls ihr Daten wie z.B. Anzahl der aktiven Knoten oder in eurem Netzwerk angekünigte Dienste regelmäßig erneuert, schreibt sie bitte auch in eure API-Dateien. Freifunk Mainz hat dazu ein einfach handhabbares Werkzeug entwickelt.

In Zukunft soll es auch Visualisierungen und Suchmöglichkeiten über die API-Daten geben. Teile davon wollen wir zum Freifunk Hackathon vom 1.8. bis 3.8.2014 in Berlin besprechen und umsetzen. Auf dem Hackathon soll es um die Weiterentwicklung von Freifunkfirmwares gehen, es wird also sehr interessant und ihr seid herzlich dazu eingeladen.

GSoC: Freifunk API Query Client

Hi!

My GSoC Project for Freifunk is the development of a Query Client for the Freifunk API.

The Freifunk API is inspired by the so called “Space API” that is used by Hackerspaces all over the world.
It provides detailled information about every Freifunk Community and is intended to serve as a central place to aquire information and statistics about all Freifunk communities.

Freifunk communities can provide their data for the API using the generator.

The aim of my project is to provide a query browser for the API data to make the data for humans as well as machines more useful and accessible.

Possible usage examples are queries like:

– All contact mailinglists for all communities.
– Sum over all node numbers of all communites
– Show the name and webpage of all communities that use OLSR for routing.
– …

The API is defined using JSON-Schema. The current (0.3.0) version of the definition is here.

The query client will provide queries for the API data according to the specification.

It will be a JavaScript based web-application that loads the API files and returns results according to queries.

Besides that we plan to provide a server that provides results as JSON that can be used by routers or other machines or websites.

E.g. the current node count could be integrated in the website for the community via a simple Ajax-Request to the API.

A working prototype is planned to ready next week.

About Me: My name is Martin Tippmann. I’m a student at the Bauhaus Universität Weimar and I’m pursuing a degree in Computer Science for Media there.

 

 

Your API file in only 6 steps

  1. Call up http://freifunk.net/api-generator/ 
  2. Fill in the information about your community in the form and press “OK – generate…”. Mandatory fields are marked with an asterisk. The more information you enter, the better. 
  3. Your results will be displayed on the right hand side. If information is missing or fields are incorrectly filled, you will see it marked under the text box. Fill in or correct the information and generate the API file again.
  4. Save the content of the text box to a text file on your computer or press the download button.
  5. Upload the file created under point 4. to the Internet on to your Web space, in your content management system or our freifunk wiki. You will need a link to that file.
  6. The link must be added to the API directory. If you trust yourself, create a pull request, or you can send the link via contact form. If you chose the later, select “question about the API” as subject.

Please note: If you want to update, download or edit your API file, you can choose to do so after the entering the API directory, in the drop-down menu on the top right. The file must however be resaved or downloaded and uploaded to the Web server again.  

Please also use the possibilities to update information such as the number of nodes or services automatically and regularly. Gluon developers have written an examplary script, and there is a solution for OLSR-based networks on Github

You can find background information on the API in the blog and on freifunk.net.  

The most recent changes are summarized here.

Translation by Karin Kuschel.

In 6 Schritten zum API-File

  1. Ruf http://freifunk.net/api-generator/ auf
  2. Trag die Informationen zu deiner Community in das Formular ein und drücke auf “OK – generate…”. Pflichtfelder sind mit einem Stern gekennzeichnet. Je mehr Informationen eingetragen werden, umso besser.
  3. Auf der rechten Seite werden dir die Ergebnisse angezeigt. Falls Informationen fehlen oder Felder falsch befüllt sind, steht es dort unter dem Textfeld. Ergänze oder berichtige die Informationen und generiere das API-File erneut
  4. Speicher die Inhalte des Textfeldes in einer Textdatei auf deinem Rechner oder drücke auf den Download-Button.
  5. Lade die unter 4. erstellte Datei hoch ins Internet auf einen Webspace, in euer Content Managementsystem oder in das Freifunk-Wiki. Als Ergebnis benötigst du einen Link zu der Datei, der aus dem Internet erreichbar ist
  6. Der Link muss noch in das API-Directory eingetragen werden. Wenn du es dir selbst zutraust erstelle einen Pull-Request, ansonsten schickst du den Link über das Kontaktformular an uns und wählst als Betreff ‘Frage zur API’
Hinweis: Wenn du dein API-File aktualisieren willst, kannst du es nach dem Eintrag ins API-Directory im Auswahlmenü oben rechts auswählen, laden und bearbeiten. Danach muss die Datei allerdings erneut gespeichert oder heruntergeladen und auf den Webserver hochgeladen werden.
 
Nutz bitte auch die Möglichkeiten, Informationen wie die Anzahl der Knoten oder Dienste automatisch und regelmäßig zu aktualisieren. Die Gluon-Entwickler haben ein Beispiel dafür ein Script geschrieben und für OLSR-basierte Netzwerke gibt es eine Lösung bei Github.

Hintergründe zur API findest du im Blog und auf freifunk.net.

Die letzten Änderungen sind hier zusammengefasst.

Neues aus der API-Werkstatt

Nach einige Zeit hat es mal wieder einen Versionssprung bei der Freifunk-API gegeben: Unsere Freifunk-API steht ab sofort in Version 0.3.0 bereit. Bestehende API-Dateien sollten schnell aktualisiert werden, da sich einige nicht rückwärtskompatible Änderungen ergeben haben.

Neuerungen und Änderungen der Spezifikation

    • Services hinzugefügt, netz-interne Dienste können hier angegeben werden. Später soll aus diesen Daten eine freifunk-weite Serviceübersicht entstehen
    • Timeline hinzugefügt, hier können Communities wichtige Meilensteine ihrer Geschichte eintragen (z.B. Gründung, Neugründung, wichtige Ereignisse wie Vereingründung oder Rekordstände bei Nutzern/Routern). Mit diesen Daten können schöne Zeitstrahlen erstellt werden
    • TLD hinzugefügt, damit Communities die von ihnen genutzten Top Level Domains (.ffhh, ffl, …) benennen können. Die Informationen können genutzt werden, um die DNS-Konfiguration über die eigene Community hinaus nutzen zu können
    • Kalender-Sektion entfernt, durch Feed vom Typ ics ersetzt. Eine eigene Kalenderspezifikation erwies sich als zu komplex. Mit ics-Files kann man leicht übergreifende Kalender erstellen 
  • Country als Feld aufgenommen
  • Pattern zur Validierung von Eingaben für diese Felder eingeführt: urls, irc, twitter, email, facebook, ip-Adressen
  • Zeitstempel von Unix-Timestamp auf ISO8601-Format umgestellt
  • Netzwerke in CIDR-Notation
  • API Generator validiert

Änderungen am Generator

  • Die Eingabefelder wurden umsortiert. Pflichtfelder verstecken sich nicht mehr hinter eingeklappten Elementen
  • Der Generator kann API-Dateien validieren. Entweder wählt man seine Datei aus dem Auswahlfeld über dem Textfeld oder man kopiert den Inhalt einer Datei in das Textfeld
  • Bei der Validierung werden die Daten direkt in die Formularfelder kopiert, so dass sie danach gleich bearbeitet werden können
  • Gültigkeit von API-Dateien zeigt der Generator farblich an
  • Das Ergebnis der Validation zeigt die problematischen Felder an, man muss sie nicht mehr erraten
  • Zeitpunkt der letzten Änderung und API-Version setzt der Generator automatisch beim der Erstellung, wenn die Eingaben gültig sind

Weitere Änderungen

  • die zusammengefassten API-Dateien legen wir mit jeder Erzegung gesondert ab, um später die Entwicklungsgeschichte verfolgen zu können (Anzahl Communities, Anzahl Router, …)
  • Es gibt mehrere Ansätze, z.B. die Anzahl der Knotennummern in den API-Files automatisch aktualisieren zu lassen. Solche Scripte und Anleitungen sammeln wir im Github-Repository common.api.freifunk.net 

Die gesamte Änderungsgeschichte ist Github-Repository aufzufinden. Fehler, neue Anforderungen oder Anregungen meldet ihr bitte auch im Github unter “issues”.

Review freifunk.net zum Webteam Hackday

Am vergangenen Wochenende traf sich das Webteam in der c-base in Berlin, um unsere gemeinsam genutzten Webdienste voranzubringen und fit für die Zukunft zu machen.

Gemeinsam haben wir Tickets abgearbeitet (und sogar mehr geschlossen als neue geöffnet) und ein paar größere und viele kleine Fehler in unserem Webauftritt behoben.

Monic und Christian haben begonnen, ein WordPress-Theme für die Freifunk-Communities zu schaffen, die es als Startpunkt für einen eigenen Webauftritt verwenden können. Außerdem wollen wir das Design vom Wiki und dem Blog unserer Website anpassen und eine globale Navigation einbauen.

Daniel und Andi haben im Backendbereich einige Komponenten aktualisiert, z.B. das Wiki auf die neueste Version gebracht und die verwendeten php-Versionen modernisiert. Dienste wie den API-Collector haben wir konsolidiert und die eher aus Zeitmangel entstandene Verteilung auf verschiedene Systeme aufgehoben. Gleichzeitig wurde ein neuer Artikel zur neuen Struktur der API fertig.

Einen neuen Downloadbereich wird es in Zukunft auch geben. Hierfür schufen wir die Grundlagen am Wochenende, Monic stiftete dafür Speicherplatz im Internet, der noch seiner Einrichtung harrt.

Weit oben auf der Agenda steht nun, das Wiki aufzuräumen, alte Artikel zu modernisieren oder völlig unbrauchbare Fragmente zu entsorgen. Diese Aufgabe geht uns alle an! André aus Hamburg hat schon begonnen, den Artikel zum Intercity-VPN umzuschreiben und Ballast daraus zu entfernen.

Eine weitere Idee, die wir mittelfristig umsetzen wollen ist die Schaffung eines kollaborativen Kalenders, den alle Communities nutzen können. So entsteht ein weitreichender Überblick über Freifunkevents in ganz Deutschland (und vielleicht über unsere Grenzen hinaus).