Daniel Lemire wrote in Performance tip: avoid unnecessary copies, comparing Bun to Node.js, about a particular case where copying data becomes expensive: It turns out that the copy was not happening as part of base64 decoding but in a completely separate function. There is an innocuous function in Node.js called StringBytes::Size which basically must provide an upper on the memory needed by the Buffer.from function. As shown in the benchmarks, in the piece, Node.js becomes much slower than...| Hugo Martins
A couple of weeks ago, I’ve started reading Writing An Interpreter In Go. Reading this book means I’ll be building an interpreter for a language called monkey (you can follow my implementation). It is a topic that I’ve always been curious about but never actually took the plunge and decided to study it. I’ve dabbled a little bit with it in university. But we never actually wrote any of the internal tools. We always used generators for the code and focused more on the concepts. Rest as...| Hugo Martins
I’ve kept this tradition of looking back at the traffic every six months since 2021 (here and here). This time, it also marks the end of the year, in terms of traffic, which makes this review two-fold: a six-month review along with a yearly review. In total, from July 2022 to December 2022, there were 11868 visitors and 13517 pageviews (~73/day). Google is still the biggest source of traffic, followed by Bing and DuckDuckGo. Compared with the previous month, visitors were down 10%, while pa...| Hugo Martins
I’ve been using Temporal, “a developer-first, open source platform that ensures the successful execution of services and applications”, for troubleshooting purposes for a while now. We use it quite extensively at Datadog. Recently, I’ve started actually implementing something on top of Temporal and was amazed at the simplicity of its testing framework. At first I was a bit confused, as I’m interested in Go and could only find documentation focusing on Java. Eventually, I found How t...| Hugo Martins
‘kubectl explain’ is a powerful tool to inspect details about resources, fields and their meanings. By using it, we can quickly see details of these things without having to open up a browser and associated documentation.| Hugo Martins
‘kubectl run’ is a little command inside kubectl that can be used to run small experiments and create pods fairly quickly in Kubernetes.| Hugo Martins
Stream of consciousness notes about my experience during KubeCon Europe 2021 and cool things I’ve learned or enjoyed.| Hugo Martins
Stream of consciousness notes about my experience during KubeCon Europe 2021 and cool things I’ve learned or enjoyed.| Hugo Martins
Stream of consciousness notes about my experience during KubeCon Europe 2021 and cool things I’ve learned or enjoyed.| Hugo Martins
A few notes on the traffic this website has received between July and December 2021.| Hugo Martins
A few notes on the traffic this website has received between January and June 2022.| Hugo Martins
Kubernetes manifests are the baseline of describing objects in Kubernetes, their desired state and associated metadata. In this essay, we go over the four essential fields that every single Kubernetes resource needs.| Hugo Martins
Thinking about studying for ‘Certified Kubernetes Application Developer (CKAD)’ in 2022 and sharing snippets or notes I write during my studies.| Hugo Martins