Harry Cordewener
harrycordewener.bsky.social
Harry Cordewener
@harrycordewener.bsky.social
Principal Software Engineer with a #dotnet, ( #csharp and minor #fsharp ) focus, architecture aspirations, and a deep love for everything #regex and #textbased. Keeping my skills sharp with niche #developer projects.
I am admittedly not very familiar with the term 'frontmatter'.

There are similar things for representing Obsidian Markdown if you want a bit more power to your markdown.
May 18, 2025 at 8:20 PM
If you don't mind just a little bit of config and research, Astro Starlight can likely do what you want.

github.com/erkobridee/a...
GitHub - erkobridee/astro-starlight-hello: Testing the Astro Starlight
Testing the Astro Starlight. Contribute to erkobridee/astro-starlight-hello development by creating an account on GitHub.
github.com
May 18, 2025 at 8:19 PM
tomassetti.me/getting-star... for a good guide on how to get started with ANTLR4.

There's of course alternatives as well, FParsec or Farkle if you don't mind some F# in your C#.
Getting Started With ANTLR in C# - Strumenta
Getting started with ANTLR for C# is easy: we are going to show you how to configure your system, write your grammar and get your C# parser.
tomassetti.me
March 26, 2025 at 11:26 PM
Have you checked out spec-md.com?

Take note that many of the 'other defaults' are usually just the syntax highlighting library they happen to use like highlightjs.org.

You'll want to learn a Parser like ANTLR4 to do this kind of work.
Spec Markdown
spec-md.com
March 26, 2025 at 11:21 PM
Maybe they'll accept some Frikandel Speciaal instead.
January 14, 2025 at 4:21 PM
Check out the Immutable collection definitions: learn.microsoft.com/en-us/dotnet...

This may suit your goals even more.
ImmutableDictionary<TKey,TValue> Class (System.Collections.Immutable)
Represents an immutable, unordered collection of keys and values. NuGet package: System.Collections.Immutable (about immutable collections and how to install)
learn.microsoft.com
January 3, 2025 at 3:39 PM
Honestly? Too broad a question to really answer adequately.
January 3, 2025 at 4:21 AM
I'm with you on how difficult it can sometimes be to figure out what 'implementation' is being used, when dealing with deeper forms of DI etc. And I'm with you on making sure things live somewhere useful. But it feels like most of your complaint comes down to misuse of interfaces and bad code org?
January 3, 2025 at 4:20 AM
I've generally, in my professional career, seen Interfaces for proper compositing across multiple types and mocking in unit testing -- or be used for implementation by multiple classes. Be the typical repository or adaptor patterns.
January 3, 2025 at 4:19 AM
Aside from maybe being a big different to navigate for them, what makes it a 'stupid pattern'?
January 3, 2025 at 2:28 AM
Thoughts on using libraries like OneOf for (Discriminated) Unions to avoid Nulls in a larger scope of your project?
December 23, 2024 at 3:09 PM
Neat project, but I'm not sure how to feel about choosing between ad-covered and not-too-great third party documentation, or paying the maintainer $5 for documentation.
December 17, 2024 at 7:32 PM
Thoughts on using Jupyter or Polyglot Notebooks in VSCode as an alternative, if you've used it -- compared to LinqPad?
December 17, 2024 at 2:32 AM
Your app being dotnet doesn't matter too much if you snag something that has OAuth2 capabilities in general.

goauthentik.io is a free OS alternative to Okta.
Welcome | authentik
Bring all of your authentication into a unified platform.
goauthentik.io
December 12, 2024 at 7:42 PM
Next time it does nonsense like that, check the output tab and drop to the test output in there. Could be a variety of things.
December 12, 2024 at 1:03 AM
I'll also leave you with this - as it introduces some useful concepts around style, nesting, guard clauses, etc.

www.youtube.com/watch?v=CFRh...
Why You Shouldn't Nest Your Code
YouTube video by CodeAesthetic
www.youtube.com
December 12, 2024 at 12:02 AM
Check out spectreconsole.net
With a callout to: spectreconsole.net/prompts/text

Even in normal form, you don't need this many if-else statements. You can keep track of this state within a loop, switch statements, etc. Let me know if you need some examples.
Spectre.Console - Welcome!
Spectre.Console is a .NET library that makes it easier to create beautiful console applications.
spectreconsole.net
December 11, 2024 at 11:42 PM
The desire for proper posture.
November 29, 2024 at 2:23 AM
I have no experience with this specific library myself, but check out this:
github.com/benpollarduk...
GitHub - benpollarduk/NetAF: A C# library that provides a framework for building text adventures and interactive stories in .NET.
A C# library that provides a framework for building text adventures and interactive stories in .NET. - benpollarduk/NetAF
github.com
November 24, 2024 at 8:30 PM
Heavily aligned to that, check out the PeriodicTimer class.
Another way is keeping track of when the last time a deposit or reduction was made -- and any time you check, deposit, or withdraw, calculate the new value based on that moment in time. That way you don't have to keep a Timer.
November 17, 2024 at 7:42 PM
There's a few fun ways to implement that. How did you do it?
November 17, 2024 at 4:41 AM
Check out the various languages' "TestContainers" packages if you at all intend to use it for testing. They make all that jazz so much easier.
November 12, 2024 at 2:31 AM
Slowly, she's coming over to the NuGet side...
November 9, 2024 at 7:11 PM
Discriminated Unions are a blessing.
November 2, 2024 at 12:51 AM