From the Google Summer of Code 2013 webpage:
Google Summer of Code is a global program that offers student developers stipends to write code for various open source software projects. We work with many open source, free software, and technology-related groups to identify and fund projects over a three month period. Since its inception in 2005, the program has brought together nearly 6,000 successful student participants and over 3000 mentors from over 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.
<<TableOfContents: esecuzione non riuscita [list index out of range] (consultare anche la registrazione)>>
We use different monitoring systems but we are not completely satisfied with any of them.
Problems we face:
Solution proposed:
Level 4: Web Developer
Technologies: Python, Javascript, HTML5, CSS, Relational Databases
Frameworks: Django, jQuery
The goal of this task is to make a Mapserver extention that help any new ninux member to orientate himself in his just discovered radio link world.
Based on SRTM (Shuttle Radar Topography Mission) data, freely distributed by NASA, this new proposed Nodeshot extension informs new joined ninux member about radio link feasibility.
* What are visible ninux nodes from my location?
* What are pan and tilt degrees needed to that visible node?
* Is Fresnel zone touched by mountain between me and you?
are some of the new answers that this extention must answer to.
Level 4: Web Developer
Technologies: Python, Javascript, HTML5, CSS, Relational Databases
Frameworks: Django, jQuery
Many people want to share files in our community network but they step into some problems:
RetroShare cover just a part of our needs
To solve these issues we need to:
Add group support to RetroShare
Add ipV6 support to RetroShare
Level 4: Semi-Professional
Many VOIP tecnology are OLD and spread used but they suffer from the same problem as the email suffer before the use of mail:name@host.com era. Before one person use bangs to send one email and he need to know the path to reach the corrispondent, this was where crazy.
Now we are in the same situation we must know the provider of owr correespondent and use a specific tecnology to call.
Our goal is to elaborate a RFC to create a easy way to call people, and support the RFC with programs for android -- iphone - linux -- OSX -- Windows, and use just one URL to reach the correspondent.
This involve to integrate:
Many people want to send messages/VOIP/videoconferencing in our mesh network but they step into some problems:
To solve these issues we decided to implement Videoconferencing suitable for Mobile Phone and Mesh Networks:
Use RetroShare secure decentralized networking platform as backend
Level 4: Semi-Professional
Idea
This project aims to realize a web-based social application for music composition.
It will allow the creation of jam session (non real-time) in this way: users will upload tracks (e.g. piano track) and then they can merge them with other tracks (e.g. bass track) that other users pushed in the system. Users can play a bunch of selected tracks creating a composition (e.g. bass+piano+vocal).
Using the linux audio plugin and a proper backend engine, they can also apply effects on tracks.
Conversely, if a user doesn't like an instrument track of a song, he can create his own version by substituting it with her own track.
Technology
It will use a web framework such as Django to manage users, file upload and dynamic content.
It will rely on Soundmanager a popular and portable javascript library (adopted also by SoundCloud) for the front-end and mp3/mp4/ogg/wav playing. By default this library supports loop creation, volume, pan, set position, mute, peak volume level, pause/resume all, eq data (FFT). It supports also HTML5 (iPhone friendly).
On the backend it will handle files using linux programs. It could add effects (such as reverb or delay) on tracks by interfacing with a LADSA compatible command line script. In this way we will reuse the tons of linux audio plugin.
Every track is under a kind version control (git or whatever) so to keep track of branches and merges. Git seems not suitable for http://stackoverflow.com/questions/984707/what-are-the-git-limits.
We have started the development of a community-network-wide open-source search engine called ninuxoo. Written in Python, it is formed by a samba and ftp share crawler and of a cgi-based website, with a common database. We would like to enhance it by adding some features:
add a "what's new" web page that shows the newest files found by the crawler. This needs changes to the database schema
Programming Languages: python, mysql
http://jitsi.org/ is a promising IM software with builtin support for audio/video calls and conferences, desktop share, remote control and OTR cryptography.
We already use PGP to encrypt sensitive emails that contain login information to critical parts of our network, we developed a good web of trust and for this reason we would prefer PGP to OTR for our sensitive communications.
Since Jitsi is pluggable, this feature could be added as an additional plugin.
Technologies Java, OpenPGP
Suppose you are the only one user of a large wireless mesh network. If you had several Internet gateway, how could use use all the bandwidth of all those gateway in order to download your files faster? Build the solution!
Our idea is to realize a module that take packets and send them to internet using multiple gateway via the Loose Source Routing option of the IP packet. With that option you can force packets to pass to one or serveral different router! Conversely nowadays packets usually do the same path to reach a destination, so if you are alone on a WCN with several internet gateway, right now you are doomed to use only the bandwidth of one gateway, typically the nearest one. Whereas the iptables target is not yet supported to put the loose source routing option, this option is supported by the Linux kernel.
improve this software to add the Loose Source Routing target to iptable
Scenario:
Ninux's nodes are installed on the private roofs. Electronics devices (Poe power supply, ethernet switch etc...) are in a waterproof box closed to antennas mast. Due monitoring harware integrity against unauthorized access at the box,cable cutting and vandalism, we need a utility running on very low cost SoC (requirement: TCP Stack, Ethernet port and some GPIO for the sensor) integreted with our network monitoring.
Steps:
Background: lots of cheap but good enough "plug computers" are available; they are perfect for home servers, but there is nothing that will fit Average Joe.
The idea is to do a little step towards the goal of realizing it: not a complete distribution that will fit every scenario, but a simple way to manage some service and configuration files through a web UI. The focus is on privacy related services (tor relay, privoxy, polipo, firewall) and basic networking (network configuration, dhcp/dns server) but of course there is room for everything.
It's easy to find very cheap used Nortel Phones that work well with asterisk unistim channel. MilkFish is a VOIP proxy using SIP protocol (http://www2.milkfish.org.sipwerk.com/). The idea is to port asterisk unistim channel to Milkfish. The requirements are:
Reference: FaByS
Abstract:
With the developing of a semantic version of Ninuxoo for NAS as a distributed local Servers, and implementing Linked Data on the most used applications (like Map Server), it may be possible to decentralize common services of a Wireless Community Network, such as monitoring and data research, knoledges about nodes status and much more...
Current status:
Frequently, in a Wireless Community Network most important net services are performed by few centralized - and stressed - servers.
This scenario is not sustainable and not replicable (due to costs of energy, time spent e and low services quality), and also easily involves the risk of general collapsing.
Also, the Community need to trust the owner of main Server, that may do a bad use of it...
However, these networks counts a lot of distributed NAS with preinstalled Server modules but yet unused.
Bingo! We have more distributed little-Servers!
Why few resources must to do big job when more resources can do little bit each one?
How to solve
Through developing a local version of Ninuxoo Search Engine and implementing Semantic Web and Linked Data on most used applications (like Map Server and Wiki), we can:
In future, develop more decentralized applications (like FOAF Social Networks) and so on...
Please examine these ideal schema:
|
|
About GSOC 2013: [http://www.google-melange.com/|http://www.google-melange.com/]
Info about ninux participation in previous years:
[http://wiki.ninux.org/GSoCIdeas2012]