Category Archives: Planet KDE

Globaleaks 0.2 Alpha

Globaleaks 0.2 Alpha is out.

Globaleaks is an open source project aimed at creating a worldwide, anonymous, censorship-resistant, distributed whistle-blowing platform. It enables organizations interested in running whistle-blowing initiatives to setup their own safe zone, where whistle-blowers and recipients can exchange data.

2 Years ago I helped out with the development of Globaleaks 0.1. And although I am not active anymore, I really support the initiative behind it. Now with the HERMES Center for Transparency and Digital Human Rights backing it up, it has grown a lot and shaped up to be a very organized and thought through project.

TL;DR:

  • Full rewrite
  • More flexible and extensible
  • Linux ready-made system and network hardened installation
  • Written in python using twisted
  • New Frontend

Try it out:

Try out the demo. It is pretty straight forward.

Help out:

As young project, Globaleaks can use some help fixing bugs. Just head to the wiki and read through it. It is pretty straight forward, and explains the modules, security concepts and set up instructions.

Globaleaks already has Debian and Ubuntu ready packages. An easy way to help out is to set up a  PPA for us on Launchpad. :D

Get in touch:

You can contact the Globaleaks team at info () globaleaks org or on IRC on #globaleaks at irc.oftc.net

Here are some screenshots of the new frontend :D

Congratulation you are using Tor

Congratulations you are using Tor

Receiver selection page

Receiver selection page

The submission receipt

The submission receipt

Configuring a receiver

Configuring a receiver

Configuring a context

Configuring a context

Zeitgeist 1.0 Beta is out

So finally we have rolled out Zeitgeist 1.0 beta…

With Zeitgeist 1.0 we  are introducing libzeitgeist2, a Vala port of the previously independent libzeitgeist library. The new libzeitgeist2 comes with 3 big improvements over libzeitgeist:

  • Maintained internally by the Zeitgeist team since it is part of the internal datamodel we used.
  • Has direct read support. This way when querying Zeitgeist for data there is no more round-trips and less serialization which improves most queries by almost 100% and sometimes even more. Writing is still done over D-Bus.
  • GObject Introspection support. So now it can be used with almost any language.

The engine itself is also faster and has seen a lots of bug fixes.  Zeitgeist datahub package is now part of the Zeitgeist Framework package. This should be convenient for packagers.

Over the weekend some of us will be porting apps in GNOME using Zeitgeist to libzeitgeist2 and actually patch some existing apps to have better sorting.

I would like to thank the whole Zeitgeist team for getting this far, and the people who helped us get there. Also we are looking into porting libQzeitgeist to depend on libzeitgeist2 for less future maintenance efforts (please contact Trever Fischer – tdfischer on irc) if you are interested. We have a very interesting KDE application in mind at the moment that would make use of kde-telepathy, nepomuk and libqzeitgeist.

We are hanging out on #zeitgeist on freenode and for  the latest Zeitgeist, just check out our fdo git repo ==> http://cgit.freedesktop.org/zeitgeist/zeitgeist

 

My first Mozilla contributions

As of beginning of December I started contributing to the Mozilla community… I must say amazing people and amazing environment.

I was invited by Josh Matthews and David W. Boswell to a Mozillians meeting. The first task I took upon myself was getting new contributors mentioned with every release. With the help of the others I went around pinging people and a couple of days later we reached the consensus that we will be linking to a blog post on http://blog.mozilla.org/community/category/spotlight/ from the release note with every release.

We will be using a set of premature scripts I am working on to detect new contributors to a release as well as the contribution rate (code and bugs which is inspired by my GNOME fellow Andre Klapper). Those can be found https://github.com/seiflotfy/mozcctools (nothing special they just spit out JSON stats, will automate them this weekend).

And last but not least. After an interesting call with the super dad himself, Mike Hoye, I took a challenge upon myself to hack a tool that does the following:

Enter a a keyword, and it will spit out Mozillians that are affiliated with this keyword based on their code commits and bug reports.

It took me around 60 minutes to hack the tool using Zeitgeist and the Full Text Indexer extension. Basically importing the last 120k code commits and indexing the commit message. I will publish the code soon. After that I spent 30 minutes with Josh and Mike playing with it testing the results. Mike Hoye has some great ideas on how to deploy such a tool (Bugzilla included), and hopefully I can show off the cleaned up code in the following days.

I am thinking of deploying such a tool for the KDE and GNOME community sites to find ways to directly contact hackers based on keywords.

All in all the Mozilla contribution experience is really fun, and while not hacking on Firefox or B2G I am having fun developing tools for enabling the community.

Zeitgeist 1.0 almost there (call for hackers)

So after 4 years of development Zeitgeist is reaching 1.0. The Zeitgeist team has reached a big goal/milestone :D

What’s new?

  1. New libzeitgeist2: instead of libzeitgeist which was developed and hosted on Launchpad now reuse and expose our own internal Vala components. When comparing libzeitgeist2 to libzeitgeist we can see over 65% less code (thanks to Vala) with 90% compatibilty with libzeitgeist. (libqzeitgeist not affected)
  2. GObject Introspection support
  3. Faster performance
    • Testing with 100k events DB here are some plots, those are peromances of synapse and standard time based queries where the yellow bars are 0.9.5 release and green bars represent “master”. Shorter bars are better.
    • synapse_unlimited timerange_always timerange_interval
  4. Smaller DB size: With a very small modification to the main table (primary keys), SQlite created some automatic indices that cover what we need so now instead of 34 indices we only need 25.
  5. Lots of bug fixes

What now?

Well if you want to help out roll out this release. We could use some packaging, testing and porting of apps. We won’t be able to release until the latest Vala has been released due to some bug fixes concerning the gir generator. But all in all it looks like an exciting release.

Case of the missing duck

In reference to Jean-François Fortin Tam and Luis de Bethencourt blog posts, I would like to post my side of the story.

The night before the incident (where the duck got lost), I was contacted by Vivia past midnight, after an awesome meal with the Collaborans. She asked me to contact JeFF and Rene if I see them and tell them to give the duck to Veronique.

Unfortunately by the time I met them, it was at the airport. At the canteen were discussing how to return the duck to Vivia (their intentions were good).

Later we met up with some Canonical folks and Emmanuelle Bassi while waiting for our plane. We were having some lengthy discussion and the duck was insightful as usual. I can’t remember who made a joke of frying him, but we found it very offensive but nevertheless the duck was still cheerful.

We then were on our way to board the plane, when suddenly we realized the duck was not amongst us. It was too late to go back. The only 2 who did not board the plane were Robert Ancell (Canonical) and Emmanuelle Bassi (GNOME Board & Mozilla)

Here is a a sketch of how it looks, sadly all ducks look the same to me.

The duck is very very missed…
Please help us find him

Zeitgeist scalability & efficiency bootcamp results

As Trever blogged yesterday, the Zeigeist team has been busy with tweaking the DB and the engine. During that process tools and benchmarks have been developed to make the tweaking and testing more interesting. Trever will be blogging about that tomorrow so make sure to check his blog.

Our end goal is  trying to scale the engine to be able to handle a few billion events just as fast as it can handle a few hundred thousand. While we are not there yet we managed to have some pretty nice stable results for the first iteration. A lot of results show more than 100% speed enhancement. In other words a lot of queries from our standard benchmarks now consume more than 50% less time to execute. Here are some graphs of our benchmarks.

Green indicates the 0.9 release

Yellow indicates the new trunk

Most notable performance enhancement is querying Zeitgeist with a specified timeframe (from data x to date y).

 

Same queries with an open timeframe also improved

 

We also have a copy of the Synapse queries benchmarked

The queries here are typical queries used to extract info from Zeitgeist. So right now the team is really happy with the initial results. For Synapse on my local DB (over a year old), all my synapse queries perform under 0.08 seconds. We still can get more out of this. The trick here was improving our indexes and our sql query generator.

Next month we will be going through another iteration.

 

 

On first interactions with open source communities…

I think it is safe to assume that as an open source project, striving to grow our community, we should make first interactions of new contributors with us a pleasant one.
So when commenting on a new contribution or attempt, we should try to either say something positive or don’t say anything.

  • If the contribution is  not useful then sugar coat you criticism. Because while the contribution might be bad, the person who did the contribution showed initiative to help out. We need to harvest this momentum and help integrate the person into the community.
  • If the contribution is useful then praise the developer. Making him feel useful. I learned from Lydia Pintscher to not only praise good contributors, but grant them autonomy to play around. This would allow them to master their craft, which will lead to them feeling like they have a purpose to stay.

What do you think?

Zeitgeist: Hello Freedesktop.org

For as long as Zeitgeist has existed it has been hosted on Launchpad. We made use of almost every Launchpad feature and grew to love Bazaar. The tight integration between Bazaar and Launchpad should be a taken as a grand example to the community, and the the team hacking on Launchpad and Bazaar has been always very responsive, supportive and above all incredibly approachable. The Zeitgeist team hosted all of its projects on Launchpad which made our development process very agile. I really need to thank the Launchpad team for hosting the project from its inception.

During the course of the last 3 and half years, Launchpad served us well and allowed us to handle:

  • ca. 748 unique bugs reported
  • ca. 231 merges
  • ca. 53 code contributions

We hope that many other great projects will find a valuable home on Launchpad. Without Launchpad, Zeitgeist would have not reached the level it has now.

But time changes and projects grow. The Zeitgeist team has a stable developer base of minimum 7 people putting several hours a week into Zeitgeist development and deployment. With these efforts comes the need of a vendor neutral platform hosted and serviced in a way that serves the interest of the project best.

Due to the deployment efforts being made to get Zeitgeist integrated with applications, our developers got more and more exposed to git. A stream of developers expressed their desire to work with us, however they were very uncomfortable or unfamiliar with bazaar and Launchpad, due to the popularity of git. That is something we do not understand in the core team, but still something we respect and will act on.

We couldn’t find a good direct replacement for Launchpad honestly, but since Bugzilla is something like the defacto standard for most people we decided to host Zeitgeist on Freedesktop.org (I must admit in-patch commenting in Bugzilla is sweeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeet).

We needed to wait until we finished the 0.9 release of Zeitgeist as well as narrow down the bugs to be less then 10 to make the transition as smooth as possible.

Now that Zeitgeist 0.9 is released, all our development will take place on Freedesktop.org and will be mirrored to launchpad, this means no code will be pushed directly to Launchpad, but rather Launchpad will pull from the git repositories. There the Zeitgeist Ubuntu guys (including me) will be syncing bugs and keeping everything intact. So bugs reported in Launchpad will be ported to FDO. But not the other way around.

We did not turn our backs on Launchpad, its just time for us to remove any barriers to getting the widest adoption of and contributions to Zeitgeist

On the road toward Zeigeist 1.0, FDO will be a great home for the project and we look forward to many great new contributions.

So please feel free to have a look at:
http://cgit.freedesktop.org/zeitgeist/

P.S: I would like to thank Trever Fisher and Manish Sinha for their efforts porting the code base.

Zeitgeist 0.9 and more…

Since the Zeitgeist team is kinda recovering from last month, and no one really feels like blogging, I am here to sum up what has been up the last 2 months. (Also I think a blog post from my side is long overdue)

Privacy Manager

A lot of users are scared of “logging”, and since Zeitgeist is considered an event logger, we ended up having some users trying to disable Zeitgeist all in all breaking Unity searching and so on.
Fact is, if you want searching to be sorted properly, the search provider needs to know what files you recently or frequently used. Also some people want to have some of their stuff logged and others things not (blacklisting folders).
Activity Log Manager which we already had developed in python last year has been ported to Vala. This nifty tool allows you to blacklist application, folders, mime-types from being logged as well as the option to delete parts of your log. The port to Vala happened so we can patch it into the Settings Manager to give it an more integrated feel with the System in Ubuntu and Dawati.
It has received very good reviews and there are some very interesting new development efforts/ideas in the make (right now one in a state of flux which I hope I can get out of soon).

Here are some screenshots of the current stand of ALM

(dialog for deleting history)

(dialog for blacklisting folders and file types)

(dialog for blacklisting applications)

Zeitgeist 0.9

Last year we started porting Zeitgeist from python to Vala. Mostly for the sake of easier deployment as well as improving startup time. As a side effect also memory consumption decreased and during the development more optimizations have been made.
It was a very intense operation sponsored by Collabora and Canonical as well as the awesome unpaid Zeitgeist developers.
So a big thanks goes to Collabora, Canonical, Michal Hruby, Siegfried Gevatter, Manish Sinha, Mikkel Kamstrup, Trever Fischer, Stefano Candori, Moritz Neeb, as well as everyone else who tested Zeitgeist, provided bug reports or contributed in any other way.

We released some alphas and a beta. But now the real deal is out. We still have some nice optimization in the queue that we will release with the next Zeitgeist version. So don’t hesitate to try it out.

Zeitgeist – from Python to Vala

The title says it all… You can read the announcement on Michal Hruby’s blog post. Zeitgeist has been ported from Python to Vala with its latest 0.9 cycle

We started 2 weeks before the desktop summit and are now confident enough to go public alpha with our work. With the focus of the desktop environments shifting to mobiles and handhelds, we were dealing with some resistance in terms of deployments due to Python’s slow start up times. In terms of code and performance Zeitgeist is now in Vala.

For those who don’t know Vala, its source-to-source compiled to C which is then compiled with a platform’s standard C compiler, such as gcc.

It has a noticeable faster start-up time, and less memory consumption than before. A normal Zeitgeist instance that used to run for 2 days using 15-20 MB now uses around 3.5 – 7 MB (this is on my computer though).

Also Zeitgeist now allows you to read (not write) directly from the DB. We will be updating our wrapper libs to support reading from the DB directly soon… This means apps that retrieve data from the DB don’t need to do it over D-Bus. However if you want to push an event into Zeitgeist you will have to do it over D-Bus. More or less you will retrieve your info faster now too…

The only thing not ported yet is the FTS extension but we managed to make it a stand-alone process that reads from the DB directly. We will have a nice awesome port soon so don’t worry. We are also working on an alternative extension with the Tracker guys for the FTS.

The fun part is, all libs are still compatible which means WE DID  NOT BREAK THE API

All your current apps that use Zeitgeist should be able to run normally with this new release. Except for GAJ where we you need to grab the latest code from trunk.

For all you Git lovers another big surprise now is that we got some mirror hosting on freedesktop.org too. We have some manpower to keep launchpad and freedesktop in sync for a while. So for all Ubuntu fans keep using Launchpad. For all you others use Bugzilla :P

This Zeitgeist release has been sponsored by

AND


Last but not least I would like to thank the rest of the always awesome team for making this happen…

Now get it while its hot… Zeitgeist 0.9 Alhpha

We have a little donation button on our website if you feel like donating something to the team http://zeitgeist-project.com/ for the next hackfest