Tuesday, 16 April 2013

Google 2-step verification vs GTalk in Kadu

You want to have really secure mail account? You need to use 2-step verification process with cell phone as token. Google's GMail makes this very easy - just go to Security Settings of your Google account and enable it. On next login you will have to provide password along with special code sent to you by SMS.

Next thing that needs to be done is to allow Kadu to access your GTalk. 2-step verification can not be used, as Kadu has only one field for entering password. You need to create special application password just for it. Go back to Security Settings, click on Setting next to 2-step verification and select Manage application-specific password. Enter "Kadu" as application name, click "Generate Password". Enter this created password into Kadu's Account settings and you are done.

Saturday, 6 April 2013

Delivering

One of the most important thing in developing software is making releases. Almost no one will use your application, no matter how useful and stable it is, until it is released and has a nice version number (the bigger the better).

Releases

Making releases for Kadu is long and painful process. There is list of steps that must be done. Most of them are not automated, like:
  • create packages, sanity test them
  • upload packages into three different places
  • update git repositories (version branches, tags)
  • write release notes in two languages
  • publish release notes in four different places on two websites and one mailing list
Personally, I hate doing that. And for some reason I've never found time to automate most of the task. When I looked at the list last time, I've realized that most of these tasks could (and should) be automated. Of course release notes and announcements must be written manually, but what about all the other tasks? Lets check:
  • bugs checking on redmine - scriptable
  • translation checking - scriptable
  • git updates - scriptable
  • creating packages - scriptable
  • uploading packages - scriptable
  • sending mails to lists - scriptable
  • forum  - scriptable
  • blip - scriptable
  • kadu.im server stuff - scriptable
So we are left with only three things: writing some release notes (including taking screenshots and making screencasts) and updating our wiki and Wikipedia. If we replace our wiki with something simpler, like Wordpress or Drupal - we could get to just two manual steps. Also, we don't make release notes for bugfix releases. So we will need to do only one manual step in such case. That seems a lot better.

I'm sure that this is the way we need to follow. If we can do painless releases then we will be able to deliver software with less bugs faster. Maybe even weekly bugfix releases will be possible.

Delivering

After creating release we need to deliver application to end users. Fortunately most Linux distributions take care of applying updates automatically. So we are left with Windows and MacOS. For first iteration we will provide link to installer file in New Version dialog or notification. In second, we will automatically download it and run installer from Kadu (after user accepts it, of course).

Chrome has ideal solution for that. Updates are silent and very small (Google is using very clever executable diff files) and you are never ever informed about update - it just happens when browser is restarted. I don't think that we will be able to get that far with our manpower. But who knows :)

Time?

There are lot of things in Kadu that must be done. But this is base for them all. If we cant make releases then nobody will be able to use our new features and new bugfixes. So this task will be done as part of 1.0 release. Be ready.

Thursday, 4 April 2013

Maintainer needed for libgadu

Unfortunately Wojtek Kaniewski no longer has any time to take care of libgadu - the library that was the very base of Kadu since it earliest days. We are very grateful for all the hard work that he was doing over last 12 years and we wish him more spare time and good luck!

Now libgadu needs another maintainer who will be able to update it to the newest GG protocol with remote history support and other nice features. I don't know yet if we will be able to handle that, so if you want to help open source community - do not hesitate and take this project under your cover.