This is the twelveth article in a twelve-part series that discusses the twelve finalists and their calculator submissions for the OMGWTF Programming Contest. The entries are being presented in the order submitted, and the winner will be announced on June 18, 2007.


Out of all of the OMGWTF submissions, Entry #100342 (James Ng’s ExtensibleCalc) was the only one that shipped with ten DLLs. And for good reason: the ExtensibleCalc relies entirely on an external “calculation engine” to handle all of the mathematics.

The advantage to this level of extensibility is obvious: it protects the application against future change. Who’s to say that mathologists (like mathematicians, except with lab coats) won’t discover a new and better way of doing mathematics? It’s happened before (Nullity, anyone?) and it’s bound to happen again.

The ExtensibleCalc comes with several Calculation Engines. There’s the Test Case Engine (two actually, built only to work with our test cases), the Calculator Calculator Engine (outsources to calc.exe), the Chain engine (uses multiple Calculation Engines), and even a Skeleton Solution Engine (designed to run any of the other OMGWTF calculators that did not modify the UI). Our personal favorite, however, is the User Calculation Engine:

The ExtensibleCalc’s author, James Ng, is a Singaporean native and currently lives in Canada. His day job as an embedded software engineer has him editing (and occasionally adding) anywhere from zero to ten lines of code each day. But would he use the ExtensibleCalc?

Heck no! My Windows Calculator is invaluable because I need to convert between decimal and hex regularly, and to calculate offsets for memory maps and such.

Your loss, James. In the future, decimal 4919 may very well convert to hexidecmal 1AF0 one day. You never know...

Download Entry #100342, ExtensibleCalc (ZIP File)