Difference between revisions of "Summer of Code 2006"

Jump to navigation Jump to search
3,986 bytes added ,  00:25, 26 April 2006
Psi ideas
 
(Psi ideas)
Line 30: Line 30:
*[http://www.jabber.org/jeps/jep-0071.html XHTML-IM]
*[http://www.jabber.org/jeps/jep-0071.html XHTML-IM]
*[http://www.jabber.org/jeps/jep-0108.html User Activity]
*[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;">
=== Psi ===
</div>
The [http://psi-im.org Psi] client has several possible contributions suitable for an SoC project. (Projects ideas contributed by [http://kismith.co.uk Kevin Smith], [[User: Kevin]])
==== Jingle Audio ====
Psi was the first Jabber client to release a branch with support for voice calling using the [http://libjingle.sf.net libjingle library] released by Google. The main Psi branch has since migrated to the Qt4 toolkit (the Jingle branch uses Qt3) and libjingle has moved on several versions. A student could merge the psi-jingle branch changes back into the main branch, and finish work on providing media interfacing on non-linux platforms.
==== Bonjour ====
[http://www.jabber.org/jeps/jep-0174.html Link-local messaging] allows clients to communicate directly, without the use of a server. The libraries used by Psi support the LAN discovery part of this, but not the chat protocol which lies on top. An interested student could implement the chat protocol in the library, and then integrate this in the Psi GUI.
==== Jingle Video ====
There already, through Jingle-audio, exists a protocol for voice calling over xmpp, which Psi already supports (in a seperate branch, see above); a particularly adventurous student might wish to extend this to video support for video calling. A student interested in this project would have to interface with video hardware and sound hardware (probably re-using the libjingle sound code), and provide streaming capabilities, probably through libjingle. A negotiation protocol would be developed, although assistance would be given with this, and it is not the focus of the project.
==== Whiteboarding ====
Several approaches to whiteboarding have recently been proposed for Jabber, revolving around the SVG standard. A student interested in this could prototype a method for encapsulating changing SVG data in the xmpp stream and implement an editor/viewer in Psi. Also linked to the "Sharing Animations" task.
==== Sharing Animations ====
Linked to whiteboarding, but a less gargantuan undertaking, would be implementing a method for sharing progressive SVG animations between Psi instances, and rendering them within Psi. A student interested in whiteboarding would be advised to start here and, indeed, this is a worthwhile project in its own right.
==== Interesting Chat Widgets ====
The chat view in Psi is currently fairly plain, while other clients have far 'whizzier' interfaces. This is an open-ended project to attempt to 'make the chat widget more interesting', starting with finishing xhtml-im support. There are many directions this project could go, one of which, although possibly not the most interesting, would be to support the same them e files used by Adium and Google Talk.
==== Plugin Support ====
Psi has long been in need of a plugin interface. A framework for loading plugins has already been worked on, but the interface itself between Psi and plugins needs to be defined. Such an interface must completely abstract itself away from the internal workings of Psi and Iris, allowing a stable plugin system, even when Psi's code changes. A student could finish the plugin management and implement an interface, bringing plugins to Psi.
==== A Mail-Like History ====
Psi's history behaviour is somewhat basic at present. An interested student could overhaul this interface, providing something more akin to a mail client, with ordering, sorting and searching based upon contact, time, content etc.
==== Any Other Business ====
There are many other possible projects involving Psi. Any students with their own ideas of things that can be added or improved can discuss their ideas with the developers before applying if they wish.




Line 44: Line 76:
AKA x:data
AKA x:data
==== [http://www.jabber.org/jeps/jep-0163.html Personal Eventing Protocol] ====
==== [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.
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. Experimental implementations include those in [http://psi-im.org Psi] and a [http://www.dtek.chalmers.se/~henoch/text/ejabberd-pep.html patch for ejabberd].


=== Java Jingle ===  
=== Java Jingle ===  

Navigation menu