• Keyboard accessibility is suffering, because the buttons aren’t associated with a form. Most notably, pressing Enter when one of the text boxes is selected doesn’t do anything. You should put everything inside a <form> element, and then if you’re using <button>, decide whether it’s type=button or type=submit.
• A tad more subjective, but actual radio buttons are better than the buttons you’ve used for Metric/Imperial.
• As it stands, they lack a keyboard focus indication. (And the submit button has poor focus indication.)
• People don’t talk about heights in inches. They talk about them in feet and inches. You want to be able to accept feet and inches as two separate inputs. Not everyone who knows that their height is X′Y″ knows that means 12X+Y inches, and even more will make a mistake in calculating that, or just give up.
• If you switch between metric and imperial, and there’s a number in height or weight, it should probably convert the number to the chosen scale.
• If you just recalculated on input rather than on submit click, the experience would probably be smoother.
• Colour contrast on “Category: Overweight” is definitely too low. “Category: Normal weight” is also a little too low; underweight and obese are fine.
• Consider sometimes what related information might be useful. Every BMI calculator lists the categories, but something I somehow haven’t ever seen and yet which would be very useful for giving someone something to aim for is a mapping: for a given height, what weights do the categories correspond to? e.g. for 200cm, underweight = 0–74kg, normal weight = 74–100kg, overweight = 100–120kg, obese = 120–∞kg. Consider visualisations too. And mentioning what the calculation actually is that is being performed. Calculations are simple. Presenting them well is the harder bit.
I have implemented most points, except the 2nd and last ones. I felt its better to have buttons as they are easier to click. I'm figuring out how to implement the last point.
A suggestion for your speed converter: different sports use different units which your converter could support as well.
A few examples:
Running usually measures pace in minutes per kilometer or mile. That will be extra fun for you since it wouldn't be 4.33333 min/km but would be written as sth like 4:20 min/km.
Thanks for the great feedback! I've added pace units to the speed convertor, do check it out and let me know if you need any changes. You can send all requests at the contact form on the site too: https://www.calcverse.live/contact
Will aim to implement it within 24 hrs. Thanks again!
You're not the only one. I recently took up running and didn't particularly like any of the existing running pace calculators, so I made my own: https://calcubest.com/health/runningpace
And then kinda realized that there were others I wanted to have, and a few I thought others might want, so I added more.
A calculator is simple enough that it's fun to work on one when I need a break from something more complex but want to be able to do something other than doom scrolling. So now every couple of weeks I add another one.
I can second this. That's the program I started with. I'm now training for a half marathon using https://www.baa.org/races/baa-half-marathon/train/leveltwo and I've shaved like a minute off my mile pace while increasing my milage from 6 mile runs to 12 mile runs.
There's lots of programs for running and most of them seem good for improving performance.
No strength training in this?? I have been training legs for years along with runs (treadmill runs/uphill runs etc)... only problem my timing for the half marathon has gone down from 2h35 to 2h38 and then I had an accident last year which made me unable to run most of the second half of last year which has made things a lot tougher for me to train :(
- Fix your certs to not lose traffic when Chrome (at least at the default security level) puts up a scary "Your connection is not private" warning for net::ERR_CERT_AUTHORITY_INVALID and requires an override to proceed to your site.
One calculator I’ve come to love over the years is Numi. I keep it open all day every day and it does a pretty good job of bridging the gap between the typical skewmorphic calculator app and scilab or python. It’s a text based calculator that allows you to declare variables and do unit and base conversions and save and load your work. No graphing though unfortunately and i dont think it really has much in the way of plugin support.
Anyway not to say your calculators arent useful op, i just think that something that can be open on the desktop is more useful than something that is hidden in a chrome browser tab.
Haven't tried Numi, but I made a calculator with variables as a side project on a whim: https://calc.li/ - it is online, but there is no backend and you can save the whole page as an offline file if you want, using localStorage for state.
BMI calculators are dangerous tools in uncritical hands. Here is a link to the UK NHS page that provides such a calculator but only after it has described some of the limitations:
On the topic of calculators. I discovered Figr[1] on HN a while ago, and it really helps when doing one off multi variable thing, like helping a customer estimate their bill etc.
Kudos on building this. I occasionally search for these on Google and am always disappointed by the mess. Bookmarked.
A tiny bit of feedback, for you about unit conversion. I don't want to convert 47383974 seconds to hours, I want to know that it's 1 year, 6 months, 0 days, 18 hours, 51 minutes, and 18 seconds. I don't want to know that 7492837 inches. that's 624,403.0833 feet, but what I really want is for it to say 118 miles, 454 yards, 1 foot, and 1 inch!
Looks nice. Feedback: I was trying to enter "1000$" and "12%" (in the loan calculator) and it rejected my inputs ("Loan amount must be a positive number" and "Interest rate must be between 0 and 100") - could you just make it a bit more forgiving, if the units $ or % are included in the user input?
I create calculators in support of the guides I write for immigrants.[0] They are a great way to turn 10 pages of text into a simple form with a clear output. I'm a big fan of them, especially when you add advice to the output.
A bit of advice + opinions:
- The fields look grayed out and disabled. Using a traditional white background would make more sense.
- You should explain what the calculator does, why it matters, and how to interpret the output. This confers some SEO benefits, too.
- The age calculator would be easier to find as a difference-between-two-dates calculators. It would be cool to have a reverse "X days ago" calculator. I use both often, and most of the top options suck.
- Set some maximum line widths. It helps readability.
This is great. I really think that having a theme to iterate on is the best way of revisiting coding/math skills and learning new ones. And building things from scratch is so much more rewarding than snapping parts together. My free time right now is trying to rewrite 90s screensavers down to the rasterizer level, without consulting anything for how to do stuff like antialiasing.
One little note, just checking out your loan calculator: On my phone, the total interest div is cut off at the decimal point, and the total payment overflows the nice round rect holder. You could dial in the font size scaling with a bit of custom Javascript there. They stand out, too, because they're bottom line figures.
I have a question about calculator building, if anyone has a suggestion.
My industry revolves around quite complicated calculators, with anywhere from 10 to 50 data inputs - and the result are large projection tables and charts.
These still live in excel, but I would love to move then into a web app.
Is there a best practice way to go about this? I've tried basic html forms that pass to python for the number crunching (there are optimisations and Monte Carlos). But it gets so messy as the number of input fields increase.
Does a tool exist to simplify this process?
unless you want to dumb down the interface so it's more like a wizard, the best you can do is make a framework so the complexity is separate. ie, the business logic is separate from the application logic. without more details it's impossible to say how I'd simplify it but there's gonna be a lot of having to learn your specific use case before suggesting how to simplify it.
unfortunately the complexity has to live somewhere, the only question is how best to manage it.
Imagine that instead of compounding the interest every day, you wanted to calculate it every nanosecond. And then, every billionth of a nanosecond. If you keep dividing that until it’s an infinite number of infinitely small compounding, you get a super simple equation:
interest = e^(years*rate)
10% interest for 5 years?
e^(5*.1) = 1.649
3% for 8 years?
e^(8*.03) = 1.271
You can plug any numbers into that and get the end result in 1 step.
Sibling’s explanation is a great starting point! If you understand annual, weekly, and daily compounding, continuous compounding is the limit of what happens when the time you compound over becomes ever shorter. It’s not obvious without calculus, but it’s a well-defined function.
On the desktop, if you keep a Scheme interpreter installed, you can use it as a quick arbitrary-precision calculator, including support for fractions.
Guile is the most easily available one on a Linux system, though some others will give better REPL out of the box.
$ guile
GNU Guile 3.0.8
Copyright (C) 1995-2021 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> (+ 1/2 1/8 1/8)
$1 = 3/4
scheme@(guile-user)> (* $1 1/2)
$2 = 3/8
scheme@(guile-user)> (define rate 42)
scheme@(guile-user)> (* rate $2)
$3 = 63/4
scheme@(guile-user)> (define (foo x) (- x 1/32))
scheme@(guile-user)> (foo $3)
$4 = 503/32
scheme@(guile-user)> (exact->inexact $4)
$5 = 15.71875
scheme@(guile-user)>
You didn't like the parentheses and prefix operator syntax?
Syntax-wise, you could use Racket (or another Scheme, with a little more difficulty) to make a very thin layer over normal Scheme, and package it into a program called `calc`, like this:
Very nicely done. If I were to tweak something....
Some have different names once you click on them.
- "Speed" is "Speed and Pace."
- "Data Size" is "Data Storage"
- "Fuel Economy" is "Fuel Consumption"
On the Data Size / Data Storage calculator, I would add kilobits, megabits, gigabits, and terabits. In addition to data storage, that might make it useful as a bandwidth calculator as well.
A random dimensional analysis that I find amusing about fuel consumption units:
liters / 100 km => m^3 / m => m^2
(volume) / (distance) => (area)
This can be interpreted as the cross-sectional area of a hypothetical trough of fuel running alongside the road, whose contents you slurp up and consume in your engine as you pass (in lieu of using fuel stored in an onboard reservoir).
Another really fun one, though slightly less literal than L/100km, is charging rates in electric vehicles, which often present charge state as range (km), rather than energy stored (kWh); and so if it takes you one hour to gain 300km of range, well… you were charging at a rate of 300km/h.
(With in-flight refueling, you could potentially refuel an aeroplane at 300km/h at 300km/h…)
Related: Uncanceled Units <https://xkcd.com/3038/>. (“50 gallons per square foot” especially is similar to your L/100km: volume ÷ area = length.)
Just a side question but "while the rest of the world builds ai systems" makes me curious about what rough percentage of software engineers out there are working directly on building AI systems, even just on a front end level.
Assuming there's not an easily access exact percentage, just curious what people's perceptions are.
Probably less than a year before although be aware that "ai systems" in this context most likely also means so called "gpt wrappers" (RAG systems, integrations etc.).
Small data point: the software house I work for created a lot of those in 2024 because a lot of clients asked for it. However, clients quickly realized that it is not as quick and cheap as promised by AI companies and it requires a lot of work on their side to clean their data.
Thanks a lot for reporting this! I have fixed the issue, and improved the ui of the result given by the calculator. Do let me know if there are any more changes you would like to see.
I don't see the issue being fixed: try to calculate investment of $1M with 20% annual interest for a loan with 0.5y duration. The calc says the income would be 0.
You could ride the AI hype by turning these calculators into something LLMs can represent, then having them build them declaratively, then have another model test and rate the calculators repeatedly providing feedback... and 6 months later have the best calculator ever: the HP-12c
I really feel this, and I wonder whether it's us humans trying to reaffirm our higher reasoning, or whether it's a regression to trying to recapture a simpler age.
Hi noduerme, I'm the guy who wrote the original 'Kaos'. I stumbled upon the discussion about it, and have no idea how to contact you besides commenting here.
Hobby, I am a data engineer and definitely I will need to encounter AI. But assembly gives a different perspective of machines, make my brain hard-working and in case of societal collapse you need an assembler. We need more assemblers more cross-platform frameworks (collections of macros) and more emphasis on the way things work, like guides, articles. Not less.
What a coincidence, I used to be a data engineer too! Then I switched to building websites with NextJS. Totally agree with your point, I feel the same reasoning applies to higher level coding too, the best AI coding agents out there are at most a force multiplier, which means knowing how to code has even more leverage in the age of AI, allowing one person to do the work of an entire team.
fellow data engineer -- yeah i've spent the last 6 months reverse engineering binary data files for the elektron octatrack as a hobby project while waiting to see how the hype cycle plays out. deffo gives a new understanding of how the machine's internals work getting to grips with the underlying stuff.
edit -- i've looked at some assembly posts on here before and they often hurt my brain, so respect to you for digging into it.
I tried 0.00000000000000000000000000000000000000001 * 2 and it gave me 0. Precision on a calculator is very important, such operations should be exact. Please refrain from using floating point operations.
Ok. I need a fully accessible sci calculator that is keyboard accessible for all functions. Check out desmos site. Their calc isn’t bad but clear button isn’t keyboard accessible.
BTW I have always been thinking about making some native apps in the spirit of Borland Sidekick -- a lot of small, native apps that a programmer can use, or a business man can use.
I also built a unit converter (for android - https://unitmeasure.xyz). Best of luck, and even though LLMs are widely available, good tools still come in handy!
Ah! Sure is. I missed the sidebar when I looked through. Overall this is very nice. I typically use omnicalculator, this is a nice fresh look compared to that tool.
Thanks! If you need a new calculator, need to report a bug or any improvements I can make, you can reach out on the contact form on the site too: https://www.calcverse.live/contact
I aim to fulfil requests within 24 hrs on an average.
Good thing I missed out on metaverse and blockchain, or I'd be in debt.
Seriously, I have optimism about them too, just not jumping on that train yet.
Thanks for the feedback :)
• Keyboard accessibility is suffering, because the buttons aren’t associated with a form. Most notably, pressing Enter when one of the text boxes is selected doesn’t do anything. You should put everything inside a <form> element, and then if you’re using <button>, decide whether it’s type=button or type=submit.
• A tad more subjective, but actual radio buttons are better than the buttons you’ve used for Metric/Imperial.
• As it stands, they lack a keyboard focus indication. (And the submit button has poor focus indication.)
• People don’t talk about heights in inches. They talk about them in feet and inches. You want to be able to accept feet and inches as two separate inputs. Not everyone who knows that their height is X′Y″ knows that means 12X+Y inches, and even more will make a mistake in calculating that, or just give up.
• If you switch between metric and imperial, and there’s a number in height or weight, it should probably convert the number to the chosen scale.
• If you just recalculated on input rather than on submit click, the experience would probably be smoother.
• Colour contrast on “Category: Overweight” is definitely too low. “Category: Normal weight” is also a little too low; underweight and obese are fine.
• Consider sometimes what related information might be useful. Every BMI calculator lists the categories, but something I somehow haven’t ever seen and yet which would be very useful for giving someone something to aim for is a mapping: for a given height, what weights do the categories correspond to? e.g. for 200cm, underweight = 0–74kg, normal weight = 74–100kg, overweight = 100–120kg, obese = 120–∞kg. Consider visualisations too. And mentioning what the calculation actually is that is being performed. Calculations are simple. Presenting them well is the harder bit.
A few examples:
Running usually measures pace in minutes per kilometer or mile. That will be extra fun for you since it wouldn't be 4.33333 min/km but would be written as sth like 4:20 min/km.
Swimming uses min/100m or sec/100m.
Rowing uses min/500m.
If you add these then I'd be using this a lot!
Will aim to implement it within 24 hrs. Thanks again!
And then kinda realized that there were others I wanted to have, and a few I thought others might want, so I added more.
A calculator is simple enough that it's fun to work on one when I need a break from something more complex but want to be able to do something other than doom scrolling. So now every couple of weeks I add another one.
It's a free NHS audio program that guides your phase so that in 9 weeks you can do a 5k run.
There's lots of programs for running and most of them seem good for improving performance.
- Fix your certs to not lose traffic when Chrome (at least at the default security level) puts up a scary "Your connection is not private" warning for net::ERR_CERT_AUTHORITY_INVALID and requires an override to proceed to your site.
- Fix whatever reputation damage has caused you to be classified as a phishing site: https://phish.opendns.com/main?url=www.calcverse.live
Anyway not to say your calculators arent useful op, i just think that something that can be open on the desktop is more useful than something that is hidden in a chrome browser tab.
If I enter text into this HN comment box, hit back in my history, and then return, what I've typed is maintained.
https://www.nhs.uk/health-assessment-tools/calculate-your-bo...
Kudos on building this. I occasionally search for these on Google and am always disappointed by the mess. Bookmarked.
[1] https://www.figr.app/
I create calculators in support of the guides I write for immigrants.[0] They are a great way to turn 10 pages of text into a simple form with a clear output. I'm a big fan of them, especially when you add advice to the output.
A bit of advice + opinions:
- The fields look grayed out and disabled. Using a traditional white background would make more sense.
- You should explain what the calculator does, why it matters, and how to interpret the output. This confers some SEO benefits, too.
- The age calculator would be easier to find as a difference-between-two-dates calculators. It would be cool to have a reverse "X days ago" calculator. I use both often, and most of the top options suck.
- Set some maximum line widths. It helps readability.
[0]: https://allaboutberlin.com/tools
One little note, just checking out your loan calculator: On my phone, the total interest div is cut off at the decimal point, and the total payment overflows the nice round rect holder. You could dial in the font size scaling with a bit of custom Javascript there. They stand out, too, because they're bottom line figures.
These still live in excel, but I would love to move then into a web app.
Is there a best practice way to go about this? I've tried basic html forms that pass to python for the number crunching (there are optimisations and Monte Carlos). But it gets so messy as the number of input fields increase. Does a tool exist to simplify this process?
unfortunately the complexity has to live somewhere, the only question is how best to manage it.
> Your organization's policy prohibits access to websites categorized as Spam URLs. Return to the page you were previously viewing.
Feedback: the compound interest calculator doesn’t support continual compounding? That’s surprising, and also the easiest to compute.
Guile is the most easily available one on a Linux system, though some others will give better REPL out of the box.
You can also run a Scheme REPL within Emacs, with `M-x run-scheme RET`. Optionally with Quack. https://www.neilvandyke.org/quack/Fortunately, many languages have a rational type, even Python, which might be more ergonomic even if ratio literals aren't supported:
Syntax-wise, you could use Racket (or another Scheme, with a little more difficulty) to make a very thin layer over normal Scheme, and package it into a program called `calc`, like this:
Or do you want a bigger library of off-the-shelf numeric tools, like Python, Julia, or R?Some have different names once you click on them.
- "Speed" is "Speed and Pace."
- "Data Size" is "Data Storage"
- "Fuel Economy" is "Fuel Consumption"
On the Data Size / Data Storage calculator, I would add kilobits, megabits, gigabits, and terabits. In addition to data storage, that might make it useful as a bandwidth calculator as well.
liters / 100 km => m^3 / m => m^2
(volume) / (distance) => (area)
This can be interpreted as the cross-sectional area of a hypothetical trough of fuel running alongside the road, whose contents you slurp up and consume in your engine as you pass (in lieu of using fuel stored in an onboard reservoir).
(With in-flight refueling, you could potentially refuel an aeroplane at 300km/h at 300km/h…)
Related: Uncanceled Units <https://xkcd.com/3038/>. (“50 gallons per square foot” especially is similar to your L/100km: volume ÷ area = length.)
Assuming there's not an easily access exact percentage, just curious what people's perceptions are.
I didn't get any errors, just the wrong result (0).
I think the main problem is the poor choice of units: user should be able to select even days as units, not just months/quarters.
BTW assembly rocks :-).
edit -- i've looked at some assembly posts on here before and they often hurt my brain, so respect to you for digging into it.
https://news.ycombinator.com/item?id=43173022
0 + 0.00000001 gives 1e-8 (I see you’re displaying in scientific notation, hmm— I wonder how you’re storing it internally…)
Then multiplying that by 5 gives… -39.
Somehow 1e-8 * 5 is being parsed as 1 + (-8 * 5)?
Or more specifically, why not just use a different unit base, fixed point arithmetic doesn't come for free.
https://www.dictionary.com/browse/converter
Maybe a monospace font for those numbers too.
They key is finding unique calculators.
I aim to fulfil requests within 24 hrs on an average.
Seriously, this is great - solving problems for users seems to be hugely underrated here.