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