Difference between revisions of "Summer of Code 2012"

Jump to navigation Jump to search
3,104 bytes added ,  09:15, 27 March 2012
no edit summary
(3 intermediate revisions by the same user not shown)
Line 11: Line 11:


Feel free to talk or chat with developers at any of the above resources about potential Summer of Code ideas. Also have a look at the ideas list below, and get in touch with potential mentors for any projects that take your fancy.
Feel free to talk or chat with developers at any of the above resources about potential Summer of Code ideas. Also have a look at the ideas list below, and get in touch with potential mentors for any projects that take your fancy.
If you're ready: [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]
|}
|}


Line 50: Line 51:


In general, we consider your GSoC project to be a summer job, so try to provide detailed information that will enable us to decide if you deserve to earn the money Google will be paying. Our project ideas are like "RFPs" -- your application is your proposal to get the job. Please treat it seriously. Thanks!
In general, we consider your GSoC project to be a summer job, so try to provide detailed information that will enable us to decide if you deserve to earn the money Google will be paying. Our project ideas are like "RFPs" -- your application is your proposal to get the job. Please treat it seriously. Thanks!
[http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=Project Ideas=
=Project Ideas=
Line 69: Line 72:
** Git version control
** Git version control
** Understanding of XMPP server-side history technology
** Understanding of XMPP server-side history technology
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]




Line 87: Line 91:
** Media streaming
** Media streaming
** Understanding of XMPP 'Jingle' technologies
** Understanding of XMPP 'Jingle' technologies
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]




Line 99: Line 104:
** Git version control
** Git version control
** An understanding of a range of XMPP technologies.
** An understanding of a range of XMPP technologies.
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Multi-account Support ===
=== Multi-account Support ===
Line 109: Line 115:
** Ability to work with Qt GUIs, creating potentially complex UIs
** Ability to work with Qt GUIs, creating potentially complex UIs
** Git version control
** Git version control
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]




Line 121: Line 128:
** Git version control
** Git version control
** An understanding of a range of XMPP technologies.
** An understanding of a range of XMPP technologies.
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== User activity/profile ===
=== User activity/profile ===
Line 132: Line 140:
** Git version control
** Git version control
** An understanding of the "PEP" range of XMPP technologies.
** An understanding of the "PEP" range of XMPP technologies.
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Screen sharing ===
=== Screen sharing ===
Line 144: Line 153:
** An understanding of the Jingle range of XMPP technologies.
** An understanding of the Jingle range of XMPP technologies.
** An understanding of screen sharing technology, such as VNC.
** An understanding of screen sharing technology, such as VNC.
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Whiteboarding ===
=== Whiteboarding ===
Line 154: Line 164:
** Ability to work with complex Qt GUIs
** Ability to work with complex Qt GUIs
** Git version control
** Git version control
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


== Spectrum ==
== Spectrum ==
Line 163: Line 174:
* '''Details''': Admins are usually running more Spectrum 2 instances and there is a need for easy interface to manage them and gather the statistics. A student would create web-interface in any language (but Python/Ruby/PHP is preferred) allowing the admin to manage Spectrum 2 instances. The web-interface would communicate with Spectrum 2 instance using the XMPP by sending/receiving messages (Spectrum 2 part of this communication is already implemented and is not part of this project). C++ knowledge is not strictly needed for this project, but would be useful. This is often requested feature and there is a place for student's creativity.
* '''Details''': Admins are usually running more Spectrum 2 instances and there is a need for easy interface to manage them and gather the statistics. A student would create web-interface in any language (but Python/Ruby/PHP is preferred) allowing the admin to manage Spectrum 2 instances. The web-interface would communicate with Spectrum 2 instance using the XMPP by sending/receiving messages (Spectrum 2 part of this communication is already implemented and is not part of this project). C++ knowledge is not strictly needed for this project, but would be useful. This is often requested feature and there is a place for student's creativity.
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Web-interface
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Web-interface
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Ad-Hoc commands ===
=== Ad-Hoc commands ===
Line 169: Line 181:
* '''Details''': The goal of this project is to design an interface for creating Ad-Hoc commands either by Spectrum 2 and also by its backends and create simple Ad-Hoc commands for Spectrum 2 instance maintenance (like "Send message to online users" and so on). A student would use Swiften XMPP library (already used in Spectrum 2) to add Ad-Hoc commands support. Then the student has to map Ad-Hoc commands and data forms into the Google Protobuf to let backends to use it.
* '''Details''': The goal of this project is to design an interface for creating Ad-Hoc commands either by Spectrum 2 and also by its backends and create simple Ad-Hoc commands for Spectrum 2 instance maintenance (like "Send message to online users" and so on). A student would use Swiften XMPP library (already used in Spectrum 2) to add Ad-Hoc commands support. Then the student has to map Ad-Hoc commands and data forms into the Google Protobuf to let backends to use it.
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Ad-Hoc-commands
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Ad-Hoc-commands
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Twitter backend ===
=== Twitter backend ===
Line 175: Line 188:
* '''Details''': Spectrum 2 supports Twitter network using the Pidgin's microblog-purple plugin. This plugin is not designed to be easily used in the way Spectrum 2 uses it. The goal of this project is to implement standalone Twitter backend. Backend is a console application which connects the main Spectrum 2 instance and then handles XMPP user's requests and map them to the Twitter network. Backend can be written in any language with Google Protobuf support, but C++ or Python is preferred.
* '''Details''': Spectrum 2 supports Twitter network using the Pidgin's microblog-purple plugin. This plugin is not designed to be easily used in the way Spectrum 2 uses it. The goal of this project is to implement standalone Twitter backend. Backend is a console application which connects the main Spectrum 2 instance and then handles XMPP user's requests and map them to the Twitter network. Backend can be written in any language with Google Protobuf support, but C++ or Python is preferred.
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Twitter-backend
* '''More info''': http://spectrum.im/projects/spectrum/wiki/Summer_of_Code_2012#Twitter-backend
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


== Prosody ==
== Prosody ==
Line 184: Line 198:
* '''Details''': Although spam and abuse isn't prevalent on XMPP as it is on most other networks, it's on the rise. Implement a range of features to help stop this trend, and help service administrators keep on top of abuse on the network.
* '''Details''': Although spam and abuse isn't prevalent on XMPP as it is on most other networks, it's on the rise. Implement a range of features to help stop this trend, and help service administrators keep on top of abuse on the network.
* '''More info''': http://prosody.im/gsoc#spamabuse_prevention
* '''More info''': http://prosody.im/gsoc#spamabuse_prevention
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Web Interface ===
=== Web Interface ===
Line 190: Line 205:
* '''Details''': An XMPP-based web interface to monitor and control Prosody instances (and at some level, other servers). We have an initial version as mod_admin_web, but it has some way to go to become nice and usable.
* '''Details''': An XMPP-based web interface to monitor and control Prosody instances (and at some level, other servers). We have an initial version as mod_admin_web, but it has some way to go to become nice and usable.
* '''More info''': http://prosody.im/gsoc#web_interface
* '''More info''': http://prosody.im/gsoc#web_interface
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Websocket support ===
=== Websocket support ===
Line 196: Line 212:
* '''Details''': Now that the [http://dev.w3.org/html5/websockets/|websockets specification] has settled down somewhat, update Prosody's mod_websocket to support it.
* '''Details''': Now that the [http://dev.w3.org/html5/websockets/|websockets specification] has settled down somewhat, update Prosody's mod_websocket to support it.
* '''More info''': http://prosody.im/gsoc#websocket_support
* '''More info''': http://prosody.im/gsoc#websocket_support
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== XMPP network monitoring ===
=== XMPP network monitoring ===
Line 207: Line 224:


* '''More info''': http://prosody.im/gsoc#xmpp_network_monitoring
* '''More info''': http://prosody.im/gsoc#xmpp_network_monitoring
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]




Line 221: Line 239:
** http://doomsong.co.uk/extensions/render/message-archive-management.html  
** http://doomsong.co.uk/extensions/render/message-archive-management.html  
** http://xmpp.org/extensions/xep-0136.html
** http://xmpp.org/extensions/xep-0136.html
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== The "it 'effing works as expected" Project ===
=== The "it 'effing works as expected" Project ===
Line 233: Line 252:
** http://www.tigase.org/project/testsuite
** http://www.tigase.org/project/testsuite
** http://seleniumhq.org/projects/
** http://seleniumhq.org/projects/
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== buddycloud places ===
=== buddycloud places ===
Line 255: Line 275:
** http://m.buddycloud.com/tmp/proofs/20100129-buddycloud-architecture.png  
** http://m.buddycloud.com/tmp/proofs/20100129-buddycloud-architecture.png  
** http://m.buddycloud.com/tmp/proofs/Android%20place%20handling.png
** http://m.buddycloud.com/tmp/proofs/Android%20place%20handling.png
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]




Line 277: Line 298:
** https://github.com/buddycloud/iphone-client
** https://github.com/buddycloud/iphone-client
** https://github.com/buddycloud/android-client
** https://github.com/buddycloud/android-client
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== buddycloud media server ===
=== buddycloud media server ===
Line 292: Line 314:
** http://salon.io/
** http://salon.io/
** https://buddycloud.org/wiki/Buddycloud_media_server
** https://buddycloud.org/wiki/Buddycloud_media_server
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== ncurses buddycloud ===
=== ncurses buddycloud ===
Line 309: Line 332:
The Pubsub browser interface must be simple and straightforward, but it does not have to be intuitive.
The Pubsub browser interface must be simple and straightforward, but it does not have to be intuitive.
* '''XEPs used''': 0060
* '''XEPs used''': 0060
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== PEP User additions ===
=== PEP User additions ===
Line 316: Line 340:
The «?set?» part of all those additions will an easy task, but displaying the data of people in the roster might need some thinking in order to not overload the interface.
The «?set?» part of all those additions will an easy task, but displaying the data of people in the roster might need some thinking in order to not overload the interface.
* '''XEPs used''': 0080, 0107, 0108, 0118, 0163,  0172
* '''XEPs used''': 0080, 0107, 0108, 0118, 0163,  0172
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== PEP microblogging ===
=== PEP microblogging ===
Line 331: Line 356:
And again, an UI has to be designed.
And again, an UI has to be designed.
* '''XEPs used''': 0163, 0277
* '''XEPs used''': 0163, 0277
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Buddycloud-like microblogging ===
=== Buddycloud-like microblogging ===
Line 346: Line 372:
The student will have to keep in mind that the UI must integrate nicely (remember this is a console client!).
The student will have to keep in mind that the UI must integrate nicely (remember this is a console client!).
* '''XEPs used''': 0060, Buddycloud custom
* '''XEPs used''': 0060, Buddycloud custom
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== File transfers ===
=== File transfers ===
Line 354: Line 381:


* '''XEPs used''': 0166, 0234, 0260, 0261
* '''XEPs used''': 0166, 0234, 0260, 0261
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


== Gajim ==
== Gajim ==
Line 365: Line 393:


* '''XEPs used''': 0278
* '''XEPs used''': 0278
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]


=== Last Message Correction ===
=== Last Message Correction ===
Line 378: Line 407:
== Jitsi ==
== Jitsi ==
[http://jitsi.org Jitsi] is an XMPP audio/video and chat communicator that also supports other protocols such as SIP, AIM/ICQ, Windows Live, Yahoo! as well as many other useful [http://jitsi.org/features features]. Jitsi's XMPP projects are also available [http://jitsi.org/index.php/Development/GSoC-XMPP here]. Teaser tasks can be found [http://jitsi.org/index.php/Development/TeaserProjects here]
[http://jitsi.org Jitsi] is an XMPP audio/video and chat communicator that also supports other protocols such as SIP, AIM/ICQ, Windows Live, Yahoo! as well as many other useful [http://jitsi.org/features features]. Jitsi's XMPP projects are also available [http://jitsi.org/index.php/Development/GSoC-XMPP here]. Teaser tasks can be found [http://jitsi.org/index.php/Development/TeaserProjects here]
First thing though, make sure you [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!] We'd like to have all discussions on Google Melange.


=== XMPP Echo and Mirror ===   
=== XMPP Echo and Mirror ===   


{| border="0"
{| border="0"
Line 392: Line 421:
* '''XEPs used''': 0166, 0167, 0176
* '''XEPs used''': 0166, 0167, 0176
* '''More info''': http://jitsi.org/index.php/GSOC/XMPPEchoAndMusic
* '''More info''': http://jitsi.org/index.php/GSOC/XMPPEchoAndMusic
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]
|}
|}


Line 404: Line 434:
* '''XEPs used''': 0166, 0167, 0176
* '''XEPs used''': 0166, 0167, 0176
* '''More info''': http://jitsi.org/index.php/GSOC/LibJitsi
* '''More info''': http://jitsi.org/index.php/GSOC/LibJitsi
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]
|}
|}


Line 415: Line 446:
* '''Details''': Implement support for the DNSSEC protocol in Java and replace the existing libunbound implementation in Jitsi so that XMPP services (among others) could be securely recovered before connection.  
* '''Details''': Implement support for the DNSSEC protocol in Java and replace the existing libunbound implementation in Jitsi so that XMPP services (among others) could be securely recovered before connection.  
* '''More info''': http://jitsi.org/index.php/GSOC/DNSSEC
* '''More info''': http://jitsi.org/index.php/GSOC/DNSSEC
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]
|}
|}


Line 426: Line 458:
* '''Details''': Ever noticed how GoogleTalk allows you to exchange files directly with peers and the speed is so awesome? Well, an important part of that is a tiny TCP implementation that works on top of UDP. Would you like to work on it with us?   
* '''Details''': Ever noticed how GoogleTalk allows you to exchange files directly with peers and the speed is so awesome? Well, an important part of that is a tiny TCP implementation that works on top of UDP. Would you like to work on it with us?   
* '''More info''': http://jitsi.org/index.php/GSOC/PseudoTCP
* '''More info''': http://jitsi.org/index.php/GSOC/PseudoTCP
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]
|}
|}


=== XMPP Goodies ===
=== XMPP Goodies ===
{| border="0"
{| border="0"
|-
|-
Line 437: Line 470:
* '''Details''': Implement support for various XMPP related features such as user search, last message correction and retrieval of messages sent through other locations.  
* '''Details''': Implement support for various XMPP related features such as user search, last message correction and retrieval of messages sent through other locations.  
* '''More info''': http://jitsi.org/index.php/GSOC/XMPPGoodies
* '''More info''': http://jitsi.org/index.php/GSOC/XMPPGoodies
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]
|}
|}


=== TCP for Jingle Nodes ===
=== TCP for Jingle Nodes ===
{| border="0"
{| border="0"
|-
|-
Line 448: Line 482:
* '''Details''': JingleNodes provide services that can proxy (relay) media when all participants are in a call. This project is about making this possible over TCP for JN's Java implementation.
* '''Details''': JingleNodes provide services that can proxy (relay) media when all participants are in a call. This project is about making this possible over TCP for JN's Java implementation.
* '''More info''': http://jitsi.org/index.php/GSOC/TCPJingleNodes
* '''More info''': http://jitsi.org/index.php/GSOC/TCPJingleNodes
* [http://www.google-melange.com/gsoc/proposal/submit/google/gsoc2012/xsf Apply Now!]
|}
|}

Navigation menu