Difference between revisions of "Summer of Code 2015"

Jump to navigation Jump to search
414 bytes added ,  16:09, 20 February 2015
no edit summary
Line 41: Line 41:
** '''Git experience''': Desirable, can be learned
** '''Git experience''': Desirable, can be learned
** '''Boost experience''': Desirable, can be learned
** '''Boost experience''': Desirable, can be learned
* '''Difficulty:''' Moderate
* '''Implementation Language:''' C++
* '''Implementation Language:''' C++
* '''Mentor:''' Kevin Smith, Tobias Markmann
* '''Mentor:''' Kevin Smith, Tobias Markmann
Line 54: Line 55:
* '''Expected results:''' XEP-0313 support as pull request on github.
* '''Expected results:''' XEP-0313 support as pull request on github.
* '''Knowledge Prerequisite:''' Reasonable knowledge of Git, Java and XMPP. Communicating with the team and the XSF Standards SIG will be essential.
* '''Knowledge Prerequisite:''' Reasonable knowledge of Git, Java and XMPP. Communicating with the team and the XSF Standards SIG will be essential.
* '''Difficulty:''' Easy
* '''Implementation Language:''' Java
* '''Implementation Language:''' Java
* '''Mentor:''' Dave Cridland <dave@cridland.net>
* '''Mentor:''' Dave Cridland <dave@cridland.net>
Line 67: Line 69:
* '''Expected results:''' XEP-0191 support as pull request on github.
* '''Expected results:''' XEP-0191 support as pull request on github.
* '''Knowledge Prerequisite:''' Reasonable knowledge of Git, Java and XMPP. Communicating with the team and the XSF Standards SIG will be essential.
* '''Knowledge Prerequisite:''' Reasonable knowledge of Git, Java and XMPP. Communicating with the team and the XSF Standards SIG will be essential.
* '''Difficulty:''' Easy
* '''Implementation Language:''' Java
* '''Implementation Language:''' Java
* '''Mentor:''' Dave Cridland <dave@cridland.net>
* '''Mentor:''' Dave Cridland <dave@cridland.net>
Line 79: Line 82:
* '''Brief explanation:''' The goal of this project is to add the possibility to interact with all of freenode's channels using the XMPP Multi-User Chat protocol as described in XEP-0045. This should be done as a service gateway that's an extension into the particular ircd implementation used by the freenode network: ircd-seven. It would accept XMPP server-to-server connections and present each channel as a MUC room transparently and bidirectional.
* '''Brief explanation:''' The goal of this project is to add the possibility to interact with all of freenode's channels using the XMPP Multi-User Chat protocol as described in XEP-0045. This should be done as a service gateway that's an extension into the particular ircd implementation used by the freenode network: ircd-seven. It would accept XMPP server-to-server connections and present each channel as a MUC room transparently and bidirectional.
* '''Expected results:''' An XMPP extension to ircd-seven
* '''Expected results:''' An XMPP extension to ircd-seven
* '''Knowledge Prerequisite:'''
* '''Knowledge Prerequisite:''' Any knowledge of IRC or XMPP will be beneficial but can be learned during the summer. Otherwise C fluency is required.
* '''Difficulty:''' Moderate
* '''Implementation Language:''' C
* '''Implementation Language:''' C
* '''Mentor:''' Arc Riley
* '''Mentor:''' Arc Riley
Line 93: Line 97:
* '''Expected results:''' A tool running load tests against specified XMPP servers and producing comparison.
* '''Expected results:''' A tool running load tests against specified XMPP servers and producing comparison.
* '''Knowledge Prerequisite:''' Erlang, Python, load testing, docker
* '''Knowledge Prerequisite:''' Erlang, Python, load testing, docker
* '''Difficulty:''' Hard
* '''Implementation Languages:''' Erlang, Python
* '''Implementation Languages:''' Erlang, Python
* '''Mentor:''' Micha? Piotrowski
* '''Mentor:''' Micha? Piotrowski
Line 113: Line 118:
** Use NsdManager on Android for multicast DNS (smack-servless-android)
** Use NsdManager on Android for multicast DNS (smack-servless-android)
* '''Knowledge Prerequisite:''' Java, Android,
* '''Knowledge Prerequisite:''' Java, Android,
* '''Difficulty:''' Moderate
* '''Implementation Language:''' Java
* '''Implementation Language:''' Java
* '''Mentor:''' Florian Schmaus
* '''Mentor:''' Florian Schmaus
Line 137: Line 143:
** Bump MiniDNS version in smack-resolver-minidns to use the MiniDNS-with-DNSSEC version.
** Bump MiniDNS version in smack-resolver-minidns to use the MiniDNS-with-DNSSEC version.
* '''Knowledge Prerequisite:''' Java, DNS, DNSSEC
* '''Knowledge Prerequisite:''' Java, DNS, DNSSEC
* '''Difficulty:''' Hard
* '''Implementation Languages:''' Java
* '''Implementation Languages:''' Java
* '''Mentor:''' Florian Schmaus (Smack), Dominik Schürman (OpenKeychain)
* '''Mentor:''' Florian Schmaus (Smack), Dominik Schürman (OpenKeychain)
Line 155: Line 162:
The goal is not to implement 100% of each XEP but to get the minimal use case to start getting more things connected to XMPP (through ejabberd support).
The goal is not to implement 100% of each XEP but to get the minimal use case to start getting more things connected to XMPP (through ejabberd support).
* '''Knowledge Prerequisite:''' Erlang, Elixir or any functional programming language. XMPP knowledge as XEP for IoT are assuming already a good understanding of XMPP mechanisms.
* '''Knowledge Prerequisite:''' Erlang, Elixir or any functional programming language. XMPP knowledge as XEP for IoT are assuming already a good understanding of XMPP mechanisms.
* '''Difficulty:''' Hard
* '''Implementation Languages:''' Erlang / Elixir
* '''Implementation Languages:''' Erlang / Elixir
* '''Mentor:''' : Mickaël Rémond (ejabberd / Tsung)
* '''Mentor:''' : Mickaël Rémond (ejabberd / Tsung)
Line 170: Line 178:
* '''Expected results:''' As many MUC features should be possible (posting to a MUC room, fetching posts and more.)
* '''Expected results:''' As many MUC features should be possible (posting to a MUC room, fetching posts and more.)
* '''Knowledge Prerequisite:''' extensive C++ knowledge, TLS implementations
* '''Knowledge Prerequisite:''' extensive C++ knowledge, TLS implementations
* '''Difficulty:''' Moderate
* '''Implementation Languages:''' Python or Javascript.  
* '''Implementation Languages:''' Python or Javascript.  
* '''Mentor:''' Simon Tennant
* '''Mentor:''' Simon Tennant
Line 183: Line 192:
* '''Expected results:''' Implement libaxolotl support in Conversations. Come up with a way to send axolotl encrypted messages in XMPP messages. Implement a mechanism to publish what axolotl calls PreKeys over PEP or another suitable mechanism and have others users fetch those keys. Make this work with carbon messages (=multiple receiving clients). Not part of GSOC but this proof of concept implementation will later be used to propose a XEP and allow other clients to use the same standard. Potential participants won't be expected to be part of this standardization process but they will definitely have the chance to.
* '''Expected results:''' Implement libaxolotl support in Conversations. Come up with a way to send axolotl encrypted messages in XMPP messages. Implement a mechanism to publish what axolotl calls PreKeys over PEP or another suitable mechanism and have others users fetch those keys. Make this work with carbon messages (=multiple receiving clients). Not part of GSOC but this proof of concept implementation will later be used to propose a XEP and allow other clients to use the same standard. Potential participants won't be expected to be part of this standardization process but they will definitely have the chance to.
* '''Knowledge Prerequisite:''' XMPP, Java, a bit of Android (you probably won't have too much contact with Android specifics because the UI work is already done for the most part), some awareness for crypto and security. You don't have to be a cryptologist since you will be using a library for that but some basic crypto knowledge might make some things easier.
* '''Knowledge Prerequisite:''' XMPP, Java, a bit of Android (you probably won't have too much contact with Android specifics because the UI work is already done for the most part), some awareness for crypto and security. You don't have to be a cryptologist since you will be using a library for that but some basic crypto knowledge might make some things easier.
* '''Difficulty:''' Moderate
* '''Implementation Languages:''' Java
* '''Implementation Languages:''' Java
* '''Mentor:''' Daniel Gultsch - Maintainer of Conversations
* '''Mentor:''' Daniel Gultsch - Maintainer of Conversations
Line 203: Line 213:
** '''Git experience''': Desirable, can be learned
** '''Git experience''': Desirable, can be learned
** '''Boost experience''': Desirable, but only for reading the C++ source of Swiften
** '''Boost experience''': Desirable, but only for reading the C++ source of Swiften
* '''Difficulty:''' Easy
* '''Implementation Language:''' Java
* '''Implementation Language:''' Java
* '''Mentor:''' Kevin Smith
* '''Mentor:''' Kevin Smith
* '''Contact Details:''' Chatroom at swift@rooms.swift.im
* '''Contact Details:''' Chatroom at swift@rooms.swift.im

Navigation menu