These are the files used in "the dilators talk" that took place at dotGo 2019, in Paris.
You can watch the presentation here:
For the live demo (the code on this repo) a simpler version was used. The main difference is that the full version is "cloud-native."
(The differences and the conversion process are explained in detail in the article Needlessly Distributed Phallic Object Generator.)
While the simple version compiles into a single binary and runs locally on my OS, the full version uses Garden and has a more 2019 look to it:
- Functionality is split into loosely coupled microservices
- Running as lightweight containers
- That communicate via API calls.
And the configured workflow:
- Re-builds and re-deploys on every code change
- Can use hot reload, so containers can be update without restarting
- Uses the same tooling for all environments—local, CI, remote.
It also has a really cool frontend:
The full version can be found here.
This demo is made to run on Linux (it might work elsewhere, but I haven't tested it).
Besides Go, it requires entr
for file monitoring, and inkscape
to convert SVG files to PNG for visualization. (Inkscape is not necessary in the full version.)
You can install both with sudo apt install entr inkscape
on Ubuntu.
To then run it with live reload capabilities, do:
$ ls *.go | entr -r ./reload.sh
- Most of the demo took place in
mesh.go
. - Just find the big "FUN" banner and start un-commenting and saving.
- The results will output to
mesh.png
andvector.png
. - You can switch renderers between fauxgl and path tracer by commenting/uncommenting the relevant bits on
render.go
.