Software development topics I've changed my mind on after 6 years in the industry - Blogomatano
A day is not 60*60*24 seconds long | Swizec Teller
Days aren't 60*60*24 seconds long. They are 1 day long, which on most days maps to 60*60*24 = 86400 seconds. But not on all days.
Container Images the Easy Way with Cloud Native Buildpacks - The New Stack
If you’re an application developer writing Dockerfiles, you are doing it the hard way, whether you realize it or not.
Fewer Rust Developers Target WebAssembly - The New Stack
Year-over-year, WebAssembly has become a less popular target for Rust developers to build applications, according to 2021 version of JetBrains' annual "Developer Ecosystem Survey."
How to Write a Good User Story: with Examples & Templates
If you're wondering how to write User Stories and looking for User Story examples we're happy to share our experience with you in this article!
7 Benefits of Testing in Isolation - The New Stack
In this article, we’ll examine seven benefits of testing in isolation. Along with its pros, we’ll consider its cons and costs.
Understanding Protobuf Compatibility
In a recent article, I presented rules for evolving JSON Schemas in a backward, forward, and fully compatible manner. The backward compatibility rules for Protocol Buffers (Protobuf) are much simpl…
The Rise Of User-Hostile Software
Or why software we get today is not the software we should strive to be getting tomorrow.
CNCF Welcomes WebAssembly-Based wasmCloud as a Sandbox Project - The New Stack
Cosmonic, the company behind wasmCloud, a distributed application framework for microservices, donated the project to the Cloud Native Computing Foundation to help accelerate its adoption.
A Data-Centric Introduction to Computing
Hammock Driven Development - Wasteland Coder
I first heard this term from Michael Carducci at one of the No Fluff Just Stuff conferences. At least in this case, it is a way of saying: take a step back, relax, and think about this from another perspective. Relax It is amazing how much you can actually do when you are not stressing ... Read more
Hammock-driven development
Sometimes, the best thing you can do for your code is to stop thinking about it - at least consciously.
Postgres functional style
My dual premises in this series are: – Modern SQL is more valuable as a programming language than you might think (see Markus Winand’s Modern SQL: A lot has changed since SQL-92) –…
Parser generators vs. handwritten parsers: surveying major language implementations in 2021 | notes.eatonphil.com
Parser generators vs. handwritten parsers: surveying major language implementations in 2021
Memory-safe programming in the Linux Kernel (No not RUST) — eBPF.
Here at CoScreen many of our engineers and staff are huge Linux enthusiasts. The backend of CoScreen is running on Linux, from our data analytics systems, presence and calling, to our video and backup infrastructure. One could easily say Linux is the real Wizard behind the curtain generating the CoScreen platform.
Bringing CoScreen to Linux is high on our priority list, but due to the fragmentation of the Linux ecosystem, we will likely have to target very specific distributions of Linux, to begin with, and potentially provide a subset of functionality to certain distributions.
strcpy: a niche function you don't need
[A]sync, [Non-]blocking, dynamic or static, strong or weakly typed - OwenGage.com
Understanding Foreign Data Wrappers in Postgres and postgres_fdw
Foreign data wrappers can simplify data querying and analysis when you need data from disparate sources.
Web Developers Not Moving More Business Logic to the Client - The New Stack
Despite some movement around 'headless content management' with Jamstack and even WebAssembly, there is no statistically significant change in where developers are locating their new code.
Large Numbers of Bindings With RabbitMQ
RabbitMQ (or more specifically the AMQP protocol) provides a degree of flexibility over other message-queue solutions with its exchange-binding-queue model. Some possible solutions to scaling or business issues result in large numbers of bindings being created, perhaps thousands per queue. We tested RabbitMQ to find out what the binding performance limits were and present the results in this post. It seems that large numbers of bindings are not in themselves a performance issue, but on a RabbitMQ cluster, “binding churn” the rate at which they are created and destroyed can have a large impact on message delivery.
Symbolic Differentiation with Lisp
Short option parsing using getopt in C
Writing a C program to process files is easy when you already know what files you'll operate on and what actions to take. If you "hard code" the filename into your program, or if your program is coded to do things only one way, then your program will always know what to do. But you can make your program much more flexible if it can respond to the user every time the program runs. Let your user tell your program what files to use or how to do things differently. And for that, you need to read the command line.
Elm at Rakuten | Rakuten Engineering Blog
In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes.
This post is quite long so if you prefer to see an overview, feel free to jump to the index.
Everything started in the Berlin branch of Rakuten during the summer of 2017. We were maintaining a medium-size single-page application written in Vanilla JavaScript when things started going out of control.
Climbing Mount Effect
Let's actually whiteboard some code.
B-Trees: More Than I Thought I'd Want to Know
B-Trees are not boring, after all
How We (Don’t) Reason About Code
Reading code is more important than writing code. But, more important than reading is reasoning about code.
BaFi
None
How to improve the DDDness of your application.
Or in other words, how to build intention revealing APIs through encapsulation, a practical guide.
My favorite papers
canistilluse.com
“Can I still use…” provides the latest information on the deprecation of upcoming browser APIs [satire].