ProcessOne SiteCustomer Helpdesk and FeedbackFollow us on Twitter
 
   
 
Google Summer of Code 2007
Posted: 21 March 2007 05:16 PM   [ Ignore ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

We are going to be mentor this year again for the Google Summer of Code.

We hope to be able to have interesting projects this year again.

As explained on the Summer of Code 2006: Reasons to Apply for ejabberd page from last year, participating to the Google Summer of Code for ejabberd is one of the best way to mix the best of two worlds:
- Erlang programming
- Instant Messaging one of the funniest area to work in

The Google Summer of Code should be a good way to join the ejabberd development team and the target should be provide good and usefull piece of code for the project.

As a rule of thumb, we would be very happy to collaborate with other development projects that want to add chat features, but we won’t be mentoring those projects directly.
We propose to focus on project that can be integrated with ejabberd or have a direct link to instant messaging (for example VoIP server integration).

I propose to discuss ideas for the Google Summer of Code 2007 in this thread.

Let’s start the discussion !

Profile
 
 
Posted: 21 March 2007 05:41 PM   [ Ignore ]   [ # 1 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

Here are some ideas:

- Yxa integration to support SIP based Voice or Video over IP
- End to end encryption support
- Flexible Offline retrieval support (http://www.xmpp.org/extensions/xep-0013.html)
- RTMP server in Erlang (Flash Communication server compliance). Something like Red5.

Comments or new ideas are welcome !

Profile
 
 
Posted: 23 March 2007 05:18 AM   [ Ignore ]   [ # 2 ]
Newbie
Rank
Total Posts:  1
Joined  2007-03-23

Hi Mickaël ,

I’m interested in doing an Erlang project for SoC 2007. Can you please publish more detailed description of the ideas you have published in your post. I’m interested in “Yxa integration to support SIP based Voice or Video over IP”  and “RTMP server in Erlang”. It would be better if you could give more details as soon as possible as I have to make the proposal for it before 27th.

regards,
Chamila

Profile
 
 
Posted: 23 March 2007 09:49 AM   [ Ignore ]   [ # 3 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

Hello,

Ok, let me clarify a bit those ideas.

ejabberd / Yxa integration can take different forms:
- The first level is integration with the user base: An Yxa plugin can be written to allow authentication with a SIP client using the ejabberd database. This way any user of ejabberd will also have a SIP account.
- The second level is message mapping between SIP / XMPP. This is much more difficult and it can definitly not be completed during the Summer of code but could be started. It can take the form of a gateway. For example a first start can be to map presence between SIP / XMPP. A user connected on YXA will thus be able to see the presence of a user connected on ejabberd and the other way around. Messages could be exchanged too.
I think both approach could be done for a Summer of code project.

Regarding RTMP: RTMP is the low level protocol of the Flash Communication server. It is used for Voice, Video but also remote function calls between a Flash client and a Flash Communication server. This protocol has been reversed engineered by the RED5 team and others. It would be very nice to have such a server in Erlang, as an ejabberd plugin to make it possible to use the example video client provided by the RED5 project. (Note: This is a proprietary and closed protocol).
More details are available on: http://www.osflash.org/red5

Between the two ideas, my preference would go to the RTMP server which seems more fun.

Does it sound clear enough to you ?

Of course, you can propose new ideas. For example new HTTP development based on the new HTTP plugin API.

Profile
 
 
Posted: 23 March 2007 11:55 AM   [ Ignore ]   [ # 4 ]
Newbie
Rank
Total Posts:  5
Joined  2007-03-23

Hello Mikaël,

I’d be very interested in doing an Erlang project for this year’s Summer of Code. I’ve looked at XEP-0013 and it looks quite interesting. Also, I like the very idea—allowing the program to do less work if it better fits the need of the user.

However, I must honestly admit that I don’t know Erlang (yet). I just discovered its existence a week or something ago and for this time I’ve managed only to do some tutorials (which convinced me that I really should cons Erlang to my TODO list). On the other hand, I have some Prolog experience (in fact, programming in Prolog is how I spent the last half year…) and I program in Lisp (and Python, if you ask). I also enjoy very much learning new languages, and I find Erlang’s syntax very pleasant—that’s why I think that learning Erlang in a short time wouldn’t be a very big problem.

I am going to learn Erlang anyway, but the possibility of learning it by doing something really interesting (and, at the same time, useful) seems really great.

Do you think it would be sensible for me if I applied for this project?

  —Richard Szopa

Profile
 
 
Posted: 23 March 2007 12:59 PM   [ Ignore ]   [ # 5 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

Hello Richard,

From what I know there is already someone (Badlop) interested in picking up the XEP-0013 development.

You could apply for other idea. It mostly depend on your background and interest. If you told us about your main interest area, maybe this can give us idea of what kind of extension would match best your taste in the ejabberd roadmap.

Profile
 
 
Posted: 23 March 2007 04:43 PM   [ Ignore ]   [ # 6 ]
Newbie
Rank
Total Posts:  5
Joined  2007-03-23

Formally I am a philosophy student, but in fact I am following now an AI program (I am on a stipend), so you can say I have a background in AI.

At the moment I am most interested in logic for AI (knowledge representation, epistemic logics, nonmonotonicity, such stuff) and language engineering. Have you anything that you’d like to be done that matches this profile?

BTW, how are you listed in SoC webpage? That is, how could I specify ejabberd as the mentoring organization (if we eventually found anything for me)?

Oh, and as a matter of fact I also have a significant background in modern analytical philosophy and formal logic, but doesn’t seem very relevant. :-)

Profile
 
 
Posted: 23 March 2007 05:07 PM   [ Ignore ]   [ # 7 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

Could it related to bots ?

In our OneTeam infrastructure, we have written a (bery basic for now) help bot. You can chat with him and he can help you with the use of the most common tasks on the client side.
The bot is written in Erlang as an ejabberd plugin. It could be a good basis for a bot oriented work.

The idea is to be able to help the user understand how to do the basics task.

Maybe improving the bot infrasctructure to help the use in the XMPP / Jabber world can be usefull.

Do you have any idea for other chat bot oriented projects ?

We are mentoring under the XMPP Standards Foundation (XSF, former Jabber Software Foundation).

Profile
 
 
Posted: 23 March 2007 08:25 PM   [ Ignore ]   [ # 8 ]
Newbie
Rank
Total Posts:  5
Joined  2007-03-23

Well, writing a bot seems like fun. It is closely related to my main field of interest (Natural Language Processing), I’ve never done it, but I’ve always wanted to :) A rather nice way of spending time in front of my laptop.

Could you please give me some more information about what has been already done? And, what is even more important for me, what would you expect from such a bot? That is, would you like it to be some kind of (interactive) tutorial presentation tool, a help system through xmpp (i.e. a tool to finding help-text the most appropriate to the input query), or maybe something a bit more sophisticated, able to engage into a simple conversation (provided that the domain of discourse would be kept really small, this seems quite achievable). In what language would the bot communicate with the user—mainly in English, or there would be lots of people who’d want to chat with it in Italian, Polish, Russian, Hungarian and Dutch?

Finally, I would be very grateful if you could point me to the documentation you’d like the bot to cover.

Profile
 
 
Posted: 25 March 2007 11:32 AM   [ Ignore ]   [ # 9 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

Hello,

For your information, Badlop project will not cover XEP 0013 (Flexible Offline Message Retrieval). If someone is interested for a Google Summer of Code project, we would be very happy to help !

Profile
 
 
Posted: 25 March 2007 11:36 AM   [ Ignore ]   [ # 10 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

Hello Richard,

We have published a brief video of our existing help bot (Flash required):
http://www.process-one.net/en/blogs/article/oneteam_new_video_previews/

You will see that the framework is in place but you have a large field of improvements on the behaviour side.

What would be nice in your Google SOC proposal is to take into account not only OneTeam (as currently) but given help to the users depending on the client they are actually using. This will make a good service, largely usefull for the Jabber / XMPP community.

Profile
 
 
Posted: 26 March 2007 11:39 AM   [ Ignore ]   [ # 11 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

Hello,

Do you need help for your Google SOC proposal ?
If so, I can review them today.
Let me know !

Profile
 
 
Posted: 26 March 2007 03:48 PM   [ Ignore ]   [ # 12 ]
Newbie
Rank
Total Posts:  5
Joined  2007-03-23

Heh, I am not sure if there’s any more time… I just posted my proposal yesterday late at night. On the other hand, the webapp seems still active, so I may have the possibility of changing something. Here’s my proposal:

Abstract:

I propose to create a jabber help bot, as a module for ejabberd. It would give the user help relevant both for his client application (if this information was available) and for the server. The module would beeasily extensible to provide documentation for new client applications. This would create a jabber tuned method of letting the user reach the documentation. A good metaphor of my project would be to create a help system for XMPP/Jabber that would be as natural for it, as the man pages are for the Unix shell.

Description:

Motivation
==========

Good documentation is a factor which can decide whether a technology
will succeed or not. However, good documentation is not enough. Also
crucial is the way the documentation is made available to the end
user. Ideally, such medium should be naturally incorporated to the
environment, and it would increase user’s productivity and comfort.

An example of an exceptionally good (in my opinion) help system are
Unix shell’s man pages. For Unix users performing `man 1 foo’ is as
natural as for a philologist to check a word in the dictionary. Users
know what to expect from their man pages. Man pages don’t interfere
with the normal way of using the shell. Finally, man pages don’t get
in the way of power users.

On the other hand, a poorly designed help system can be very
distracting and irritating for the user. Think of Microsoft Bob [1] or
Clippy [2], the always-getting-in-the-way help assistant from
Microsoft Office 97 and 2000. It would fire itself in the most bogus
and unexpected moments, taking focus and greatly distracting the
user. Attacking the users with lots of irrelevant information caused
that users just didn’t believe that Clippy can be of any help.

There are two ways how the problem of helping the users is typically
solved in jabber client applications, help web pages and a special
help function in the program. Both have some serious drawbacks.

In order to browse web pages the user needs to run a web browser,
which is a completely separate program. As for help functions built in
client applications, they differ from program to program, so there’s
no intuitive and general way of asking for help. Secondly, this
functionality is replicated in every new client, which means lots of
unnecessary work. This is just not the best way of doing it (not to
mention that there’s nothing of the elegance characteristic for the
man pages).

Moreover, there’s a really serious XMPP-specific problem for these two
media. The functions available for the XMPP user depend not only of
the client he or she is using, but also on the server on which he or
she has his or her account. So, the client based help function (no
matter whether is integrated with it or on a web page) won’t ever be
able to help the user in all the situations he would want such help.

So, is there a really jabber way of making the documentation easily
available to the user? Is there a jabber equivalent of man pages?

XMPP is primarily designed for instant messaging. Sending and
receiving messages is the thing that users do most of the time. So, it
is clear that *this* is the right way of reaching jabber users with
help.

Method
======

My proposal consists of writing a help-bot module for ejabberd [3]. A
help bot exists for the OneTeam jabber client [4] (for a flash
demonstration of its operation see [5]). It displays help specific for
the mentioned jabber client. Taking this framework as basis, I would
introduce the following improvements:

1. The documentation would be organized in submodules. Each submodule
would contain documentation specific for one client program (that is,
OneTeam, gajim, tkabber, etc.). Apart from that, there would be two
special modules. The _generic_ module would contain the most general
help, which applies to practically any jabber module (this would
include some jabber tutorials, for users willing to explore the
possibilities of jabber). The _server_ module would contain
documentation specific the services available on that server (for
example, available transports).

2. Basing on the information from the client program, the bot would
decide which subset of the available documentation is relevant for the
user (that is, someone using gajim should be shown documentation from
the modules _gajim_, _generic_ and _server_). When no information about
the client is available, only the _generic_ and _server_ submodules
would be used.

3. A simple format (XML-based) for providing additional help modules
would be created.

4. If there’s enough time, I would try to enhance the bot’s
conversation abilities using some language engineering techniques
(that is, I would try to make it respond to questions instead of only
simple commands like “help discovery”.

Benefits for the Jabber/XMPP community
======================================

The Jabber/XMPP community would achieve a number of benefits from my
project. First of all, XMPP would get an elegant, natural, and
consistent providing its users with help. Secondly, these help would
be independent from the client software. Thirdly, the system would
make all the help the user would want available in one place.


References
==========

[1] http://en.wikipedia.org/wiki/Microsoft_Bob
[2] http://en.wikipedia.org/wiki/Clippy
[3] http://ejabberd.jabber.ru/
[4] http://www.process-one.net/en/oneteam/
[5] http://www.process-one.net/tutorials/demo_oneteam_bot_avatars_viewlet_swf.html

Profile
 
 
Posted: 26 March 2007 03:56 PM   [ Ignore ]   [ # 13 ]
Administrator
Avatar
RankRankRankRank
Total Posts:  605
Joined  2006-11-12

Hello Richard,

Sounds very good to me.
I hope it will get accepted !

Profile
 
 
Posted: 26 March 2007 04:04 PM   [ Ignore ]   [ # 14 ]
Newbie
Rank
Total Posts:  5
Joined  2007-03-23

Thanks! :)

Profile
 
 
   
 
 
‹‹ mod_http_fileserver      svn site down? ››