Finally, An Open Source Calculator

Microsoft has released the code for the Calculator app. This move is the latest in Microsoft’s efforts to capitalize on the Open Source community. Previous efforts have been the Open Sourcing of an extremely old version of DOS, and shoehorning Linux into Windows somehow in a way that’s marginally more user-friendly than spinning up a VM or popping over to your Linux partition. Oh yeah, Microsoft bought Github. Can’t forget that.

The release of the code for the Calculator app means now you too can truly verify all your calculations are correct. To build the Calculator app, you’ll need a Windows 10 computer and Visual Studio. You might think that this is the same code that’s been shipping for 30 years — it’s a simple calculator, right? Not so: the Calculator for Windows 8 had a strange and odd bug where the square root of 4, minus two, did not equal zero. Floating point is hard, kids.

Of special interest to the community, it’s now possible to disable telemetry sent from the Calculator app to Microsoft servers. Yes, the Calculator app knows you forgot how to divide, and wow man, six times nine, you needed help with that?  Fortunately, telemetry can be disabled in developer’s builds by disabling the SEND_TELEMETRY build flag. Now Microsoft won’t know you don’t do math so good.

At the time of this writing, we could not be bothered to contact Microsoft to find out when the pinball game or Ski Free will be updated and Open Sourced.

102 thoughts on “Finally, An Open Source Calculator

    1. I moved the original Microsoft calc over to my linux system just to get away from the obnoxious interface on the linux version. (The calc application works just fine under wine.)

      To take an example, in the linux calculator you enter “12 sqrt” and it does nothing, because you then have to press “=” to get the results. And when you press “=” it says “malformed expression”, so you have to cut the sqrt symbol out and put it *before* the 12 you entered, and then hit “=”.

      On other words, the standard calculator action of entering a number and pressing sqrt isn’t the linux way, it’s better… for reasons.

      As awful as the Windows version is, the interface is better than the linux one.

      1. You do realize there are dozens of if not hundreds of calculators available for Linux. Which one of these many are you referring to and how many have you tried? The standard calculator on Linux Mint requires you press the square root symbol then enter 12 and press enter. Why do you even use Linux with wine, if you believe Windows to be so superior why not just use windows?
        There are many more calculators available with graphing, scientific, programming, and statistical modes with chained calculations with rolling entries that can be reused on the fly. What more do you want?
        Try this in the mint calc = √12^2*3 then press enter and you will get 36.

      2. The problem is, you’re using the wrong “linux calculator” — if you used xcalc -rpn, it would just work, and not be a muddled mess of postfix unary and infix binary functions.

        1. Or Emacs calc: unit conversion, symbolic calculation, you name it. And integrated into org-mode, yadda, yadda.

          Or any other intelligent free software calc program (heck, some people like the REPL in Python or Guile for that — Guile, for example, can do arbitrary-precision fractions).

          Choice is sometimes hard. Better go with Windows 3.1 with THE ONE calculator…

        2. If you like RPN calculators, try orpie. It has far more functionality than xcalc’s RPN mode. It runs in a terminal, but you can make a GUI shortcut by launching it inside xterm, with: xterm -e orpie

      3. Do you people realize that you have just described the whole problem with linux on desktop?
        1) PWalsh have copied one file and solved his problem: Awful calculator GUI in his distro. (the need for calculator that does calculation same as simple nonscientific hardware ones with some sugar on top if you need it)
        2) everyone have different solution how he should have solved it better including:
        – commandline repl interfaces of programming languages
        – specific distribution that does this better.
        – run commandline tool in GUI mode.
        – use Emacs. (VIM people are not here today)
        – the only anwer that maybe solves it: use any scientific calculator in RPN mode..

        And this is freaking calculator app. The answer (for question that was not asked) should be have been a name of simple calculator app. There are probably hunreds of calculators for windows too, that does all these things and he did not go for them…..

  1. A jewel hidden inside this release is an MIT licensed infinite precision math library in C++, go here to get it: https://t.co/biRe1dwSx9 https://t.co/3pA49trQZl— Miguel de Icaza (@migueldeicaza) March 7, 2019

    https://platform.twitter.com/widgets.js

  2. I liked the old calculator (xp). It worked well. It didn’t have an awful UI. And it didn’t open a new instance when I hit the calculator key, it justbrought the current instance to the front.

    1. For those who are not fans of the ‘(ef)fluent user interface’ aka the ribbon, it is possible to transplant copies of calc and paint and notepad from XP onto 7 or 10, and opt out of that nonsense

    2. Just like everything else they’ve done since Windows 7 they just made it far worse. Everything bundled is turning into a big pile of fertilizer. We even have to replace the start menu for a sane one nowadays…

  3. The Windows for linux environment is actually pretty useful. I have used it a few times to run make files that would be a pain to do with a linux partition and a even bigger pain for Cygwin with its godawful package manager. I mean its niche but its cool to be able to quickly open debian and run linux commands in not even a full 2 seconds that would take maybe 30-40 seconds on a VM.

        1. sadly I can’t add exclusion due to domain policy, also some people in github issue report it does not help and still see lot of cpu spent in realtime protection. I wish I could simply turn off windows protection for linux processes.

          Also this simple example triggers it
          echo -n “Hello” >file
          while :; do cat file ; done
          I would expect the file is scanned only once and cached but it is scanned over and over. Compare speed of output with
          while :; do echo -n Hello ; done

  4. I know MS hate is hardwired into the DNA of many people, but Brian, MS has release a lot of open source software, some of it is very highly praised as well (well, not by the people with the just mentioned DNA).

    https://opensource.microsoft.com/

    That brings you to page 1 of 906, with 10 items per page.

    While Visual Studio isn’t open source, but it has allowed me to develop open source software with a great IDE for the past 10 years.

      1. My Mac does, twice daily, with a popup that can’t be dismissed without clicking it to go to the app store, waiting for the app store to load successfully on the Mojave page, then closing the app store. First time at 10am, second at 4pm. Half the time the app store fails to load, popup therefore stays open and you manually have to jump to the Mojave page.

          1. What is the application that is causing the popup twice a day. I’ts difficult to believe this is a Mac OSx issue and more likely a rouge app. I can try and recreate on my Mac or I’m sure there are plenty of others willing to jump in and help on most Mac forums but they will need to figure which app it is as I am pretty sure is is a specific app issue. On my windows machine I have to remove specific application update notification apps when popup several times from time to time – in fact MalwareBytes is doing this right now.

          2. Who is Vern? I was trying to offer help – what are you trying to do? I have Windows, Linux, and Mac machines and run Android on Raspberry PI and a Dragonboard 410c and develop applications and integrations on all these platforms along with full stack web, AWS serverless and Docker / Kubernetes experience . What background do you have?

        1. I also continuously receive notifications on a phone I have, stating that Hangouts doesn’t support SMS. If I dismiss it, it reappears in a few hours. If I were to block the notification, I wouldn’t receive any notifications of Hangouts messages, from anyone. I never used Hangouts for SMS on that phone, but the notification won’t go away, unless I install Google’s new SMS application, and keep it installed. I even tried installing it, then uninstalling it, but the Hangouts notification popped back up.

    1. “For every angel they anoint in public — they silently strangle 5 behind closed doors” (guild passage 11:26 )

      If you look into what they do to their own people, than you’d know the rhetoric they feed the public is nowhere near what happens internally.

      Windows 10 for ARM magically caused all the open platforms to suddenly develop QA problems.
      You will also find most websites grabbed by Microsoft develop problems with competing browsers. They know your boss won’t care about excuses why something is broken.

      Its like a cult, and your bosses knew before they hired you — that one day you will be sacrificed to HR churn for a cheaper and more gullible candidate.

      After about 20 years in the industry, you too will join the cult or change professions.
      They always win in the end…

      1. Sounds like a really great conspiracy theory. I goooogled “For every angel they anoint in public — they silently strangle 5 behind closed doors” (guild passage 11:26 ) and it does not exist yet, so may well have been written in the future and beamed back to us through a time warp?

        I’m going to an Ai seminar hosted by Microsoft next week – what pertinent questions should i ask?

        1. “Without faith they only [know] of blights cast upon cursed [wills] of prostitutes, soldiers, or slaves” (guild passage 17:1 )
          I am not sure if Google can handle ancient Aramaic, and some words can’t currently be translated very well. In my humble opinion the author seemed to be of the opinion that life had greater purpose than the questionable utility some find in their fellow man.

          Perhaps a more conventional understanding of human nature will put you at ease about AI:
          https://en.wikipedia.org/wiki/Lotus-eaters

          Yet if the promise of AI holds true, than we could lose ourselves and become something rather unpleasant:
          https://en.wikipedia.org/wiki/I_Have_No_Mouth%2C_and_I_Must_Scream

          A good question perhaps:
          “Please define general intelligence in ten words or less…? don’t worry about the artificial part, but don’t use euphemisms or anecdotes…”
          ;)

    2. Let me just remind you of something Microsoft did in the past. They gave away Internet Explorer. For free. Oh, right. They also made it work different from Mosaic, so that people would have to write their websites to work the Microsoft way, causing Mosaic (which complied (mostly) with the published standards) to display them wrong. This was a very deliberate attempt to drive Mosaic (and Netscape) out of the market. Microsoft doesn’t do ANYTHING for free.
      And now, after decades of swatting at the annoying FOSS gnats, Microsoft is gearing up to do the same thing to Linux. It will be easy for them: they’ll release a Microsoft Linux (only they won’t call it that, because, well, MICROSOFT), and they will make it not work with most people’s open-source code, and they’ll claim it’s for security reasons, so you have to sell your open-source stuff through their store in order for it to install. Oh wait. Maybe I’m thinking of Apple.

      1. Microsoft had a Unix, forty years ago. It was Microsoft Xenix, kind of cheap at the time, and maybe ran on an 8088, ie didn’t need memory management.

        Of course, it was Unix, not a clone, Microsoft bought rights to UNIX from AT&T. SCO was involved, though maybe not from the start.

        Michael

    3. “I know MS hate is hardwired into the DNA of many people”

      Win10 alone has started a tsunami of people loathing MS.
      But that’s expected when strongarming people into upgrading and then removing free choice after they’ve done that.

      Apparently making the end users choices and decisions matter and religiously respected no matter what is old hat for tech companies in the last 5 or so years, force shit on them and engage astroturfing campaigns instead.

  5. Am the only reader who finds the very idea of a “SEND_TELEMETRY” build flag as being extremely creepy. It is like collecting metadata about all users actions is being built into everything by default. It is really odd, because if your next door neighbour sat outside your house with a pair of binoculars and a logbook to track everything you did on your computer, I’m pretty sure you could get them put in jail unless they had previously obtained informed consent.

    1. On the plus side, being able to turn telemetry on and off on an application example is allowing a developer to analyze the telemetry protocol and filter it out in a router, globally.

      1. Yeah, but if they do that with calculate, do they also do it with notepad? If, like me, you write all your usernames, passwords and names of the family dog into the sweet innocent notepad app, is that data getting telemetrified into cyberspace?

        I’ll ask Microsoft next week when i see them.

    2. The old TI calculators can literally send telemetry if you plug in a DIY radio modem to the I/O jack. The only damn telemetry I would accept from my stuff is that which is beneficial to me and my other stuff.

      1. Those ToS are only legally binding in FreedomLand™, rest of the modern world is slowly smartening up now after all those times they’ve haemmoraged private data without explicit consent.

      2. Encouraging your cat/dog to push the button on a mouse button with their paw, as far as I’m aware has never actually been tested in a court of law, in any country, to qualify as an actual legally binding contract. Clicking on “I agree” or OK is not actually a contract. A contract requires full understanding by both parties, and that is typically not possible for an average person with excessively long documents written formal legalese.

  6. As someone who has recommended Microsoft products to many of my friends and prosituties. I’m really not going to spread the good news on their calculator app. It’s simply too powerful of a tool to keep in the hands of the general public. This calculator outputs a precision so detailed that I’m afraid it could be used to calculate trajectories for intercontinental missiles! Never before has such power been so accessible to so many people, so I am sorry to say makers but Microsoft’s calculator should only be reserved miltary purposes and Yahoo’s calculator should be reserved for civilian purposes.

  7. Nearly the entire .Net ecosystem is open sourced under a friendly licence and Microsoft contributes code to dozens of linux foundation and Apache foundation projects. I understand back in the 90’s Ballmer erra Microsoft earned some Ill will but things have changed. What I want to know is why the current cource of licensing in the Java ecosystem isn’t raising ire or at least eyebrows.

      1. I started to reply to this but just google it yourself. I could just as easily say no body cares about .net anymore because there are newer flashier things like GO, Node, Kotlin, Swift, Python, Scala, Haskel, Crystal, Lua, and all the Javascript frameworks. Sorry these flame wars never seem to die. Dot net is good but it is not better than everything else and will not take over any ecosystem outside of windows – but if you never leave windows your golden – well until MS changes their mind and tries to clone someone else’s success again, as they did when they created .net to compete with JVM, C# to compete with Java, and .net MVC to complete with Rails, SQL Server to compete with Sybase … the list is very long. They are awkwardly trying to clone Docker’s success and they are trying to catch up with AWS and Google’s serverless platforms. They have abandoned their much ballyhooed Edge browser for Chrome.

    1. I’m sure the NSA made them include it,
      it will help them in tracking drug traffickers and terrorists, because, you know, the bad guys need calculators to figure out money transfers…

  8. While I don’t have the GUI skill I wish that there was a TILP/Almost TI-8x) based communication program which could also run a emulated TI z80 calculators ROM dump but with virtual comm cable so I can do one of three things, mirror a cable connected TI-8x to the emulated calc using the real TI as a keypad(big deal) and or not mirroring the display, use the emulated TI clicking buttons with mouse, and also do the TILP calculator communication management.
    I like to have the real calc on my desk, as well as an emulator on my phone and tablet, would love on on my laptop(though input is a PITA w/o a special keypad or USB calc link), no learning curve that way. I also have several solar and battery TI-8x TI calcs(with LED backlight hack) in various toolkits, in with my sextant, and in my flight bag with wind drift and other programmed in formulae rather than using one of the expensive and limited specialized aviation pocket calculators.

  9. My personal favorite calculator app/program is PhyxCalc[1].
    You get
    – just an empty text window (like any simple text editor)
    – & can enter formulas wherever you want,
    – use arbitrarily named variables,
    – (re)evaluate any expression buy pressing enter with the cursor anywhere on that expressions line (shift+enter = newline),
    – many usable constants and (SI-)units,
    – can work with units and convert them (simple: “512W -> J/s =512J/s”),
    – and so on….

    [1] https://sites.google.com/site/xschirm/projekte/home

  10. Enabling SEND_TELEMETRY could actually be really useful as if Microsoft (MS) figures out you are reasonably intelligent it will update windows 10 with a completely different layout that allows you to change settings much easier, disable annoying things like downloading new updates just when you need a fast interweb connection, constantly harassing you about restarting your computer, then ignoring you and restarting the damn thing in the middle of the night, annoying the dog, and not turning it off again, then the next night …. Repeat until your hatred of MS increase to max x 110 % and dog starts biting you when you stroke it.

  11. Probing shots fired. They are field testing, I think. They want to see if they can get community help on other major components and get some traction on server share. starting with little stuff, they plan to move big.

  12. Ok, that’s cool. Anything released can’t hurt, even if it isn’t exactly a world-changing event to have yet another OSS calculator in the world. Telemetry though? Yah, that is creepy. Maybe they wanted to know how much use some of the more advanced functions were getting in order to decide what can/cannot be removed to simplify the UI. That’s about all I can think of for that one.

    Anyway

    Why bother with a PC (Win, Linux or Mac) calculator program at all? Almost all of us have probably been to High School right? Many of us have even been to college. Didn’t you have some sort of graphing calculator that you had to carry around every day? Didn’t it become very familiar to you after a while? I’m guessing for most it was a TI. Mine was an HP.

    Guess what. Emulators exist! HP is pretty cool about it. They actually release their old calculator ROMs as free, legal downloads! TI well.. come on. We all know the dark places. Don’t deny it! My old HP48G from my school days is long since dead and gone. (screen cracked). I still have the manual. AND I have the emulator app on my phone. AND I have a linux based emulator on my home PC. AND I have the Windows based emulator on my work PC.

    I will never have to learn the advanced features of another calculator again until the day I die. Unless I decide that I want to.

    So, there you go. For @PWalsh up above who didn’t like Mint’s default calc and either didn’t know there are dozens more available or felt copying calc to wine was easier, for all the people that chimed in to respond to him with their own Linux calc preferences and for everyone else who cares about a calculator application. Why are you wasting your time? Just use the one you were already forced to learn and is probably more capable than anything you will ever need anyway!

    1. Your proposal to use an emulator is as contrived as anything else. Calculators are not hard to learn, they just need to open quickly, do simple math operations and get out of the way. Anything more complicated you just grab a spreadsheet.

  13. I’ve seen a lot of people being very concerned about the telemetry in the app. So I’ve just looked through the published source code. If telemetry sending is enabled it will send broad things like application started, window focused, window closed, paste events. It also collects some information about which modes are being used, but it doesn’t send what you’re calculating.
    It’s essentially information about how the software is being used, so that it can be debugged if there are issues.

    1. *putting on his paranoid hat*
      Are you sure this source code is the one used to compile the calculator that is shipped with Windows?

      Seriously, even if they “only” log app started etc, this is scary enough. Linux FTW.

      1. Heh, I thought someone might say that.

        I’ve no issue with general, anonymised usage data like that being gathered. If it’s not gathered the only remaining chance of getting an insight into an issue is the user submitted bug reports, as a rule those are baaaaaad.

      2. Linux? Really, this is NOT an operating system issue. All of the popular desktop OSs allow programs to send data out over the Internet, without asking the user for permission explicitly. It would be impossible for many applications to work without this ability. Android has granular permissions that give you some idea of how intrusive an app may be when you install it, but even then, once permission is given, you have no control over WHAT data is sent. I’ve seen many Linux applications that report back to their developers, and I only know this because they said so – some even show you the report they’re about to send. But there is no OS restriction that requires permission from the user. Can you imagine how tedious it would be to use an application, if it showed you each packet before sending it, and asked for an “Ok”? The network of developers is vast, and not all of them follow the rule of nettiquette that provides the courtesy of asking before reporting to the mother ship. If you think that you are more secure by using Linux, you are fooling yourself.
        The closest thing you have to security when using any network-connected computer, is building every application from source code, using compilers and linker you also built from source. And not just the source code for the applications, but for every library they use. And of course, you actually have to scan all of that source code for suspicious things. From the few times I’ve tried to build major applications from source, I can assure you, practically nobody does this.

  14. “At the time of this writing, we could not be bothered to contact Microsoft to find out when the pinball game or Ski Free will be updated and Open Sourced.”

    I’m sorry. Y’all crack me up.

    I really hope they open source Alarms & Clock (and rename it to Clock), Camera, Voice Recorder and parts of other apps. People have found so many ways of improving the UWP Calculator but there was an issue on launch times and UWP apps are just slow. The very native Windows 7 calculator (which if you copy and paste into W10) launches instantaneously.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.