A free, full-featured, graphically laid out, high-precision, scientific calculator for Mac OS X 10.6 and greater (and an older version offering support back to Mac OS X 10.2.8). Full source-code is available too.
Good if you need to enter large expressions or have extended precision. Data Drawers allow statistical data, linear regression and gaussian elimination. All parts of the program support complex numbers and hexadecimal numbers.
Download the current version: Magic Number Machine (v1.0.32). Size: 881kB
Download the source code: Magic Number Machine Xcode 8 project. Size: 983kB
Requires Mac OS X 10.6 or greater (Intel Mac, 32 or 64-bit). Source code requires XCode 8 or greater.
PowerPC users of Mac OS X 10.2.8 to 10.5 can download the special 1.0 Build which incorporates all major bugs fixed up to 1.0.22.
Magic Number Machine is no longer in active development. The program still works as advertised and I do occasionally release bug fixes, but I will not be adding further features.
While I make the code available, I do not consider it a good example of application design — most of Magic Number Machine was written 15 years ago and I was still learning about application development at the time (evidently attempting to learn from mistakes). If you want to see better-written code to learn how to program applications in Cocoa, please look at the examples on my blog, CocoaWithLove.com.
The program’s feature list goes something like this:
Changes in 1.0.32: Fixed a crash affecting trigonometry operations and improved 64-bit compatibility.
Changes in 1.0.31: Built using Xcode 8 and code signed.
Changes in 1.0.30: Fixed an issue affecting pasting of expressions. Thanks again to Dennis Liu for providing a solution to this.
Changes in 1.0.29: Updated icon for the application (so I can be mocked about my artistic ability all over again). Added basic export to PDF for the current expression. Included tidy up of display settings submitted by Dennis Liu. Fixed a bug where Italian translations were left out of the build. Fixed a bug where data functions could crash if there was no data.
Changes in 1.0.27: Fixed a bug where a some calculations caused infinite loops (busy/lock-ups) and a crash when the window in the English version was reduced to minimum size.
Changes in 1.0.26: Fixed keyboard focus issue with drawers. Also fixed decimal point keyboard shortcuts in German.
Changes in 1.0.25: Added Italian translations (thanks to Alessio).
Changes in 1.0.24: Fixed an issue where the window didn't appear on startup or disappeared on resizing.
Changes in 1.0.23: Changes include:
Changes in 1.0.22: Fixed a minor keyboard focus issue on application hide/unhide.
Thanks to the following people: