Sign in

Patrik Svensson

@patriksvensson.se
1.4K followers 494 following 2.3K posts

Father. Husband. Programmer. Likes OSS, compilers, programming. Spectre.Console, Cake. Ally ✊🏾🏳️‍🌈🏳️‍⚧️♀️(He/Him) @patriksvensson@mstdn.social Stockholm, Sweden

PostsRepliesMedia
Reposted by Patrik Svensson
ɴɪᴋᴀ @mxnectarine.polycule-slut.cloud · 8h
As a swede, it’s a bit weird to buy land for “recreational use” as the right to roam makes most land available to anyone. If he has some idea that this will be his private property, it’s going to be funny to see what happens when people hike, camp, pick berries and mushrooms on “his” land
fortune.com
Palantir CEO Alex Karl quietly purchased 37,000 acres of forests in Sweden—and locals found out when hunters lost leases to use the property | Fortune
Cladonia Skog AB, a newly registered company owned by Karp, said it would use the land for “forestry and other related activities.”
26618
Reposted by Patrik Svensson
Mitch Denny @mitchdenny.dev · 28/09/2026
One thing that I wish macOS did better was multi-monitor support. I have two fairly recent Dell monitors on my desk daisy chained via thunderbolt (to mac) and DP (to second monitor). And when I plug in the mac its hit and miss as to whether its going to work or not.
111
Patrik Svensson @patriksvensson.se · 25/09/2026
I've always said that if I weren't a programmer, I'd be a carpenter. Well, I'm remodeling my garage, and it turns out I SUCK at carpentry. So I need a new backup plan.
3130
Patrik Svensson @patriksvensson.se · 24/09/2026
I generated a OpenCLI (opencli.org) description for ffmpeg via "ffmpeg -h full", and the file is 2Mb big...
Finder listing: dotnet.json (52 KB) and the selected ffmpeg.json (2 MB).
220
Patrik Svensson @patriksvensson.se · 22/09/2026
Listening to "Story of an Artist" by M. Ward (originally by the late great Daniel Johnston) on repeat tonight. This song is deeply associated with moving to Stockholm for me.
000
Reposted by Patrik Svensson
Gianmarco Soresi @gianmarcosoresi.bsky.social · 21/09/2026
If you’re moved by this guy crying boy oh boy are there some other images and videos you should check out
395209333476
Patrik Svensson @patriksvensson.se · 21/09/2026
I'm considering submitting a talk about building a compiler for the CLR to a conference in February, but I haven't decided whether I want to add yet another thing to my already busy schedule.
241
Patrik Svensson @patriksvensson.se · 20/09/2026
I just discovered that ordering glasses online costs a tenth of what I pay at my closest brick-and-mortar store. I have no other word for opticians than "cartel".
121
Patrik Svensson @patriksvensson.se · 20/09/2026
I got error propagation working in Mew yesterday! One thing I love about how the compiler works is that this change didn't require any new concepts, just new lowering mechanisms, which made it pretty quick to implement.
Mew code:

```
pub fn evaluate(text: string) -> Result<i64, string> {
    if text.is_empty() {
        return .ok(0);
    }

    let tokens = tokenize(text)?;
    let expr = parse(tokens)?;

    let eval = new Evaluator { };
    return .ok(expr.accept(eval));
}
```
010
Patrik Svensson @patriksvensson.se · 18/09/2026
Spent most of my evening on this, but finally got "if let" statements working tonight! github.com/patriksvenss...
Mew code:

```
pub fn parse(tokens: Enumerable<Token>) -> Result<Expression, string> {
    let mut stack = Stack<Expression>::new();
    for token in tokens {
        match token {   
            .LParen => { /* Ignore */ },
            .RParen => { /* Ignore */ }
            .Integer(value) => stack.push(new IntegerExpression { value: value }),
            .Operator(op) => { 
                if let .some(right) = stack.pop() {
                    if let .some(left) = stack.pop() {
                        stack.push(new ArithmeticExpression {
                            operator: op.kind,
                            left: left,
                            right: right,
                        });
                        continue;
                    }
                }

                return .err("Expected operand on stack");
            },
        }
    }

    if stack.is_empty() {
        return .err("Expected expression on stack but found none");
    }

    return .ok(stack.pop().unwrap());
}
```
140
Patrik Svensson @patriksvensson.se · 17/09/2026
So this happened yesterday. For some unknown reason (I attribute it to some kind of clerical error), I was awarded "Developer of the Year" at the Developers Day gala here in Stockholm. It was a super fun evening.
A picture of me getting an award for some unknown reason.Me and some other people who also won awards. Probably for a good reason.
6231
Patrik Svensson @patriksvensson.se · 17/09/2026
The first real Mew program was written tonight: a simple arithmetic calculator that takes input either from command-line arguments or from stdin. It demonstrates most of the language's current features, as well as interop with .NET. github.com/patriksvenss...
#load "parsing/mod.mew"

use std;

let expression = read_expression();
let result = parsing.evaluate(expression);
match result {    
    .ok(value) => println($"The result is: {value}"),
    .err(message) => panic(message),
}

fn read_expression() -> string {
    let args = System.Environment::GetCommandLineArgs();
    if args.count > 1 {
        // Get the first provided value
        return args[1];
    } else {
        // Get expression from stdin
        print("> ");
        return System.Console::ReadLine();
    }
}Terminal screenshot showing two runs of a Mew program in a directory named mew-demo. In the first, the command mew main.mew "1+2+3+4*7+(32/2)" prints "The result is: 50". In the second, mew main.mew is run with no arguments, the expression 1+1+2*3 is typed at a ">" prompt, and the program prints "The result is: 8".
140
Reposted by Patrik Svensson
Nicholas Blumhardt @nblumhardt.com · 15/09/2026
All set up for a fun day at #ndcoslo tomorrow! Drop in and say “hi” if you’re around 👋
021
Reposted by Patrik Svensson
Cake Build @cakebuild.net · 14/09/2026
Cake v6.3.0 is out 🚀🍰 NuGetLogin for GitHub Actions OIDC trusted publishing (no long-lived API keys), nullability-aware aliases, typed dotnet tool aliases, verbosity via config, and light-theme-friendly reports. cakebuild.net/blog/2026/09... #dotnet #devops #csharp
cakebuild.net
Cake - Cake v6.3.0 released
1105
Reposted by Patrik Svensson
Mattias Karlsson @devlead.se · 14/09/2026
One of my favorite .NET conferences, Swetugg, just opened its CFP for 2027! See you there? sessionize.com/swetugg-stoc... #dotnet #cfp
sessionize.com
Swetugg Stockholm 2027: Call for Speakers
Our vision is to create a good quality .NET conference with relevant content that is also affordable. We include everything from the shiny new things ...
094
Patrik Svensson @patriksvensson.se · 12/09/2026
The Mew compiler now emits correct MSIL via System.Reflection.Metadata, so I can produce proper PDB files, which means DEBUGGING NOW WORKS!
Screenshot of VS Code debugging a Mew-language file, paused at a breakpoint inside a match expression, with the Variables, Call Stack, and Debug Console panels visible.
1344
Patrik Svensson @patriksvensson.se · 12/09/2026
Tomorrow we have elections in Sweden. I will of course, as always, vote for the only left leaning party left (no pun intended), which is the Left Party (Vänsterpartiet). I will never cast a vote based on my personal economic situation, but how I want us to shape our society.
2101
Reposted by Patrik Svensson
Miguel de Icaza @migueldeicaza.bsky.social · 09/09/2026
They canceled the 50 dollar a month sponsorship of Gnome and Flatpack too- they couldn’t afford it.
173
Patrik Svensson @patriksvensson.se · 09/09/2026
DigitalOcean adds support for DOGE/Linux! Your new one-stop shop for fashware servers! (The term coined by @migueldeicaza.bsky.social afaik)
1101
Reposted by Patrik Svensson
Kaffelavemang @kaffemaster.bsky.social · 07/09/2026
En meme i 4 rutor.

Översatt från engelska "Det är tufft när folk står framför saker de förstört".

Ironman står framför en explosion.
John Wick står framför en eld.
Jokern står framför ett sjukhus som exploderat.
Irene Svenonius står framför en akutmottagning.
37118
Reposted by Patrik Svensson
Miguel de Icaza @migueldeicaza.bsky.social · 05/09/2026
If the hubris that lead to security holes and poor engineering of doge/linux did not dissuade an enthusiastic friend, perhaps not supporting the Nazi ideology behind it will: www.flyingpenguin.com/dhh-nazism-f...
flyingpenguin.com
DHH Nazism Funded by 1Password VP Who Wrote “Honest Security” | flyingpenguin
34614
Patrik Svensson @patriksvensson.se · 05/09/2026
Mew (my toy language) now supports interfaces, generics, discriminated unions, and lambdas. For the first time since I started building it three years ago, I think I might be ready to use it in Advent of Code this year.
Some Mew source code. Not really important for the post.
2202
Patrik Svensson @patriksvensson.se · 03/09/2026
I'm kind of proud of this.
```
// Then
result.ShouldHaveDiagnostics(
    """
    Error [MEW2071]: Duplicate case
      ┌─[]
      │
    1 │ pub union U { a, b(i32), a }
      ·               ┬          ┬
      ·               │          ╰── 'U' already declares a case named 'a'
      ·               │
      ·               ╰───────────── First declared here
      │
      └─
    """);
```
070
Patrik Svensson @patriksvensson.se · 03/09/2026
I'm not onboard the vibe coding train, but I've started using LLMs in some capacity for doing audits, investigating issues etc. I do however think that the current debate is weird. Just because there is a agents file in a repo doesn't mean that the project is vibe coded. There is zero nuance...
191
Patrik Svensson @patriksvensson.se · 02/09/2026
Seeing some high-profile programming people shitting on my place of employment today, making claims based on things taken completely out of context. Can't stop people from saying stupid things (this is the internet, after all), but it sure is frustrating.
230
Patrik Svensson @patriksvensson.se · 01/09/2026
After a lot of work, Mew now supports interfaces! I'm so incredibly happy with the implementation of this.
Mew source code:

```
pub interface Shape {
    /// Gets the shape area
    fn area() -> i32;
}

pub type Square {
    pub field side: i32;
}

impl Shape for Square {
    pub fn area() -> i32 {
        return self.side * self.side;
    }
}

pub type Box {
    pub field width: i32;
    pub field height: i32;
}

impl Shape for Box {
    pub fn area() -> i32 {
        return self.width * self.height;
    }
}

fn test_interfaces() {
    let shapes = new Shape[] {
        new Square { side: 2, },
        new Box { width: 3, height: 4, }
    };

    let mut total = 0;
    let mut index = 0;
    while index < shapes.count {
        total += shapes[index].area();
        index += 1;
    }

    println(itoa(total));
}
```
040
Reposted by Patrik Svensson
simoncropp.bsky.social @simoncropp.bsky.social · 27/08/2026
Verify now supports inline snapshots github.com/VerifyTests/...
0104
Reposted by Patrik Svensson
Miguel de Icaza @migueldeicaza.bsky.social · 25/08/2026
It is spelled Omarchy, but it is pronounced DOGE slash Linux.
3557
Patrik Svensson @patriksvensson.se · 16/08/2026
This is the most ridiculous thing I've seen in a long time. I was just about to catch up on all the blog posts I missed, but now I need a new RSS reader.
An screenshot of Feedlys landing page, which seems to have "pivoted" to some AI analysis crap.
690
Reposted by Patrik Svensson
Jason Bock @jasonbock.net · 12/08/2026
New article published: "Fun With C# Unions" jasonbock.net/articles/Fun... #dotnet #csharp
jasonbock.net
Fun With C# Unions
Personal web site
201
Patrik Svensson @patriksvensson.se · 09/08/2026
Watching Jason play is always great fun. Join the stream!
010
Reposted by Patrik Svensson
Elle Cordova @ellecordova.bsky.social · 08/08/2026
Data centers
732597913
Reposted by Patrik Svensson
Jeroen Baert @jbaert.bsky.social · 04/08/2026
Must sound so cool if you don't know what the fuck you're talking about.
713517
Patrik Svensson @patriksvensson.se · 03/08/2026
I'm tired of talking with robots on the Internet.
6111
Patrik Svensson @patriksvensson.se · 29/07/2026
Someone stole my Apple Watch from my arm tonight. Skills! I'm not even mad.
130
Patrik Svensson @patriksvensson.se · 28/07/2026
PR descriptions before LLMs: “here lol glhfdd”. PR descriptions after LLMs: 4 pages of academic writing going into the intricacies of every change. Author still doesn’t check the “AI was used in creating this PR” checkbox in the PR template.
071
Reposted by Patrik Svensson
Patricia Aas 🐢🏳️‍🌈 @patigallardo.bsky.social · 10/07/2025
Food, healthcare, shelter are basic human rights. That means I believe everyone should have them. Even assholes. Your basic needs shouldn’t depend on other people’s charity or good will. I want grumpy old recluses, with zero friends and no internet, to get free healthcare. That’s the whole point.
321164
Reposted by Patrik Svensson
Barret Blake @barretblake.dev · 24/07/2026
New post from my blog... Photo Organizer - A Handy Little App barretblake.dev/posts/development/2… #dotnet #utilities #consoleapp
blog post hero image
051
Patrik Svensson @patriksvensson.se · 20/07/2026
It's finally over.
040
Patrik Svensson @patriksvensson.se · 18/07/2026
ICYMI: We released a new library called Spectre.Console.Ansi, which makes writing ANSI a breeze (and much more). With this library, you can also use the markup functionality directly with an old-fashioned System.Console. spectreconsole.net/console/how-...
spectreconsole.net
Spectre.Console Documentation - Write ANSI
How to write ANSI/VT sequences and markup without the Spectre.Console library
1143
Reposted by Patrik Svensson
Sedat Kapanoğlu @ssg.dev · 18/07/2026
SimpleBase 5.6.2 is out, an important update for users of Turkish culture.
github.com
Release 5.6.2 · ssg/SimpleBase
What's Changed Fix exception with Base32 on systems with Turkish culture by @skacurt in #82 New Contributors @skacurt made their first contribution in #82 Full Changelog: 5.6.1...5.6.2
141
Patrik Svensson @patriksvensson.se · 16/07/2026
Fascinating what people will risk to do 80 km/h in a 70 km/h zone. Their own life and their family’s lives, all to shave a minute or two off the trip. People are stupid.
151
Reposted by Patrik Svensson
seifert 🐢 @seifert.bsky.social · 14/07/2026
En teckning som ser ut att va gjord i färgkritor i mörk turkosblått och varmgult. Föreställer en stiliserad tiger med gul kropp och blå ränder. Den har också rektangulära glasögon, blå kavaj och vit skjorta. Under tigern står det med svart krit-text: ”En offentligt anställd tiger”
7328141
Reposted by Patrik Svensson
JetBrains ReSharper @resharper.jetbrains.com · 13/07/2026
You asked, and we delivered. Debugging was the #1 request from .NET devs. With ReSharper 2026.2, it's here, joining the inspections, refactorings, and Solution Explorer you already use in VS Code, Cursor, and compatible editors. Why wait? Install and debug today. 🔗 jetbrains.blog/rs-vsc-debug...
152
Reposted by Patrik Svensson
Steve the Muppet Wrangler @beardog63.bsky.social · 13/07/2026
Fun fact: To keep production costs low, many Star Trek scenes were actually filmed on Earth rather than on location in outer space.
1452267202
Reposted by Patrik Svensson
Duncan Jones @manmademoon.bsky.social · 12/07/2026
The idea that we shouldn’t speak ill of the dead seems ridiculous to me. What more important time is there to set the public memory of the good or bad a person has put into the world than when they die. It’s the gift we give to those we loved, and the bill due for those who made others miserable.
661867430
Reposted by Patrik Svensson
Phil Scott @philco.bsky.social · 06/07/2026
Added some new diagram types to my documentation diagram tool, Beck usepennington.github.io/beck/ First up, class diagram
a simple class diagram showing Entity, Order, Customer, Orderline, and IOrderNotifier
165
Patrik Svensson @patriksvensson.se · 05/07/2026
For the last 30 years, my friends have made me watch soccer, and I still don't get it.
310
Patrik Svensson @patriksvensson.se · 05/07/2026
Today I learned that I like euro techno more than soccer.
140
Patrik Svensson @patriksvensson.se · 04/07/2026
We have all, at some point, worked with someone like Larry.
0131