/dev/jcheng
  • About
  • Articles
  • Pages
  • Reviews
  • Tags
GitHub

Articles

June 3, 2021

Post of the Week 2021-06-03

Humans and incentives, and why some metrics (or objectives and key results) should not be public.

http://rachelbythebay.com/w/2021/06/01/count/

read more
May 29, 2021

Post of the Week 2021-05-27

Systemd, the good parts

https://lobste.rs/s/po98o2/systemd_good_parts

read more
May 16, 2021

Post of the Week 2021-05-13

My thoughts today led me to reading about nuclear wastes. It turns out that what we call “nuclear waste” is a pretty vague term.

A light-water reactor generates different kind of “waste” from a molten salt reactor. A traditional light-water reactor doesn’t consume fuel efficiently. It leaves behing partially consumed fuel that is not economically attractive to refine for further use. These partially spent rods continue to generate heat and are sometimes stored in cooling pools. Wastes from light-water reactors contain plutonium, which can be used to create atomic weapons.

read more
May 4, 2021

Post of the Week 2021-04-06

Grammar visualizer

https://dundalek.com/grammkit/

  1. Which leads to a JS parser generator

https://pegjs.org/online

  1. And also leads to a JS parser generator with a visual debugger

https://ohmlang.github.io/editor/

This also prompts my interest into a graphviz/dot parser

https://github.com/awalterschulze/gographviz

Which uses this Go parser generator

https://github.com/goccmack/gocc

This exploration also led me to this Go parser generator

https://github.com/alecthomas/participle

read more
May 3, 2021

Unit Tests vs Integration Tests

I used to favor automated integration testing. Now, I find myself walking away from it. I no longer find it worth the cost of setting up and maintaining such tests. I now rely mostly on unit testing.

First, I need to define what I meant by those terms. In context of this post, unit tests

In Wikipedia

unit testintegration test
automated, not alwaysnot specified
ranging from entire ‘module’ to an individual functionmodules tested as a group
depends on execution conditions and testing proceduresdepends on unit test/implies modules are already unit tested

From Martin Fowler

read more
April 18, 2021

Posts Of The Week 2021-04-15

Lots of small things today.

History

“Those who cannot remember the past are condemned to repeat it”. I love reading about how software came to be the way they are today.

Before we can talk about where generics are going, we first have to talk about where they are, and how they got there.

https://cr.openjdk.java.net/~briangoetz/erasure.html

Go Errors

Error handling is still jacked in Go 1.16. That is, the formatting change is still not present. Why is this a problem? There are two use cases for errors. Error as values, which can be inspected programatically, and error printing, which is not meant for programmatic consumption.

read more
April 3, 2021

Workflow Orchestration - Part 3 (How do I use this?)

In this part of the series, we’ll write some hands-on Temporal code and run it. Let’s start with our requirements:

You need to transmit a data packet. You can choose from multiple Route Providers to do this. Transmission takes time – you will be notified on a callback URL when the packet is delivered. Delivery may fail – either because the acknowledgement was not sent or arrived late (because Internet). You should try the next provider when one fails.

read more
April 1, 2021

Posts Of The Week 2021-04-01

I spent a couple of hours evaluating 3rd party libraries. What have I learned? For me, there’s one clear winner in a small field of candidates.

Presently, these are the top hits for “golang gauge counter timer”.

  1. https://pkg.go.dev/github.com/go-kit/kit/metrics
  2. https://pkg.go.dev/github.com/facebookgo/metrics
  3. https://github.com/uber-go/tally

The first result is go-kit. Go-kit isn’t a metrics library. Rather, it bills itself as a “framework for building microservices.” Its metrics package is simply a set of interfaces. You then refrence one of the many sub-packages with concrete implementations. As a consequence, it’s go.mod file is pretty huge.

read more
March 24, 2021

Posts Of The Week 2021-03-25

Go does not allow cyclic imports. A solution is to create a “shared” package to hold interfaces that related packages all reference. This, for some reason, reminds of me join tables in SQL.

Here is an example of a typical Go project. Packages toward the bottom, e.g., “common/persistence”, allow different packages to work with each other without introducing cyclic dependencies. For this project, “log” can be referenced by “config”, but cannot use “config” to conifgure itself.

read more
March 8, 2021

Posts Of The Week 2021-03-11

Oldie but goodie. Go concurrency patterns

https://drive.google.com/file/d/1nPdvhB0PutEJzdCq5ms6UI58dp50fcAN/view

read more
  • ««
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
  • »»
© /dev/jcheng 2026
GitHub