0 purchases
unsure
Unsure Calculator #
If you want to run the Unsure Calculator from source, this repository
is for you. Otherwise, please go to
filiph.github.io/unsure to learn more
about the Unsure Calculator itself, and run it—for free—from your browser.
Web app #
The web calculator is in example/. To run it from source (assuming you have
the Dart SDK installed):
$ cd example/
$ pub get
$ webdev serve --release
copied to clipboard
Now, navigating to http://localhost:8080 will open the page. Changing
code in the project will trigger a rebuild. The --release flag is important,
because otherwise the web worker won't work.
To publish the example to
filiph.github.io/unsure, do the following:
Install peanut (only once): pub global activate peanut
Go to the example directory: cd example
Run peanut: peanut
Push the newly updated gh-pages branch to github:
git push origin --set-upstream gh-pages
Command line tool #
You can run the command line version of the calculator by executing something
like dart bin/unsure.dart "10 * 2~3" from the root of the repository.
To get help, run dart bin/unsure.dart --help.
You can compile the tool to a binary executable by running
dart2native bin/unsure.dart -o unsure. Then, call the binary like this:
$ ./unsure "10~20 * 42"
copied to clipboard
This compiled binary starts much faster than if you run the code through
dart bin/unsure.dart "...".
Note that the command line tool defaults to 1 million iterations (compared
to the 250K iterations of the web tool). That makes it a bit more precise
(meaning that the results will be a tiny bit closer to the truth, and
the histogram will be smoother). We can do this because Dart (compiled or not)
runs a lot faster than JavaScript. That said, in my experiments, 250K iterations
is precise enough.
Easy installation #
If you don't want to clone the repository and just want to try the command line
tool, you can use pub (part of the Dart SDK) to install it:
$ pub global activate unsure
copied to clipboard
Or, if you have the Flutter SDK installed:
$ flutter pub global activate unsure
copied to clipboard
You might need to follow instructions that pub gives you, but after that,
you can just run unsure as a regular command line program from anywhere.
Package #
Apart from that online tool, this is also a (beginning of a) package.
Read through bin/unsure.dart to see how it might be used.
Here's a more low-level example of use:
import 'package:unsure/unsure.dart';
void main() {
var principal = 1000;
var interestRate = Range(2, 4);
var time = Range(10, 12);
var calc = Calculation(
() => principal * (1 + interestRate.next() / 100) * time.next());
var result = calc.run();
print(result.simple);
print(result.histogram);
print(result.confidences[99]);
}
copied to clipboard
In this example, we defined one constant (principal), two ranges
(interestRate and time), and a custom callback that computes compound
interest given the above. The callback can be arbitrary Dart code: you are
not limited to the format understandable by lib/src/parser.dart.
Help needed #
There's only so much I (Filip) can do myself. If this is ever going to be
a truly open source project, I need to remove myself from a lot of the
ownership of this thing.
Can you help me publish the CLI binary to popular repositories such as
APT, Homebrew, or Nugget? I know how to compile the tool on each platform,
but I don't know what to do next.
Can you come up with more interesting use case or formula, and write
an article about it? The companion article at
filiph.github.io/unsure is already too long.
Similarly, can you record a video tutorial explaining the use of this tool?
Can you help me automate the creation of binaries for each release, for each
platform? I hear GitHub actions is the way to do it, but I've never done it.
If you're familiar with package:petitparser, can you help me rewrite the
formula parser so it's more helpful? In particular, I'd like it to give
more helpful feedback to the user.
Can you help me automate test coverage reporting?
Can you help me make the command line executable more stable?
Can you help me make the Unsure Calculator site into
a true Progressive Web App?
Can you help me put the range (~) notation into more calculators out there?
If you're interested in helping, please see if there's
an issue you might assign to
yourself, and if not, create it.
Language #
I've done some research on what people generally mean when they say things like
"certainly" in regular speech. This might be useful when talking about
probabilities with untrained statisticians (such as myself).
Noun
Adverb
Percentage
Sigma
All
Certainly
100 %
-
Almost all
Almost certainly
95 %
2
Large majority
Quite possibly
68 %
1
Bare majority
Possibly
50+ %
-
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.