Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nebkor/randical
A command-line utility for printing out random values of different types.
https://github.com/nebkor/randical
Last synced: about 7 hours ago
JSON representation
A command-line utility for printing out random values of different types.
- Host: GitHub
- URL: https://github.com/nebkor/randical
- Owner: nebkor
- License: gpl-3.0
- Created: 2018-10-23T22:48:50.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2022-04-17T20:37:24.000Z (over 2 years ago)
- Last Synced: 2024-08-12T13:15:44.803Z (3 months ago)
- Language: Rust
- Size: 31.3 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Radical Random Value Generator
```randical``` is a simple unix commandline utility to generate a series of
random values of varying types, with uniform distribution. See below for usage and examples.```text
Radical Random Value Generator 1.618033Generates arbitrary numbers of uniformly distributed random values.
USAGE:
randical [FLAGS] [OPTIONS]FLAGS:
--buel Prints either 'Here.' or 'Um, he's sick. My best friend's sister's boyfriend's brother's girlfriend
heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31
Flavors last night. I guess it's pretty serious.', with equal probability. Not compatible with `-t`
or `--bule`.
--bule Prints either 'true' or 'false', with equal probability. Not compatible with `-t` or `--buel`.
-e, --exit With equal probability, exit with either status 0, like /bin/true, or status 1, like /bin/false.
Technically compatible with all other options, but exit status will have no relation to any
generated output. Sets default number of values to print to 0.
-h, --help Prints help information
-V, --version Prints version informationOPTIONS:
-n, --num-vals Number of random values to print out. Defaults to 1.
-t, --type Type of random value to print. Defaults to 'bool'.
Possible values are 'b'ool, 'f'loat64, 'U'UIDv4, 'u'nsigned64, 's'igned64, and 'k'suid
with millisecond precision.
```Some examples:
```text
$ randical -n 3 # print out three bools
Bogus.
Radical!
Radical!$ randical -t u # 64-bit unsigned integers
5787939472744910229$ randical -t s # 64-bit signed integers
-3655402238002064604$ randical -t f # floating-point numbers from [0,1)
0.603028217883161$ randical -t U # v4 UUIDs
0237bf92-a629-440a-a1b5-ae32741b8ebd$ randical -e # exit with status 0 or 1, with equal probability
$ echo $?
1
$ randical -e
$ echo $?
0
$ randical -t k -n 3 # print out three "K-sorted UID"s; see https://segment.com/blog/a-brief-history-of-the-uuid/
27wOG5VmO0vOzDsk66ELjzDa20X
27wOG5WdjugQa5HTnGr9IABktzF
27wOG5WK0MgZ49lrBUNWGe6XDFI
```You can use it to do some simple modeling in a shell one-liners, like so:
- simulate a fair coin toss:
```text
$ for i in {1..10} ; do (randical -e && echo heads) || echo tails ; done
heads
heads
tails
tails
heads
heads
tails
heads
heads
heads
```- simulate an *unfair* coin toss:
```text
$ for n in $(randical -n 10 -t f) ; do echo -n "unfair coin is " ; ((($n < 0.25)) && echo -n tails) || echo -n heads ; echo " ($n)" ; done
unfair coin is tails (0.08358173070875441)
unfair coin is heads (0.6536652844106665)
unfair coin is heads (0.25506794504375785)
unfair coin is heads (0.8781122125361713)
unfair coin is heads (0.3413074383739916)
unfair coin is heads (0.9068801316813913)
unfair coin is heads (0.6210935828659315)
unfair coin is heads (0.834424540129461)
unfair coin is heads (0.5440078767522896)
unfair coin is heads (0.615928198757337)
```- simulate a *Sliding Doors*-style garden of forking paths alternate timeline for Ferris Bueller's
presence or absence on that fateful day:```text
$ for i in {1..5} ; do echo "----" ; echo "Bueller? Bueller?" ; randical --buel ; done
----
Bueller? Bueller?
Here.
----
Bueller? Bueller?
Um, he's sick. My best friend's sister's boyfriend's brother's girlfriend heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31 Flavors last night. I guess it's pretty serious.
----
Bueller? Bueller?
Here.
----
Bueller? Bueller?
Um, he's sick. My best friend's sister's boyfriend's brother's girlfriend heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31 Flavors last night. I guess it's pretty serious.
----
Bueller? Bueller?
Um, he's sick. My best friend's sister's boyfriend's brother's girlfriend heard from this guy who knows this kid who's going with the girl who saw Ferris pass out at 31 Flavors last night. I guess it's pretty serious.
```