Book Review: Software Design By Example

People can “learn to code” on so many websites, in little in-browser environments. Sites instruct on the basics of ‘for’ loops and ‘if’ statements. In advanced courses, learn algorithms and data structures. Writing toy programs is eminently teachable. Writing useful programs is something else. And writing them well is a mysterious art. Greg Wilson‘s new …

Read moreBook Review: Software Design By Example

Make https work on gRPC in Rust: load a root certificate into the TLS config

Why is this so hard? To send gRPC messages in Rust, one uses the tonic library. If you’re sending to an https endpoint, you’ll need to provide a ClientTlsConfig. By default, you’ll get a very distrustful one. Here’s the error message: the grpc server returns error (The service is currently unavailable): , detailed error message: …

Read moreMake https work on gRPC in Rust: load a root certificate into the TLS config

Run the OpenTelemetry Collector in Kubernetes for Front-End Tracing

TL;DR: Run the OpenTelemetry Collector helm chart with –values=values.yaml pointing to the values.yaml in this gist. Use kubectl get services to find the collector’s URL. The rest of this blog post walks through the whole process of setting this up. This will teach you the why and how of each step, so that you can adjust it to your needs. There’s also …

Read moreRun the OpenTelemetry Collector in Kubernetes for Front-End Tracing

startSpan vs startActiveSpan in OpenTelemetry JS

TL;DR: startSpan is easier and measures a duration. Use it if your work won’t create any subspans. startActiveSpan requires that you pass a callback for the work in the span, and then any spans created during that work will be children of this active span. I’m instrumenting a Node.js app with OpenTelemetry, and adding some …

Read morestartSpan vs startActiveSpan in OpenTelemetry JS

Starter Elm app that deploys on Netlify

It also works with VSCode devcontainers and on GitPod. Because Step 1 in any new project is a reproducible development environment, and Step 2 is get it in production. Step 3 is implement something. Copy this code: systemsthinking-dev/poker-in-elm at starter (github.com) This is my accomplishment for the day, so I’m here to share it with …

Read moreStarter Elm app that deploys on Netlify

a fire hydrant is sideways on the ground.

Run an OpenTelemetry Collector locally in Docker

This is an experience report for my future reference (and yours). The OpenTelemetry Collector is useful for receiving trace data in whatever format and exporting it to the back-end of your choice for storage and querying. For instance, I wanted to receive traces over HTTP/JSON from this sneaky browser extensionLINK and send them to Honeycomb. …

Read moreRun an OpenTelemetry Collector locally in Docker