11 January 2023

50 links · Wednesday

Debugging Encoded Text

Validating encoded strings is a basic but important part of our debugging workflow these days. I cannot count the number of times I have found myself looking at a URL-encoded string only to be suddenly unsure how percentage signs are supposed to be represented…

Work queues when using messaging

When having many jobs that needs processing, throwing them all on the MQ might not always be what you need.

Kafka Log Compaction

Kert on Software - My thoughts on different aspects of software development

Politeness is killing your relationships · Max Gorin

Day-to-day politeness may be a useful social contract. Most people, if asked, will claim that they are perfectly aware that a flight attendant’s smile is fake, but that they don’t mind that. A friend once said: “I will choose fake politeness over sincere gloom…

First year as a founder

What I learned in my first 12 months as a full-time startup founder.

Programming by Hand Will Remain Essential

Here is why old-fashioned programming by hand will not go away after the onset of AI-assisted programming. Think of programming by hand, unaided by AI, as something similar to walking. Walking is essential for getting us around and improving our health and ge…

Manage like an engineer

If issues, pull requests, and project boards are the best way to develop software, should they not also be the best way to manage software development?

The Space Between Programs

The “space” between our programs is an aspect we almost entirely overlook, yet, it is crucial to many aspects of our design. By “space”, I don’t mean the interface that the program exposes. Nor do I mean the means of communication (http, a queue, a log, etc). …

You DON'T want an In-Memory Event Bus like MediatR

An in-memory event bus is not a good idea. Typically you'd see an in-memory event bus used for publishing domain events to notify other parts of your domain,...

P² quantile estimator marker adjusting order

I have already written a few blog posts about the P² quantile estimator (which is a sequential estimator that uses (O(1)) memory): P² quantile estimator:...

Generic Attributes in C# - Code Maze

In this article, we will learn more about generic attributes in C#. We'll see the old way we had to use generics and the new C# 11 way.

Easy Pagination for Entity Framework in 3 steps

Pagination is the process of dividing a set into discrete pages. In the context of Entity Framework, that means we are only getting a certain amount of entries from the database. And we will implement a very easy solution to make that happen in 3 steps. The re…

paint.net 5.0 is now available!

Welcome to Paint.NET 5.0! This major update has many performance improvements, new features including pressure sensitivity for pens and drawing tablets, and a brand new effect plugin system with GPU rendering support. Almost all of the built-in effects and adj…

Architecture diagrams should be code

For the past few years I’ve been the most senior developer on my teams in Atlassian, in both position (Principal Engineer) and time (almost 9 years) - this means I usually take on the responsibility of managing our software architecture.

The One Tiny Law That Keeps Amtrak Terrible

Sign up for Morning Brew's free daily newsletter: https://morningbrewdaily.com/wendoverWatch Jet Lag: The Game at http://youtube.com/jetlagthegame Buy a Wend...

Reducing the size of Windows Server Container Images – Part 1

One of the most significant pain points for Windows Server Container customers is the size of the container images. These images have historically been quite large, resulting in long download times and impacting available disk space. We have made improvements …

The IO monad

The IO container forms a monad. An article for object-oriented programmers.

Wolverine meets EF Core and Sql Server

Heads up, you will need at least Wolverine 0.9.7 for these samples! I’ve mostly been writing about Wolverine samples that involve its “critter stack” compatriot Marten as the pers…

MS Paint IDE

Ditch IDEs like Intellij and glorified text editors like Eclipse, and switch to a real IDE, MS Paint.

Console applications in C#

Console applications have been around for a long time and still hold a place in todays world were web...