Hi all, thank you for supporting us. We’re growing fast and it’s getting expensive to send email. We’re going to move away from Mailchimp (and I’ll share this process in next issue). To ensure the correct delivery, please add firstname.lastname@example.org to your address book, so the email won’t be marked as spam. From last six months, you can see that we will never send you spam. If you have any feedback, questions about delivery, please ping me.
Understanding the Limitations of HTTPS
Generally HTTPS solves the problem of browsing the web on public wifi. But to what degree does it protects us? What information is still not encrypted? What are the limitations, and at what level? Can a hosting company read my traffic? Can customers on the same server under same load balancer read it?
Overly defensive programming
I have to confess I write a lot of “just to be safe” code. This post hit the exact spot, arguing that the need to write defensive code is a signal to unknown problems and encourage using error handling and logging.
Data race in Golang and how to fix
Go is known for how easy it is to build concurrent programs in it. But, with all this concurrency, comes the possibility of the dreaded data race – one of the hardest bugs to debug if you’re ever unfortunate enough to encounter it in your code.
A Model for Scaling Terraform Workflows in a Large, Complex Organization
Terraform allows us to express Cloud resource in code and execute/apply them to create/modify these resource. Getting started is very easy. But the organization of them when scaling is a bit of challenge. We need to do lots of checks like: only create this on prod, not on QA, how to re-use the code by abstracting them into modules.
Episodes in the Learn Elixir series
Collection of free episodes is a great place to start learning Elixir. You’ll get an introduction to essential features of Elixir like pattern matching, Plug, and GenServer.
Unexpected functional programming in Go
This text is about the implementation of a Go tool based entirely on functions – the API contains only immutable data types, and the code is built on top of a struct with five func fields.
How to Fix Intermittent Test Failures
Intermittent tests could be divided into two major groups: order dependent tests and intermittent tests by themselves. Let’s divide them up, see how to re-produce some intermittent and strategy to fix them. This is in Ruby, but we can apply to anything else.
The 5 Clustering Algorithms Data Scientists Need to Know
Clustering is a technique that involves the grouping of data points. Given a set of data points, we can use a clustering algorithm to classify each data point into a specific group. We can feed data and see which groups the data points fall into to gain insight.
Node.js Profiling, Event Loop Lag & Flame Charts
We need to be aware of how the event loop work in Node.js. Kristofer share how you can use profiling to understand the behavior of a Node application: Monitoring the event loop, and understand flame graph.
Decouple Business Logic using Async Generators
Async generators provide a simple, easy to use, but very powerful tool for splitting programs into smaller parts, making sources easier to write, read, maintain and test. The article shows this using an example. It implements a typical front-end component, namely drag and drop operations.
V8 memory quiz
Shipping system fonts to GitHub.com
System fonts are pretty good nowadays. This post explains how Github take advantage of best font possible based on your operating system or device.
On Writing Software Well
DHH, Rails creator, begun a new YouTube series called On Writing Software Well where he explores the real Basecamp codebase in search of interesting programming topics. It’s less “here’s how to do it” and more “here’s what I was thinking when we made this choice or took this direction”.
That's it for this round, have a great day! If you like this newsletter, please tell the world, or
tweet about this