Friday, March 19, 2010

Blog from a standalone client

I am giving a shot at posting this blog entry from a standalone client. Like it very much, quite cool and awesome.

I also like that I can bold, italicize, underline, increase font size,

  1. number items
  2. Who is number two?
  • bullet them
    • bullets, like sub-bullets

So much more easily. There is also tables, pictures, etc, but I’ll get to them slowly.

Friday, March 12, 2010

Open source blows my mind again

I wrote the configuration parser for libcg sometime back. Dhaval helped make significant improvements to it as well. At the time we wrote it, I had imagined we would probably create about 20 or so groups, but I planned ahead and "hard coded" the limit to create 1024 groups. How forward thinking of me :)

This morning I got a message in my inbox that said

"I'm using cgroups for lots and lots of users per server (2.000 or more).The problem is, I'm using one cgroup per user (for memory reasons)." See

I was surprised to see that someone wanted to create so many cgroups, my first reaction was "Oh! my god" I hope we don't have a major bug in functionality or scalability.

I looked at the code and asked for counter that controls maximum number of groups to be scaled to something like 2048, hoping that the code would work, here is what I heard back.

"Yes!!! Thank you very much.. Its working now.. 37 thousand lines, 1400users (one cgroup for each user) :D Server is up and running now :D". See

They use memory cgroups in their setup both hard and soft limits, so kudos for testing the whole solution. I never expected that we would be able to parse those many lines and support that sort of a configuration. This is where open source wins, I was able to provide a solution in seconds and I am hoping more feedback from the end users will help drive all the technology they use and I develop in the right direction. Had our software not worked well, we would have fixed it to enable the end user at the earliest.

Open Source blows my mind again and again!

Dynamic programming for the binomial coefficient

More fun things, this time with some visualisation of what happens when memoisation is used and what happens when we don't. I don'...