All posts by user

Calendar syncing

We quietly released a new feature a couple of weeks ago that we now want to announce to the world: you can have all your Kerika due dates appear automatically on your Mac, Outlook or Google Calendar!

All you have to do is go to https://kerika.com/preferences (or click on the Preferences link that shows up under your photo in the top-right of the Kerika app), and then click on the Start Syncing button on that page:

Calendar syncing
Calendar syncing

You can sync to your Apple/Mac calendar, your Microsoft Outlook calendar, or your Google Calendar.

Pick your preference, and Kerika will show you detailed instructions on how to start syncing.

Here, for example, are the instructions for syncing to your Apple/Mac calendar:

Apple Mac Calendar synching instructions
Apple Mac Calendar syncing instructions

And here are the instructions for syncing to your Microsoft Outlook calendar:

Microsoft Outlook synching instructions
Microsoft Outlook syncing instructions

And, finally, here are the instructions for syncing to your Google calendar:

Google Calendar synching instructions
Google Calendar syncing instructions

You will notice that we have deliberately obfuscated the actual calendar URL for this particular user, in all three images above.

That’s important: your calendar URL is unique and precious — don’t share it with anyone!

As your cards on your Kerika Task Boards and Scrum Boards get new due dates, Kerika will automatically feed these updates to your personal calendar: you don’t need to do anything.

Kerika due dates always appear as “all day” events.

Please note that it’s up to  Apple/Microsoft/Google to determine how quickly these updates show up on your calendar.

On your Mac Calendar, for example, you can set the frequency with which these updates appear by doing a right-click with your mouse on the calendar and selecting Get Info:

Mac Calendar Info
Mac Calendar Info

And then setting the “Refresh time” for that particular calendar. (On Macs, the fastest that iCloud allows is every 5 minutes.)

Setting calendar auto-refresh time
Setting calendar auto-refresh time

 

Changing your Kerika password

For folks who sign up directly with Kerika, we store the user password (in an encrypted form, of course), which means that these users can change their passwords directly from within the Kerika application by going to their My Account page at https://kerika.com/my-account:

Changing password for Google sign up
Changing password for Google sign up

For people who sign up using their Google or Box IDs, we rely upon Google/Box to manage their passwords: in fact, we never even see anyone’s Google or Box password, even for a second!

So, their My Account page looks a little different, like in this example of a Kerika+Google user:

Changing password for Google sign up
Changing password for Google sign up

 

Making it easier to download files from “Done” cards

Thanks to Steven Thompson, a consultant working with some of our users at the City of Kent, for pointing this out to us:

If a card is moved to Done, it preserves all its attachments, of course, but it is a little inconvenient to download these attachments directly from within Kerika itself: you would have to open that file in preview mode, and then download it.

We have simplified that process: now, if you hover over an attachment for a card that’s in Done, a “download” button will appear that will make it easier to download the attachment, without having to preview it first:

Downloading attachments from Done cards
Downloading attachments from Done cards

Technology strategy: a look back at 2015

A user from Mexico recently wrote to us asking which technologies we currently use for the Kerika software, since he was in the early days of planning his own ERP product and was impressed with the overall speed and responsiveness of Kerika.

The question was hard to answer with a simple email in part because we use several technologies, and because we are in the middle of considering some significant changes for 2016.

So, here’s an overview of the current state, with a future blog post to talk about what we are planning to change in 2016…

Our own server software:

All of our server software is written in Java.  That’s has worked well for us:

  • We have a lot of in-house expertise with Java (and none with PHP, Ruby, etc.).
  • Java is usually one of the first languages to be supported by other platform companies that decide to publish their APIs.
  • There is a rich ecosystem of open-source code, well-written blog posts and other knowledge sources that help us get our work done.

Open-source server software:

We use a few, well-established open source technologies on the back-end of Kerika:

  • We use the CometD protocol to provide real-time updates from the server to the browser client. CometD essentially works like a long-poll method, allowing for real-time updates to be pushed continuously from the server to the client without the client having to make new requests.  We could, and probably should, switch over entirely to Web Sockets but there are still older browsers out there that don’t support Web Sockets. Hence, CometD.
  • We use SOLR for our search engine. SOLR is an implementation of the Lucene search technology pioneered over a decade ago by Doug Cutting who has since gone on to do other great work in the software industry. SOLR is widely used by some very large SaaS services like Salesforce.
  • We use Jetty for our web servers.  Jetty is part of the Apache open-source projects, and is a well-established, robust web server that hasn’t given us any trouble in a long while. :-)
  • We use open-source OAuth for our direct signup.
  • We use the Java Spring and JBoss libraries for various features.
  • We use Log4J for error logging.
  • We use MySQL for our databases.

Platform Libraries

Given our close integration with Google and Box, we naturally use their Java SDK Libraries for authentication and file management.

We used to use Google Checkout, until Google yanked that service from the market (leaving us high-and-dry and more than a little pissed off…) as well as Google Contacts, until we realized this particular integration was scaring away potential users.

Client Software

All of our browser software is written in HTML5, which means a mix of (mostly) Javascript and (a little) SVG.

(Actually, the SVG is only used for the Whiteboards feature of Kerika. The rest is all Javascript and plain HTML.)

Open-source client software

The Javascript ecosystem is quite rich and well established, so there are a bunch of open source libraries we can make good use of:

  • JQuery is used a lot. A lot.
  • More recently, Backbone and Marionette have helped fill in the blanks left by JQuery.
  • The i18n.js library helps with internationalization, although we haven’t actually offered any language other than English so far, for the user interface.
  • Log4Javascript helps with error logging and debugging.
  • Bootstrap is used mainly for our website, to make it responsive on tablets and phones.

What changes in 2016?

Quite a lot, probably, but we haven’t finished doing our re-architecture planning.

For one thing, we are planning to use microservices a lot more to make our overall system architecture less monolithic, and we are also planning to use container technology to make deployments faster.

We might consider switching away from SOLR, which we never really mastered, to another search engine which we have more familiarity with, but haven’t made a decision on that either.

 

Migrating users from Kerika+Google to our own storage

We don’t offer this as a regular service — because it involves some special back-end work that can be a little time-consuming — but we recently helped a bunch of users migrate their accounts over from Kerika+Google to the new version of Kerika that lets you sign up directly with us, and have Kerika store your files instead of linking Kerika to a Box or Google account.

This is the version that you sign up for when you click on the left side of our Sign Up page:

Sjgning up directly with Kerika
Signing up directly with Kerika

 

With this option, Kerika stores your files for you using our new integration with the Box Platform.

Migrating away from Kerika+Google to this new platform helps our users save money: they could discontinue their use of premium (paid) Google Apps which they had adopted only to use as a sign-up mechanism for Kerika.

Handling this migration isn’t something we do for everyone, but this is one of our oldest customers. :-)

 

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!

You can now Copy and Paste Lines

In a recent update, we added a minor new feature: you can now copy and paste lines even if they are not used to connect any other objects on a Kerika Whiteboard.

We always let you copy and paste lines that were used to connect other objects, like in this scenario:

Copying objects connected by a line
Copying objects connected by a line

 

But now you can also copy and paste freestanding lines (i.e. lines that are not anchored at either end on anything else), like this:

Copying a freestanding line
Copying a freestanding line

 

The fact that copying/pasting freestanding lines was not possible before was actually a conscious design decision on our part, but looking back we can’t figure out why it seemed like a good idea at the time :-/