[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Re: Nepomuk in 4.13 and beyond
From:       Ignacio Serantes <kde () aynoa ! net>
Date:       2013-12-12 12:01:29
Message-ID: CAKbQbAqL4dg+2Rp4-X9Nr+AjNz7i55x7-HXr3HTgTpGYFJk==w () mail ! gmail ! com
[Download RAW message or body]

Welcome Baloo,

New suggestions about development direction to avoid some problems related
to Nepomuk:

1) Baloo must work as a service to share information with other users and
minimize resources consumption. With Nepomuk a login is required and in
multiuser environment this is a problem.
2) Data must be stored in one repository to improve information sharing
with other users in the same or other computers.
3) Remote installation will be a good solution in cases you have several,
with mixed OS or old, computers in your home or your office because some
users prefer sharing data over speed. With cheap cloud computing have an
own server running some services will be more common (owncloud, mpd,
quassel, etc...) so considering this for the future would be great.
4) Baloo and Milou must compile and work without Akonadi.



On Thu, Dec 12, 2013 at 11:46 AM, Vishesh Handa <me@vhanda.in> wrote:

>  Hey everyone
>
>
>
> During the KDE 4.11 cycle Nepomuk reached a maturity level that we were
> happy
>
> with, it is reasonably fast, stable, and unless used together with Akonadi
> it
>
> is no longer the "CPU consumer" it was before. We reached this state after
>
> years of analyzing what was wrong and what could be improved to the point
>
> where we no longer think any more improvement is possible only by
> modifying
>
> our code.
>
>
>
> The next place where we could seek improvement was the RDF storage. We
> have
>
> been using Virtuoso for about 4 years and it's been a game changer for us
>
> performing way faster than any other of the alternatives we ever used
> before
>
> and more efficiently, but as many of you know (and others suffer) it is
> not a RDF
>
> storage designed for the desktop and it will never be. Since nothing
> better
>
> than Virtuoso exists for our use-case, we started to implement our own RDF
> storage mechanism (codenamed Vishuoso).
>
>
>
> At some point during that progress we took a step back and re-analyzed the
>
> problems of the workspace and the current implementation. The problems are
> -
>
>
>
> - Resource Description Framework (RDF)
>
> The biggest problem with RDF is that it raises the knowledge needed to
>
> contribute to a point where most developers decide to to skip it. After
> all
>
> these years only a handful of brave developers have worked with it and the
>
> experience hasn't been good.
>
>
>
> Then we need something easier to use so we can see a more broad adoption.
>
>
>
> Additionally, RDF is a very flexible way to store data, it is however not
> the
>
> most efficient way. Data is generally completely normalized even though it
> is
>
> quite often not required. Eg - One doesn't need to store music file
> artists as
>
> a separate contact. This is great, from a theoretical point of view, but
> it is
>
> not very useful in practice.
>
>
>
> - RDF Storage
>
> There is no existing RDF storage designed to work in a Desktop. Virtuoso
> is
>
> great but it quickly uses hundreds of megabytes of ram and it has its own
>
> share of problems. The other alternative is tracker, but they lack certain
>
> features required in Nepomuk.
>
>
>
> - Data duplication
>
> Nepomuk has been used as both a search store and a data store. This
> results in
>
> massive data duplication and synchronization problems. In the case of
> Akonadi,
>
> emails are stored in Akonadi and are then duplicated in virtuoso, and are
> then
>
> duplicated in virtuoso's index. Every time data is changed in Akonadi it
> has
>
> to be updated in Nepomuk and vice-versa. This results in a process being
>
> responsible just for synchronizing the two stores.
>
>
>
> - API Duplication
>
> With the data residing in both Nepomuk and other stores
> (Akonadi/Files/etc),
>
> it isn't always clear which store it should be accessed from. This
> essentially
>
> results in duplication of APIs. Eg - Using KABC vs accessing contacts from
>
> Nepomuk.
>
>
>
> These problems would still exist even if we had the fastest and most
> efficient
>
> RDF storage in the world.
>
>
>
> At this point it was clear to us that the future was not going to be RDF.
> The
>
> next thing we did was to analyze our actual needs based on the last 5
> years of
>
> Nepomuk.
>
>
>
> Our needs are -
>
> * Full text index for searching
>
> * Data store for simple objects such as tags / ratings / activities / etc
>
> * Relations - Forming relations between different objects. Eg - This
> "file" is
>
> related to this "activity" or "person".
>
>  Each of these problems is independently solvable without RDF.
>
>
>
> About 2 months ago we started to draft Baloo [1], a metadata solution that
>
> will cover the bare necessities of each use case we have.
>
>
>
> I'd like to avoid getting into the technical details of the implementation
> in
>
> this thread. Another thread can be started about its different aspects
> once
>
> you've read the basic ideas behind Baloo [2]
>
>
>
> Current Plans
>
> ---------------------
>
>
>
> After a month of designing the solution and a month of implementing it,
> Baloo
>
> is working way better than Nepomuk does. So, I'd like to switch to Baloo
> by
>
> default in 4.13, while keeping Nepomuk in maintenance mode for more
>
> conservative distributions.
>
>
>
> This is not a completely new project as large parts of Baloo code are
> derived from Nepomuk and therefore comes with years of testing and real
> world use.
>
>  Baloo was also discussed in PIM Sprint and the PIM developers are happy
> to
>
> completely drop Nepomuk support for 4.13 and move to Baloo. Similarly, the
>
> telepathy developers are also working on moving KPeople away from Nepomuk.
>
>
>
> Migration - There will be an automated migration mechanism for migrating
> tags,
>
> ratings and comments from Nepomuk to Baloo.
>
>
>
> Trying it out?
>
> -------------------
>
>
>
> Developers are welcome to try out Baloo and have a look at the current
> source
>
> code. It's a still a work in progress, but we strongly feel that it is a
> step
>
> in the right direction.
>
>
>
> I'd recommend using Milou [3] for searching.
>
>
>
> --
>
> Vishesh Handa
>
>
>
> [1] https://projects.kde.org/projects/playground/base/baloo
>
> [2] http://techbase.kde.org/Projects/Baloo
>
> [3] https://projects.kde.org/projects/playground/base/milou
>
>
> >> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to
> unsubscribe <<
>
>


-- 
Best wishes,
Ignacio

[Attachment #3 (text/html)]

<div dir="ltr"><div>Welcome Baloo,  <br></div><div><br></div><div>New suggestions \
about development direction to avoid some problems related to Nepomuk:<br><br>1) \
Baloo must work as a service to share information with other users and minimize \
resources consumption. With Nepomuk a login is required and in multiuser environment \
this is a problem.</div>

<div>2) Data must be stored in one repository to improve information sharing with \
other users in the same or other computers.<br>3) Remote installation will be a good \
solution in cases you have several, with mixed OS or old, computers in your home or \
your office because some users prefer sharing data over speed. With cheap cloud \
computing have an own server running some services will be more common (owncloud, \
mpd, quassel, etc...) so considering this for the future would be great.</div>

<div>4) Baloo and Milou must compile and work without \
Akonadi.</div><div><br></div></div><div class="gmail_extra"><br><br><div \
class="gmail_quote">On Thu, Dec 12, 2013 at 11:46 AM, Vishesh Handa <span \
dir="ltr">&lt;<a href="mailto:me@vhanda.in" \
target="_blank">me@vhanda.in</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex"><u></u> <div style="font-family:&#39;Sans \
Serif&#39;;font-size:9pt;font-weight:400;font-style:normal"> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Hey \
everyone</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">During \
the KDE 4.11 cycle Nepomuk reached a maturity level that we were happy </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">with, \
it is reasonably fast, stable, and unless used together with Akonadi it </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">is \
no longer the &quot;CPU consumer&quot; it was before. We reached this state after \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">years \
of analyzing what was wrong and what could be improved to the point </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">where \
we no longer think any more improvement is possible only by modifying </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">our \
code.</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">The \
next place where we could seek improvement was the RDF storage. We have </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">been \
using Virtuoso for about 4 years and it&#39;s been a game changer for us </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">performing \
way faster than any other of the alternatives we ever used before </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">and \
more efficiently, but as many of you know (and others suffer) it is not a RDF </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">storage \
designed for the desktop and it will never be. Since nothing better </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">than \
Virtuoso exists for our use-case, we started to implement our own RDF storage \
mechanism (codenamed Vishuoso).</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">At \
some point during that progress we took a step back and re-analyzed the </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">problems \
of the workspace and the current implementation. The problems are -</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">- \
Resource Description Framework (RDF)</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">The \
biggest problem with RDF is that it raises the knowledge needed to </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">contribute \
to a point where most developers decide to to skip it. After all </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">these \
years only a handful of brave developers have worked with it and the </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">experience \
hasn&#39;t been good.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Then \
we need something easier to use so we can see a more broad adoption.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Additionally, \
RDF is a very flexible way to store data, it is however not the </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">most \
efficient way. Data is generally completely normalized even though it is </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">quite \
often not required. Eg - One doesn&#39;t need to store music file artists as </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">a \
separate contact. This is great, from a theoretical point of view, but it is </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">not \
very useful in practice.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">- \
RDF Storage</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">There \
is no existing RDF storage designed to work in a Desktop. Virtuoso is </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">great \
but it quickly uses hundreds of megabytes of ram and it has its own </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">share \
of problems. The other alternative is tracker, but they lack certain </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">features \
required in Nepomuk.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">- \
Data duplication</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Nepomuk \
has been used as both a search store and a data store. This results in </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">massive \
data duplication and synchronization problems. In the case of Akonadi, </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">emails \
are stored in Akonadi and are then duplicated in virtuoso, and are then </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">duplicated \
in virtuoso&#39;s index. Every time data is changed in Akonadi it has </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">to \
be updated in Nepomuk and vice-versa. This results in a process being </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">responsible \
just for synchronizing the two stores.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">- \
API Duplication</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">With \
the data residing in both Nepomuk and other stores (Akonadi/Files/etc), </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">it \
isn&#39;t always clear which store it should be accessed from. This essentially </p> \
<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">results \
in duplication of APIs. Eg - Using KABC vs accessing contacts from </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Nepomuk.</p>
 <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">These \
problems would still exist even if we had the fastest and most efficient </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">RDF \
storage in the world.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">At \
this point it was clear to us that the future was not going to be RDF. The </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">next \
thing we did was to analyze our actual needs based on the last 5 years of </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Nepomuk.</p>
 <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Our \
needs are -</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">* \
Full text index for searching</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">* \
Data store for simple objects such as tags / ratings / activities / etc</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">* \
Relations - Forming relations between different objects. Eg - This &quot;file&quot; \
is </p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">related \
to this &quot;activity&quot; or &quot;person&quot;.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Each \
of these problems is independently solvable without RDF.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">About \
2 months ago we started to draft Baloo [1], a metadata solution that </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">will \
cover the bare necessities of each use case we have. </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">I&#39;d \
like to avoid getting into the technical details of the implementation in </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">this \
thread. Another thread can be started about its different aspects once </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">you&#39;ve \
read the basic ideas behind Baloo [2]</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Current \
Plans</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">---------------------</p>
 <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">After \
a month of designing the solution and a month of implementing it, Baloo </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">is \
working way better than Nepomuk does. So, I&#39;d like to switch to Baloo by </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">default \
in 4.13, while keeping Nepomuk in maintenance mode for more </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">conservative \
distributions.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">This \
is not a completely new project as large parts of Baloo code are derived from Nepomuk \
and therefore comes with years of testing and real world use.</p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Baloo \
was also discussed in PIM Sprint and the PIM developers are happy to </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">completely \
drop Nepomuk support for 4.13 and move to Baloo. Similarly, the </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">telepathy \
developers are also working on moving KPeople away from Nepomuk.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Migration \
- There will be an automated migration mechanism for migrating tags, </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">ratings \
and comments from Nepomuk to Baloo.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Trying \
it out?</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">-------------------</p>
 <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Developers \
are welcome to try out Baloo and have a look at the current source </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">code. \
It&#39;s a still a work in progress, but we strongly feel that it is a step </p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">in \
the right direction.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">I&#39;d \
recommend using Milou [3] for searching.</p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">-- \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">Vishesh \
Handa</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"> \
</p> <p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">[1] \
<a href="https://projects.kde.org/projects/playground/base/baloo" \
target="_blank">https://projects.kde.org/projects/playground/base/baloo</a></p>


<p style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">[2] \
<a href="http://techbase.kde.org/Projects/Baloo" \
target="_blank">http://techbase.kde.org/Projects/Baloo</a></p> <p \
style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px">[3] \
<a href="https://projects.kde.org/projects/playground/base/milou" \
target="_blank">https://projects.kde.org/projects/playground/base/milou</a></p>

</div><br><br>
&gt;&gt; Visit <a href="http://mail.kde.org/mailman/listinfo/kde-devel#unsub" \
target="_blank">http://mail.kde.org/mailman/listinfo/kde-devel#unsub</a> to \
unsubscribe &lt;&lt;<br> <br></blockquote></div><br><br clear="all"><div><br></div>-- \
<br>Best wishes,<div>Ignacio</div><div><br></div> </div>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic