Kube on Mac OS

Posted on: April 3rd, 2018 by

Kube on Mac OS

After a week of getting to grips with how Qt development on mac works and wrangling various build issues, I am pleased to finally report success =)
Kube on Mac OS is alive!

> Continue Reading

Kube’s gained some manpower

Posted on: March 29th, 2018 by

Around FOSDEM this year we have found some fresh manpower for Kube! Please welcome Rémi, who is doing an internship with us, and is working on Kube during that time. He was quick to land his first few patches and is now busy implementing the first few steps for CalDAV based calendaring support.

I for one am exited to see what he will come up with =)

Adding a Little Byte of Transparency

Posted on: March 28th, 2018 by

I’m considering adding a little bit of transparency to how, and perhaps how well, Kolab Now infrastructure is run, or is running.

> Continue Reading

Find your mails with fulltext search

Posted on: February 26th, 2018 by

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.

Bitcoin Payment Problems

Posted on: February 15th, 2018 by

In recent times, Bitcoin payments have suffered three major blows;

  • Our payment provider now requires customer’s wallets to use a Bitcoin Payment Protocol, while some wallets are simply not compatible,
  • Transaction confirmation times have increased, and then increased some more, both inconveniencing our users and increasing the underpay/overpay problem,
  • Transaction fees have gone through the roof, making the use of Bitcoin less and less attractive, especially for smaller transactions.

Obviously, this is causing some of our customers some grief. Some of the customers that choose to want to use Bitcoin payments exclusively will actually use profanity in expressing their frustration over these changes, but our support staff does not deserve that. I, for one, will defend my staff and cause those customers to find themselves on the losing end of this “conversation”.

> Continue Reading

Using and abusing memory with LMDB in Kube

Posted on: February 13th, 2018 by

When synchronizing a larger folder in Kube, you’ll notice that the memory usage is growing at an alarming rate.

Surely something must be wrong? Let’s dig into that.

> Continue Reading

Testing and prototyping in Kube

Posted on: February 7th, 2018 by

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

Don’t forget the attachments..

Posted on: January 15th, 2018 by

As me, you have probably been in this situation many times:

You spend hours on putting together the most perfect email presenting the project document that you have spent a month putting together, You select the most exquisite words from the vocabulary and make sure that every comma is in the right place and no spaces are left unaccounted for. You get ready for the perfect time to deliver this document to the influential audience of your mail. You press the SEND button – the email leaves your screen with a small sound ….

> Continue Reading

Incidents and Recurring Tasks

Posted on: January 9th, 2018 by

In the past, we’ve had several occurrences of DNSSEC signatures on DNS zones expiring — partly by not using our own product to the fullest extent of its capabilities. Embarrassing, if you ask me, but it’s more like a misappropriation of the features we did use, where we maybe should have used another feature better suited to our processes and collective work-flows.

So let me explain how we use Kolab’s features to battle our recurring task to refresh signatures, and why and how this is a task that requires manual intervention.

> Continue Reading

Announcing Service Windows: Reboot Weekend

Posted on: January 8th, 2018 by

As may have already been brought to your attention, some software mitigation is needed for vulnerabilities dubbed “Meltdown” (CVE-2017-5754) and “Spectre” (CVE-2017-5753, CVE-2017-5715).

If I were to summarize the issue with these vulnerabilities then in principle they would, when successfully exploited, allow reading memory that doesn’t belong to the process, the user or even the same operating system instance. In just that way, the Kolab Now infrastructure isn’t impacted.

However, we’re still going to need to patch this out. The only way we can is by updating software and rebooting systems, and this will happen during the weekend of Saturday January 13th and Sunday January 14th.

> Continue Reading