Published on

Published in: Business, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. Master on Free Software KDE Albert Astals Cid aacid@kde.org
  2. 2. Master on Free Software Table of Contents ● Introduction to KDE ● KDE Languages ● The KDE platform ● Tools ● Who's Who in KDE ● Coding Examples ● The Exercise
  3. 3. Master on Free Software Introduction to KDE ● What is KDE? ● KDE History ● KDE Licenses ● KDE Community ● KDE Versions ● KDE Business Environment
  4. 4. Master on Free Software What is KDE? KDE  is  an  international  technology  team  that  creates Free  Software for  desktop  and  portable computing. Among KDE's products are a modern desktop system for Linux and  UNIX platforms, comprehensive office productivity and groupware suites and hundreds  of  software  titles  in  many  categories  including  Internet  and  web  applications,  multimedia,  entertainment,  educational,  graphics  and  software  development.  KDE  software  is  translated  into  more  than  60  languages  and  is  built  with  ease  of  use  and  modern accessibility principles in mind. KDE4's full­featured applications run natively on  Linux, BSD, Solaris, Windows and Mac OS X.
  5. 5. Master on Free Software KDE is International Commiters to KDE Subversion Repository for the week of  February 10 2008
  6. 6. Master on Free Software KDE is Free Software ● KDE uses Free Software licenses for the software it creates ● KDE uses Free Software applications to provide it's network  services ● No non free software is mandatory for KDE development
  7. 7. Master on Free Software KDE has a Desktop
  8. 8. Master on Free Software KDE has Applications Document Viewer Web Browser Music Player Periodic Table Planetary Mahjongg
  9. 9. Master on Free Software KDE is translated ● KDE 4.0.2 is distributed in 50 different languages ● Major languages: Chinese, Spanish, English, Arabic, Hindi ● Minor languages: Kashubian (Poland, ~50.000 speakers)                                  West Frisian (Netherlands, ~500.000 speakers)
  10. 10. Master on Free Software KDE is Cross-platform
  11. 11. Master on Free Software KDE History October 14 1996: New Project: Kool Desktop Environment (KDE) ● Matthias Ettrich ● A GUI for endusers ● Use same toolkit (Qt) to ensure same behaviour for all applications August 1997: KDE­ONE Meeting, 15 participants December 1997: KDE e.V. is founded April 1998: The KDE Free Qt Foundation is announced July 1998: KDE 1.0
  12. 12. Master on Free Software KDE History (II) October 1999: KDE­Two meeting, 40 participants September 2000: Qt goes GPLv2 October 2000: KDE 2.0 April 2002: KDE 3.0 January 2008: KDE 4.0
  13. 13. Master on Free Software KDE Developer Meetings KDE One ­ Arnsberg, Germany 1997 KDE Two ­ Erlangen, Germany 1999 KDE Three Beta ­ Trysil, Norway 2000 KDE Three ­ Nürnberg, Germany, 2002 Kastle ­ Nové Hrady, Czech Republic 2003 aKademy 2004 ­ Ludwigsburg, Germany aKademy 2005 ­ Málaga, Spain aKademy 2006 ­ Dublin, Ireland aKademy 2007 ­ Glasgow, Scotland Akademy 2008 ­ Sint­Katelijne­Waver, Belgium Last editions had around 300 attendees
  14. 14. Master on Free Software KDE Licenses kdelibs, kdepimlibs or kdebase­runtime public libraries: ● LGPL version 2.1 or later  ● BSD  ● MIT ● X11 Applications also allow GPL 2 or later Documentation also also allow FDL 1.2 or later http://techbase.kde.org/index.php?title=Policies/Licensing_Policy
  15. 15. Master on Free Software KDE Licenses (II) Qt Licensing ● Qt was released under the FreeQt until Qt 1.45 ● FreeQt was not approved neither by the Open Source Initiative nor by the  Free Software Foundation ● Qt 2.0 and 2.1 were released under the QPL, approved by the OSI but not by  the FSF ● Qt 2.2 was released on September 2000 and introduced the GPLv2 ● Qt was released under GPLv2 or GPLv3 on January 2008
  16. 16. Master on Free Software KDE Licenses (III) FreeQt Foundation The Foundation has the right to release Qt under a BSD­style license in case  Trolltech doesn't continue the development of the Qt Free Edition for any reason  including, but not limited to, a buy­out of Trolltech, a merger or bankruptcy. Formed by 2 KDE e.V. members and 2 Trolltech members.
  17. 17. Master on Free Software KDE Community ● No benevolent dictator ● Core team based on previous contributions ● Lots of small sub­communities (kdegames, kdeedu, amarok, etc.) ● Mailing lists and IRC for communication (not forums) ● Developer sprints ● Friendly to new people ● Multiple areas: Translators, artists, usability people, testers, documentation  writers, promoters, packagers, developers
  18. 18. Master on Free Software KDE Community (II) 1791 accounts (26 February 2008) 11000 commits per month
  19. 19. Master on Free Software KDE Community (III) KDE e.V ● Non for profit organization that represents KDE in a legal way ● Owns the registered KDE trademark in Europe and USA ● Does not take part in development except for helping with money or  organizational issues ● 145 members (19 October 2007) ● Board formed by 5 members elected by the general assembly
  20. 20. Master on Free Software KDE Versions KDE versions follow the X.y.z scheme where: X is the major version y is the minor version z is the patch version Binary and Source compatibility of core libraries is maintained for the whole life  of major versions Minor versions are to introduce improvements that do not need radical redesigns Patch versions are to fix bugs and improve translations
  21. 21. Master on Free Software KDE Versions (II) July 1998: KDE 1.0: The initial release, few apps, not much quality, was very  good to attract people October 2000: KDE 2.0: The technologies release, introduced KIO, dcop,  KParts, KHTML, XML­GUI, arts, ... April 2002: KDE 3.0: The applications release January 2008: KDE 4.0: The new technologies release, introduced Phonon,  Plasma, Solid... Until now major releases have been tied to Qt major releases
  22. 22. Master on Free Software KDE Business Environment ● The Kolab Konsortium: Develops Kolab (groupware server) and improves  kdepim (groupware client) for the german government ● Intevation GmbH ● Klarälvdalens Datakonsult AB ● erfrakon ● KDE developer owned companies ● Staikos Computing ● Froglogic ● Basyskom ● Distributions and Deployers
  23. 23. Master on Free Software KDE Business Environment (II) Not strictly KDE environment but worth to mention. Qt is used in lots of multiplatform programs: ● Google Earth ● Skype ● Adobe Photoshop Elements ● Perforce Visual Client Knowing KDE will give you an advantage on Qt related business
  24. 24. Master on Free Software KDE Languages KDE is almost totally written in C++ There are bindings for Python, Ruby, C#, Perl, etc. but they are usually not used  for core libraries/applications and they are not much widespread either for user  applications. There are two main reasons: ● KDE Developers already know C++ ● Qt adds syntactic sugar to C++ so that it seems more a scripted language  than raw C++
  25. 25. Master on Free Software KDE Languages (II) Qt Dual licensed library (commercial/GPL) developed by Trolltech ● Core classes strings/list/hash ● Graphical classes buttons/windows/tables ● Socket classes ● XML classes ● Drawing classes ● OpenGL classes
  26. 26. Master on Free Software The KDE Platform KDE 3 vs KDE 4 ● KDE 3 is more stable ● KDE 4 API is nicer ● KDE 4 is the current KDE ● KDE 3 API is similar to KDE 4 one in some fields ● KDE4 is the future So we'll cover KDE 4
  27. 27. Master on Free Software The KDE Platform (II) Interesting Links ● Techbase: Is the KDE wiki for developers and deployers, contains lots of  information, ranging from how to build from source, to how to obtain a SVN  account passing by programming tutorials. http://techbase.kde.org ● KDE  API:  The  KDE  API  as  generated  by  doxygen,  contains  all  the  categorized API of all KDE modules and versions. http://api.kde.org ● Qt  documentation:  The  Qt  documentation  is  very  comprehensive,  it  is  available  locally  using  the  assistant  program  but  also  online  at  http://doc.trolltech.com
  28. 28. Master on Free Software The KDE 4 Platform ● kdecore: core classes ● kdeui: graphic classes ● KIO: I/O classes ● KParts: Functionality embedding classes ● D­Bus: IPC ● Kross: Scripting classes ● KWallet: Password handling classes ● Nepomuk: Semantic desktop classes ● Phonon: Sound classes ● Solid: Hardware classes ● Sonnet: Spellchecking classes ● Threadweaver: Threading classes ● Kiosk: Lockdown framework
  29. 29. Master on Free Software kdecore KConfig: Class to store configuration. It has all the typical methods to store any  kind of type. Currently only has a .ini­like backend but more are in preparation KDebug: Class to debug, allows serialization of all kind of data types. Allows  filtering by debug area. i18n: Classes for translating texts, numbers, etc. KStandardDirs:  Class  for  getting  installed  data  files  without  having  to  care  about where they are KToolInvocation: Class to invoke help/mail/browser or to start services
  30. 30. Master on Free Software kdeui KAction:  KActions  can  be  plugged  on  menus  or  toolbars  to  represent  a  mainwindow action. There are all kinds of KActions, toggable, radio, font size,  recent files, .. KMainWindow: Provides typical actions needed for main windows like saving  toolbar/menubar/statusbar settings (and optionally window size). KConfigDialog:  Provides  the  base  KDE  configuration  dialog,  together  with  KConfigXT makes storing user configuration very easy XMLGui: The KDE way of defining top level windows menus and toolbars All kind of widgets: KArrowButton, KRuler, KGradientSelector, KPlotWidget, ...
  31. 31. Master on Free Software KIO KIO: Provides transparent network I/O to KDE programs through asynchronous  jobs for each i/o operation(copy, delete, chmod, etc) KIO::NetAcess: Synchronous (easy to use) methods for each of the  asynchronous jobs KDirWatch: File/Directory monitor KFileDialog: KDE file dialog KBookmark: KDE Bookmark handling
  32. 32. Master on Free Software KParts KDE parts are elaborate widgets with a user­interface defined in terms of actions  KParts::ReadOnlyPart: Base class for any "viewer" part. KParts::ReadWritePart: Base class for an "editor" part. KParts::MainWindow: A KPart­aware main window
  33. 33. Master on Free Software D-Bus KDE 4 uses D­Bus for interprocess communications.  D­Bus is a freedesktop.org specification heavily inspired by KDE 3 interprocess  communication (DCOP) KDE uses Qt4 D­Bus bindings to talk to D­Bus
  34. 34. Master on Free Software Kross Kross is a scripting bridge to embed scripting functionality into an application. Kross provides an abstract API to provide scripting functionality in a interpreter­ independent  way.  The  application  that  uses  Kross  should  not  need  to  know  anything about the scripting language being used. Currently  the  framework  provides  full  Python,  Ruby  and  KDE  JavaScript  scripting support. Java and Falcon plugins are being worked on.
  35. 35. Master on Free Software KWallet KWallet is the KDE integrated password protected data managing framework. It is composed by a library that lets you query the wallet for data, and a user  interface to manage this data. It is very comfortable to use as it gives a central repository for password  protected data so for example, Okular and KWord can store/retrieve for ODT  files open by the other application so the user has a more pleasing experience.
  36. 36. Master on Free Software Nepomuk The KDE Meta Data library Three types of meta data can be identified: ● Meta data that is stored with the data itself and is available at all times. This  includes id3 tags, the number of pages in a pdf document, or even the size  of a file or the subject of an email. ● Meta data that is created by the user manually like annotations or tags that  are assigned to files, emails, or whatever resources. ● Meta  data  that can  be  gathered  automatically  by  applications  such as the  source of a downloaded file or the email an attachment was saved from or  the original when copying a file locally. Nepomuk aims at solving types 2 and 3 as type 1 is already widely available.
  37. 37. Master on Free Software Phonon Phonon is the KDE 4 Multimedia framework. In opposition to aRts (KDE3) it is  just a wrapper for already existant multimedia libraries like libxine, gstreamer,  etc. This allows developers accessing the power of well established libraries  with a KDE­like API. MediaObject: Interface for media playback of a given URL. VideoPlayer: Playback class for simple tasks.
  38. 38. Master on Free Software Solid Solid is a device integration framework. It provides a way of querying and interacting with hardware independently of the  underlying operating system. Currently, only the HAL backend is implemented, more backends will follow. Supported devices include Battery, Button, NetworkInterface, OpticalDisc, etc.
  39. 39. Master on Free Software Sonnet Sonnet is the KDE framework for Spell Checking.  Sonnet::Speller: The core speller class, you can ask it if a word is correct, to  give suggestions for a given word, etc. Sonnet::BackgroundChecker: Used to perform spell checking without blocking  the application Sonnet::Dialog: Provides the default KDE spell checking dialog
  40. 40. Master on Free Software ThreadWeaver ThreadWeaver is a helper for multithreaded programming. It uses a job­based  interface to queue tasks and execute them in an efficient way. You simply divide the workload into jobs, state the dependencies between the  jobs and ThreadWeaver will work out the most efficient way of dividing the work  between threads within a set of resource limits. ThreadWeaver::Job: Simple abstraction of an action that is to be executed ThreadWeaver::Weaver: Singleton to manage the job queue
  41. 41. Master on Free Software KDE Tools Qt Designer: Creating graphical user interfaces KDevelop: KDE IDE CMake: New generation build system Commit Filter: Filter commits into KDE Subversion repository English Breakfast Network: Automatic checker
  42. 42. Master on Free Software Qt Designer
  43. 43. Master on Free Software KDevelop
  44. 44. Master on Free Software CMake CMake is KDE 4 buildsystem. It replaces Autotools that were used in KDE 3. There are several reasons for that: ● KDE 4 supports more platforms than the ones correctly supported by  autotools ● CMake is easier to understand/write because it's language is less obscure  than the various ones used in autotools ● CMake developers are more open to suggestions than autotools developers
  45. 45. Master on Free Software Web Tools Commit Filter: Allows people filtering commits to the KDE subversion repository  either by path or by author name English Breakfast Network:  It  is  composed  by  code,  API  and  documentation  automatic checker. Code checking warns about bad i18n constructs, use of FALSE/TRUE, etc. API checking warns about not documented functions/parameters, etc. Documentation  checking  warns  about  problems  on  docbooks  for  user  documentation.
  46. 46. Master on Free Software Who's Who in KDE KDE is too big to know everyone that is or was ever involved in the project, but  knowing some of the key people helps when reading only or when you want to  contact someone, although most of the times you should contact the appropiate  mailing list or use the bugzilla and not the author directly.
  47. 47. Master on Free Software KDE eV Board ● Aaron J. Seigo ● President, Plasma (KDE 4 desktop) ● Cornelius Schumacher ● Treasurer ● Adriaan de Groot ● VicePresident, Research ● Sebastian Kügler ● Board Member, Marketing ● Klaas Freitag ● Board Member
  48. 48. Master on Free Software Who's Who ● David Faure (KParts architect, Koffice architect, kdecore all around) ● Kevin Ottens (Solid) ● Stephan Kulow (OpenSuse Project Leader, KDE 3 release dude) ● Jonathan Riddell (Kubuntu Project Leader) ● Stephan Binner (OpenSuse KDE) ● Thiago Macieira (Qt Release Manager)   
  49. 49. Master on Free Software KDE 4 Release Team ● Dirk Mueller (Release dude, OpenSuse) ● Matt Rogers (KDevelop, kdesdk) ● Allen Winter (kdepimlibs, kdepim) ● Matthias Kretz (kdemultimedia, Phonon) ● Tom Albers (kdereview) ● Urs Wolfer (kdenetwork) ● Andras Mantia (kdewebdev) ● Helio Chissini de Castro (extragear) ● Albert Astals Cid (localization) ● Boudewijn Rempt (KOffice) http://techbase.kde.org/Projects/Release_Team  
  50. 50. Master on Free Software KDE Oldies No longer involved with code but very worth to mention: ● Matthias Ettrich, KDE founder, Qt Lead Architect ● Kalle Dalheimer, KDAB owner ● Waldo Bastian, Intel ● Martin Konold, erfrakon founder ● Chris Slaeger, AMD         
  51. 51. Master on Free Software KDE in Spain It always helps knowing people that is near you: ● Alfredo Beaumont Sainz (KOffice hacker) ● Rafael Fernández López (kdelibs hacker) ● Antonio Larrosa Jimenez (KDE oldie, aKademy 2005 organizer) ● Aleix Pol González (KDevelop and KDEedu hacker) ● Jaime Robles (Spanish translation coordinator) ● Agustín Benito Bethencourt (Canary Islands KDE Distribution Leader) ● Isaac Clerencia Pérez (Debian­KDE packager) ● Ana Beatriz Guerrero López (Debian­KDE packager)