Google Summer of Code: My Idea / WebKit
Marcel Jaeschke
m-jaeschke at rephstone.de
Wed Mar 11 15:52:13 EDT 2009
Hello developer of pidgin.
With this mail I want to apply me for the Google Summer of Code at the
pidgin project.
# About me:
My name is Marcel Jaeschke, 25 years old, and I'm from Germany.
I study computer science in the 8th semester at the
Otto-von-Guericke-University Magdeburg. I focus on programing
and XML.
Since 1998 I use the GNU/Linux with GNOME as DE. For almost 6
years Gentoo is my favorite distribution. And all the time I use
Gaim/pidgin.
So why I pick up pidgin for the project? I think pidgin is the
software I use most frequently (Home/Uni/Work + Linux/Windows).
According to this long experience I know some parts which could
be improved.
For a long time I want to be involved in the open source world
but either I have to attend the university courses or I'm
working as a student assistant.
In the following semester I can replace this part-time job with
Google Summer of Code, so I can focus on the project.
Before presenting my ideas I would like to mention that the semester in
Germany is from April to October. But I aim to take lesser courses in
order to participate in the project. In this time I should have no
exams, they will be in the beginning of October.
# My Idea:
User like themes and customization. They want software which is
looking good (not everybody). So my idea based on the target to
give this the message viewer via WebKit. Up to now pidgin shows
only the history as a common HTML document. According to me, the
next step is to use XML, XSLT and CSS to generate a good looking
Message viewer.
# How it will works and what is customizable?
The big disadvantage (for me it's more an advantage) is that we
had to change the history design. If we only use HTML so XSLT
will have no sense. So we have to change this to XML, by the way
we are able to save more useful meta data.
# The XML
Of course, XML has a little overhead. If there is a real lost of
performance I can't say, but I think WebKit will handle that for
us.
Here is an early draft of the XML file.
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?xml-stylesheet type="text/xsl" href="history.xsl" ?>
<history ego="jabber:myJabberID">
<status type="online" user="jabber:otherJabberID"
date="2002-01-01T12:50:15" />
<message user="jabber:myJabberID"
date="2002-01-01T12:52:20">Hi</message>
<message user="jabber:otherJabberID"
date="2002-01-01T12:52:34">Hello</message>
</history>
Only the account data will be used, so there will be no mix if
somebody is renamed.
Up to now I'm not sure to use “user” or split this into
“service” and “user”. The date format is not a nice one but
common in XML, maybe we should use timestamp anyway.
# The XML – advantages
But there are much more advantages:
* Customization:
Lets choose the user how they want to see the messages. We have
the history and the user has a theme (XSLT for the XHTML and CSS
for the Layout) so WebKit combines all this and we have a good
looking message viewer.
* Synchronization:
I use pidgin on several machines. Every installation has their
own history. Putting this correctly together is up to now
impossible or very hard in pidgin. With XML we introduce a fixed
time statement. Based on this statement we can sort the several
histories.
* Real multimessaging:
Every account has its own history, but sometimes I talk via
jabber and on the other day the buddy is only available via ICQ.
So I have to remember which my last used account was to open the
history of the last chat. With my idea we have only one history
per buddy.
To avoid misunderstanding: I will only combine the histories of
the meta-buddies. It's easy to separate these buddies again
because we use the account data in the history not the alias
name.
# Storage of the History
We will collect a lot of data so the storage is important, too.
XML will have a lot of redundant information.
I prefer a simple Database (sqlite). With a good table design we
can reduce the redundancy and with a database we support much
better histories. For example: Show from my last chats the last
two hours or in IRC you want only to browse the messages from
two persons. You see that you can do a lot of things!
On the other hand, I don't know the consequences if the database
is well filled. Maybe a combination between both concepts is the
best. A database, like I said, to support the pleasant features
and a non-lacy result XML file for every buddy to provide a fast
loading.
# Roadmap:
It's hard to say for me, I have never been involved in an open
source project, so I only guess:
* (1 Week / May 23)
View the pidgin code to get familiar. Find the code which is
important for me.
* (1 Week / Mai 30)
Replace GTKHTML by WebKit.
* (3 Days / June 6)
Implement the XSLT transformation, it will be 1:1, because the
history is still plain text or HTML.
* (2 Days / June 9)
Create an example history, maybe convert my existing logs.
* (2 Days / June 11)
Activate the real transformation with static themes.
* (2 Week / June 18)
Create the dialog to choose the themes and to use chosen for the
transformation
The rest of the time will be for testing. And I'm sure that at least one
problem will occur. I think it's better to have a lot of time at the
end.
I hope you like the idea. The core idea was already implemented in Java
for a lecture assignment I had last year. The people appreciated the
possibility to use themes.
I'm not influenced by adium, I first noticed adium last week. And adium
uses a lot of string replacements and not XSLT which is already a
matured technology.
Any questions left? So just ask me!
Marcel Jaeschke
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Dies ist ein digital signierter Nachrichtenteil
URL: <http://pidgin.im/pipermail/devel/attachments/20090311/a1fe3684/attachment.sig>
More information about the Devel
mailing list