the sharp point on the bridge is going to hurt your snout.
HN user
starmole
Graphics, Code, Games, Moles
Great writing. But: The printing press did displace manual copying of texts, not calligraphy. Digital type setting did not displace typography but the manual labor of type setting. In a similar vein I think AI code gen will displace code churn, the labor of linking libraries into an "App" and making it build. It won't displace coding.
also: lame, no sound :D
As an old scener myself I both love and hate it. The scene is about breaking rules, even it's own, and in that spirit it's hella cool.
On the other hand, at least for me, the scene was craft for crafts sake. Nobody would pay for somebody to optimize assembly code by the byte just to make art!
Spacepigs rule!
I think 4x4 matrices for 3D transforms (esp homogenous coordinates) are very elegant. I think the intended critique is that the huge n*m matrices used in ML are not elegant - but the point is made poorly by pointing out properties of general matrices. In ML matrices are just "data", or "weights". There are no interesting properties to these matrices. In a way a Neumann (https://en.wikipedia.org/wiki/Von_Neumann%27s_elephant) Elephant. Now, this might just be what it is needed for ML to work and deal with messy real world data! But mathematically it is not elegant.
Super cool! Would love to see the build/deploy steps needed.
The corp speak bs is so strong in this one it could be mistaken for satire.
Twitter link is unreadable by clicking on it.
Really appreciate the very serious reply. But my initial comment had a very different intent: Economic analysis like in the linked article is crazy to me. Predictions for 15 years out! With graphs to support it! That seems mad to me, and especially the confidence of it.
Because this was a reply to my comment: It reads to me a lot like "you are reading the tea leaves wrong". Switch the graph, the time frame. But what would be a better way to talk about this? A more helpful and actionable one?
Lol, yes! I should take my dad's advice and buy forest land in Germany instead of US index funds. And this is not sarcastic - it might actually be the better strategy! But the article does not help me at all making that decision.
This article is initially very well written and convincing. And it started to stress me out a little bit! Am I at great risk for having most of my wealth tied to the dollar?
But taking a step back: It is making very strong predictions for a future state of what I would consider a chaotic system. As the author identifies as a Physicist and not a Psychic, why is there no mention of uncertainty? No mention of how you would test or refute the prediction?
Looking at very selectively picked graphs is like reading tea leaves.
If even just a few people read the article and change their investment strategy as a result you already affected the outcome.
Oh, but it's backwards. The call of "Fair Access to Banking" means actually "Easy Access to Suckers".
Be amazed by learning about tail calls in WASM:
https://v8.dev/blog/wasm-tail-call
the key here is that there are new, different opcodes that can be tail call optimized! Because tail call optimizing the old op code would break the spec. It all makes sense, but is kind of amazing.
You can emulate synchronous await by using a worker thread, marshal your async operation to the main thread, then in the worker use Atomics.wait() to blocking wait on a SharedArrayBuffer variable. Once the async operation completes on main, write back the result to the SharedArrayBuffer and wake up the waiting variable. I believe that's also what emscripten uses to emulate synchronous posix calls.
I always thought this was called the Tetris packing algorithm. Because you drop in pieces from the top like in a game of Tetris. (no sliding in sideways allowed :))
Adobe/Substance3D Modeler
unfortunate naming, collides with nvidia rtx.
Great stuff! I especially agree with teaching math via raytracing first instead of APIs.
I find this very interesting. I have been toying around how I would design a graphics 101 course myself. Should it start with putpixel style sdl code like we did in the 90s? Or start with shadertoy? Of course basic matrix math is always important. But how to teach rasterizing a triangle? Can we skip to homogenous coordinates and quad trees without going through scan lines? Should we really teach Phong shading or can we move straight to BRDFs? Some parts might be teaching "old hacks" instead of relevant skills. Statistics and sampling are way more important today. I believe graphics is getting more "mathy" every year. So learn math, teach math.
Amazing experiment from the man who brought us shadertoy.
Love Tracy!
One neat feature is that you can import Chrome traces. Instrument with normal JS perf marker API! The Tracy UI is just so much better for viewing them.
That said, the title confuses me: I am always thinking of Tracy as an instrumented profiler, not a sampling profiler. I only ever used it as instrumented.
Sampling: Profiler takes stack samples of any code, at fixed frequency, gives you rough hotspots. Instrumented: Report sample points to profiler. Requires putting profiling point into the code to be analyzed.
Made a (very simple!) shader toy for temporal dither on your webcam: https://www.shadertoy.com/view/clf3Rj
Yeah, I noticed. Tried to look at it myself - I don't have it archived anywhere myself. But last time I looked at it I cringed pretty hard. It's not great code :) But here you go: https://web.archive.org/web/20120710162700/http://www.active...
Note that extenders did a lot of emulation stuff for you, which was not really needed if all one wanted was flat 32bit mode.
We did it for 4k intros back in the day: https://www.pouet.net/prod.php?which=289.
One fun optimization trick was the 0x66 prefix: Switching from 16bit to 32bit mode also switched the trade-off in opcode sizes. So in that intro most of the audio code runs in 16bit mode, while the graphics (which is actually not palette but full 32bit color) runs in 32bit mode.
nop and enop and fnop! so many nops: https://www.felixcloutier.com/x86/nop
The government can let you call your collaborators. While they torture you. Of course you picked your partners carefully to be absolute psychopaths that would rather see you suffer and die than give up their keys. That's how you picked them as trustworthy partners in the first place!
I feel like this is such a non-issue.
To be proficient in reading or writing assembly (versus higher level languages) means to deal with a stream of instructions. Once you are fluent with that concept parsing individual instructions is a lookup. Operand ordering is just a small part of that. It can be x86, arm, or tis-100.
Switching between x86-intel and x86-at&t is no different than switching between x86 and arm.
This is a nice very high level view.
But if I were to teach modern GPUs and rendering I would recommend starting with something like https://tayfunkayhan.wordpress.com/2018/11/24/rasterization-...
First: I love the collection of knowledge. Any project doing that is worth doing.
On the other hand: How do you teach performance engineering? I learned it in the Demoscene, which was simply a competition. "I can do this effect in 2 cycles less". Not everybody will be a good performance engineer. Or should be! I feel like the people who do good in performance engineering will be competitive and find their win in whatever environment. Maybe that is a good context for the book: That's what people did to win!