Visualization of backoff functions

Failures are inevitable in any system. How it should be handled varies from one system to another. In job processing systems, a common approach is to retry the failed jobs for a fixed number of times before they are considered as permanent failures. A backoff function is used to determine the wait time between successive retries.

by ananthakumaran - 01 Apr 2017

Y combinator in small steps

The Y combinator is an interesting construct, allowing recursion without referring the function being recursed. In other words, call a function recursively, without naming it. We will go through one approach of deriving it.

by ciju - 16 Jul 2015

Mocha TDD like DSL in less than 100 lines

TL;DR A minimal synchronous mocha like DSL, in less than 100 lines of JavaScript. Code at

by ciju - 14 Jun 2015

Logging with Colors in JavaScript Console (Chrome/FF)

colorlog.js Helps with managing the information overload in JavaScript Console logs.

by ciju - 09 Aug 2013

Salary Reviews need not be black magic

When we started Activesphere we were very sure that we wanted to have a an open salary system, ie. everybody knows everybody’s salaries. We have stuck to it, and it seems to have worked well for us for the last 3 years. But come April of every year, we need to give hikes to people and it becomes really hard to figure out how to give hikes and who should get more and who should get less.

by Sreekanth - 25 Apr 2013

Gotunnel: make localhost server accessible over internet

To access a server on the internet, you need its IP address and port. Your local machine might be running behind a NAT. So, a server running on your local machine, might not be addressable from internet (ex: no publically visible IP). This is where localtunnel comes in. It makes the local server accessible over an IP (and port), on the internet.

by ciju - 26 Mar 2013

Scaling and Large numbers

Let’s take a pop Quiz.

An alter table on a MySQL database, takes 10 seconds to execute on a table of 30,000 rows.

How much time will it take on a table that has 80 million rows?

by Sreekanth - 07 Feb 2012

Node.js Patterns Presentation

I spoke at the JsFoo a month ago, It was a brief introduction to Node and things we dealt with when building Activenode(from the NodeKnockout).

by Sreekanth - 13 Nov 2011

Node toolbox

While searching for a node client for CouchDb, we came across quite a few node.js packages. 6 to be precise, to figure out the best fit for our project, we had to do a fair bit of Googleing and look at Github to see which ones are active and better fit for the project.

A lot of projects are defunct, have very little documentation or just experimental. It would be good to go to one place to find the right module and a general feeling of how good the module is.Turns out there is one, the Node Modules Wiki page. It shows simple wiki page that lists modules by categories.

Coming from the Ruby world which has a similar vibrant community and tons of gems, we felt there needed to be a version of the awesome Ruby Toolbox

So over a weekend we build a simple version of it and called it Node toolbox

by Nilakanta - 25 Oct 2011

NodeKnockout and

Last weekend we participated in the community driven 48 hour programming contest called Node Knockout. The idea is to go from an idea to production in exactly 48 hours using the wonderful Node.js. Noders from all over the world compete for the prizes that are awarded based on Innovation, Design, Utility and Completeness

by Sreekanth - 31 Aug 2011

From the begining programmer's bookshelf

We were looking for some book recommendations for some of the new people we hired recently. And here is an opinionated list of books and some of my thoughts around it.

by Sreekanth - 22 Aug 2011

Things we don't like about Couchdb

We love Couchdb, it is a workhorse, and we use it on a lot of projects. Obviously it does not fit everywhere. There are some places where it just does not cut it. I am trying to document a few issues we’ve been having with couchdb.

by Sreekanth - 27 Jun 2011

Goodbye Rails, Hello Node.js

A few months ago, I decided to play with node.js. The new server side JavaScript hotness and now I am hooked onto it. I use Ruby on Rails for most of my work. Though I am not a big fan of Rails, it is better than most things around and it’s in Ruby which I really like.

by Sreekanth - 21 Apr 2011

Rise of Symmetric Systems

For a long time we have been building software in a very standard fashion, put a web server in the front, a big application server and a standard backing database. This is the standard layered architecture. Most application stacks Rails or .Net for example assume a single database server, a few application servers, some web servers and a load balancer.

by Sreekanth - 30 Mar 2011

Restful design, Open formats and an Outlook Add-In

We mostly work with startups, and most prefer using dynamic languages like Ruby and Python. Occasionally though, we have worked on .NET/Java projects because they were really interesting. One such project was to build an Outlook add-in to synchronize mails, contacts and calendar to a CRM system. There was already an existing add-in we were replacing, because it had lots of bugs, and its performance was bad. We analyzed the problems with the existing design and moved towards a more RESTful design. Using a RESTful design helped us in several ways:

by Suresh Harikrishnan - 11 Mar 2011

Introducing Couchup. An interactive Couchdb Console

Recently a friend asked me how to fetch multiple documents from couch using a single request. Couch 0.90 and above provided the ability to post to couch the array of keys to return the matching documents. But he was having trouble getting curl to work correctly. I had to dig through the code to give him the actual curl request.

by Sreekanth - 28 Feb 2011

CouchDb: The Honda Accord of databases

We have been using with CouchDB at Activesphere, for some of our customer projects.

We looked at a few options before we eventually plunged into Couchdb ‘Relax’. I’m trying to list out in hindsight why CouchDb has worked out a good choice for us.

by Sreekanth - 19 Feb 2011

Activesphere: Long time coming

It took us a long time to post this first blog, but we are officially here now.

by Sreekanth - 10 Feb 2011