What's enough Complexity for a Domain Model? Using a domain model is a great way to manage complexity. But how do you know if you have enough domain complexity? Here's an example.
Towards Modular Foundations for Protocol Security Universally composable (UC) security is the most widely used framework for analyzing the security of cryptographic protocols. Many variants and simplifications of the framework have been proposed and developed, nonetheless, many practitioners find UC proo...
No PM, no problem: how we ship great products fast Many things surprise people about how differently we work at Podia, but one that comes up often is that we have absolutely zero product/project managers at our company of more than 30 people. Despite this — though I’ll argue below that it’s precisely beca...
Granting at least once delivery Exactly-once is the message delivery guarantee the most developers want to achieve in their systems. In the most cases, the implementation of the set of rules backing it up should include the application layer. When it comes to messaging systems, exactly-...
Lessons Learned from Re-rolling 60+ Production Credentials It's worth documenting and running through the process before disaster strikes while the stakes are low.
How to build a cost effective MVP of a company search engine? · How to build a cost effective web search MVP?
Exploring maven incremental builds with maven-build-cache-extension | miguel codes With the release of maven 3.9.0, it is now possible to leverage the maven-build-cache-extension to benefit from incremental builds in your maven project. This feature can improve build time (in your local workflow and your CI). It caches module builds, av...
Does Mathematics need a Philosophy? - Logic Matters At a meeting some years ago of the Trinity Mathematical Society, Imre Leader and Thomas Forster gave introductory talks on “Does Mathematics need a Philosophy?” to a startlingly large audience, before a question-and-answer session. The topic is a very big...
3 Easy Tips for Fast-Loading Website Images To improve website loading times, here are three quick tips. They all involve images, which have the biggest impact on page-load speed, and they’re all super easy to implement.
How to Create a Pharo Smalltalk Plugin When working with Smalltalk, you may wish to access functionality that exists in a specific library or technology that you do not want to recreate. In such cases, you have two options: creating an FFI bridge or extending the Smalltalk VM with new primitiv...
The case for Flex applications The personal blog of Dave Rupert, web developer and podcaster from Austin, TX.
Record Digital Video to an SD Card With an Analog Camera How to use an old analog video recorder to capture video straight to an SD card.
How I Decreased ETL Cost by Leveraging the Apache Arrow Ecosystem In the field of Data Engineering, the Apache Spark framework is one of the most known and powerful ways to extract and process data. It is well-trusted, and it is also very simple to use once you get the infrastructure set up. Understandably, most enginee...
Gamebert: a Game Boy emulator built by Robert | Robert Heaton I’m a professional computer programmer, but I don’t often do all that much computer programming. Instead I spend much of my time futzing around with config files, other people’s frameworks, and other people. This makes it easy to forget how much fun it is...
A brief introduction to Nostr · Notes “A milestone for open protocols…” This is how Jack Dorsey, co-founder and former CEO of Twitter, announced the arrival of the Damus app, a Nostr protocol client, in the App Store/iOS. Nostr has generated buzz in developer groups, bitcoin addicts, and a cr...
dbt is jQuery, not Terraform Disclaimer: I work at dbt Labs, but the opinions here are strictly my own.
A (performance) quirk with JsonSerializer System.Text.Json.JsonSerializer has a weird quirk in regard to performance and memory management. So we will discuss what is "wrong" with this code: JsonSerializer.Serialize(myObject, new JsonSerializerOptions(...));.
.NET Managed languages strategy - .NET Each .NET language is unique. C# is the most widely used language and the language most of .NET is written in. F# explores new language possibilities and the community provides a rich experience across platforms. We remain committed to Visual Basic and co...
Password Purgatory - Making Life Hell for Spammers Password must not contain consecutive characters: keirenifuewiefwe
Improving EF Core performance with Compiled Queries This post is about improving EF Core performance with Compiled queries. From EF Core 2.0 onwards, EF Core supports compiled queries, which helps developers to compile the queries in advance and executed when application executes the query. By default EF C...
Upgrading your .NET projects with Visual Studio The .NET Upgrade Assistant is now available as an experimental extension in Visual Studio to easily enable to update your apps and projects to the latest version of .NET.
MediatR 12.0 Released This is a pretty big release, with a number of breaking changes. Release NotesMigration GuideBreaking changes include: Depending directly on IServiceProvider to resolve servicesMaking "void" request handlers return Task instead of UnitIRequest does not in...
What are the potentially-erroneous results if you don't pass NULL as the lpNumberOfBytesRead when issuing overlapped I/O? It's to avoid a self-inflicted race condition.
<div style="max-width: 480px;">What Is ChatGPT Doing … and Why Does It Work?</div> Stephen Wolfram explores the broader picture of what's going on inside ChatGPT and why it produces meaningful text. Discusses models, training neural nets, embeddings, tokens, transformers, language syntax.
Building Functional .NET Applications: A Guide for Choosing Between F# vs C# C# and F# are languages, each with growing user bases, that approach functional programming in fundamentally different ways. C# relies on object-oriented, imperative principles, and F# relies on functional principles. Some developers are using F# as a co...
C# Tip: List Pattern to match an collection against a sequence of patterns - Code4IT By using list patterns on an array or a list you can check whether a it contains the values you expect in a specific position.
Creating Visual Studio extensions using Roslyn analyzers Learn how to develop Visual Studio extensions with ease using Roslyn analyzers. This step-by-step guide will help you get started in no time!
Handling FunctionTimeoutException in Durable Azure Functions Orchestrators Learn how to catch the FunctionTimeoutException in durable Azure Functions orchestrators using a try-catch block in C#.
Multipart Form-Data in HttpClient with ASP.NET Core - Code Maze We will learn about multipart requests and how to use multipart form-data in HttpClient with ASP.NET Core to send files.
Google’s Fully Homomorphic Encryption Compiler — A Primer Back in May of 2022 I transferred teams at Google to work on Fully Homomorphic Encryption (newsletter announcement). Since then I’ve been working on a variety of projects in the space, includ…
Getting Started: Entity Framework Core 7 JSON Support | The .NET Tools Blog When working with databases, there are a few tenets to keep in mind to maximize your application's performance. First, reduce the number of network calls. Second, reduce the complexity of your queries
Async EventHandlers – A Simple Safety Net to the Rescue - Dev Leader Dealing with async EventHandlers in C# can be very problematic. async void is a pattern causes headaches with exceptions. Check out this simple solution!
Convrt Convrt Trivia Night | Survive 7 live trivia questions, share the cash prize with other winners!
Brennan Build - Intel Core i7-13700K, GeForce RTX 4070 Ti, Fractal Design Pop XL Air ATX Full Tower - PCPartPicker Brennan Build - Intel Core i7-13700K, GeForce RTX 4070 Ti, Fractal Design Pop XL Air ATX Full Tower
Creating a circuit breaker health check using Polly CircuitBreaker In this blog post I try to implement an ASP.NET Core Health Check that uses Polly CircuitBreaker that breaks if the number of errors reaches a limit within a specific period of time.
Introducing Search By Target Framework on NuGet.org Last year, we brought a new feature to improve the way you assess target framework compatibility of a NuGet package through a new “Frameworks” tab. Today, we are announcing a new feature that will allow you to search by a target framework on NuGet.org.
Whatever happened to Elm, anyway? I see this question pop up quite frequently in lots of different arenas - folks are curious as to what happened to Elm. As a former community member of Elm, I thought I'd act as a historian here and provide a write up covering the big pieces I see. Everyt...
I asked ChatGTP to write me a script to delete one million emails; It did very well But for now I'm still the better programmer
Taking Entity Framework Core data seeding to the next level with Bogus Using Bogus to generate realistic fake data together with Entity Framework Core to set up your testing data in seconds!
Principles Of Horrible API Documentation I've worked a fair bit of my PM career leading the efforts in improving the API documentation experiences for developers. Nothing opens your eyes more to the pain of developers than actually building the tooling that makes API docs happen - you start enco...
The hard problem of onboarding horizontal products Interconnected musings on behavior, products, and game design.
The case for frameworks | Seldo.com Today I read Alex Russell's post The Market for Lemons and I found myself compelled to write a rebuttal. I am a big fan of Alex's work in general but not of this post in particular, which is very long, so allow me to attempt to summarize it: JavaScript...
Dynamic Programming for People that Simply Want to Get a Job Let me start with a question. Do you like solving Data Structure & Algorithms problems during interviews? If you’re like me the answer is hell no. I hated doing it at my school. I hated d…
Using Cell Phone Sensors for 3D Transformations – Ramatak Inc. It’s a well-known fact that our mobile devices come equipped with all kinds of sensors used for various features that we tend to take for granted. For example, a phone knows if it’s held in portrait or landscape orientation, it knows if you’re walking in ...
Novel Proofs of the Infinitude of Primes Can they inform computational complexity theory? Bill Gasarch and Christian Elsholtz both like primes and jokes and graphs and ways of sharing baked goods. Bill is a Professor of Computer Science a…
This is why performance matters I just had a power cut and wanted to check how long it would be out for. The UK Power Networks power outage tool is handy for that, but there’s a problem: I only had a 3G network connection and the…
GitHub - jenius-apps/ambie: An app that uses white noise, nature sounds, and focus features to boost your productivity. An app that uses white noise, nature sounds, and focus features to boost your productivity. - GitHub - jenius-apps/ambie: An app that uses white noise, nature sounds, and focus features to boost yo...
An interactive explanation of quadtrees. Let's say you have a bunch of points in a space, like in the maps above. Someone asks you if some arbitrary point p is within your bunch of points. How can you find out if you have that point?
How To Fake A Long Exposure Photo of Earth At Night Learn how to fake a long-exposure photo of earth at night using Photoshop and publically available satellite imagery.
Gasoline Car Review I recently purchased a Mazda Miata. This car is interesting because instead of running on electricity, it is powered by a combustible liquid called gasoline. The vehicle has an engine that mixes the…
A checklist for SQLite This is a field guide on setting up and making use of SQLite in the strictest, least error-prone way possible. Examples are based on Python, which provides SQLite as part...
Welcome to the Age of Bullshit We are fucked. In fact, we are so fucked that Tom Scott conveniently released a new video talking about how fucked we are. Of course, he didn't actually say that we're fucked, because he's much nicer than I am. He uses soft and gentle words that disguise ...