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

Articles

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
March 7, 2021

Workflow Orchestration - Part 2 (Why do I care?)

An increasingly distributed and fragile world

Workflow platforms are important because software engineers are increasingly adopting distributed systems in their architecture. There are two reasons for this change: 1) Users are demanding more frequent releases, feature teams, better peformance, and higher availability; 2) Providers are increasingly moving away from “use our library” (Spring Framework) to “use our APIs” (AWS, Azure, and GCP).

This change is undoubtedly a good thing, however, it also introduces new problems. It is much harder to trace program execution in a distributed system. A business process can span multiple services, created by multiple teams, in a variety of programming languages. There are more ways for things to fail, less consistency in code quality and documentation, and it’s harder to understand what happens when things go wrong.

read more
March 7, 2021

Posts Of The Week 2021-03-04

Two book recommendations

  • https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/
  • https://www.oreilly.com/library/view/making-software/9780596808310/

Designing Data Intensive Applications: Don’t let the name fool you. The knowledge in this book applies to more than just data processing applications but to distributed systems in general. It is a great book for all software architects.

Making Software: What Really Works, and Why We Believe It: A meta-analysis of various theories on software development processes. Is TDD effective? Is Agile just a hype or is it just misused? Which code metrics are actually useful? There are evidence-based answers to many of these questions.

read more
February 28, 2021

Workflow Orchestration 1 - What is a workflow?

Introduction

It is hard to describe what a Workflow Platform is. It is both familiar and exotic. There are aspects of the problem space we all know well: Retries, eventual consistency, message processing semantics, visibility, heartbeating, and distributed processing to name a few. Yet, when they’re all put together in a pretty package with a bow tied on top, it becomes something almost magical. It feels like seeing the iPhone for the first time: Of course you want a touch screen on a cellphone and mobile internet access. Similarly, a workflow platform feels like the only natural way to solve problems. Once you learn it, anything else feels as clunky as using a feature phone.

read more
February 22, 2021

Posts Of The Week 2021-02-18

The Peseverance rover lands on Mars. In this month, the UAE, PRC, and US all sent scientific instruments to Mars.

https://www.nytimes.com/2021/02/18/science/nasa-peseverance-mars-landing.html

read more
January 31, 2021

Posts Of The Week 2021-01-29

TextRank identifies connections between various entities in a text, and implements the concept of recommendation. A text unit recommends other related text units, and the strength of the recommendation is recursively computed based on the importance of the units making the recommendation. In the process of identifying important sentences in a text, a sentence recommends another sentence that addresses similar concepts as being useful for the overall understanding of the text

read more
January 22, 2021

Posts Of The Week 2021-01-22

This blog is such a great example of why it is difficult to creat great software. So often you have to make impossible choices between security and backward-compatibility.

Today’s Go security release fixes an issue involving PATH lookups in untrusted directories that can lead to remote execution during the go get command. We expect people to have questions about what exactly this means and whether they might have issues in their own programs. This post details the bug, the fixes we have applied, how to decide whether your own programs are vulnerable to similar problems, and what you can do if they are.

read more
January 6, 2021

Posts Of The Week 2021-01-08

Sascha Chua is a great resource on Emacs-y things

https://sachachua.com/blog/

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