Sam's Blog entries for March 2010
The Science of Naming
Date: Wednesday, 31 March 2010, 12:09.
Categories: perl, ironman, design, technique, basic, template-benchmark.
I've been working on Template::Benchmark some more this week and I've hit a brick wall, one entirely of my own stubborn making.
One of the major roadblocks to releasing v1.00 is that I'm unhappy with the name of one of the major conceptual elements of the module: I want to come up with a better name and, it being a major element, I don't want to change it after I've moved to a stable release.
Naming things well is something I'm extremely fussy about and one I've thought about often, so the factors that make a good name seemed like a worthy topic for this week's blog.
Wrapping Benchmark.pm to auto-correct custom controls
Date: Saturday, 27 March 2010, 20:28.
Categories: perl, ironman, benchmarking, analysis, module-wrapping, tutorial, basic.
Last week, in "Monkey-patching Benchmark.pm to auto-correct custom controls", we covered how to monkey-patch Benchmark.pm into giving us the results we wanted, and saw that one alternative method was to wrap the module instead.
This week, we investigate how to do this, and see what unpleasant surprises lie in wait when wrapping a procedural module.
Monkey-patching Benchmark.pm to auto-correct custom controls
Date: Thursday, 18 March 2010, 13:41.
Categories: perl, ironman, benchmarking, analysis, monkey-patching, hack, tutorial, advanced.
In "Advanced Benchmark Analysis I: Yet more white-space trimming", I mentioned that you could automatically take into account the cost of your control benchmark and eliminate it from the rest of your results.
This blog entry shows you how to monkey-patch Benchmark.pm to let you do just that.
Author/Release tests with Module::Build and Template::Benchmark
Date: Wednesday, 10 March 2010, 19:24.
Categories: perl, ironman, testing, release-testing, qa, module-build, template-benchmark, module-authoring.
Today I released a new beta of Template::Benchmark (v0.99_07) and one of the changes, along with the addition of 4 new template engine plugins (Tenjin, Template::Tiny, Text::Template::Simple and NTS::Template), is that it splits the author/release tests away from the install tests.
This was a royal PITA, so I thought I'd cover the how and why of what was done.
Advanced Benchmark Analysis II: Probing strengths and weaknesses
Date: Tuesday, 9 March 2010, 13:39.
Categories: perl, ironman, benchmarking, analysis, trim, regexp, optimization, advanced, tutorial.
In my previous blog entry, "Advanced Benchmark Analysis I: Yet more white-space trimming", I left you with the thought that our benchmarks changed with changing input.
This article shows you how to analyze those changes and how to draw conclusions from them.
Advanced Benchmark Analysis I: Yet more white-space trimming
Date: Friday, 5 March 2010, 09:43.
Categories: perl, ironman, benchmarking, analysis, trim, regexp, optimization, intermediate, tutorial.
Seems my previous blog, "Some simple "white-space trim" benchmarks" caught people's attention, and I've received some interesting suggestions and observations worthy of a followup article, this also gives me the chance to delve into explaining more advanced benchmark analysis.
So, deep breath, here goes.
Some simple "white-space trim" benchmarks
Date: Wednesday, 3 March 2010, 15:38.
Categories: perl, ironman, benchmarking, trim, regexp, optimization, basic, tutorial.
Laufeyjarson asked on Monday, about stripping whitespace from both ends of a string. The comments contains lots of suggestions, but no hard figures, so I thought I'd reproduce them here along with the code used to generate the benchmarks - it provides a simple example of how to write a quick and reliable benchmark.