Nicholas Blumhardt's Avatar

Nicholas Blumhardt

@nblumhardt.com.bsky.social

Founder at @datalust.co, core maintainer for #serilog, original #autofac author, long-ago-.NET PM. Deep down the #rustlang rabbit hole. Also at https://nblumhardt.com/@nblumhardt.

115 Followers  |  105 Following  |  35 Posts  |  Joined: 29.11.2024  |  1.6035

Latest posts by nblumhardt.com on Bluesky

Hope you're all doing okay out there ๐Ÿ‘‹

29.07.2025 22:56 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Add support for NO_COLOR env var ยท Issue #130 ยท serilog/serilog-expressions Hey! There is a slight inconsistency between different serilog console logging methods when it comes to support for NO_COLOR env variable. See https://no-color.org/ for the reasoning. Also there ha...

I can't believe it's so rare to get a terse, sensible, un-pushy issue raised ahead of a PR that feel the need to micro-blog when it happens, but here you go ๐Ÿ˜‚ github.com/serilog/seri...

29.07.2025 22:56 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
GitHub - serilog/serilog-sinks-opentelemetrysdk: An experimental Serilog sink that writes log events directly to the OpenTelemetry SDK. An experimental Serilog sink that writes log events directly to the OpenTelemetry SDK. - serilog/serilog-sinks-opentelemetrysdk

Meanwhile, if you do want Serilog -> OpenTelemetry SDK bridging, watch or star github.com/serilog/seri...

31.05.2025 01:15 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Building the Serilog sink for OpenTelemetry on OTLP, rather than the SDK, is turning out pretty well. It's super stable and in wide use at v4.2.0, while there's still no final SDK API for non-Microsoft loggers.

Dependencies aren't inherently bad, but **schedule dependencies** almost always are.

31.05.2025 01:15 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
Preview
Work Sharing in Seq Clusters We've reviewedย leader electionย andย replicationย in Seq clusters. While these are tricky to get right, and involve nontrivial code, they're dwarfed in complexity by work sharing, which is the basis of S...

Work Sharing in Seq Clusters โœจ

blog.datalust.co/work-sharing...

30.05.2025 03:01 โ€” ๐Ÿ‘ 0    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Just spiked out `Ctrl Space` `N` as a shortcut for this, feels pretty good; change is isolated enough we could get it into a patch.

Would it 100% nail this scenario for you?

29.05.2025 23:27 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Not quite the same thing (I'm talking about doing it without explicitly adding MCP tools), but thanks for the link ๐Ÿ˜Ž

26.05.2025 23:13 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Probably the better default ๐Ÿ™‚ - for the app Iโ€™m looking at, selectively enabling individual commands would make the experience safer, but access permissions behind the scenes would also cover it

26.05.2025 07:53 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Would take some gymnastics but seems doable; I got this going for seqcli as a spike, it means access to the appโ€™s features are fine-grained, vs all-or-nothing if itโ€™s exposed as a regular command-line app

26.05.2025 07:35 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

No, to directly expose and invoke commands as MCP tools, using descriptions etc. from command metadata

26.05.2025 07:31 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 0
NuGet download stats for SeilogTracing showing 1.0M total

NuGet download stats for SeilogTracing showing 1.0M total

The first 1.0M is the hardest ๐Ÿ˜‰

www.nuget.org/packages/Ser...

26.05.2025 07:22 โ€” ๐Ÿ‘ 4    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Has anyone investigated writing an MCP server binding for System.CommandLine in #dotnet?

Just poking around to keep up with what's going on in that space, seems like it could be an interesting quick bootstrapping option for existing codebases..?

25.05.2025 21:21 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

Could be the wrong hemisphere for you ๐Ÿจ๐Ÿฆ˜

23.05.2025 09:53 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@fastmail.com, have been a customer for 10+ years via @datalust.co and have had no regrets

23.05.2025 09:51 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Just moved from Gmail after just a crazy number of years. I still use and appreciate a bunch of Google products, but I'm wary of how centralized all these critical apps and services have become. Adopting alternatives from smaller, focused companies wherever I can at the moment...

23.05.2025 08:30 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

Happy Firefox user, here, but I need to spend more dev time in Chromium-based browsers. Is the Chromium project itself the go-to privacy-conscious option? Any others I should take a look at? ๐Ÿ™

23.05.2025 00:38 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0
A command line interface

A command line interface

Some c# code

Some c# code

Weโ€™re about to take C# to the next level!

#dotnet #csharp

22.05.2025 00:31 โ€” ๐Ÿ‘ 229    ๐Ÿ” 35    ๐Ÿ’ฌ 27    ๐Ÿ“Œ 13

Is hash-bang support possible? Kinda cool to launch directly as scripts on Linux

22.05.2025 04:06 โ€” ๐Ÿ‘ 5    ๐Ÿ” 0    ๐Ÿ’ฌ 2    ๐Ÿ“Œ 0

After me spending years maintaining a .NET state machine library, we implemented the core node state machine in plain old C# ๐Ÿ˜…

Couldn't be happier - states as classes, trigger handlers as switch statements returning new states, it's such nice, clear, direct code I don't think I'll look back....

21.05.2025 05:48 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
A screenshot of an `explain select distinct(Keys(@Properties)) from stream` query in the Seq UI. Indentation shows the "receive" operations outermost, and "send" operations indented below them. Receive operations are tagged with their merge strategy, e.g. "unordered", and the send operations with their partitioning strategy, e.g. "unconstrained".

A screenshot of an `explain select distinct(Keys(@Properties)) from stream` query in the Seq UI. Indentation shows the "receive" operations outermost, and "send" operations indented below them. Receive operations are tagged with their merge strategy, e.g. "unordered", and the send operations with their partitioning strategy, e.g. "unconstrained".

Since data movement has such a huge impact on performance in distributed systems, we did a bit of work cleaning up Seq's query plans in 2025.1, and now explicitly show the send/receive operations that connect computations locally and over the network.

Still not perfect, but getting closer! ๐Ÿ˜

20.05.2025 02:55 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
Seq โ€” centralized structured logs Seq is the self-hosted search, analysis, and alerting server built for structured log data.

Today's the day! Seq 2025.1 is ready at datalust.co/download, and on Docker Hub/ECR ๐Ÿ˜Ž

Find out what's new in the release announcement ๐Ÿ‘‰ blog.datalust.co/announcing-s...

19.05.2025 23:31 โ€” ๐Ÿ‘ 1    ๐Ÿ” 1    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Congrats! 1M speaks of a lot of hard work ๐Ÿ˜…๐Ÿ‘

07.05.2025 03:58 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 1    ๐Ÿ“Œ 0

I just went through this, too, via the browser. Found the experience really enjoyable!

There's a lot of thought-leadering about WebSockets being obsoleted by this or that new HTTP feature - which, I think, means WebSockets are finally mature enough to build on ๐Ÿ˜‰

06.05.2025 02:17 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Hello, world! ๐Ÿ‘‹

24.04.2025 22:35 โ€” ๐Ÿ‘ 4    ๐Ÿ” 2    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
It's time to prepare for Seq Clustering! Now in preview, Seq 2025.1 introduces high availability (HA), scale-out clustering in the Datacenter subscription tier. * Seq 2025.1 clusters continue ingesting data and serving queries even when on...

What I've been up to for the past year: blog.datalust.co/seq-clusteri..., and one of the toughest things to ship that I've ever worked on ๐Ÿ˜…

24.04.2025 22:08 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
GitHub - nblumhardt/seq-app-relay: A simple HTTP/JSON forwarder that preserves all event metadata. A simple HTTP/JSON forwarder that preserves all event metadata. - nblumhardt/seq-app-relay

Today's "quick-and-dirty" hack turned out quite nicely; a Seq relay (replication/forwarder) plug-in that properly handles traces, OTLP envelope properties, etc.: github.com/nblumhardt/s...

23.04.2025 06:35 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Bizarrely, Windows Firewall doesn't like its forwarded requests: just lets them hang. Always some esoteric thing to go and chase..... ๐Ÿคทโ€โ™‚๏ธ

17.04.2025 03:11 โ€” ๐Ÿ‘ 0    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0
Preview
YARP Direct Forwarding YARP Direct Forwarding

Most of the code is figuring out where to send a request, and detecting bounce loops; it's otherwise just: learn.microsoft.com/en-us/aspnet...

17.04.2025 01:04 โ€” ๐Ÿ‘ 2    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

Whoah, just spiked replacing Seq's internal cluster HTTP proxy with #aspnetcore's YARP, and once I remembered to register its service dependencies, it Just Worksโ„ข๏ธ first try, WebSockets and all.

That's the mark of a nice piece of software, going to have to dig into this thing ๐Ÿ˜Ž

16.04.2025 23:50 โ€” ๐Ÿ‘ 17    ๐Ÿ” 6    ๐Ÿ’ฌ 3    ๐Ÿ“Œ 0

Thanks Sean! These are all really tough questions, BTW. I don't mean to suggest anyone's a bad person for making different choices, just that as things are today, we haven't collectively solved these problems in a way that feels constructive and fair to all involved. We'll get there, though ๐Ÿ™‚

16.04.2025 23:05 โ€” ๐Ÿ‘ 1    ๐Ÿ” 0    ๐Ÿ’ฌ 0    ๐Ÿ“Œ 0

@nblumhardt.com is following 20 prominent accounts