add version, license, and readme
This commit is contained in:
parent
3d8b8040ab
commit
02eed74c51
4 changed files with 74 additions and 0 deletions
5
LICENSE.md
Normal file
5
LICENSE.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
# The Chaos License (GLP)
|
||||||
|
|
||||||
|
This software is released under the terms of the Chaos License. In cases where the terms of the
|
||||||
|
license are unclear, refer to the [Fuck Around and Find Out
|
||||||
|
License](https://git.sr.ht/~boringcactus/fafol/tree/master/LICENSE-v0.2.md).
|
36
README.md
Normal file
36
README.md
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
# Godiva, a flasher with a message
|
||||||
|
|
||||||
|
Godiva is a desktop application for transfering data from one computer to another by displaying a [possibly
|
||||||
|
endless] stream of [QR encoded](https://en.wikipedia.org/wiki/QR_code) [Raptor
|
||||||
|
codes](https://en.wikipedia.org/wiki/Raptor_code), and then on the receiving side, a camera to read
|
||||||
|
the QR codes and turn them back into the original content.
|
||||||
|
|
||||||
|
## what?
|
||||||
|
|
||||||
|
Raptor codes are a type of [fountain code](https://en.wikipedia.org/wiki/Fountain_code); fountain
|
||||||
|
codes are a way to encode data as a stream of error-correcting pieces of that data; as long as you
|
||||||
|
can read some number of pieces, you can reconstruct the original data. They're named like that
|
||||||
|
because you can think of them as like a fountain of water that is just pouring out. Anyone can come
|
||||||
|
drink from it, and then they'll have the water. So something can just be transmitting fountain codes
|
||||||
|
and not care if anyone is receiving, and receivers don't have to worry about missing something they
|
||||||
|
needed; they're guaranteed to get everything they need as long as they listen long enough. I think
|
||||||
|
that's pretty cool!
|
||||||
|
|
||||||
|
So the idea here is to give it a file (or short string of text) you want transferred to a different
|
||||||
|
machine (probably a mobile phone running a little app I'll be writing), and it will start producing
|
||||||
|
raptor codes for that file. Each piece of raptor code then gets encoded as a QR code, and then
|
||||||
|
displayed for a period of time on the screen. The user then holds up the receiving computer's camera
|
||||||
|
in order to receive the QR encoded raptor codes, and, *voila*, the file has been transferred!
|
||||||
|
|
||||||
|
# status
|
||||||
|
|
||||||
|
I literally just started this today, and currently it will produce a single QR code for a given
|
||||||
|
input string, and display that. Honestly, this is already genuinely useful to me; sometimes I want
|
||||||
|
to look at a url on my phone, and the camera app will let me look at a QR code and interpret text as
|
||||||
|
a link. But I hope to have a quick and dirty mobile app soon that will let me test streaming codes.
|
||||||
|
|
||||||
|
# about the name
|
||||||
|
|
||||||
|
[Lady Godiva](https://en.wikipedia.org/wiki/Lady_Godiva), in legend, rode naked through her town in
|
||||||
|
order to send a message to her husband about the plight of the downtrodden under his
|
||||||
|
landlordship.
|
1
VERSION
Normal file
1
VERSION
Normal file
|
@ -0,0 +1 @@
|
||||||
|
1
|
32
VERSIONING.md
Normal file
32
VERSIONING.md
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
# Golden Versioning
|
||||||
|
|
||||||
|
This software is versioned under a scheme I call "goldver", as an homage to the
|
||||||
|
vastly inferior [semver](https://semver.org).
|
||||||
|
|
||||||
|
## What does "goldver" mean?
|
||||||
|
|
||||||
|
When projects are versioned with goldver, the first version is "1". Note that it
|
||||||
|
is not "1.0", or, "1.0-prealpha-release-preview", or anything nonsensical like
|
||||||
|
that. As new versions are released, decimals from *phi*, the [Golden
|
||||||
|
Ratio](https://en.wikipedia.org/wiki/Golden_ratio), are appended after an
|
||||||
|
initial decimal point. So the second released version will be "1.6", the third
|
||||||
|
would be "1.61", etc., and on until perfection is asymptotically approached as
|
||||||
|
the number of released versions goes to infinity.
|
||||||
|
|
||||||
|
## Wait, didn't Donald Knuth do this?
|
||||||
|
|
||||||
|
No! He uses [pi for TeX and e for MetaFont](https://texfaq.org/FAQ-TeXfuture),
|
||||||
|
obviously COMPLETELY different.
|
||||||
|
|
||||||
|
## Ok.
|
||||||
|
|
||||||
|
Cool.
|
||||||
|
|
||||||
|
## What version is Godiva now?
|
||||||
|
|
||||||
|
Canonically, see the `VERSION` file. Heretically, once there have been
|
||||||
|
at least three releases, the version string in the `Cargo.toml` file will
|
||||||
|
always be of the form "1.6.x", where *x* is at least one digit long, starting
|
||||||
|
with "1". Each subsequent release will append the next digit of *phi* to
|
||||||
|
*x*. The number of releases can be calculated by counting the number of digits
|
||||||
|
in *x* and adding 2 to that.
|
Loading…
Reference in a new issue