Dropbox: Case study for NOT using Python

Posted by Prashant Deva on July 31, 2013

Interesting post over at the High Scalability blog about Dropbox’s stack.

Everything about it points towards not using python:

1. Needed to mix C with python
2. Had to write custom memory allocator
3. C for inner loops

None of that sounds like something that leads to ‘fast iteration’ (as is implied in the original post).

My IDE doesnt use enough memory

Posted by Prashant Deva on June 29, 2013


I have a powerful PC.

You see, I paid for those 24 gigs of ram. I don’t want them to go unused.

Yet, my IDE takes up less than a gig.

I want it to take more memory. I am fine with memory hogs. If using more memory means that i can get better features or faster release of products, go ahead take more ram. Ram is cheap.

I want every singly byte of that ram to be filled up.

Chronon 3.10 released

Posted by Prashant Deva on June 26, 2013

New in this release:

1. Support for TestNg and VMware vFabric Server in Eclipse plugin
2. Hit count shown in ‘Execution Path’ column
Now if you have a loop within a method, and a line is hit more than once, the green execution path column will list the number of times a line was hit.
3. Bugfixes

Chronon 3.9 – Easily Manage Your Recordings

Posted by Prashant Deva on May 15, 2013

Today’s release contains an updated Recording Manager with 3 simple tools to help you easily manage your recordings:

1. Descriptions
Add a description/comment next to any recording to help you remember its purpose.

2. Pinning
‘Pin’ a recording, so that during a ‘cleanup’, it wont be deleted.

3. Cleanup
Performing a cleanup deletes all recordings, except the ‘pinned’ recordings.

‘Pin’ important recordings and periodically ‘cleanup’ to keep only relevant recordings.

Chronon 3.8.1 released

Posted by Prashant Deva on May 13, 2013

Bugfixes and enhancements since 3.8:

1. Automated toString() in Locals view now shows field names

2. Event Range filter in Method History view allows you to use time bookmarks now.

3. Event Range and Thread filters in Method History override Global filter.

Java’s insane new versioning scheme

Posted by Prashant Deva on May 9, 2013

From the announcement:

The next Limited Update for JDK 7 will be numbered 7u40, and the next 3 CPUs after that will be numbered 7u45, 7u51, and 7u55. The next release will be a Limited Update 7u60, followed by CPUs 7u65, 7u71, and 7u75.

Using digits of PI would be easier to follow…

Chronon 3.8 – Introducing the Global Filter

Posted by Prashant Deva on

With today’s release we are adding another major feature that will make debugging much simpler with Chronon.

A lot of times, the amount of data that Chronon shows you in all the views can be overwhelming.  While we do have an extensive filter panel in the Method History view, we wanted to provide a simpler, faster way to filter data across all the views. This makes it easier for you to narrow down to the root cause of the issue.

Introducing the ‘Global Event Filter’.


The UI is integrated in the Timeline View. When you create or edit a filter, it is applied to all the views in the Chronon Debugger instantly!

Here is a video demonstrating the Global Event Filter.

Chronon 3.7 released

Posted by Prashant Deva on April 14, 2013

Lets see what we have this time:
1. Huge Bugfix for Mockito and Spring Framework

Bug was caused by faulty code generation by the cglib library used by these frameworks. Both the Recorder and Unpacker have been updated to now work around this. If you were seeing a ClassCastException during recording or a ‘cannot browse to method’ during debugging it was due to this bug.

2. Automatic toString() in Locals view


A long time coming, but finally here!. Now when you click on an array or an object or a string, you will see its contents auto generated as a toString() in the Locals view. Note that this does not use the toString() method in your object though.

3. Highlighting in Post Execution Logging View
Post Execution Logging view highlights expressions in blue.

4. ‘Event’ instead of ‘Time’ in the Debugger UI

The Debugger UI now correctly uses the ‘event’ label everywhere instead of ‘time’ since the ‘time’ value was really an event counter that you were looking at not wall clock time. This also removes the confusion a lot of people had as to whether the ‘time’ value referred to actual clock time.

« Previous 1 2 3 4 5 6 7 8 9 10 11 Next »