Concise Encoding
We had a great presentation about Concise Encoding, a proposed encoding standard that aims to be human and machine friendly.
Here’s a recording:
Concise encoding is element-oriented (similar to e.g. JSON) and tries to solve some issues in existing standards, such as lack of types, performance and security (one similar format is Amazon Ion).
In prerelease stage, feedback is highly appreciated, a reference implementation written in Go exists at:
We looked at the architecture and example iterators and builders and takeaways.
Usage examples:
Misc
Go has great tooling, especially for performance analysis: The pprof suite allows to understand runtime and memory issues of your program.
Additional helpers exists, such as
benchcmp or the
possibility to inspect changes over time, with the -diff_base
flag:
$ go tool pprof -web -diff_base cpu-prev.prof cpu-now.prof
Allocations can kill performance and sometimes they are not obvious, e.g. converting a byte slice to a string requires an allocation. However, you can manipulate a string header directly - but this is unsafe:
A few more interesting projects:
- https://pkg.go.dev/golang.org/x/tools/go/analysis/passes/fieldalignment
- https://github.com/dominikh/go-tools/tree/master/cmd/structlayout
- https://github.com/segmentio/encoding/tree/master/json
And a blog on contemporary computing architectures and performance: https://lemire.me/blog/.
Also, if you ever searched for
a gentle, opinionated, hands-on introduction to NixOS
please check out:
Finally, a short free course to improve your technical writing:
Thanks Karl for the presentation and everyone for dropping by.
Join our meetup to get notified of upcoming events!