« Finessing Away Errors | Main | Tell Above, and Ask Below - Hybridizing OO and Functional Design »

September 26, 2011


Dean Wampler

It would be great to plot that curve on a log scale. If it's close to straight, you know you have a power law!


Yet another power law popping out in software! There is something amazing going on here... probably a byproduct of the way the human mind is organizing things.

The concept of Temporal Correlation reminds me of artifacts (source code) entanglement, as defined by Carlo Pescio

"Two clusters of information are entangled when performing a change on one immediately requires a change on the other"

the concept is explored here in relation to change:


but the real meaning of the term was introduced earlier:


As I see it, your chart is a sampling of source code entanglement (where samples correspond to changes that actually happened to the code). It would be interesting to see the same chart for different code bases (languages, developers, programming styles...), to compare shape and values.


Read Cosma Shalizi regarding the difference between a power law and a lognormal distribution. In particular, "looks straight on a log plot" is definitely not the same thing as a power law.

Also, if there seems to be an obvious pattern in your data, Tukey suggests transforming it to remove the pattern and look at the residuals; it's almost always more informative than trying to look past the obvious pattern in the original plot.

For example, this curve slopes up. Taking differences is easy (e.g. convolve with a kernel of [-1, 1]), and allows you to see the next effect.


How do you get the change event information? Some of it should obviously be tracked by any SCM, but identifying actual changes to a method seems quite a bit harder without a parser or ndepend-like tool to identify changes at the method level.

power balance wholesale

Once you have a sorted list of the highest frequency class pairs, you can march through them and see if there are any surprises. Temporal correlation of change across domain objects is particularly informative. Altering the correlation range from a day to a week can be useful too.

John Goodsen

Nice stuff, Michael. I really like the code analysis stuff you've been doing lately.

beats by dr dre headphones

Items arrive in the outlet stores when they are not sold in traditional Michael Kors retail stores or are slightly damaged in manufacturing or shipping. Typically, the "flaws" are unnoticed and often would have been realized through normal wear-and-tear anyhow. Often it could be something as minor as a slight scuff on the leather in an obscure place or a scratch on the metal buckle that holds the purse strap. Because of this, visiting a Michael Kors outlet store can deliver you a discounted Michael Kors purse at a significantly lower price. [ http://www.korsoutlet.net ]

The comments to this entry are closed.