7 February 2024

82 links · Wednesday

#0165: Broad work vs deep work

Finding a balance between remote and in-person work

What’s going on with Activities in Plasma 6?

Nothing! That’s the end of the blog post! Go back to what you were doing! Well, sort of. :) Some of you may be aware that a year or so ago, there was a lot of chatter about what to do with th…

NPS, the good parts

The Net Promoter Score (NPS) is a statistically questionable way to turn a set of 10-point ratings into a single number you can compare with...

Can a Startup Succeed Without a Marketing Team?

You don't always need a marketing team to hit it big. Sure, they're great to have, but success is still within reach with some smart, alternative growth tactics. Ready to tackle the challenge? Balance is key - mix product development with some savvy growth mo…

My setup to keep up with podcasts – Gonçalo Valério

To be sincere, I have a strong preference for written content. There is something with audio and video (podcasts and streams) that doesn’t fit very well with me or how I consume content when I’m at the computer.

Upcoming Training on Modern .NET with Vertical Slice Architecture

Something new I'm starting this year is a two-day course on Modern .NET systems with Vertical Slice Architecture. It contains a lot of topics that I've consulted with organizations and built systems around for around over a decade now, and I wanted to wrap my …

Exploring spatial representations in Visual Foundation Models

Recent publications studying the inner workings of foundation models have focused largely on internal representations of large language models (LLMs). In this short blog post, I will explore neural representations in large vis…

Building a HIP environment from scratch

HIP is a C++-based, single-source programming language for writing GPU code. "Single-source" means that a single source file can contain bot...

Org Flashcards

Start by installing org-fc using the package manager of your choice.

Making Godot Viable on iPadOS: Development Loop

Before I embarked on pouring my heart and soul into making a native iPadOS user experience of Godot, I needed to make sure that I would end up with a viable version of Godot. Building Godot to run on iPad is straightforward. The command line to do this is qui…

The Noise Protocol Framework

Noise is a framework for crypto protocols based on Diffie-Hellman key agreement. Noise can describe protocols that consist of a single message as well as interactive protocols.

Responsible and trusted AI - Cloud Adoption Framework

Understand the six guiding Microsoft principles for responsible AI, which include accountability, inclusiveness, reliability and safety, fairness, transparency, and privacy and security.

One Minute Focus

Science backed method to leverage focusing visually for 1 minute to increase mental/cognitive focus

Take control over ASP.NET Core

How to leverage your basic knowledge of dependency injection to learn how the asp.net framework works.Support my Work 🤝 https://www.patreon.com/raw_codingB...

Video Conferencing, Web Conferencing, Webinars, Screen Sharing

Zoom is the leader in modern enterprise video communications, with an easy, reliable cloud platform for video and audio conferencing, chat, and webinars across mobile, desktop, and room systems. Zoom Rooms is the original software-based conference room solutio…

Why RustPython?

An open source Python 3 (CPython >= 3.11.0) interpreter written in Rust 🐍 😱 🤘

Why .NET's Most Ambitious Feature Might Fail

Use code MODULAR and get 20% off the brand new "Getting Started with Modular Monoliths" course on Dometrain: https://dometrain.com/course/getting-started-mod...

(Mis)estimation – why estimation does not work

Probably every software developer had to estimate the effort needed to implement some wanted software. And the estimate was likely rather wrong. I collected reasons why this happened to me over many years. And I concluded that the estimation approach is fundam…

Fighting Tech-Enabled Abuse: 2022 in Review

No year that includes tech-enabled abuse can be said to be a good year. But 2022 has certainly been an eventful year for the technologies used as instruments of coercive control domestic abuse situations, ranging from stalkerware to physical trackers. In Febru…

Go 1.22 Release Notes - The Go Programming Language

The latest Go release, version 1.22, arrives six months after Go 1.21. Most of its changes are in the implementation of the toolchain, runtime, and libraries. As always, the release maintains the Go 1 promise of compatibility. We expect almost all Go pro…

Microsoft Migrates a Real-Time Service to .NET Core for Performance Gains

Microsoft migrated the real-time co-authoring service in the Microsoft Office suite of applications from .NET Framework 4.7.2 to .NET 7 last year. They achieved 30% CPU reduction, 60% memory reduction, and 50% API latency reduction compared to the original ser…

Enhancing .NET Aspire Observability with Seq

.NET Aspire is a toolkit for development and deployment of microservice applications. It is a local orchestrator with support for deployment to production-grade orchestrators like Azure Container Apps or Kubernetes. One great thing about Aspire is the built-i…

Solved! Visual Studio .http File Not Sending Authorization Header

I ran into a weird problem with how Visual Studio was sending API requests. I was trying to use a bearer token, and it worked fine in Swagger, but from an .http file the Authorization header was simply being ignored, resulting in a 401 Unauthorized.

Lines of code – how to not measure code quality and developer efficiency

Lately I have a person who pings me daily asking how many lines of code I have written today. The first time was on the weekend. My answer was “none, as weekends I concentrate on not doing computer things with my partner” which is an excellent idea.

Too much of a good thing: the trade-off we make with tests

I've worked places where we aspired to (but did not reach) 100% code coverage. We used tools like a code coverage ratchet to ensure that the test coverage always went up and never down. This had a few effects.

Deep Dive into Emotional Flexibility: Guide to a More Fulfilling Life

Feeling overwhelmed by emotions? Discover the life-changing power of emotional flexibility! Our guide explores the science, benefits, and practical strategies to help you navigate life's ups and downs with greater ease and joy. Read now and unlock your full …

Visualising Extendible Hash Tables

I’ve been digging into data structures used in databases more and more recently and I wanted to write this post explaining how they work as a way to solidify my understanding.

Designing for support teams

Support agents spend their entire lives using the same software. Their needs are very different from consumer software. Here are some things to keep in mind.

Making your dumb home alarm smart with an ESP32 – Tristam

My wife and I were fortunate enough to buy a house recently which has presented many opportunities to integrate items with Home Assistant. The house came with an Aritech CS350 based alarm which was installed in 1994 – when I was one year old!

Newsletter #0014

Total eclipse of the...profit? YES!

How to type emoji in one keystroke on a Mac

It's easy to create keyboard shortcuts on macOS without using 3rd party apps (like Karabiner) or Text Replacement (which doesn't work in Chrome). Here's how to do it. You'll need to edit this Key Binding dict: $ vi ~/Library/KeyBindings/DefaultKeyBinding.dic…

Supplemental Lecture 01 - From SML to OCaml

People are often skeptical of the usefulness of 150, due to the fact that the SML language is not a language that is ever really used in any industrial context.

Advice for New Grands

This is a brief overview of my advice for new grads and junior software engineers. I’m been in the industry for about 8 years, and worked my way into engineering without a computer science degree. I’ve worked in both startups and medium-sized companies over th…