Leipzig Gophers
blog

🔗Virtual Meetup #21 wrap-up

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:

Leipzig Gophers #21: Concise Encoding

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:

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!