Difference between revisions of "Summer of Code 2006"

From XMPP WIKI
Jump to navigation Jump to search
(21 intermediate revisions by the same user not shown)
Line 1: Line 1:
Here are some project ideas for the [http://code.google.com/soc/ Summer of Code 2006] ...
Here are some project ideas for the [http://code.google.com/soc/ Summer of Code 2006] ...


=== Distributed monitoring of the Jabber network ===
NOTE: These are just a few ideas -- feel free to implement other features or dream up other Jabber-related projects!!!
(proposed by Lucas Nussbaum - xmpp:lucas@nussbaum.fr)
 
 
== Client ==
 
<div style="border: 1px solid #2F2F2F; color: #000; background-color: #FF8F8F; padding: .4em .9em .4em;">
=== Coccinella: an aquarium for kids ===
</div>
* Mentor: [http://hem.fyristorg.com/matben/ Mats Bengtsson]
* Programming language: Tcl/tk
* Coolness factor: high
 
==== Project description ====
 
This project involves the creation of an interface for kids to Coccinella. You need to create a new roster style, the fishy roster style, with an aquarium containing fishes that represents the contacts (like [http://ralphm.net/ ralphm's Jabber Aquarium]). The fishes need to be be animated with [http://www.jabber.org/jeps/jep-0107.html User Mood]. For example, when a contact is happy, the fish will swim quickly in the aquarium with a smile on his face. The graphics will be done in 2D, but when time allows, they can be made in 3D.
 
Eventual sub-projects:
* Creation of educative whiteboard games suitable for kids.
* User Activities (see next section).
* Message mark-up (XMPP-IM).
* Creation of flashy emoticons like MSN.
 
This project will involve mostly new code, and less boring code rewriting.
 
==== JEPs you will/can work on ====
*[http://www.jabber.org/jeps/jep-0060.html Publish-Subscribe]
*[http://www.jabber.org/jeps/jep-0107.html User Mood]
*[http://www.jabber.org/jeps/jep-0071.html XHTML-IM]
*[http://www.jabber.org/jeps/jep-0108.html User Activity]
 
 
<div style="border: 1px solid #2F2F2F; color: #000; background-color: #FF8F8F; padding: .4em .9em .4em;">
=== General Client Enhancements ===
</div>
 
Pick an existing client, and implement a full JEP or improve what's present.(proposed by [[User:Zion]])
 
Some places to start:
==== [http://www.jabber.org/jeps/jep-0045.html Multi-User Chat] ====
Few clients support the whole thing.
==== [http://www.jabber.org/jeps/jep-0004.html Data Forms] ====
AKA x:data
==== [http://www.jabber.org/jeps/jep-0163.html Personal Eventing Protocol] ====
It's experimental, but we currently have a chicken and egg problem with PubSub in general; we need clients to implement it to encourage servers to expose it.
 
=== Java Jingle ===
 
Create a Jingle implementation in Java and JavaSound. Jingle is an XMPP extension that primarily (for now) enables VOIP. A Java implementation would spread the protocol more widely. It's also very useful to have several implementations for testing purposes. (proposed by [[User:MTucker]])
 
== Server ==
<div style="border: 1px solid #2F2F2F; color: #000; background-color: #FF8F8F; padding: .4em .9em .4em;">
=== Wildfire Features ===
</div>
 
* Add migration scripts from other IM servers to Wildfire. This could include non-XMPP and XMPP servers (proposed by [[User:MTucker]]).
 
* Create a SIP/SIMPLE gateway to make it easier for users to fully transition to XMPP (proposed by [[User:MTucker]]).
 
* Perform integration with other telephony systems, like [http://www.jivesoftware.org/asterisk-im Asterisk-IM] does for Asterisk integration (proposed by [[User:MTucker]]).
 
* Contribute to the [http://www.jivesoftware.org/community/forum.jspa?forumID=48 Pampero project], which will bring massive scalability to Wildfire (proposed by [[User:MTucker]]).


The Jabber network isn't really known for its reliability, and administrators don't always have the necessary tools to monitor their server correctly. The data provided by http://public.jabbernet.dk/mrtg/ is not enough. The goal of this project is to build a testing framework to be able to monitor the public servers and answer those questions :
<div style="border: 1px solid #2F2F2F; color: #000; background-color: #FF8F8F; padding: .4em .9em .4em;">
* do client connections using SASL, TLS or SSL currently work on server S1 ? (not only checking if the TCP port is open, but full login)
* do server-to-server works between server S1 and S2 (by exchanging ping messages on XMPP) ?
This would allow to build a more detailed status of the Jabber network. Additionally, it would be nice to be able to add a contact email, so the administrator can get informed of his server's problems.


(addendum by [[Stpeter]])
=== ejabberd Features ===
</div>


Integrating this into the [http://www.xmpp.net/ XMPP Federation] database and website would be super.
* It would be great if the [http://ejabberd.jabber.ru/ ejabberd] server (written in Erlang) supported the latest version of [http://www.jabber.org/jeps/jep-0060.html Publish-Subscribe] including the [http://www.jabber.org/jeps/jep-0163.html Personal Eventing] subset. (proposed by [[User:Stpeter]])


=== Jabber authentication to CMS and blogs ===
* Support for the [http://www.jabber.org/jeps/jeps-0124.html HTTP Binding] would be great but I think the folks at [http://www.mabber.com/ mabber] have written this and just need to contribute their code. (proposed by [[User:Stpeter]])
(proposed by [[Halr9000]])


See my [http://halr9000.com/ideas/xmpp-and-cms/ XMPP and CMS] post on the topic.
* File transfer [http://www.jabber.org/jeps/jep-0065.html SOCKS5 proxy] integration. (proposed by [[User:mremond]])
: There already is a draft implementation, is it still worth to list this here? See [http://www.jabber.ru/bugzilla/show_bug.cgi?id=25 bug 25].


=== ejabberd features ===
* Create a Jabber to Jabber transport as a module for ejabberd. [http://support.process-one.net/doc/display/CONTRIBS/Jabberlang Jabberlang] will be useful.
(proposed by [[Stpeter]])


It would be great if the [http://ejabberd.jabber.ru/ ejabberd] server (written in Erlang) supported the latest version of [http://www.jabber.org/jeps/jep-0060.html Publish-Subscribe] including the [http://www.jabber.org/jeps/jep-0163.html Personal Eventing] subset.
* Create a system to allow people to migrate easily from [http://en.wikipedia.org/wiki/Microsoft_Office_Live_Communications_Server Microsoft Office Live Communications Server] (LCS) to ejabberd. LCS lacks many important features amongst XMPP support and very high scalability which makes this migration tool very useful. It would be great if migration from LCS to ejabberd is so easy and perfect that it outperforms the installation process of LCS. In other words: migrating to ejabberd should be more easy than installing LCS.


Support for the [http://www.jabber.org/jeps/jeps-0124.html HTTP Binding] would be great but I think the folks at [http://www.mabber.com/ mabber] have written this and just need to contribute their code.
<div style="border: 1px solid #2F2F2F; color: #000; background-color: #FF8F8F; padding: .4em .9em .4em;">
=== Generic Server Work ===
</div>


(proposed by [[mremond]])
* A lot of servers claim XMPP-compliance, thus following the RFCs strictly. A test suite for interoperability between clients and servers can ratify these claims. (proposed by [[User:Astro]]) Test suite coverage over major XMPP extensions for protocols like MUC, pubsub, etc would be highly useful.
* Contribute to an existing XMPP load testing project or create a new one. A test suite that can easily work across many client machines would be ideal for testing very high load. Suggestion: Java implementation so that it's cross-platform. (proposed by [[User:MTucker]])
: Why re-invent the wheel? There already is [http://tsung.erlang-projects.org/ Tsung]:
:* multi-platform and based on an open-source language
:* Jabber benchmarking (amongist others)
:* clustering features of Erlang
: So, I guess it is better to add features to Tsung. I think they have a TODO list... (comment by [[User:Sander]])


File transfer [http://www.jabber.org/jeps/jep-0065.html SOCKS5 proxy] integration.
== Federation ==


=== Create a Vandal Fighter for Wikipedia based on XMPP ===
<div style="border: 1px solid #2F2F2F; color: #000; background-color: #FF8F8F; padding: .4em .9em .4em;">
=== Distributed monitoring of the Jabber network ===
</div>
(proposed by Lucas Nussbaum - xmpp:lucas@nussbaum.fr)


http://en.wikipedia.org/wiki/User:Henna/VF/Feature_requests#XMPP_and_Especially_Publish-Subscribe
The Jabber network isn't really known for its reliability, and administrators don't always have the necessary tools to monitor their server correctly. The data provided by http://public.jabbernet.dk/mrtg/ is not enough. The goal of this project is to build a testing framework to be able to monitor the public servers and answer those questions :
* do client connections using SASL, TLS or SSL currently work on server S1 ? (not only checking if the TCP port is open, but full login)
* do server-to-server works between server S1 and S2 (by exchanging ping messages on XMPP) ?
This would allow to build a more detailed status of the Jabber network. Additionally, it would be nice to be able to add a contact email, so the administrator can get informed of his server's problems.


=== Hack a client to support some basic features ===
(addendum by [[User:Stpeter]])


(proposed by [[Zion]])
Integrating this into the [http://www.xmpp.net/ XMPP Federation] database and website would be super.


Two big things that very very very few clients support
== Transports / Gateways ==
* [http://www.jabber.org/jeps/jep-0045.html Multi-User Chat] (the whole thing!)
* [http://www.jabber.org/jeps/jep-0004.html Data Forms] (a.k.a. xdata)


Pick a client, and implement the full muc spec or add decent xdata where appropriate.
== Development Tools ==


Also, anyone suggesting a new client should be thwapped.
== Non-IM Applications ==


=== Write a XMPP-compliance test suite ===
<div style="border: 1px solid #2F2F2F; color: #000; background-color: #FF8F8F; padding: .4em .9em .4em;">
=== Jabber authentication to CMS and blogs ===
</div>
(proposed by [[User:Halr9000]])


(proposed by [[Astro]])
See my [http://halr9000.com/ideas/xmpp-and-cms/ XMPP and CMS] post on the topic.


A lot of servers claim XMPP-compliance, thus following the RFCs strictly. A test suite for interoperability between clients and servers can ratify these claims.
<div style="border: 1px solid #2F2F2F; color: #000; background-color: #FF8F8F; padding: .4em .9em .4em;">
=== [[Wikipedia:User:Henna/VF/Feature_requests#XMPP_and_Especially_Publish-Subscribe|Create a Vandal Fighter for Wikipedia based on XMPP]] ===
</div>
(proposed by [[Wikipedia:User:Henna]])

Revision as of 15:25, 24 April 2006

Here are some project ideas for the Summer of Code 2006 ...

NOTE: These are just a few ideas -- feel free to implement other features or dream up other Jabber-related projects!!!


Client

Coccinella: an aquarium for kids

  • Mentor: Mats Bengtsson
  • Programming language: Tcl/tk
  • Coolness factor: high

Project description

This project involves the creation of an interface for kids to Coccinella. You need to create a new roster style, the fishy roster style, with an aquarium containing fishes that represents the contacts (like ralphm's Jabber Aquarium). The fishes need to be be animated with User Mood. For example, when a contact is happy, the fish will swim quickly in the aquarium with a smile on his face. The graphics will be done in 2D, but when time allows, they can be made in 3D.

Eventual sub-projects:

  • Creation of educative whiteboard games suitable for kids.
  • User Activities (see next section).
  • Message mark-up (XMPP-IM).
  • Creation of flashy emoticons like MSN.

This project will involve mostly new code, and less boring code rewriting.

JEPs you will/can work on


General Client Enhancements

Pick an existing client, and implement a full JEP or improve what's present.(proposed by User:Zion)

Some places to start:

Multi-User Chat

Few clients support the whole thing.

Data Forms

AKA x:data

Personal Eventing Protocol

It's experimental, but we currently have a chicken and egg problem with PubSub in general; we need clients to implement it to encourage servers to expose it.

Java Jingle

Create a Jingle implementation in Java and JavaSound. Jingle is an XMPP extension that primarily (for now) enables VOIP. A Java implementation would spread the protocol more widely. It's also very useful to have several implementations for testing purposes. (proposed by User:MTucker)

Server

Wildfire Features

  • Add migration scripts from other IM servers to Wildfire. This could include non-XMPP and XMPP servers (proposed by User:MTucker).
  • Create a SIP/SIMPLE gateway to make it easier for users to fully transition to XMPP (proposed by User:MTucker).
  • Perform integration with other telephony systems, like Asterisk-IM does for Asterisk integration (proposed by User:MTucker).

ejabberd Features

  • Support for the HTTP Binding would be great but I think the folks at mabber have written this and just need to contribute their code. (proposed by User:Stpeter)
There already is a draft implementation, is it still worth to list this here? See bug 25.
  • Create a Jabber to Jabber transport as a module for ejabberd. Jabberlang will be useful.
  • Create a system to allow people to migrate easily from Microsoft Office Live Communications Server (LCS) to ejabberd. LCS lacks many important features amongst XMPP support and very high scalability which makes this migration tool very useful. It would be great if migration from LCS to ejabberd is so easy and perfect that it outperforms the installation process of LCS. In other words: migrating to ejabberd should be more easy than installing LCS.

Generic Server Work

  • A lot of servers claim XMPP-compliance, thus following the RFCs strictly. A test suite for interoperability between clients and servers can ratify these claims. (proposed by User:Astro) Test suite coverage over major XMPP extensions for protocols like MUC, pubsub, etc would be highly useful.
  • Contribute to an existing XMPP load testing project or create a new one. A test suite that can easily work across many client machines would be ideal for testing very high load. Suggestion: Java implementation so that it's cross-platform. (proposed by User:MTucker)
Why re-invent the wheel? There already is Tsung:
  • multi-platform and based on an open-source language
  • Jabber benchmarking (amongist others)
  • clustering features of Erlang
So, I guess it is better to add features to Tsung. I think they have a TODO list... (comment by User:Sander)

Federation

Distributed monitoring of the Jabber network

(proposed by Lucas Nussbaum - xmpp:lucas@nussbaum.fr)

The Jabber network isn't really known for its reliability, and administrators don't always have the necessary tools to monitor their server correctly. The data provided by http://public.jabbernet.dk/mrtg/ is not enough. The goal of this project is to build a testing framework to be able to monitor the public servers and answer those questions :

  • do client connections using SASL, TLS or SSL currently work on server S1 ? (not only checking if the TCP port is open, but full login)
  • do server-to-server works between server S1 and S2 (by exchanging ping messages on XMPP) ?

This would allow to build a more detailed status of the Jabber network. Additionally, it would be nice to be able to add a contact email, so the administrator can get informed of his server's problems.

(addendum by User:Stpeter)

Integrating this into the XMPP Federation database and website would be super.

Transports / Gateways

Development Tools

Non-IM Applications

Jabber authentication to CMS and blogs

(proposed by User:Halr9000)

See my XMPP and CMS post on the topic.

Create a Vandal Fighter for Wikipedia based on XMPP

(proposed by Wikipedia:User:Henna)