Newsletter 32 – 10/2022

Featured

How Wine works 101 – Do you know how wine works? Tip: It is not an emulator.

My Future with Elixir: set-theoretic types – Elixir announced that it will be developing/researching a set-theoric type system, in this post, José Valim talks about that.

Syntax Design – Syntax design is one (if not the most) important thing in one programming language, this post talks about some aspects of language syntaxes and interesting things.

On the Importance of Pull Request Discipline – Pull requests can be used as documentation and commit messages neither. It’s important to have the discipline of both writing good pull requests and commit messages. This gives good tips about how to get started on It.

Conway’s Law – Conway’s Law is a well-known príncipe of software engineering, and it’s always worth remembering and thinking about It.

Reducing Logging Cost by Two Orders of Magnitude using CLPCLP is a fresh new tool capable of compressing and making searches, especially on logs. As this tool is primarily focused on logs it takes advantage of many aspects of this data to do a better compression and search. Uber achieves a massive cost reduction using it and explains how in this post. Also, a better description of this tool can be read in this paper.

MISC

The Hundred-Year Programming Language – This post brings a nice reflection about what makes a language live, and what language strengths can make it live as the years go by. It makes you think about the future, and about which languages you’ll be programming 30 years from now.

Building a startup on Clojure – Building products in languages with tiny popularity is always fun Clojure is a fun language that you should give a try.

The disproportionate influence of early tech decisions – Early tech decisions can be seen in any company, especially the ones with more years of existence.

YAGNI exceptions – YAGNI is a principle that is important to always remember while developing, especially green field projects. BUT of course, some exceptions exist and this post brings a nice initial list.

Hunting memory spikes in the Erlang BEAM – BEAM has great tools to debug applications that run on It. This post explains how folks from New Relic used it for hunting memory spikes.

Make Meetings Work – Meetings are hard, and many people really don’t like them. Excellent tips can help you make meetings less boring.

Newsletter 31 – 09/2022

Featured

Memory Management in Python – Correctly understanding how languages work, and especially memory management is always useful. This post explains very easily some concepts of Python and how it manages its memory.

What is Python’s “self” Argument, Anyway? – Python self argument is on every Python programmer’s daywork, but have you ever wondered why it exists?

Why Racket? Why Lisp? – Racket is a LISP-family language, and unfortunately, as all LISPy languages, are not very popular. Yes, this is another post trying to explain why use LISP and what is so great in this family of languages.

MISC

The many problems with implementing Single Sign-On – Developing a singles sign-on feature on your product can be harder than you think. This kind of feature is essential in B2B and needs attention.

This is not your grandfather’s Perl – Perl has a great culture of maintaining backward compatibility between versions, and a script written in 1994 is still able to run in most recent versions, this culture leads to a false impression that Perl isn’t changing or releasing new features. This post shows up that Perl is changing and keeps releasing new things.

Monitoring our monitoring: how we validate our Prometheus alert rules – Cloudflare released pint a new and open source Prometheus rules lint/validator, It comes with a Nice set of checks and can be helpful.

Go runtime: 4 years later – Go runtime is always getting better and faster, many times silently. This post shows how much it has changed in the last 4 years.

Software I’m thankful for – Everybody has software (or some) that is grateful for its existence.

Newsletter 30 – 08/2022

Featured

Redis Explained – Nowadays Redis is almost mandatory for software engineers, this post is fantastic to understand it better. It explains Redis internals, deploy types, and many interesting distributed systems concepts.

WHY YOUR WEBSITE SHOULD BE UNDER 14KB IN SIZE – A website with under 14kb loads much faster than a website with 15KB, and the reason is on TCP specification.

Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust – Count words from a given input looks like a easy programming problem, but this post goes beyond and solves this problem in many programming languages not only in the easy way, but in the optimized way! Explaining why of these optimizations for each language. Fascinating!

MISC

How to interrogate unfamiliar code – Deal with unknown code is a task that scares many developers, how do you understand what’s going on? This post gives excellent tricks to understanding codebases.

How to Choose the Right Python Concurrency API – Choose which concurrency API has become common in a developer’s life, this post gives help choosing it in Python.

Easy memory-saving tricks in Go – Three easy memory savings tricks to start doing in Go, and start doing your premature optimizations.

How I Found a Go Issue on ARM that Crashed the Database Server – A simple and objective walkthrough on figuring out and reporting a issue on Go.

Newsletter 29 – 07/2022

Featured

How “let it fail” leads to simpler code – Let it fail is one of the main mindsets behind Erlang, but it can be useful in all languages. This post explains this concept, and how to apply it.

Monitoring tiny web services – Everybody knows how to monitor services, but sometimes the monitoring stack can sound too much for tiny services, this short post explains nice ways to monitor this specific kind of service.

Modernizing Einhorn – Mike Perham, well known for his work on Sidekiq, took the ownership of a gem that already exists and has users! This post describes its first steps on the codebase, and how to deal with this scenario.

A Guide to the Go Garbage Collector – A complete guide to Go GC. This is very useful, not only for go developers but for every engineer that wants to understand more about GC.

MISC

DNS Esoterica – Why you can’t dig Switzerland – The name already explains this fun post 🙂

Why DRY is the most over-rated programming principle – Controversial post that brings a good question… Is DRY the most over-rated programming principle? IMO every programming principle and pattern needs to be used carefully because sometimes they can lead to unnecessary complexity.

10 tips for new Elixir developers – 10 simple and useful tips for new Elixir developers.

An Overview of Kandria’s Development with Lisp – Kandria is an open-world action RPG, being developed in common LISP, using Trial engine. Posts about game development are always fun (and unfortunately I almost never read about it), this post takes a brief look at the development of this game using LISP as the main language.

Newsletter 28 – 06/2022

Featured

Data Race Patterns in Go – Uber’s engineers analyzed over 1000 dataraces at its codebase and found a few patterns that usually happen. In this post, they show and talk about this.

Get paid to contribute to urllib3 – urllib3 team has launched its bounty program, which pays up to $100 for an issue done (an average $300), this is interesting news.

The computers are fast, but you don’t know it – A beautiful post about code optimization in Python, in the end, it was ~596915% faster than de initial one.

Things You Should Know About Databases – As the name already says, this post talks about things that you should know about databases, taking a brief look at two important concepts, indexes and transactions.

Fallacies of Distributed Systems – It’s always nice to remember (or learn) the basics.

MISC

Using Golang stdlib interfaces – Go has a powerful standard library, but knowing how to use the interfaces, can give you incredible powers.

Why We’re Sticking with Ruby on Rails at GitLab – Gitlab still using Rails, in this short post you can understand why.

Don’t Use Kubernetes, Yet – Kubernetes is a powerful tool to have at your company, but is It the right choice for small startup teams?

Engineering Levels at Honeycomb: Avoiding the Scope Trap – The engineering ladder is a common topic of discussion among managers and engineers, at this post from Honeycomb, they talk about their old ladder and the newer one.

Readability: The Optimal Line Length – This post is worth not only for UX/Copywriting but also for developers that are continuously writing documentation, guides, and playbooks.

To Thread or Not to Thread: An In-Depth Look at Ruby’s Execution Models – Ultimately choosing between process versus thread-based servers involves many trade-offs, this post from Shopify engineering explains, the differences and how they work.

Understading why attr_accessor in Ruby is faster than a regular method – Ruby attrs methods are very different from regular methods, they’re faster and with different implementation, this post explains what is different.