@litherum@masto.ai
@litherum@masto.ai avatar

litherum

@litherum@masto.ai

Realtime 3D development and game-adjacent development

I run https://botsin.space/@differentthingsbot

I used to be a new romantic
Though nothing's new about my views
They're rather plain old-fashioned, really
And dangerous

This profile is from a federated server and may be incomplete. Browse more on the original instance.

Migueldeicaza, (edited ) to random
@Migueldeicaza@mastodon.social avatar

Over on twitter there has been a bit of a back and forth on C# and Rust simple json server performance.

I know C# has gotten a ton of performance tuning on the stack, and was wondering if Swift was up to the task.

I have never done Swift on the Server before, but the results are impressive:

Swift: 64k req/sec
.NET: 61k req/sec

https://gist.github.com/migueldeicaza/d85ef9fe0ac0a14162aeff512dd9072e

Original thread:

https://x.com/migueldeicaza/status/1794361106665750860

litherum,
@litherum@masto.ai avatar

@Migueldeicaza “Swift on the Server”

Does the server run macOS?

litherum, to random
@litherum@masto.ai avatar

Today I discovered the market cap of AMD is roughly twice the market cap of Intel

Huh.

litherum, to random
@litherum@masto.ai avatar

I wrote a thing! About using the AVX-512 instruction set (and its predication registers!) to implement a GPU's programming model ("single instruction multiple thread") on a CPU. Specifically, about making a compiler for a toy C-like language that emits AVX-512 code that runs the given program 8 times at once.

https://litherum.blogspot.com/2023/10/implementing-gpus-programming-model-on.html

litherum, to random
@litherum@masto.ai avatar

90-minute all-hands meetings should be illegal

litherum, to random
@litherum@masto.ai avatar

My favorite errors are the ones that force you to read the compiler’s source to understand what’s wrong

litherum, to random
@litherum@masto.ai avatar

In my opinion, the WebKit blog post https://webkit.org/blog/15269/help-us-invent-masonry-layouts-for-css-grid-level-3/ is particularly poorly written, for 2 reasons:

  1. It's not focused or concise
  2. It's written in a manipulative way

The description of grid and its features (which takes up 2/3 of the post) should be its own post - because it's so detailed, it detracts from the purpose of the post, which is (ostensibly) to ask for developer feedback

1/3

litherum, to random
@litherum@masto.ai avatar

Java is the Camry of programming languages

litherum, to random
@litherum@masto.ai avatar

I tried writing something with Qt today for the first time. It seems neat. http://litherum.blogspot.com/2023/10/my-first-qt-app.html

litherum, to random
@litherum@masto.ai avatar

I dislike how, in Vulkan, you have to write different code depending on whether your compute queue is different than your render queue.

The code for a queue transfer doesn't automatically degrade into a regular pipeline barrier if the queue indices happen to be the same.

Boooo Vulkan

litherum, to random
@litherum@masto.ai avatar

People joke about how https://www.apple.com/newsroom/2024/03/the-app-store-spotify-and-europes-thriving-digital-music-market/ is "Thoughts on Spotify" but I think it's actually illustrative to go back and re-read the original Thoughts on Flash https://web.archive.org/web/20100501010616/http://www.apple.com/hotnews/thoughts-on-flash/ back-to-back with this.

Thoughts on Flash is technical, discussing pros and cons of an engineering decision based on the criteria of what makes the best user experience - putting the user first.

This Spotify post is nothing like that. It's all about market share and geopolitics. Users wants aren't considered.

litherum, to random
@litherum@masto.ai avatar

Startup idea: porting DX9-era closed-source games to the web by transpiling x86 assembly and swapping out system calls / library calls to use all the modern web APIs instead

  • WebGPU
  • Web Workers
  • SharedArrayBuffer
  • File System API
  • Web Assembly
  • Web Audio
  • Pointer Lock
  • WebSockets / WebRTC
  • Gamepad API

There’s a chance it may actually work!

litherum, to random
@litherum@masto.ai avatar

I, for one, am really excited for the new Snapdragon X chips, because the more GPU vendors breaking up the Nvidia / AMD duopoly, the better

Wouldn’t it be amazing if there was actual competition among

  • Nvidia
  • AMD
  • Intel
  • Qualcomm
  • Apple
    … all of whom design GPUs?
litherum, to random
@litherum@masto.ai avatar

What I want to know most from the news media: if someone was found guilty of these crimes, and they weren't the president, would they go to jail?

litherum, to random
@litherum@masto.ai avatar

Just got this today. Wow. Just, wow. I can't even.

litherum, to random
@litherum@masto.ai avatar
TomF, to random
@TomF@mastodon.gamedev.place avatar

If your debug build is faster than 25% the speed of your release build, you're not doing enough debug checking. Buy your devs faster computers.

litherum,
@litherum@masto.ai avatar

@TomF As someone whose background is from outside the 3D graphics realm, my first reaction to this is "if this is really necessary to write correct code, then the APIs are very poorly designed"

litherum, to random
@litherum@masto.ai avatar

Is the Berkeley packet filter Turing-complete?

litherum,
@litherum@masto.ai avatar

I should make a list of things that are Turing complete but shouldn’t be

  • fonts
  • Berkeley packet filter
  • maybe ICC profiles
  • ACPI
  • (arguably) webpages
  • most build systems
litherum, to random
@litherum@masto.ai avatar

my favorite javascript-ism is "switch (true)"

litherum,
@litherum@masto.ai avatar

@tojiro

In C, switch turns into a jump table. But in JavaScript, there's no such thing as a jump table (the language is much too high level for that). So, in a switch, each case: is an expression that gets evaluated in order.

So, instead of:
if (foo()) { ... }
else if (bar()) { ... }
else if (baz()) { ... }
else if (quux()) { ... }

you can do
switch (true) {
case foo(): ...
case bar(): ...
case baz(): ...
case quux(): ...
}

litherum, to random
@litherum@masto.ai avatar

I write a one-line program which is obviously a memory leak:

char* ptr = malloc(10);
return 0;

I use Instruments's "Leaks" tool, to see if it can find the leak.

It "Failed to attach to target process"

litherum,
@litherum@masto.ai avatar

I'm back to thinking that these tools suck

litherum, to random
@litherum@masto.ai avatar

You know what GLSL needs?

Inline assembly. So you can write snippets of SPIR-V in your GLSL shader.

(I'm only mostly joking)

litherum,
@litherum@masto.ai avatar

@dneto why would Microsoft agree to that?

Why wouldn’t Microsoft make a way to include inline DXIL instead?

I find Microsoft’s relationship to SPIR-V fascinating

litherum, to random
@litherum@masto.ai avatar

I remember it took me literal days to figure out the “umount” command doesn’t have the letter “n” in it

I kept reading online about people saying “use umount” and every time I tried, it said “unmount: command not found”

I felt so stupid when I figured it out

And then I thought, no, it is not me who is stupid, it is whoever named that fucking command and deleted a random letter from the middle of it

litherum,
@litherum@masto.ai avatar

LETTERS IN A COMPUTER ARE NOT EXPENSIVE

WE DO NOT HAVE TO CONSERVE THEM

WE WILL NOT RUN OUT OF THEM

USE AS MANY AS YOU WANT

ahem. code is read way more often than it’s written.

litherum, to random
@litherum@masto.ai avatar

I do not envy Judge Merchan now. He has to decide "do I send a former president to jail" and the decision is squarely on his shoulders alone

litherum,
@litherum@masto.ai avatar

@tojiro yeah, though that date is up to him. He can reschedule it at his own whims (more or less)

But, yeah. He must be feeling so much dread

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • mdbf
  • magazineikmin
  • thenastyranch
  • ngwrru68w68
  • khanakhh
  • rosin
  • Youngstown
  • slotface
  • cisconetworking
  • modclub
  • kavyap
  • ethstaker
  • DreamBathrooms
  • tester
  • Durango
  • InstantRegret
  • osvaldo12
  • tacticalgear
  • anitta
  • normalnudes
  • Leos
  • everett
  • cubers
  • GTA5RPClips
  • megavids
  • provamag3
  • lostlight
  • All magazines