17 July 2023

60 links · Monday

Azure DevOps at a Glance

These days, DevOps and automation tools has become very hot in the software industry. There are various tools in the market, each of which…

Let me talk to my algorithms

Generative AI (LLMs) hasn't worked for me yet, especially not as a digital assistant with a conversational interface. But I can see such...

Store age identities inside the TPM: age-plugin-tpm

The past year I have been trying to learn more about the Trusted Platform Module (TPM). This is a small device found on most modern laptops that has several cool security features like key creation, sealing and attestation, however I have been struggling to fi…

Stop Overengineering

A personal appeal. 1. Overengineering works against results. Shifting the focus away from results is never good — for personal projects, corporate codebases, or anything in between. 2. Overengineering over indexes on things you know. Overengineering inven…

Hamilton’s Quaternions, or, The Trouble with Triples

In 1853, the mathematician and physicist William Rowan Hamilton paid one last call on Catherine Barlow, whom he had once loved passionately and for whom he still had some affection. She had won his…

Has anyone thought that WFH is just sustainable?

I mean the obvious: commuting is polluting. This is too obvious. On top, we build our solis twice: different building to work, different to live. In fact we replicate all that tech and human modern…

Why kernel drivers in Anti-Cheat aren't so bad

Recently I saw another reddit post re-spark the discussion of kernel drivers in Anti-Cheat. Ever since this controversy started I've noticed many people misunderstand the technology which has led to fear-mongering. I will try to clear up some of these misunder…

Writing for Others

A guide to more effective business writing for anyone who writes anything other people will read.

Programming Pearls

This books contains Jon Bentley’s essays from his column in Communications of the Association for Computing Machinery. It describes practical programming techniques and fundamental design principles. Here’re my highlights from the book and passages that I foun…

Baby's second garbage collector

This blog post is meant to an iteration on the tutorial and introduction to garbage collection implementation presented in this classic blog post. We are still working with simple garbage collectors, but this time another one with a bit more complexity.

Use xUnit Like A Pro in Under 10 Minutes!

In this video, we'll be getting started with xUnit. xUnit is a testing tool that helps you write better tests and make your code testable. We'll be using xUn...

Introducing a powerful new Extension Manager - Visual Studio Blog

We're working on a modernized Extension Manager that highlights extension details and helps you more easily discover the extensions you’ll love in the Visual Studio Marketplace. Try it and share your feedback!

Replicating Uber Delivery UI in .NET MAUI

Howdy! 💁‍♀️ I am thrilled to share my article for the .NET MAUI UI July 2023 calendar created by Matt Goldman, during the month of July, this calendar will publish various educational contributions created by industry experts about .NET MAUI. In this article,…

Silk.NET Coffee & Code Catchups

Join the Silk.NET team for a quick catchup. This is a more informal stream wherein we'll be discussing what we've been doing on the Silk.NET project, what we...

This New C# 12 Feature Isn’t for You

Use code SUMMER23 until the 20th of July for a 15% discount on any bundle at https://dometrain.com/bundlesBecome a Patreon and get source code access: https:...

NATS .NET Client v2 Alpha Released with Core NATS Support

Starting in 2018 with .NET Core 2.1 , the .NET platform began to receive serious performance improvements in every major release. This excited many .NET developers, who have been enjoying faster and more efficient runtimes just by upgrading their project targe…

Should you use Result as your return type?

Hi there, today we are going to take a look at the Result return type.PS: Sorry about the sound, I forgot to switch to my recording mic.#csharp #dotnet

The Bangladesh Bank Heist: A Lesson in Cybersecurity | Devlin Duldulao

The Bangladesh Bank heist in February 2016 was one of the most infamous cybercrimes in history. Criminals attempted to steal nearly $1 billion from the central bank of Bangladesh, successfully making off with $81 million. While this event sent shockwaves acros…

I finally found a use for Logging in .NET!

Log are finally useful… for debugging tracing errors By now, you’re probably aware of my feelings towards logs, or more specifically logs created by your application. That said, I’ve finally found …

Parse a Chess Game using F# and FParsec ♟

FParsec is a powerful parsing library for F#, which works using parser combinators. In this post we'll look at writing a parser for Portable Game Notation (PGN) for chess. Here's an example of a chess game in PGN: [Event "F/S Return Match"] [Site "Belgrade, Se…

Why a software factory is the wrong metaphor

A metaphor that is used a lot to describe the software development process is that of a software factory. Wikipedia describes the concept of...

Starting an Expo App

Let’s walk through starting a React Native app with Expo, Typescript, ESLint, Prettier, Jest, and React Native Testing Library.