
#csharp, #dotnet, #perf, #goinglower. Recreational maths & physics, general geekery. https://xitter.cf/t.co/qbbnugVKnc
London, UK
Joined March 2009
- Tweets5.1K
- Following815
- Followers280
- Likes5.5K
0xGuy_Langston(C#/vim/compsci) retweeted
More :help pages are in "flow" layout.
neovim.io/doc/user/support/#…
Besides nicer HTML rendering, this opens the door for a future "presentation mode" where hard-wrapped text blocks can be viewed in flow layout.
0xGuy_Langston(C#/vim/compsci) retweeted
🐘 Introducing Postgres Internals in 3D.
🌟 pgrun.dev/pi
Stop reading boring diagrams. Start exploring PostgreSQL.
An interactive 3D map to understand how Postgres actually works.
100% free. Built for developers.
xitter.cf/alxshp/status/21100494…
Introducing PGSync 🐘
Real-time PostgreSQL replication. FREE. OSS
Built in Rust. 🦀
Postgres 16 / 17 / 18.
No extensions. No triggers. No complex setup.
→ snapshot
→ replicate
→ stream changes
→ track WAL
→ recover from crashes
→ resume automatically
→ keep databases in sync
~15 MB RAM during streaming.
Built for developers. Built for AI agents.
Open source.
xitter.cf/alxshp/status/21078790…
0xGuy_Langston(C#/vim/compsci) retweeted
Anders Hejlsberg (creator of TypeScript and C#, @ahejlsberg) on two reasons they used Go, not Rust:
Me: If you think about Rust, what didn't it have that, if it had it, you would have picked it?
Anders: I think there are two things. It doesn't have garbage collection. It's done manually, or it's done through the borrow checker. But the borrow checker doesn't allow circular data structures, and our compiler is chock-full of circular data structures.
We have trees with parent pointers. We have types that are recursive. We have symbols that refer. It's everywhere.
And like I said, if we had chosen to rewrite, we could have probably solved all of that. But it wouldn't have been just porting the code. It would also have been solving a whole bunch of new problems that we had bought ourselves by going that route. We tried, and it just wasn't feasible.
So we were just trying to optimize for doing as little work as possible to get us to the payout. And honestly, Rust is no better when it comes to the quality of the generated code or the concurrency gains that we could have gotten out of it.
Go is just great. We got all the bennies for less work by going that route.
Anders Hejlsberg ( @ahejlsberg ) is the creator of TypeScript and C#, and I asked him about how the TypeScript compiler got 10x faster through a rewrite in Go and his thoughts on how AI has impacted software engineering.
In this episode:
• How rewriting the compiler makes it 10x faster
• Why they picked Go instead of Rust
• Why they didn't use LLMs for the migration
• Predictions on AI's impact on software engineering
Where to watch:
• YouTube - youtube.com/watch?v=cywK3XYY…
• Spotify - open.spotify.com/episode/1th…
• Apple Podcasts - podcasts.apple.com/us/podcas…
• Transcript - developing.dev/p/creator-of-…
Thank you to the sponsors of this episode for supporting my work:
• WorkOS: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code, check them out at workos.com/
• Jira by Atlassian: Get more work done with your favorite agents and models all in one place, check them out at jira.dev/
Chapters:
00:00 Intro
00:48 Why write a compiler in JavaScript
07:29 Why rewrite the compiler in Go
14:49 LLMs for large migrations
20:12 Why Javascript is so popular
26:32 Why ever use Javascript on the backend
32:59 What it takes to build a programming language
37:06 Will there be fewer languages in 10 years
42:57 Hands on engineering vs delegation
49:14 Why fast tooling matters more now
51:16 AI software engineering predictions
58:52 The most technically challenging work
01:02:04 Top book recommendation
01:03:50 Advice for his younger self
01:05:00 Outro
0xGuy_Langston(C#/vim/compsci) retweeted
Everyone AI pilled is building a software factory (or has been for a while). I am also having fun with mine. An all C# native AOT version of DOOM.
davidfowl.github.io/doomshar…
Demo in WASM:
github.com/davidfowl/doomsha…
0xGuy_Langston(C#/vim/compsci) retweeted
If you are ever trapped inside a locked-down Linux container that doesn't have curl, wget, or netcat installed, you can still make raw TCP network connections.
Bash has a secret built-in network stack wired to /dev/tcp:
0xGuy_Langston(C#/vim/compsci) retweeted
Jev vs Jev playtesting my card game, not only taking decisions but also scoring them, fe. how forced or interesting each move was, and whether someting looks like a rules or card bug.
The median Jev answer is 283 ms, a whole single game playtest costs roughly $0.08–0.15 in Jev calls.
0xGuy_Langston(C#/vim/compsci) retweeted
With Python 3.14, you can use actual threads in a single Python process... which makes it possible to parse JSON (for example) at insane speeds.
See article for details.
0xGuy_Langston(C#/vim/compsci) retweeted
tmux 3.8 looks like a bumper release raw.githubusercontent.com/tm…
0xGuy_Langston(C#/vim/compsci) retweeted
Just released 1.2.0 with significant new features! 🎉
- Full Project Code Editor
- Integrated Terminals
- Automations - supporting GitHub, GitLab, AZDO
- Git worktrees with diff changes
- Improved Plugin experience - very easy to create one with agent
and much more... 🤯
0xGuy_Langston(C#/vim/compsci) retweeted
Stripping extra dependencies in .NET NativeAOT apps using linker substitutions
andrewlock.net/stripping-ext…
In this post I describe how to perform method substitutions with the NativeAOT linker to remove additional dependencies that the linker couldn't see were unused
#dotnet
0xGuy_Langston(C#/vim/compsci) retweeted
Rust for C#/.NET developers
microsoft.github.io/rust-for…
C# FTW
Everyone doing performance tests: please stop excluding C#. Thanks.
After all, this is a top language in Age of Agents. Along with Rust.
github.com/devmobasa/lemire-…
0xGuy_Langston(C#/vim/compsci) retweeted
Genuinely one of the best condensed intros to modern CPU design - pipelining, OOO execution, branch prediction, SIMD, all without the fluff.
Recommend to anyone doing systems/perf work.
lighterra.com/papers/modernm…
0xGuy_Langston(C#/vim/compsci) retweeted
You shouldn’t need to build a Slack app just to automate Slack work.
SlackCLI is a terminal CLI for people and AI agents who need to work across one or more Slack workspaces.
It helps you turn Slack work into shell-friendly actions by reading conversations, searching history, sending or replying to messages, and returning command data as JSON.
Key features:
• Unread and conversation access – list what you missed, read channels, and open threads from Slack permalinks
• Message search – search workspace messages, channels, and people from the terminal
• Write actions – send, reply, edit, react to, and draft messages without leaving the CLI
• JSON output – pipe command results into jq, scripts, cron jobs, CI steps, or agent toolchains
• Multi-workspace support – use a default workspace or target a named workspace per command
It’s open-source (MIT license).
Link in the reply 👇
0xGuy_Langston(C#/vim/compsci) retweeted
The race for AGI
Script: Sherpa by Pocket FM
Video: Seedance 2.5
🤖 Made with AI
0xGuy_Langston(C#/vim/compsci) retweeted
simdvis now visualises PINSR* instructions.
![Screenshot of an interactive Intel instruction visualizer for VPINSRB. It shows the syntax VPINSRB xmm1, xmm2, r32, imm8 and explains that one byte from src2 is inserted into a selected byte position of src1. In the example, imm8 = 0x02, so byte index 2 is selected. src1 contains bytes 0xA0 through 0xAF, while src2[0] is 0x1F. The destination row highlights byte 2 changing from 0xA2 to 0x1F; all other destination bytes remain unchanged. A bit diagram at the bottom shows the low four immediate bits as 0010, corresponding to selection index 2.
https://serpent7776.github.io/simdvis/pinsr.html#vpinsrb](https://pbs.twimg.com/media/HSwO4mXWkAAcTTD.jpg?name=small&format=webp)
ALT Screenshot of an interactive Intel instruction visualizer for VPINSRB. It shows the syntax VPINSRB xmm1, xmm2, r32, imm8 and explains that one byte from src2 is inserted into a selected byte position of src1. In the example, imm8 = 0x02, so byte index 2 is selected. src1 contains bytes 0xA0 through 0xAF, while src2[0] is 0x1F. The destination row highlights byte 2 changing from 0xA2 to 0x1F; all other destination bytes remain unchanged. A bit diagram at the bottom shows the low four immediate bits as 0010, corresponding to selection index 2. https://serpent7776.github.io/simdvis/pinsr.html#vpinsrb





































