Projects/Summer of Code/2007/Projects/Kontact Journal Blog Support: Difference between revisions

From KDE TechBase
No edit summary
 
m (Fix links.)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Kontact Journal/Blog Support ==
== Kontact Journal/Blog Support ==


Name: [[User:Mikearthur|Mike Arthur]]
Name: Mike McQuaid (formerly Mike Arthur)


CV: http://mikearthur.co.uk/cv.pdf
CV: http://mikemcquaid.com/cv/


Mentor: Cornelius Schumacher
Mentor: Cornelius Schumacher
   
   
Tutorial: [http://mikemcquaid.com/2008/09/27/kde-blog-from-korganizer-howto/ Blog from KOrganizer HOWTO]
Requires: KDEPIM 4.1
=== Abstract ===
=== Abstract ===
   
   
Currently, KDE's Kontact provides basic Journal support. However, this cannot be currently posted remotely or any more than plain-text used in creating entries. This project will improve this Journal support, integration with the KBlog blog-posting library, adding a WYSIWYG editor and other desired functionality.
At the start of this project, KDE's Kontact provided basic journal support. However, this could not be currently posted remotely and no more than plain-text could be used in creating entries. This project aimed to improve this journal support, integration with the KBlog blog-posting library, adding a WYSIWYG editor and other desired functionality.
   
   
=== Benefits to the KDE Community ===
=== Benefits to the KDE Community ===
Line 21: Line 25:
=== Project Details ===
=== Project Details ===
   
   
Kontact/KOrganizer has "Journal" support. This is currently fairly limited, allowing a user to create a basic, plain text document which can be attached to a time and date in Kontact. However, this cannot be currently customised or made to export the journal to any external source.
Kontact/KOrganizer had "Journal" support. This was fairly limited, allowing a user to create a basic, plain text document which could be attached to a time and date in Kontact. However, this could not be customised or made to export the journal to any external source.
   
   
Several codebases exist to implement this  functionality. The main library providing this functionality is KBlog<ref>KBlog http://websvn.kde.org/trunk/KDE/kdepimlibs/kblog/</ref> , in kdepimlibs in the KDE SVN. This provides an interface to send blog posts to Blogger 1.0 or MetaWebLog compatible server. KLuJe<ref>KLuJe http://kluje.sourceforge.net/</ref> is a KDE LiveJournal blog poster, allowing more LiveJournal-specific functionality such as emotions. I hope to integrate the LiveJournal support from KLuJe to KBlog, as well as aiding in the creation of Blogger 2.0 and Atom 1.0 support. This will depend on how much work the creator of KBlog wishes to perform towards this task. The other needed features I will work on are full-GUI integration for the KBlog library with Kontact, customisation, easy setup, Akonadi integration and a WYSIWYG editor. C++ will be used for all development for Akonadi and Kontact integration.
Several codebases existed to implement this  functionality. The main library providing this functionality was KBlog<ref>KBlog http://websvn.kde.org/trunk/KDE/kdepimlibs/kblog/</ref>, in kdepimlibs in the KDE SVN. This provided an interface to send blog posts to a Blogger 1.0 or MetaWebLog compatible server. KLuJe<ref>KLuJe http://kluje.sourceforge.net/</ref> was a KDE LiveJournal blog poster, allowing more LiveJournal-specific functionality such as emotions. I hoped to integrate the LiveJournal support from KLuJe to KBlog, as well as aid the creation of Google Data and Atom 1.0 support. This was dependent on how much work the creator of KBlog was willing to perform towards this task. The other needed features I would work on were full-GUI integration for the KBlog library with Kontact, customisation, easy setup, Akonadi integration and a WYSIWYG editor. C++ will be used for all development for Akonadi and Kontact integration.
   
   
The status on Akonadi is somewhat uncertain at present. The KDE-PIM team are unsure whether KDE 4.0 will have a KDE-PIM release at all or if it will simply be used without Akonadi until KDE 4.1. As a result, if Akonadi is delayed, the focus will be on producing code that can be not only used in Akonadi but also in KDE 4.0.
The status on Akonadi was somewhat uncertain at the time of writing. The KDE-PIM team were unsure whether KDE 4.0 will have a KDE-PIM release at all or if it will simply be used without Akonadi until KDE 4.1. As a result, if Akonadi was delayed, the focus would be on producing code that can be not only used in Akonadi but also in KDE 4.0.
   
   
Several feature requests have been made for Kontact's Journal integration. These can be viewed at [http://bugs.kde.org/simple_search.cgi?id=journal http://bugs.kde.org/simple_search.cgi?id=journal].
Several feature requests have been made for Kontact's Journal integration. These can be viewed at [http://bugs.kde.org/simple_search.cgi?id=journal http://bugs.kde.org/simple_search.cgi?id=journal].
Allowing for time, as many of these features will be integrated as possible, but the priority is to focus on the aforementioned features.
Allowing for time, as many of these features would be integrated as possible, but the priority was to focus on the aforementioned features.
=== Project Schedule ===
* ''May 28th - June 11th'': Integration of LiveJournal and other blog API support into KBlog.
* ''June 11th - June 25th'': Integrate KBlog into Kontact, providing basic GUI functionality.
   
   
* ''June 25th - July 23th'': Create WYSIWYG and rich editor for Journal support and perform HCI analysis and streamlining of GUI.
=== Results ===
 
* ''July 23rd - August 20th'': Work on user or other developer requested Journal features.
   
   
* ''August 20th - August 31st'': Final bugfixing and testing code for integration and evaluation.
The results of this project can be viewed in kdepimlibs/kblog, the "Journal in a blog" resource in KOrganizer and KOrganizer's improved journal view and journal editor.  


=== Biography ===
A tutorial for using this feature can be seen [http://mikemcquaid.com/2008/09/27/kde-blog-from-korganizer-howto/ on my blog].
My name is [[User:Mikearthur|Mike Arthur]] and I am a fourth year undergraduate at The University of Edinburgh, Scotland. I study Computer Science and Management Science and graduate this summer with an expected 2:1 grade.
I have approximately a years experience with C++, working on applications for Wolfson Microelectronics and a Computer Graphics practical at university, creating a 3D engine from a 2D drawing engine and mathematical calculation. A grade of 85% was received in this practical, one of the highest in the class. I feel confident I have sufficient C++ ability to undertake this project as I four years Java experience and two years C experience, and have also had to learn multiple new languages per-semester at university.


For three months of the summer of 2006 I worked at Wolfson Microelectronics writing Windows CE and Linux kernel device drivers in C. This helped create the strong focus on reliable and efficient code that I have
I'm still working on bugs [http://bugs.kde.org/show_bug.cgi?id=120657 120657] and [http://bugs.kde.org/show_bug.cgi?id=147569 147569].
today, as with the embedded hardware involved running dangerous code once could result in the destruction hundreds of pounds of electronic equipment.


My honours project involved the creation of a Ajax web application in Java/JSP/JavaScript and an evaluation of the usability of this application. Details for access can be provided on request. For this I used the
I implemented bugs [http://bugs.kde.org/show_bug.cgi?id=125731 125731], [http://bugs.kde.org/show_bug.cgi?id=125731 125731], [http://bugs.kde.org/show_bug.cgi?id=92499 92499] and [http://bugs.kde.org/show_bug.cgi?id=134956 134956].
codebase of Dizzy<ref>Dizzy http://magnet.systemsbiology.net/software/Dizzy/</ref>, an existing OSS application, so am experienced in working with foreign codebases. My usability skills were honed from an HCI course in the first semester, featuring a group usability analysis
practical, for which my section received 80%. The Journal SoC project requires someone who has the ability to write clean, efficient code but also to
evaluate and create a better user interface for the journal functionality, and I believe I am capable to perform meet these requirements.


My management experience from my course and two 100+ hour group practicals and a 400+ hour honours project has given me exceptional time management. Deadlines with academic work are always met well in advance and
I closed bug [http://bugs.kde.org/show_bug.cgi?id=134954 134954] for being invalid.
to a high standard. Academically, this year's grades have all been above 80% and my real-world experience and resulting job offer from my mentor at Wolfson
Microelectronics indicates my drive and ability to complete tasks.


I have worked on another OSS project with a similar environment to this project. My JFreeChart patches for PRISM<ref>PRISM http://www.cs.bham.ac.uk/~dxp/prism/</ref> to add support for JFreeChart to export OpenDocument spreadsheets/charts have been accepted and should be in
the next version. From this I learnt to communicate with project maintainers through email and ways of ensuring that our goals were kept equal. I also use IRC and Jabber frequently at home and whilst on my laptop, another method of possible communication with a mentor in other geographical locations.
I have had limited spare time due to university in the last few years, but I have developed a few other OSS projects in my spare time, available on the "Work" page of my website<ref>My OSS Projects http://mikearthur.co.uk/work.php</ref>. These include a one-file PHP picture
gallery, a C volume-key daemon that does not depend on X and a Kopete theme.
Stephen Gilmore, [mailto:[email protected] [email protected]], the supervisor for both my honours project and the previous group projects can provide an academic reference.
=== Motivation ===
I am passionate about OSS and about KDE. KDE has been my daily desktop environment on all my desktops/laptops for 2 years and as an active blogger I would personally find the functionality provided useful and therefore am
driven to produce a good solution rather than simply a passable one. I plan on dedicating all the time of this project as a full-time job. I may be away for a week of the project time, but this time will be covered by
working harder in other weeks.
I hope to learn a lot this summer and give a lot which would benefit KDE, the open source community and my future career.
=== References ===
=== References ===
<references/>
<references/>
[[Category:PIM]]

Latest revision as of 21:19, 27 June 2013

Kontact Journal/Blog Support

Name: Mike McQuaid (formerly Mike Arthur)

CV: http://mikemcquaid.com/cv/

Mentor: Cornelius Schumacher

Tutorial: Blog from KOrganizer HOWTO

Requires: KDEPIM 4.1

Abstract

At the start of this project, KDE's Kontact provided basic journal support. However, this could not be currently posted remotely and no more than plain-text could be used in creating entries. This project aimed to improve this journal support, integration with the KBlog blog-posting library, adding a WYSIWYG editor and other desired functionality.

Benefits to the KDE Community

  • Providing the ability to store, save and modify blog posts from Kontact
  • Allowing "rich" journal content
  • Aiding creation of a stable library for KDE application developers to make blog posts

Project Details

Kontact/KOrganizer had "Journal" support. This was fairly limited, allowing a user to create a basic, plain text document which could be attached to a time and date in Kontact. However, this could not be customised or made to export the journal to any external source.

Several codebases existed to implement this functionality. The main library providing this functionality was KBlog[1], in kdepimlibs in the KDE SVN. This provided an interface to send blog posts to a Blogger 1.0 or MetaWebLog compatible server. KLuJe[2] was a KDE LiveJournal blog poster, allowing more LiveJournal-specific functionality such as emotions. I hoped to integrate the LiveJournal support from KLuJe to KBlog, as well as aid the creation of Google Data and Atom 1.0 support. This was dependent on how much work the creator of KBlog was willing to perform towards this task. The other needed features I would work on were full-GUI integration for the KBlog library with Kontact, customisation, easy setup, Akonadi integration and a WYSIWYG editor. C++ will be used for all development for Akonadi and Kontact integration.

The status on Akonadi was somewhat uncertain at the time of writing. The KDE-PIM team were unsure whether KDE 4.0 will have a KDE-PIM release at all or if it will simply be used without Akonadi until KDE 4.1. As a result, if Akonadi was delayed, the focus would be on producing code that can be not only used in Akonadi but also in KDE 4.0.

Several feature requests have been made for Kontact's Journal integration. These can be viewed at http://bugs.kde.org/simple_search.cgi?id=journal. Allowing for time, as many of these features would be integrated as possible, but the priority was to focus on the aforementioned features.

Results

The results of this project can be viewed in kdepimlibs/kblog, the "Journal in a blog" resource in KOrganizer and KOrganizer's improved journal view and journal editor.

A tutorial for using this feature can be seen on my blog.

I'm still working on bugs 120657 and 147569.

I implemented bugs 125731, 125731, 92499 and 134956.

I closed bug 134954 for being invalid.

References