Posts Tagged ‘google summer of code’

Ninux accettata al Google Summer of Code 2012

Monday, March 19th, 2012

Google Summer of Code 2012

Siamo lieti di annunciare che Ninux è stata accettata come mentoring organization per il Google Summer of Code 2012!


GSoC 2011: Nodeshot

Tuesday, September 6th, 2011

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 use and performance. (more…)

GSoC 2011: L-VN Lite Virtual Network

Monday, September 5th, 2011

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 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: Comments, remarks or any kind of support will be truly appreciated.



GSoC 2011: Videochat for Diaspora*

Tuesday, August 30th, 2011

I’m writing about the results achieved with my Google Summer of Code project, for the Ninux community, under the umbrella of Freifunk (I thank them both for the opportunity they gave me).

Briefly it consisted in developing a video chat feature for Diaspora*, a distributed social network.

This project has received a very big feedback and appreciations from the entire Diaspora community, including the core team, who helped and supported me during the development.

Basically, it provides two new functionalities to the Diaspora engine:

  • Textual chat, based on XMPP signaling protocol
  • Video chat, using Jingle XEP
Both have been developed in Javascript, with some Rails code. It uses Strophe.js library for the textual chat, based on XMPP Over BOSH standard, and a self-made extension of it to realize Jingle protocol.
The project includes a custom ejabberd module in Erlang for the integration of ejabberd/diaspora databases, an Actionscript part for the video chat stuff and an external authentication script written in Ruby used by ejabberd to authenticate users from Diaspora.
The project has been split in two pull requests, and we’re currently fixing them before merge with master repository: [1],  [2].

Source code can be found at, under “jabber” and “video_chat” branches.

Setup instructions here. Some screen-shots: [1], [2], [3].

I hope it will be soon merged and improved by me and the community, to make it available on every Diaspora* pod!


GSOC 2011: RadioMate

Monday, August 29th, 2011

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 Sonar are 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 at The username is “foobar” while the password is “secret”. Point also your player (e.g. VLC) at

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

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!