frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Casplist.eu

https://casplist.eu
1•PhilipV•4m ago•1 comments

OpenAI exec becomes top Trump donor with $25M gift

https://finance.yahoo.com/news/openai-exec-becomes-top-trump-230342268.html
2•doener•5m ago•0 comments

(AI) Slop Terrifies Me

https://ezhik.jp/ai-slop-terrifies-me/
1•Ezhik•5m ago•0 comments

Anthropic's team cut ad creation time from 30 minutes to 30 seconds

https://claude.com/blog/how-anthropic-uses-claude-marketing
1•Brajeshwar•13m ago•0 comments

Show HN: Elysia JIT "Compiler", why it's one of the fastest JavaScript framework

https://elysiajs.com/internal/jit-compiler
1•saltyaom•14m ago•0 comments

Cache Monet

https://cachemonet.com
1•keepamovin•15m ago•0 comments

Chinese Propaganda in Infomaniak's Euria, and a Reflection on Open Source AI

https://gagliardoni.net/#20260208_euria
1•tomgag•15m ago•1 comments

Show HN: A free, browser-only PDF tools collection built with Kimi k2.5

https://pdfuck.com
2•Justin3go•18m ago•0 comments

Curating a Show on My Ineffable Mother, Ursula K. Le Guin

https://hyperallergic.com/curating-a-show-on-my-ineffable-mother-ursula-k-le-guin/
2•bryanrasmussen•24m ago•0 comments

Show HN: HackerStack.dev – 49 Curated AI Tools for Indie Hackers

https://hackerstack.dev
1•pascalicchio•31m ago•0 comments

Pensions Are a Ponzi Scheme

https://poddley.com/?searchParams=segmentIds=b53ff41f-25c9-4f35-98d6-36616757d35b
1•onesandofgrain•37m ago•9 comments

Divvy.club – Splitwise alternative that makes sense

https://divvy.club
1•filepod•38m ago•0 comments

Betterment data breach exposes 1.4M customers

https://www.americanbanker.com/news/1-4-million-data-breach-betterment-shinyhunters-salesforce
1•NewCzech•38m ago•0 comments

MIT Technology Review has confirmed that posts on Moltbook were fake

https://www.technologyreview.com/2026/02/06/1132448/moltbook-was-peak-ai-theater/
2•helloplanets•38m ago•0 comments

Epstein Science: the people Epstein discussed scientific topics with

https://edge.dog/templates/cml9p8slu0009gdj2p0l8xf4r
2•castalian•38m ago•0 comments

Bambuddy – a free, self-hosted management system for Bambu Lab printers

https://bambuddy.cool
3•maziggy•43m ago•1 comments

Every Failed M4 Gun Replacement Attempt

https://www.youtube.com/watch?v=jrnAU67_EWg
3•tomaytotomato•43m ago•1 comments

China ramps up energy boom flagged by Musk as key to AI race

https://techxplore.com/news/2026-02-china-ramps-energy-boom-flagged.html
2•myk-e•44m ago•0 comments

Show HN: ClawBox – Dedicated OpenClaw Hardware (Jetson Orin Nano, 67 Tops, 20W)

https://openclawhardware.dev
2•superactro•46m ago•0 comments

Ask HN: AI never gets flustered, will that make us better as people or worse?

1•keepamovin•47m ago•0 comments

Show HN: HalalCodeCheck – Verify food ingredients offline

https://halalcodecheck.com/
3•pythonbase•49m ago•0 comments

Student makes cosmic dust in a lab, shining a light on the origin of life

https://www.cnn.com/2026/02/06/science/cosmic-dust-discovery-life-beginnings
1•Brajeshwar•52m ago•0 comments

In the Australian outback, we're listening for nuclear tests

https://www.abc.net.au/news/2026-02-08/australian-outback-nuclear-tests-listening-warramunga-faci...
6•defrost•52m ago•1 comments

'Hermès orange' iPhone sparks Apple comeback in China

https://www.ft.com/content/e2d78d04-7368-4b0c-abd5-591c03774c46
1•Brajeshwar•52m ago•0 comments

Show HN: Goxe 19k Logs/S on an I5

https://github.com/DumbNoxx/goxe
1•nxus_dev•53m ago•1 comments

The async builder pattern in Rust

https://blog.yoshuawuyts.com/async-finalizers/
2•fanf2•54m ago•0 comments

(Golang) Self referential functions and the design of options

https://commandcenter.blogspot.com/2014/01/self-referential-functions-and-design.html
1•hambes•55m ago•0 comments

Show HN: Model Training Memory Simulator

https://czheo.github.io/2026/02/08/model-training-memory-simulator/
1•czheo•57m ago•0 comments

Claude Code Controller

https://github.com/The-Vibe-Company/claude-code-controller
1•shidhincr•1h ago•0 comments

Software design is now cheap

https://dottedmag.net/blog/cheap-design/
1•dottedmag•1h ago•0 comments
Open in hackernews

15 Years of Shader Minification

https://www.ctrl-alt-test.fr/2025/15-years-of-shader-minification/
147•laurentlb•9mo ago

Comments

zombot•9mo ago
>

  #define R return
OK, that was not what I thought of when reading "shader minification".
pests•9mo ago
Thankfully that’s not what the article is about, three paragraphs later it is noticed this has no savings after compression.
keyle•9mo ago
The author is referencing the demo scene, where they often have to meet very tight budgets in terms of space, so everyone is on an equal footing and it makes for very interesting wow moments.
monokai_nl•9mo ago
Thank you for making this tool. I'm calling it in a custom webpack plugin so it transforms GLSL code into a single minified string on every build / watch event. I used this setup for my latest artwork: https://monokai.com/work/origin
akomtu•9mo ago
With recursive #defines it would be possible to do LZW compression.
wiz21c•9mo ago
do you actually needs recursivity for that ?
pjmlp•9mo ago
The pain of GL shaders, only because they don't embrace modern programming like modules and bytecode delivery.

That is how one ends up with shader minification.

And this is still quite actual as pain point, given how shaders work in 3D Web APIs.

ryao•9mo ago
Regarding bytecode delivery, have you seen SPIR-V?

As for modules, avoiding them is a performance feature since it is easier to optimize code when you compile everything in one unit. Rather than go toward modules, modern graphics has moved away from them by removing dynamic linking from newer shader languages such as SPIR-V. I believe a limited form of dynamic linking was later introduced in the form of graphics pipeline libraries for avoiding performance issues from a combinatoric explosion of partially redundant compilations when translating shaders from Direct3D 11 and earlier, but for anything outside of translating other APIs, you are supposed to avoid using that as far as I know.

TazeTSchnitzel•9mo ago
Dynamic linking is returning because of ray-tracing also.
pjmlp•9mo ago
Of course, but that is only for Vulkan, technically it is possible with OpenGL 4.6, but I doubt anyone is bothering with it.

It is also the way on most proprietary APIs.

Metal and DirectX have dynamic linking, shader libraries, and one thing slang thankfully has, is exactly being a modern modular language, which has been given to Khronos as GLSL successor, alongside the already major adoption HLSL, GLSL is done.

manchmalscott•9mo ago
I mean, in my personal projects I've transpiled GLSL into spir-v bytecode for use with OpenGL 4.5, even. Libshaderc has suppported that for years.
pjmlp•9mo ago
Maybe using extensions?

"Khronos Releases OpenGL 4.6 with SPIR-V Support"

https://www.khronos.org/news/press/khronos-releases-opengl-4...

> OpenGL 4.6 adds support for ingesting SPIR-V shaders to the core specification, guaranteeing that SPIR-V shaders will be widely supported by OpenGL implementations

BearOso•9mo ago
> Of course, but that is only for Vulkan, technically it is possible with OpenGL 4.6, but I doubt anyone is bothering with it.

https://devblogs.microsoft.com/directx/directx-adopting-spir...

pjmlp•9mo ago
Yes, and what does that change in the context of GLSL?
laurentlb•9mo ago
I wrote this article mainly for the people in the demoscene. If anything is unclear or missing for the Hackernews audience, I'm happy to answer questions here.

If anyone wants to try it, I've made a web build: https://ctrl-alt-test.fr/minifier/

I might write a more general article later on writing code minifiers, e.g. how it compares to writing a code formatter, how to implement the transformations, etc.

On the tech side, the code is written in F#. The web build uses Bolero (Blazor for F#). So maybe I'll write later about my experience writing an open source project with F# and evolving it.

tonyhart7•9mo ago
is there HN equivalent on game industry??
wesz•9mo ago
https://gamedev.city/
tonyhart7•9mo ago
wow, seems empty
tough•9mo ago
Some older discussions about this:

https://news.ycombinator.com/item?id=40419289

sagacity•9mo ago
This is an awesome tool, thanks Laurent! Currently using it for my next 64k intro which will probably ship sometime in 2047 :)
slimbuck•9mo ago
Have you tested the shader's runtime performance penalty after minification?

Also wondering how you handle named uniforms?

ryao•9mo ago
I cannot answer this for him, but I can speculate on the answer to your first question. The transformations he described his minifier applying do not change the code from the perspective of the compiler in any meaningful way, so the end result should have no performance difference. The only possible exception is the inlining, but the compiler likely would have done that anyway, so the end result should still have no difference.

To state that more precisely, everything is going to be translated into a SSA syntax in a compiler pass at some point. At that point, much of what he described should be either something the toolchain would have done (such as comment removal by the preprocessor) or effectively undone (such as the variable name reuse since by definition SSA makes each variable name be used exactly once). The rest should converge to the same result after subsequent optimization passes (such as an inlining pass). If you find a performance difference from using his tool, file a bug report with your compiler’s authors.

laurentlb•9mo ago
Most transformations don't change the code that's executed.

  const float x = sin(2);
  const float y = 2;
If you define these two consts, we can inline y everywhere it's used. But by default, we don't inline x as it would lead to more work at runtime (maybe it doesn't matter for sin, but other function calls can be expensive). If you notice performance issues, please file a bug.

Renaming uniforms is optional (there's a flag). If you use C++, you can generate a .h header file that contains both the minified shader and macros that tell you how they've been renamed.

So Shader Minifier will generate macros like:

  # define VAR_time "f"
to tell you that "time" is now called "f" and you can use VAR_time in your C++ code.
gitroom•9mo ago
Man, 15 years grinding on this is hardcore - big respect, love this kinda craft.
laurentlb•9mo ago
Thanks! To be fair, there have been a few years without a single commit: https://github.com/laurentlb/shader-minifier/graphs/contribu... (before 2013, the code was in a private svn repo).

I also enjoy alternating work between multiple of my hobby projects, and I find it refreshing to come back to this F# codebase once in a while. :)