Link: https://www.calcverse.live
Tech Stack: Next, React, Typescript, shadcn UI, Tailwind CSS
Would greatly appreciate your feedback on the UI/UX and accessibilty. I struggled the most with navigation. I've added a search box, a sidebar, breadcrumbs and pages with grids of cards leading to the respective calculator or unit convertor, but not sure if this is good enough.
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 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:
$ python
from fractions import Fraction as f
f(1, 2) + f(1, 8) + f(1, 8)
# 3/4BTW assembly rocks :-).
Feedback: the compound interest calculator doesn’t support continual compounding? That’s surprising, and also the easiest to compute.
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.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.
• 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.
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
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.
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.
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!
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.
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.
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.)
Or more specifically, why not just use a different unit base, fixed point arithmetic doesn't come for free.
Seriously, this is great - solving problems for users seems to be hugely underrated here.
If I enter text into this HN comment box, hit back in my history, and then return, what I've typed is maintained.
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.
> Your organization's policy prohibits access to websites categorized as Spam URLs. Return to the page you were previously viewing.
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.
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)?
Maybe a monospace font for those numbers too.
They key is finding unique calculators.