Tag Archives: Bug

About bugs we found and fixed.

Bug, fixed: handling non-English characters

This is kind of annoying and embarrassing, but a while back a bug crept back into our code that made non-English characters appear as question marks.

Embarrassing because we have fixed this bug before. More than once.

This time around the bug crept back in while we were taking care of some other feature, and unfortunately it was one of our (Chinese-speaking) users who spotted it before we did.

Our own team is multilingual (3 languages) but we work almost exclusively using English, so this was one of those rare scenarios where we didn’t use a particular feature of Kerika and so developed a blind spot.

Sorry about that.  The good news is that the fix is retroactive: any non-English characters that you had previously entered will not appear correctly, without any work on your end.

Bug, fixed: holding down the Enter key while editing project descriptions

Thanks to one of our long-standing Kerika users (over in Gdansk, Poland) for spotting a bug that we have fixed: if you held down the Enter key for “too long” (which is kind of a vague description, we know) while editing a card’s description, some junky HTML text would appear:

Card description bug
Card description bug

 

It was an odd timing issue that we hadn’t noticed before. Thanks for helping us find this bug!

Bug, fixed: Confirmation emails were not working correctly

Our thanks to Larry Smith from EduTone who initially alerted us to a bug in the process of signing up as a Kerika user: the confirmation email sent by Kerika wasn’t working well, particularly if the user used any browser other than Chrome.

For example, clicking on the confirmation email and having Kerika open that link using Firefox or Chrome produced this kind of behavior:

Safari problem

The problem was related to a recent decision we made to use Polymer for parts of our website.

It turns out that Chrome had a different sequence for loading the Polymer components than other browsers.

In Chrome the sequence is

  1. webcomponent-lite.js
  2. element.vulcanized.html
  3. build.min.js
While in browsers like Firefox the sequence is
  1. webcomponent-lite.js
  2. build.min.js
  3. element.vulcanized.html

Our build.min.js file needed components that were loaded only when element.vulcanized.html was loaded, which meant that the sequence in which these files were loaded by the browser was important, and  different browsers were loading these files in different sequences.

We fixed this bug: Polymer has a method to ensure that all imports are ready before the page is rendered.

This has been part of the learning process for us as we adopt Polymer more for our website redesign (which is underway, and should be unveiled by Christmas), and also consider using Polymer to rebuild the Kerika app itself!

Bug, fixed: sometimes email replies to chat weren’t working

(Thanks to our users in the Washington Professional Educator Standards Board for helping us find this bug.)

We recently discovered a rather quirky bug that was causing some chat, when replied to as emails by the recipient, to not get sent properly.

Here’s what is supposed to happen, and what went wrong:

  • If you are assigned a card, on a Task Board or Scrum Board, you will get email pushed to you whenever any other Team Member (or Board Admin) chats on that card. This helps you stay in the loop on the most important items on a project board: the ones you are currently assigned to do.

    (Board Admins have the option of getting all chat, on all cards on the board that they manage, pushed to them as emails, if they want to really be in the loop with every conversation that is going on in the board.)

  • When chat gets pushed to you as email, it shows up looking just like regular email, and you can reply to it wherever you are dealing with your email: your desktop, laptop or mobile device.
  • When you click on the “Reply” button in your email client, Kerika automatically changes the address for that reply to be the URL that points to the specific card (or canvas) that’s being referenced in the chat.

    Here’s an example of chat email:

    Chat example
    Chat example

    And what clicking on the Reply button does:

    Replying to Chat Email
    Replying to Chat Email

    In the above example, although the chat email came from Cheryl, the reply is being sent to a special address:
    “Card-nj3j@kerikamail.com>”

  • This email is received by a server that listens only to chat replies. When a chat reply is received by the server, it checks to see who the reply came from.
  • Since only Team Members and Board Admins are allowed to participate in the chat on a particular board, the Kerika chat server tries to make sure the email is coming from someone who is authorized to comment on that particular card or canvas.

    (This helps reduce the possibility of spam email appearing inside your Kerika conversations.)

The problem we found is that some email clients, e.g. the native Mac Mail client, handled the “From:” and “Sender:” fields differently from other email clients like Gmail.

In the case of Gmail, Google places fills in both the From and Sender fields, but in the case of Mac Mail, only the From field is filled in.

For now, a temporary fix is to have the server look for both the From and Sender fields, but longer-term, as part of a server re-architecture that we are planning, this problem will get solved differently that further reduces the possibility of spam.

Bug, fixed: Team Members weren’t getting notification emails when they were assigned cards

Our thanks to Tatjana and Steve from Ducks Unlimited in Canada, who helped us track down a bug that was stopping notification emails being sent properly when a Team Member is assigned a card on a Task Board or Scrum Board.

(Board Admins were getting these emails when people’s assignments changed, but not the Team Members themselves.)

We fixed this with our latest release.

Bug, fixed: handling filenames with Cyrillic characters

A Russian user kindly alerted us to a bug that we have now fixed: filenames that used Cyrillic characters were not getting uploaded correctly, because of an encoding problem.

The problem had to do with Kerika not using a sufficiently large character set, which resulted in some languages not being supported properly.

We have fixed that by moving away from the UTF8 character encoding to UTF8MB4, which is an encoding format used by MySQL databases.

UTF8 uses a maximum of 3 bytes per character, which limits the range of languages that can be supported.  UTF8MB4, however, uses a maximum of 4 bytes per character which considerably extends the range of possible characters.

Bug, fixed: Exporting from a Kerika+Box board now shows user names correctly

We found a weird bug related to the export feature for Task Boards and Scrum Boards that affected users of Kerika+Box, and it has to do with the way Box keeps track of user names that’s different from the way Google keeps track of user names.

Both Box and Google ask for your first name and last name when you sign up, but their content APIs — the programming interfaces that Kerika uses — differ in the way they provide these names to Kerika.

Google gives us the first name and last name separately, e.g. it would tell us a user’s first name is “Arun” and his last name is “Kumar”.

Box, however, gives us both names together, as “Arun Kumar”, and this presents a problem because we can’t always figure out what the last name is.

And, by the way, given the wide range of cultures represented by our users, it’s far from easy to guess which part of a name is the “last name”.

For example, consider Latin American name like “Maria Beatrice Fernandez Rosario”.  Here, the last name is probably “Fernandez Rosario”, but we can’t be sure.

The bug showed up when people did exports, by appending “null” to the name — basically this meant Kerika didn’t know what the last name of the user was, and simply tagged it as “null” (which is computer-speak for “I have no idea”).

We have fixed this.

Bug, fixed: a scenario where you could have ended up with duplicate tags

We found a scenario where your Scrum Board could end up with duplicate tags. Let’s say you had a Shared Backlog which had some tags, and you also had a Scrum Board Template that had some similar tags.

If you created a new Scrum Board using that Backlog and that Template, you could have ended up with some duplicate tags, which is not at all helpful.

We have fixed this.