Category Archives: Technology

Posts related to technology in general.

Squashing even the tiniest bugs is important

squashed bug
squashed bug

What have we been up to lately, you ask?

Fixing bugs. Lots and lots of bugs, all minor but we don’t like to have any known bugs at any time.

We recently implemented some new error reporting services so that we can trap server and browser exceptions more efficiently.

This threw up a bunch of errors that we hadn’t been aware of before. Obviously these were minor, since no one had observed any ill effects before, but it’s long been a point of pride for the Kerika team that no known bug gets away alive.

So, we have been cleaning up even minor server exceptions, and obscure Javascript warnings from the browser console, so we have a completely clean slate.

One advantage of having a clean slate is that it makes any new errors immediately more visible. If you get used to ignoring some exceptions/warnings because you know they are not important, your team eventually gets desensitized to the presence of these errors and warnings, and bigger, more important issues start to get ignored as well.

Best to squash all bugs, no matter how small.

We have improved our internal systems for managing users and accounts

This isn’t something that you will see, as a customer, but we have spent several months improving our internal systems for managing users, accounts, payments and invoices.

We used to do things in a very ad hoc way before, as we concentrated all our efforts on improving the Kerika app, but we realized earlier this year that we had reached the limits of ad hoc approaches and needed a lot more automation to handle growth.

Everything, pretty much, is now automated: our admin staff can quickly look up any any user or account, see which payments have been made (online or offline), and manage changes to accounts.

The 6AM Task Summary Email is back

We used to have a feature that let you get a task summary email from Kerika everyday at 6AM that summarized all the things that you were responsible for that are overdue, due this week or due next week.

When we introduced the Views feature, we thought perhaps this 6AM email was not needed any more, so we took it out of the user interface for a few months — although people who had previously been using this feature continued to get their daily emails.

It seems like we underestimated the usefulness of this feature: new users started asking for something just like it, so we have brought the feature back. (And thanks for helping us understand we had screwed up in taking it away.)

You can access this feature from your Preferences page:

Daily Task Reminder Preference
Daily Task Reminder Preference

“Responsible for” includes not just the items that were assigned to you, but also items on boards where you are a Board Admin (and, presumably, have some responsibility for.)

This email can show your tasks organized in two different ways, and, if you like, you can get both sent to you every day:

6AM Task Summary Options
6AM Task Summary Options

A typical task summary, where tasks are grouped by date, would look like this:

Example of 6AM Task Summary
Example of 6AM Task Summary

The board names and card names are also links that you can use to open the relevant work item.

Enjoy, again.

 

 

An improved way of moving boards from one Account to another

As part of our next release, which will include a new billing system, we will make it easier for you to move boards that you own to another account.

This can help in several scenarios:

  • If someone is leaving a team, it’s good practice to have their boards transferred to someone who will remain, so that ownership of project assets — the boards and all the content in the boards, including documents — remains with the team.
  • More importantly, it is good practice to stay away from having individuals own boards, and instead use service accounts to be the single Account Owner in your organization.

A service account is an omnibus account, typically set up with an email address like kerika@example.org, that isn’t associated with a single individual.  A service account will never quit, never get fired, or take a vacation because a service account is not a real person — it is simply an account/ID used to be the permanent, omnipresent, owner of project assets so that team turnover doesn’t disrupt anyone.

If you own a board, you can move it to another account, i.e. effective change its ownership, by selecting the board on your Account’s Home, and clicking on the Board Actions button which appears on the top-right corner of the board card:

Board Actions Menu
Board Actions Menu

This will bring up a small menu of actions that are available to us as the board’s current owner:

Board Actions
Board Actions

(Note: this menu can also be accessed using the right mouse button.)

When you select the Move to another Account action from this menu, we will present you with this new dialog box:

Move Board dialog
Move Board dialog

A list of “known collaborators” is presented to you by Kerika to make it easy to select a coworker with a single mouse click, but you can also move the board to someone else, who isn’t part of your current Kerika collaboration network.

If you type in an email address, Kerika will immediately check to see whether this email address is that of a known Kerika user, before letting you proceed further:

Checking if new owner is a Kerika user
Checking if new owner is a Kerika user

We think these improvements will make it easier for our users to manage their organizations boards, and move towards consolidated ownership for easier asset management.

Tripped up by an unkept Promise

As you know, Kerika is a Web Application: everything runs inside a browser, without the need for any plug-ins or add-ons.

We achieve all this with a ton of JavaScript code (and a sprinkle of SVG, for our Whiteboards.)

One, significant, disadvantage of JavaScript is that it is “single threaded”: two bits of script cannot run at the same time; they have to run one after another.

So while Kerika is running inside a browser on your laptop, our JavaScript has to share a thread with lots of other stuff that’s going on, such as painting, updating styles, and handling user actions.  All of this has the potential to slow down Kerika, while the JavaScript code waits for something else to finish.

To get around this, we used JavaScript’s Promise function: this let Kerika’s code get going with its normal business while waiting for other browser functions to finish.  What we didn’t expect, however, was that the Promise function isn’t supported by Internet Explorer 11. (Although it is supported in Microsoft’s Edge browser.)

This caused problems for all of our Internet Explorer 11 users — people using Chrome, Safari, Firefox or Edge were unaffected.  We finally figured out what the underlying problem was, and did a workaround using a polyfill, which is a way to provide new functionality in older browsers that don’t support it natively.

Managing the privacy of your Kerika boards

Kerika offers a great deal of control over how each board is shared:

  1. A board can be made public to everyone.  This makes sense for open-source projects and many nonprofit and advocacy groups, where the goal is to get maximum visibility and publicity rather than to hide the details of what the project is about.

    Making a board public means that anyone who has the URL of the board can view it, even people who are not Kerika users.  Note: we are talking about viewing the board; viewing doesn’t mean anyone who isn’t part of the board team can make changes.

    If a board is viewable by the public, it can be found by anyone using Kerika’s search function.

  2. A board can be viewable by everyone who is part of the account team. This is the default setting, and it makes a lot of sense for most organizations: you want your coworkers to be aware of what your team is doing, unless the project is particularly sensitive.

    An account team consists of everyone who is a Team Member or Visitor on any board owned by the account.

    As people get added to individual boards, they are also automatically added to the account team.  When someone is removed from every board owned by an account, they are automatically removed from the account team as well.

    As with public boards, described above, we are talking only about viewing, not changing: only people who are Board Admins or Team Members on a particular board’s team can make any changes to that board. (And, of course, the Account Owner who owns the board.)
    If you use Kerika’s search function, you can find boards that are being shared with the account team, provided you are part of that particular account team.

  3. A board can be kept private.  This means that only the people who are listed on the board’s team — as a Board Admin, Team Member or Visitor — can view the board.  (And, of course, the Account Owner who owns the board.)

    This is appropriate for any sensitive projects, e.g. stuff related to personnel matters or confidential contracts.

    Private boards can’t be found by Kerika’s search function either, and it doesn’t matter if you know the URL for the board: only the specific people listed on the board team can see anything related to that board.

For each board owned by an account, the Account Owner or Board Admins can manage the board’s team: decide who is part of the team, and what sort of role (Board Admin, Team Member, or Visitor) each person has.

  • Board Admins and Team Members can make changes to all the items on the board, including any documents attached to the board.
  • Visitors have read-only access to the board and all its documents.
  • A person’s role can be changed at any time by the Board Admin or Account Owner: the effect is immediate, and extends to all the documents associated with the board as well regardless of whether you are using Google or Box for your file storage, or whether you are storing your files with Kerika.

A board’s team and current privacy settings can be viewed by clicking on the Team button that appears on the top-right of the Kerika app, when viewing a board:

Board Team button
Board Team button

Clicking on this button brings up the Board Team dialog:

Board Team dialog
Board Team dialog

Each person who is part of the Board Team is listed in this dialog, in alphabetical order along with their role.

At the bottom of the dialog is the board’s current privacy setting: in the example shown above, the board is being shared with everyone who is part of this user’s account team. (We have obscured the URL in the screenshot for security reasons.)

If you are a Board Admin or the Account Owner, you can change the privacy of the board using the Change Privacy link that’s shown on the bottom of the dialog:

Board Privacy options
Board Privacy options

So, every board can have it’s own privacy settings: private, shared with account team, or public.

When you are viewing the boards in an account, Kerika shows clearly what the privacy setting is for each board:

Privacy settings, at a glance
Privacy settings, at a glance

If you are part of someone’s account, you will be able to create new boards in that account: you will automatically be a Board Admin on those new boards, but the owner will always be the account you are working in.

You can set your privacy preferences for each account; this will determine whether new boards you create are automatically shared with your coworkers or not:

Privacy preferences
Privacy preferences

All your preferences can be set at https://kerika.com/preferences.  The default setting is Share with Account Team, which works well for most people, most of the time.