Hermes Trismegistus

725 posts

Hermes Trismegistus banner
Hermes Trismegistus

Hermes Trismegistus

@meet_selfmade

.NET Developer | Independent Consultant | Creator and lead maintainer of SafeCrypt nuget package |° C# |° .net◼️|° Technical writer |°

Production Katılım Şubat 2014
165 Takip Edilen159 Takipçiler
Hermes Trismegistus retweetledi
Aanya
Aanya@xoaanya·
Git interview question: You accidentally committed sensitive credentials and pushed them, how do you completely remove them from Git history and make sure no one can access them again?
English
40
6
263
72.2K
Hermes Trismegistus retweetledi
David Fowler
David Fowler@davidfowl·
Got my first PR merged into the copilot cli today 😍. #github #copilot
English
6
4
170
11.1K
Hermes Trismegistus
Hermes Trismegistus@meet_selfmade·
Happy new year Here’s to consistency, learning, and shipping more code all year long. Let’s build
Hermes Trismegistus tweet media
English
0
0
0
54
Hermes Trismegistus
Hermes Trismegistus@meet_selfmade·
Joined a team building a CRM for a bank. Second time using postgres + .NET this year.
English
0
0
0
24
Hermes Trismegistus
Hermes Trismegistus@meet_selfmade·
@dustedcodes Not really That line is a helper method that sets up hosting, config, logging, DI... You can read about it on GitHub and see what it does. Most devs accept the defaults because they’re okay with it, not because they are clueless. github.com/dotnet/aspnetc…
English
0
0
0
11
Dustin Górski
Dustin Górski@dustedcodes·
The very first line captures everything I dislike about .NET. No C# developer actually knows what this one magic line does. It configures a shitload of magic stuff there and nobody knows what it is. Literally every .NET dev just hopes it works for them and when it doesn’t they jump between 20 different StackOverflow threads and try 20 different builder permutations until it somehow works for them. Then when it finally does they get build errors because that builder function which finally worked is from .NET 7 and now in .NET whatever-fucking-version-it-is-today, it’s meant to be initialised differently and then they are back to StackOverflow again. That’s how C# devs spend 4 hours just fucking around being unproductive because the magic always stops working at some point and then there is nothing left but a shit show.
Joonas Lindholm@joonaslindholmm

.NET wins. #dotnet

English
113
11
420
69.5K
Hermes Trismegistus retweetledi
Dr Milan Milanović
Dr Milan Milanović@milan_milanovic·
.𝗡𝗘𝗧 𝟭𝟬 𝗮𝗻𝗱 𝘁𝗵𝗲 𝗲𝗻𝗱 𝗼𝗳 𝘁𝗵𝗲 “𝗮𝗯𝘀𝘁𝗿𝗮𝗰𝘁𝗶𝗼𝗻 𝘁𝗮𝘅” High-level C# comes with a performance cost: interfaces and `foreach`. Lambdas. Helper methods. Cleaner code, small hit every time. .NET 10 attacks those hits from many directions, and the wins stack up. 1️⃣ 𝗦𝘁𝗮𝗰𝗸 𝗮𝗹𝗹𝗼𝗰𝗮𝘁𝗶𝗼𝗻 𝗴𝗲𝘁𝘀 𝘀𝗺𝗮𝗿𝘁𝗲𝗿 The JIT’s escape analysis went deeper. It can follow objects through several layers of abstraction and see whether they leave the current method. 🔹 In a simple delegate benchmark, .NET 9 allocates 88 B per call (24 B closure + 64 B delegate). 🔹 In .NET 10, when the delegate never escapes, the delegate allocation disappears, and the benchmark drops to 24 B allocated. 🔹 Small arrays that stay inside a method can also move to the stack, and spans built from them benefit as well. Result: less GC work, less allocation noise, same idiomatic C#. 2️⃣ 𝗔𝗿𝗿𝗮𝘆𝘀 𝗳𝗶𝗻𝗮𝗹𝗹𝘆 𝗱𝗲𝘃𝗶𝗿𝘁𝘂𝗮𝗹𝗶𝘇𝗲 𝘁𝗵𝗿𝗼𝘂𝗴𝗵 𝗶𝗻𝘁𝗲𝗿𝗳𝗮𝗰𝗲𝘀 Arrays implement `IList`, but the JIT could not devirtualize those calls before. That produced odd advice: 🔹 For `ReadOnlyCollection` over an array, `foreach` with an enumerator could beat manual indexing. 🔹 Some LINQ paths that used `IList[i]` turned into slower code in practice. .NET 10 fixes this: 🔹 Array interface calls devirtualize. 🔹 `for` loops over array-backed collections speed up. 🔹 LINQ on arrays can see roughly 2–3× faster pipelines in microbenchmarks. The old “foreach is faster than indexing here” guidance no longer holds. 3️⃣ 𝗕𝗼𝘂𝗻𝗱𝘀 𝗰𝗵𝗲𝗰𝗸𝘀 𝘂𝘀𝗲 𝗺𝗮𝘁𝗵 𝗶𝗻𝘀𝘁𝗲𝗮𝗱 𝗼𝗳 𝘀𝘂𝗽𝗲𝗿𝘀𝘁𝗶𝘁𝗶𝗼𝗻 The JIT now treats numeric ranges as hard facts. 🔹 `BitOperations.Log2(uint)` returns values in the 0–31 range. Indexing a 32-element lookup with that result loses its bounds check. 🔹 Range facts from conditions like `pos > 0 && pos <= span.Length - 42` hold regardless of condition order. 🔹 For sequential writes like `arr[0]` through `arr[7]`, the JIT clones the code: ➡️ Fast path: one upfront `Length >= 8` check, then writes with no bounds checks. ➡️ Slow path: per-write checks. You write safe code, and the JIT emits code that looks closer to hand-written unsafe loops. 4️⃣ 𝗜𝗻𝗹𝗶𝗻𝗶𝗻𝗴 𝘂𝗻𝗯𝗹𝗼𝗰𝗸𝘀 𝗵𝗶𝗱𝗱𝗲𝗻 𝗵𝗼𝘁 𝗽𝗮𝘁𝗵𝘀 Inlining is the gateway optimization. Once a method inlines, other passes light up. .NET 10 removes several long-standing blockers: 🔹 Methods with `try/finally` can be inlined (every `foreach` loop has a hidden `try/finally`). 🔹 Callers of generic virtual methods can inline. 🔹 Empty exception handlers disappear when the `try` block cannot throw. 🔹 The inlining budget and locals limit both climb, so more complex methods qualify. This drives greater virtualization, more robust range analysis, and more stack allocation. Read the full text in the comments by Stephen Toub (4h read time, similar to ~200 pages book, w/o images).
Dr Milan Milanović tweet media
English
5
10
122
10.8K
Hermes Trismegistus retweetledi
ErikEJ
ErikEJ@ErikEJ·
dotNET blog: A step-by-step guide to modernizing .NET applications with GitHub Copilot agent mode ift.tt/q3VIUgG
English
5
18
133
9.2K
Hermes Trismegistus
Hermes Trismegistus@meet_selfmade·
Having a hard time finding any good, advanced tutorials on Microsoft Orleans.
English
0
0
0
36
Hermes Trismegistus retweetledi
David Fowler
David Fowler@davidfowl·
They gave me access to Github, time to change actions from yaml to C#
English
47
18
570
40.9K
Hermes Trismegistus
Hermes Trismegistus@meet_selfmade·
Yesterday, I pushed my clean architecture template that includes implementations for EF, email (requires an API key from SendGrid or Mailgun), nLog, auth, authorization, email templates, and user functionality. It already has 30 unique clones!
Hermes Trismegistus tweet media
English
0
0
1
58
Austin
Austin@IamAroke·
Just wrapped up a CRUD session with my mentee. we built a full CRUD API using .NET and EF Core for the database. Try .net, you'll love it.
Austin tweet media
English
29
8
204
15.9K
Sky Sports Premier League
Sky Sports Premier League@SkySportsPL·
BREAKING NEWS: Ange Postecoglou has been sacked as Nottingham Forest boss after just 39 days in charge 🚨
Sky Sports Premier League tweet media
English
1.3K
3.2K
28.7K
2.5M
Hermes Trismegistus
Hermes Trismegistus@meet_selfmade·
@Tech_babby On LinkedIn web, after you filter to “Past 24hrs” check the URL: you’ll see something like r=86400. That’s seconds change it to a smaller value (eg r=60) to find jobs posted much more recently.
English
0
6
35
2.2K
Tech_baby
Tech_baby@Tech_babby·
Quick job hack on LinkedIn. When you apply to jobs filter your location to “EMEA” and date posted to “Past 24hrs” I’ve seen amazing jobs with very low application numbers & also I’ve gotten some really good responses there Go try it✔️
English
17
143
1.3K
58.1K