Find your mails with fulltext search

The most recent addition to Kube is fulltext search. It’s a complex enough topic that we don’t really want to implement it in our key-value store that we use for the rest of the data, which is why we’re using Xapian to do the heavy lifting.

Kube is an offline capable client, and as such we also want search to work without an internet connection. However, we naturally can only search the data that you have available locally. Normally this means we’ll have subject and recipients indexed for all your mail, and the complete content for all mails that you have every viewed/downloaded.

In the long run we’ll want to extend that with server-side searching for when you’re connected to the server, so that you could indeed search through all your data, without having to first download it all. But that is a task for another day.

So here it goes; Fast as you type searching of your emails:

Searching a folder with 50k messages.

For more info about Kube, please head over to About Kube.

Testing and prototyping in Kube

To build a reliable product it is essential that we build ways for us to ensure that what we build also works as expected.
In its simplest form that means that you try what you build, the assumption being that if it works for you, it works for everyone.

  • By now we all know that “works for me” is not enough, but there are also a variety of additional challenges;
  • It’s not enough to only test when a feature is first implemented, the tests need to be repeated regularly to ensure nothing breaks that once worked.
  • There is a balance to be struck between over- and under- testing. Tests need to be of high quality and have to be maintained with the system, otherwise they become a burden instead of an asset.
  • The right things need to be tested. Test things that are too trivial and you end up with loads of tests with little value (but a maintenance cost). Test things that are too complex and your tests become fragile and don’t tell you what broke, making fixing it harder.
  • The testenvironment needs to be realistic enough so we test the right things (e.g. we don’t want to test the internet connection typically), yet also removes the bits that we don’t have under our control, so we test our system only. That ensure that the test remain reliable and are fast to run (so they are run regularly).

Continue Reading “Testing and prototyping in Kube”

PGP encryption for Kube

Secure and confidential communication is an important requirement for a society, and something, I think, we should provide to as many people as possible.
A popular mechanism to achieve this is to use public-key cryptography, which allows a person to encrypt a message to a persons key, so that only the intended recipient can decrypt the message. This means that even if an attacker would get his hands on the encrypted message, without the key, it’s only useless gibberish.

As one of the primary usecases of Kube is communication, it should also support you in doing so in a secure and confidential fashion.

Continue Reading “PGP encryption for Kube”

Error feedback in Kube

One of the most frustrating user experiences is when you get an error message that you can’t do anything about, or even worse, that you don’t even understand.

While it’s very well possible that the error message is entirely justified, wouldn’t it be great if the system didn’t just tell you that something is wrong, but also what you can do about it? Error messages can be even more infuriating if they block you from doing your work even if they are not directly related, thus interrupting your workflow unnecessarily. Wouldn’t you rather have a notification that something does not work as it should, while otherwise letting you go about what you wanted to do, instead of just popping up a blocking popup that you have to click away before you can do anything else?

That’s what we’ve worked on last week.

Continue Reading “Error feedback in Kube”

Support Kube through Kolab Now for fun and profit!

If you ever wanted to try Kube a great way to do so is with a Kolab Now account. You will not only reap the benefits of using an secure, Switzerland hosted Open Source service, but you will also help sustain the development of Kube.

Kube now sports a sign-up link, allowing you to sign up directly from the setup page, which will result in a Kube Kolab Now account.

Use the link at the top of the page to get the reduced price offer.

The Kube Kolab Now account is special in that its feature set will follow the Kube feature set, and so will its price. So if you sign up now, for a more limited feature set, you not only benefit from a reduced price but also receive free upgrades in the future as we’re adding new features to Kube! You can still take advantage from the web interface from the beginning though, if you want to complement Kube with that.

Even if you are not sure if you want to take out a subscription, the 30 day trial allows you to test the service and get a full refund if you’re not satisfied.

So get Kube nowand sign up for your account =)

If you contribute to Kube in some form, be that writing documentation, testing, filing bugs or somehow else helping Kube, your Kolab Now account just might be free ;-).Get in touch with me!

For more info about Kube, please head over toAbout Kube.

Update on the Kube flatpak nvidia driver issue

After some investigation into the nvidia driver issue, the flatpak has now been rebuilt based on the org.freedesktop.Platform runtime.
A limitation of flatpak currently keeps flatpak from making the appropriate driver available from any other runtime.

As a nice side-effect the overall size of the flatpak has been reduced by removing some unnecessary parts.

If you have already installed Kube, please follow the following instructions to update to the latest version (in all other cases, install it now):

Update to the latest version (please note this will also automatically install the new runtime and driver extensions):

flatpak -y --user update com.kolabnow.kube

To remove the no longer relevant platform, run the following commands:

flatpak --user uninstall org.kolab.Sdk
flatpak --user uninstall org.kolab.Platform

To check if the relevant driver was installed you can use the following command:

flatpak --gl-drivers

If you have an nvidia card, this should give you a line similar to (depending on your nvidia driver):


To run kube, use:

flatpak run com.kolabnow.kube

Please let us know in the comments if this resolves the issue for you, thanks!

For more info about Kube, please head over toAbout Kube.