Freifunk Global Newswire Relaunched with Map and Embed Features

After several years of maintaining the Global Newswire, we have just launched a new site of Global.freifunk.net with updated feeds and cool map features. The new site uses the Managing News profile which is based on Drupal and developed by the folks from Development Seed. A big thanks goes to Thanh Nguyen from Vietnam, who set up the system together with me. As the other freifunk.net sites, the site is hosted at in-berlin.de.
 
Mario Behling and Thanh Nguyen working on freifunk.net in Vietnam 
Mario Behling and Thanh Nguyen working on freifunk.net in Vietnam 
 
It took us a few days to figure out how to make it work for us. Some errors like an issue with sharing just came up, because we had not activated clean URLs, other errors, because the different servers we use run slightly different MySQL versions with the one the site is hosted on. Initially we wanted to update the previous site with the new profile. This worked generally, but some features just did not want to get working. The Managing News installation profile has a number of preconfigured modules. After taking a week trying to figure it out, we went back to the start and took another way. We chose to use a fresh install and moved the content of the previous site with the node exporter module. While the old content does not show up in the history anymore now, it can still be found through the search.
 
Global Freifunk Newswire - Map View 
 
To geolocate places in articles we use Yahoo Placemaker, which seems to give a good outcome when tagging places in articles. As we have a rather large number of feeds that need to be checked and updated, we need to run cron every few minutes in order to avoid time outs.
Previously, we also had a special German news site focusing on the German speaking freifunk community. As hits on this website have been rather low over the last two years, we have closed that site and redirected it to the international news site saving us time to focus on one system.
So, here it is, the new Freifunk News Site. One thing I personally like is the embed feature that lets you embed any feed into your site. Please check it out and tell us which cool new features you like. 
 
 
 
If you would like us to include your feed, please add it to the wiki page on the freifunk wiki. We will check here from time to time and add feeds to the newswire.
Links:
* http://global.freifunk.net
* http://managingnews.com
* http://in-berlin.de
* http://wiki.freifunk.net/Global.freifunk.net

GSoC 2011: L-VN Lite Virtual Network

L-VN is a tool for overlay network creation based on IP in UDP encapsulation performed in Kernel space without encryption/authentication of the tunneled packets. The idea of L-VN is to exploit the IP/UDP encapsulation kernel module proposed for GSoC 2010  to develop a VPN/Overlay tool based on IP/UDP encapsulation performed in kernel space with no “security services” for the encapsulated packets (i.e. no confidentiality, no authentication). The goal is to provide a lightweight overlay network tool that might be preferable to other VPN/Overlay solutions for devices with limited computational resources. The project is a Freifunk-Ninux.org proposal, and is sponsored by the Google Summer of Code 2011 program.

L-VN consists of 3 main elements:

  1. IPUDP encapsulation module: is a kernel module that exports a virtual network devices that perform ip-udp encapsulation. Packets routed through this network interfaces will be encapsulated in IP/UDP headers and sent to the proper tunnel endpoint.  As to the current status, ipudp module provides 2 virtual devices modes:  A) FIXED mode: a single ipudp tunnel is bound to a virtual ipudp device. This type of virtual interface is double-stack, in the sense that we can assign both IPv4 and IPv6 address to the device and use it for both IPv4 and IPv6 applications. B) MULTI_V4 mode: multiple ipudp tunnels can be bound to this type of virtual interface. For each encapsulated packet, the proper tunnel is chosen by a set of rules that bind the destination IP address of the inner packet, with a given tunnel. For GSoC2011 the module has been updated to be compatible with kernel 2.6.38 and modified in different points to implement the keepalive mechanism.
  2. IPUDP configuration tool: this tool can be compiled as both program or library and provides a set of primitives based on NETLINK sockets to configure the IPUDP encapsulation module. IPUDP_CONF provides the necessary primitives for addition/removal of virtual network devices, ipudp tunnels and forwarding rules.
  3. IPUDP signaling agents: a client and a server program written in C for automatic tunnel establishment and management. In details, these components provides the following services: a) mutual authentication based on X509 certificates and TLS (openssl); b) NAT reflexed address discovery and automatic tunnel establishment; c) NAT binding keep alive; d) automatic inactive tunnel de-allocation. This component has been completely implemented for GSoC2011 but it still needs some work.

The code is available through the ninux SVN repository, at the path: https://svn.ninux.org/svn/ninuxdeveloping/ipudp/v02. Comments, remarks or any kind of support will be truly appreciated.

Contacts: marco.bonola@uniroma2.it, marco.giuntini@uniroma2.it

This article appeared first on Ninux.org: 

http://blog.ninux.org/2011/09/05/gsoc-2011-l-vn-lite-virtual-network/

GSoC 2011: Nodeshot

Do wireless communities around the world really need another map server? Here in Ninux we believe that the answer is yes!

Enter Nodeshot an open source wireless community map server written in python and based on django, focused on ease of useand performance.

Why a new map server? Mainly because we had some precise needs that the current open source map servers can’t satisfy easily:

  • we needed an application which is easy to use and understand for everyone
  • we wanted to preserve a similar look to the old map server we used before (wnmap).
  • we wanted it to be simple and performant
Instead of modifying and hacking the existing alternatives we decided to make a new one, trying to keep the code clean and well commented (which was one of the hardest tasks).

The frontend is built in HTML5 and it does an intensive use of jQuery and the Google Map API.

The backend is based on the django admin and it permits to easily administer the app.

These are the main features of the nodeshot:

  • Map based on Google Map API v3
  • New node with confirmation via email
  • Possibility to insert devices, interfaces and hna4 for a better troubleshooting
  • Edit node, devices, interfaces, hna4
  • Contact node owners
  • Address lookup
  • Hide sidebar
  • Search nodes and IP addresses
  • Distance calculation between nodes
  • Save distance calculations for future reference
  • Public information about devices, interfaces and performance of links
  • Statistics  (number of nodes, links, links in km)
  • IPv6 support

During the development we used github to commit changes and several merges have occurred in some cases when different developers were working to fix some issues.

The project has revealed to be more complex than what was expected but at the same time has been really engaging and fun.

There is still work to do though, actually we are translating and optimizing the app. We’ll keep working on nodeshot so that we can arrive quickly to a stable and performant release, we hope we’ll attract new developers from all around the world that will help us to push forward this new open source project!

Meanwhile, you can check the demo and you can download the source code on github.

This article appeared first on the website of Ninux.org: 

http://blog.ninux.org/2011/09/06/gsoc-2011-nodeshot

GSOC 2011: RadioMate

The Ninux community, under the umbrella of Freifunk, developed four awesome open-source projects for the Google Summer of Code program 2011: a front-end for RadioMate, a new mapserver (called nodeshot), a video and chat extension to the social networking engine Diaspora* and a new tunneling tool.

In this post I will write about RadioMate, the project I was involved in. Then posts on the other projects will follow!

There are many web-radio projects that are closely involved in the world of Community Networks: in Rome Fusoradio and Radio Sonarare an active part of the community and relay on the ninux network for their streaming, in Leipzig Radio Blau (which transmits also in FM) gives big spaces to the Freifunk project, or RadioCona in Ljubljana, where the Wlan Slovenija project is based.

Often these web radios have to relay on closed-source software platforms as the available open-source solutions don’t fit their needs.

RadioMate is a free (as in freedom) community-wise Web-radio management system. Some of its features are:

  • support of multiple users with different privileges (roles)
  • easy radio schedule management
  • handling of audio files and playlists
  • extendable with new types of transmissions
  • interface with the icecast server
  • takeover of the radio streaming in case of “special editions”

While last year the RadioMate engine was developed, this year our efforts focused on a Web frontend. You can find a demo atradiomate.ninux.org. The username is “foobar” while the password is “secret”. Point also your player (e.g. VLC) atradiomate.ninux.org:8000.

For the techies, the engine is based on liquidsoap, written in Python, and easily extendable through liquidsoap scripts. It exports a JSON API which is exploited by the Javascript (jQuery) based Web frontend. Source code and documentation can be found at radiomate.org.

Of course there is still work to do, but I hope that this software will be soon used by our friends running webradios!

As we say in Rome:Daje!
Clauz

This article appeared first on the website of Ninux.org:

http://blog.ninux.org/2011/08/29/gsoc-2011-radiomate/

Freifunk Google Summer of Code 2011

Freifunk has been is again a mentoring organization for Google Summer of Code.
We are looking forward to more people joining
development. Please propose ideas for the program on our idea page.
Students wishing to apply, please check out the Student Check List
in the wiki and join us on irc://irc.fu-berlin.de/#freifun and freenode.net #freifunk.

Our mailing list is here: http://freifunk.net/mailman/listinfo/wlanware

You can also use the OpenWrt mailing list for discussing Freifunk specific plugins and tools with OpenWrt devevlopers: https://lists.openwrt.org/mailman/listinfo/openwrt-devel

The application period starts on March 28, 2011. Please use the time to discuss your ideas beforehand already.

Timeline: http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/timeline

  • March 28:19:00 UTC, Student application period opens.
  • April 8: 19:00 UTC, Student application deadline.
  • April 25: 19:00 UTC, Accepted student proposals announced on the Google Summer of Code 2011 site.
  • May 23: 1. Students begin coding for their GSoC projects; 2. Google begins issuing initial student payments provided tax forms are on file and students are in good standing with their communities.
  • July 11: 19:00 UTC, Mentors and students can begin submitting mid-term evaluations.
  • July 15: 19:00 UTC, 1. Mid-term evaluations deadline; 2. Google begins issuing mid-term student payments provided passing student survey is on file.
  • August 15: Suggested ‘pencils down’ date. Take a week to scrub code, write tests, improve documentation, etc.
  • August 22: 19:00 UTC, Firm ‘pencils down’ date. Mentors, students and organization administrators can begin submitting final evaluations to Google.
  • August 26: 19:00 UTC, 1. Final evaluation deadline, 2. Google begins issuing student and mentoring organization payments provided forms and evaluations are on file.
  • August 29: Final results of GSoC 2011 announced

Links

* Idea Page: http://wiki.freifunk.net/Ideas

* Student Check List: http://wiki.freifunk.net/Student_Check_List

* Mailing List http://freifunk.net/mailman/listinfo/wlanware

* Freifunk GSoC Page http://www.google-melange.com/gsoc/org/show/google/gsoc2011/freifunk

* Google Open Source Programs: http://socghop.appspot.com

Freifunk Google Summer of Code 2010 – Student Applications

Freifunk has been accepted as a mentoring organization for Google Summer of Code 2010.
We are looking forward to a great summer with more people joining
development. Please propose ideas for the program on our idea page.
Students wishing to apply, please check out the Student Check List
in the wiki and join us on irc://irc.fu-berlin.de/#freifunk.

Our mailing list is here: http://freifunk.net/mailman/listinfo/wlanware

You can also use the OpenWrt mailing list for discussing Freifunk specific plugins and tools with OpenWrt devevlopers: https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Every application is welcome. We are not only looking for
experienced students, but for anyone wishing to contribute to LXDE also
after the summer.

The application period starts on March 29, 2010. Please use the time to discuss your ideas beforehand already.

Timeline: http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/timeline

  • March 29th 2010: Application period for students begins.
  • April 9th 2010: Student application deadline. The earlier you
    start the more probable it is that you will be accepted! There is two
    way feedback during the application process which really helps you
    improve and clarify your application before this final deadline.
  • April 26th 2010: Accepted student proposals are announced.
  • May 24th 2010: Coding begins!
  • July 12-16th: Mid-term evaluation.
  • August 9th: Pencils down!

Links

* Idea Page: http://wiki.freifunk.net/Ideas

* Student Check List: http://wiki.freifunk.net/Student_Check_List

* Mailing List http://freifunk.net/mailman/listinfo/wlanware

* Freifunk GSoC Page http://socghop.appspot.com/org/show/google/gsoc2010/freifunk

* Google Open Source Programs: http://socghop.appspot.com

Freifunk Google Summer of Code 2010 applications

Freifunk is again applying as a project for the Google Summer of Code 2010.
For students it is a good way to get deeper involved into Free and Open
Source Software and freifunk specifically. During the summer students have
the chance to code on freifunk and get paid by Google.

Some other projects also offer freifunk related work. Check out the GSoC site after March 18 when the info on participating projects is released.

We are already gathering project ideas, as a way to
start for applicants here.
If you are interested to join freifunk at the summer of code and would like
to discuss project ideas, please join us on IRC at #freenode on irc://irc.freenode.org
and on the mailing list: http://freifunk.net/mailman/listinfo/wlanware

If you have already an idea about a project you would like to do, please also leave your idea here as well: http://wiki.freifunk.net/Ideas

Background info on Google Summer of Code

The most common question we get from students is “How do I prepare for Google Summer of Code?”
The simple answer is not to wait for the program to get involved in
open source. Start checking out projects now: take a look at
documentation, check out their source code and idle in some IRC
channels to see what interests you. The projects who have been past
participants in Google Summer of Code are a great place to start; use the categorized list of mentoring organizations (e.g. projects listed by programming languages) from 2009 to help you get started.

About Google Summer of Code

Google Summer of Code
(GSoC) is a global program that offers student developers stipends to
write code for various open source software projects. We have worked
with several open source, free software, and technology-related groups
to identify and fund several projects over a three month period. Since
its inception in 2005, the program has brought together nearly 3,400
students and more than more than 3,000 mentors & co-mentors from
nearly 100 countries worldwide, all for the love of code. Through
Google Summer of Code,
accepted student applicants are paired with a mentor or mentors from
the participating projects, thus gaining exposure to real-world
software development scenarios and the opportunity for employment in
areas related to their academic pursuits. In turn, the participating
projects are able to more easily identify and bring in new developers.
Best of all, more source code is created and released for the use and
benefit of all.

* Frequently asked questions: http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs

* Freifunk Project Ideas: http://wiki.freifunk.net/Ideas

Freifunk Node Database – Tool zur Verwaltung von lokalen Netzwerken von Mickey

Fuer die Verwaltung von Freifunkknoten gab es bsiher verschiedene Moeglichkeiten, die teilweise mit erheblichen Aufwand verbunden waren. Potentielle neue Benutzer wurden durch Hürden effektiv vom Mitmachen abgehalten. Mickey von der Freifunk-Community in Hannover hat nun die Freifunk Node Database entwickelt die die Verwaltung eines Freifunknetzes erleichtert.

Freifunk Node Database ist es eine einfache Webapplikation zur Verwaltung von Nodes (und Subnets) in einem Mesh Netzwerk. Dabei liegt der Schwerpunkt vor allem auf Benutzerfreundlichkeit und Zuverlässigkeit, z.B. Verhinderung von IP-Konflikten, automatisches Geocoding, usw.

Mickey: Vieles von den geplanten Features steht noch auf der Todo-Liste, aber in Grundzügen funktioniert es erst mal soweit und ich habe es heute Nacht für die Freifunker in meiner Stadt scharf geschaltet. In den nächsten
Wochen und Monaten werden dann noch viele bunte Lämpchen angeschlossen… Über Feedback und Contribution freue ich mich natürlich. Fork me on Github 🙂

Live: http://db.hannover.freifunk.net
Code: http://github.com/knox/nodes

 

Bits und Bytes im Heizwerk

Jetzt geht’s richtig los mit und um Terminal.21.
Mit einer guten Portion Glück ist es uns gelungen, ein ausgedientes
kleines Heizwerk in Halle zu mieten, mit großer Halle und langem Schornstein.
Platz, der mit einer großen Portion Arbeit und kreativen Ideen genutzt
werden will. Und dafür brauchen wir euch, eure Unterstützung, eure
Projekte und eure Visionen.

Vieles ist denkbar: Kino, Hackspace, Kunstraum, Biblitothek,
Seminare und Workshops, Selbsthilfewerkstatt, Medienkunst,
Installationen, Ideenschmiede, Projektspace, … und alles andere, was
ihr euch vorstellen könnt.

Los geht es am Sonntag, dem 11.10.2009 ab 15:00 mit
einem kleinen Baustartfest. Wir werden euch kurz erzählen, wer wir
sind, was uns dazu gebracht hat, dieses Projekt zu starten, was andere
Leute auf dieser Welt so treiben, was wir alle miteinander in Zukunft
an diesem neuen Platz treiben wollen und was dafür zu tun ist. Ihr
findet das Heizwerk in der Hordorfer Straße in Halle, oder hier mit Blick von oben.

Multicast for OLSR mesh networks: Obamp release by Saverio Proto

Saverio Proto (ZioPRoTo) has the released the olsr OBAMP plugin, that was a freifunk project for the Google Summer Of Code. The OBAMP plugin allows multicast traffic to be forwarded in a OLSR mesh network. OBAMP is an overlay protocol. It first makes a mesh network with overlay links (udp tunnels) between the OBAMP nodes, and then it creates a distribution spanning tree over these mesh links.

This version of the OBAMP protocol, implemented as an OLSR plugin, is a simplified one for Wireless Community Networks, where we assume the nodes to be in fixed positions on the roof of the houses. Protocol features regarding mobility have not been implemented (yet).

To explain how the plugin works consider the scenario in the following figure:

There are 7 routers, where only 5 have the OBAMP plugin working. Router 1 2 and 6 also have an attached HNA network with some hosts.

OBAMP nodes generate OLSR OBAMP_ALIVE messages, these OLSR messages are forwarded in the whole network (also by the nodes that do not understand OBAMP thanks to the OLSR design). Because of the flooding mechanism every OBAMP node has a complete list of all the other OBAMP nodes in the mesh network. Every OBAMP node listens on the UDP port 6226 for OBAMP signalling.

When a OBAMP nodes starts it has 5 timers to periodically start operations:

OBAMP_alive_timer: every obamp node sends alive messages to advertise its presence to the other obamp nodes in the network. In the alive message every nodes states its IP address, and if it has already a tree link or not (we will see later this information is important for the outer tree create procedure).
The OBAMP network must have a member called “Core”, that starts the TREE_CREATE procedure. The core is the node with the smallest IP address. When the list of known OBAMP nodes changes, the Core Election procedure is eventually called.

mesh_create_timer: every obamp node every OBAMP_MESH_CREATE_IVAL evaluates how far the other obamp nodes are and selects a subset of nodes to keep mesh links with. Note that to reduce signalling and to increase scalability, the overylay mesh links are setup only with a subset of the nearest OBAMP nodes. To select the overlay neighbor the OBAMP nodes first calculates the ETX distance of the nearest OBAMP nodes, and the creates overlay mesh links to every node that are far in the range (minETX,minETX+1)

tree_create_timer: the core of the network every OBAMP_TREE_CREATE_IVAL sends a message called TREE_CREATE on its mesh links. The creation of the spanning tree is very similar to the spanning tree protocol. When a TREE_CREATE message is received a OBAMP node enables a tree link with its parent and forwards the TREE_CREATE on the other mesh links. TREE_CREATE messages are generated only by the core and are numbered, so TREE_CREATE received over loops can be discarded.

outer_tree_create_timer: The mesh_create algorithm may create cluster of OBAMP nodes within the network that are disconnected between each other. This happens if there are groups OBAMP nodes that are far from each other. If this happens only the cluster where the Core is present will receive the TREE_CREATE and will receive traffic from the distribution tree. To overcome this problem if in a cluster there are not TREE_CREATE every OBAMP_TREE_CREATE_IVAL the node with the smallest IP in the cluster will make a long mesh link with the nearest node that has at least a tree link. All the necessary information to perform this procedure is diffused in the OBAMP_ALIVE messages.

purge_nodes_timer: checks expire time of various variables, and deletes nodes or tree links in a soft state fashion

The OBAMP nodes will capture the multicast udp traffic from the non-OLSR interfaces, and will forward this traffic encapsulated in the UDP tunnels of the distribution tree. The other OBAMP nodes will forward the traffic in the tree and will decapsulate it on their non-OLSR interfaces. To avoid duplicated packets the data is carried into OBAMP_DATA messages, that are identified by a sequence number, and the OBAMP source node where the traffic has been encapsulated.

In the figure black links represent real radio links, and red links represent overlay mesh links (udp tunnels). Router 1 2 3 and will create a OBAMP cluster, with two mesh links. Router 6 and 7 will create a mesh link between them. Because the mesh_create algorithm does not create a mesh link between the two clusters, the router 6 (supposing it has the smallest IP address in the mesh) will create an outer tree link with Router 3.

So please download the code and use it . If you find bugs please report them to Saverio and in the Sourceforge tracker here: 

http://sourceforge.net/tracker/?atid=681702&group_id=117612&func=browse

Thanks for this great result of the summer. Special thanks also to Nino from ninux.org who was the mentor for this projet.

Links

* http://zioproto.ninux.org/wordpress/2009/08/31/olsrd-obamp-plugin/
* http://gredler.at/hg/olsrd/rev/8e7887c1247f
* http://olsr.org
* http://blog.freifunk.net
* http://ninux.org