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”.
- https://pkg.go.dev/github.com/go-kit/kit/metrics
- https://pkg.go.dev/github.com/facebookgo/metrics
- 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.
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.
Posts Of The Week 2021-03-11
Oldie but goodie. Go concurrency patterns
https://drive.google.com/file/d/1nPdvhB0PutEJzdCq5ms6UI58dp50fcAN/view
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.
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
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
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.
Posts Of The Week 2020-12-31
Maybe Emacs doesn’t need to be a fusion reactor. I only hope it continues to generate energy for many years to come.
It just needs volunteers to keep the fire going.
Posts Of The Week 2020-12-18
Replicating a database can make our applications faster and increase our tolerance to failures, but there are a lot of different options available and each one comes with a price tag. It’s hard to make the right choice if we do not understand how the tools we are using work, and what are the guarantees they provide (or, more importantly, do not provide), and that’s what I want to explore here.