Pinned Tweet
UchenML links:
Browser demo - AlphaZero-style Dots: uchenml.tech/demos/dots
Overview: uchenml.tech/introducing-uch…
Using SIMD: uchenml.tech/simd-softmax-go…
Making inference fast: uchenml.tech/uchenml-optimiz…
Eugene Ostroukhov retweeted
The standard committee is still voting on the future while our build is still negotiating with the past.
UTF-8 is great right up until you need the substring of length 10 starting at character 50.
In September 1992, Unicode had a problem on Unix. Storing characters as 16-bit values could introduce zero bytes that C programs mistook for string terminators. Earlier encodings had compatibility problems of their own.
One evening, Ken Thompson and Rob Pike went to a diner in New Jersey. Thompson sketched a new encoding on a paper placemat.
ASCII stayed exactly as it was. Other characters used multiple bytes, without accidentally introducing null bytes or Unix path separators.
They went back to Bell Labs and started coding. By Friday, their Plan 9 operating system was running entirely on the new encoding.
They called it UTF-8.
Today, it powers over 99% of websites with known character encodings.
BTW, C++17 has a standard way to get the cache line size. It’s a constant, std::hardware_destructive_interference_size (obviously), and lives in <new>.
For some reason there’s also std::hardware_constructive_interference_size, which is the same number with the opposite intent.
There are many ways to kill performance in a multithreaded program. My favorite one is false sharing, because you can get 10x performance just by moving some bytes around. So let's look into it.
00:00 - When multiple threads is not even faster
04:23 - CPU L1 cache primer
09:40 - Getting ALL the performance
15:35 - Looking at disassembler
20:29 - How to find cache line address
22:38 - false sharing in disassembly
25:00 - closing words
Claude (in auto mode) today replaced my “origin” upstream url with a bogus one… It is the first time I see it doing something concerning. It was not a malicious URL - but still weird. I even checked the shell history to make sure it wasn’t me who modified it.
Finally. Stage 0. Connected Pico2 to my favorite toy - Rokenbok. The next step is making the computer control the toy. Then time for AI - I want to be able to tell this toy what to do!
First click selects a vehicle. It is possible to have up to 8 vehicles, so excited to play...
Me, telling Claude that its firmware modifications were fine and the issues where caused by me messing up the wiring.
My kids said I got a really expensive Magic card yesterday - “The Theorist, Jace Beleren” They can’t understand why I don’t care about it and just give it to them… Oh, to be young again…
Valve is the worst company in gaming. In a world that has EA.
They live off rent - 30% of every sale, paid by the people who actually make the games we love.
They don’t make games. They only make hardware as a hedge against Microsoft. Everything is about defending the monopoly that collects the rent.
The Airbnb/eBay of gaming.
Tim's making a really important point here and I think people fundamentally misunderstand it.
Let's paint a scenario. You are an indie developer and you want to make a game.
Traditional game development will take you 1 year and cost you $200,000 in outsourcing costs to buy art, animation, and additional programming resources.
AI assisted game development will take you 3 months and cost you $50,000 in credits + some additional resources.
In a good scenario your game could make $200,000 and break even, but in many scenarios you mortgage your house and no one sees your game and you are out your savings.
Now, with the anti-AI mania, Valve is forcing real economic harm on you because you get the equivalent of hate mobs at your door for your choice of tooling.
Your economic viability is harmed because Valve chooses to put a label on you that generates negative attention. It makes your economics worse.
Anti-AI proponents will point out that this proves their hate campaigns work. The appeal is not to them, because they are morons, but to developers to stand up to Valve and say remove these labels so that we can have livelihoods. And Valve makes money of you either way.
Stand up for your rights, devs!
Readers added context they thought people might want to know
Valve has developed numerous games including Half-Life, Portal, Counter-Strike 2, Dota 2 and Team Fortress 2, contrary to the claim.
valvesoftware.com/about
en.wikipedia.org/wiki/List_of_V…
steam.fandom.com/wiki/List_of_g…
C++ is very clear and unambiguous. Nothing to be confused about.
T& - lvalue reference
T&& - rvalue reference
T&& - forwarding reference
T&& - universal reference (in some books; the standard doesn’t call it that)
See, easy. Worst case if you pick wrong is a silent copy, a heap allocation, maybe a lock. Nothing a debugger can’t fix.
Went to my first mtg draft in 20 years or so. I’m pretty sure I’m the oldest one at the table. My son, 14, is the youngest.
Watched new Factorio trailer. My hands kept twitching to press Alt. I know it's just a trailer - but I need to see what's inside those chests and trains.
youtu.be/oF1zCD7NwNY?si=sn7R…
I'd be lying if I said Bazel does not have its faults. Careful with your git work trees - Bazel creates a cache for each!
If this isn't a technological marvel, I don't know what is. I decided to confirm that school is closed tomorrow so I just asked Siri using my voice. I had to follow up to confirm it actually did web search - because the response was too quick.























