This is one of those topics that LLMs (Opus 4, Gemini 2.5 pro, etc) seem bad at explaining.
I was trying to figure out the difference between the Stockfish approach (minimax, alpha-beta pruning) versus Alpha Zero / Leela Chess Zero (MCTS). My very crude understanding is that stockfish has a very light & fast neural net and goes for a very thorough search. Meanwhile, in MCTS (which I don't really understand at this point), you eval the neural net, sample some paths based on the neural net (similar to minimax), and then pick the path you sampled the most. There's also the training vs eval aspect to it. Would love a better explanation.
When I was younger, I had an issue with external vs internal validation. Sadly, it heavily skewed towards external validation. I was on the chunkier side for a lot of my childhood and into high school. Joined wrestling and stayed with it. Lot the weight, grew, and gained muscle. Also started to get a lot of attention from the opposite sex. That, with the external validation issue, leaned into it and just had fun. It became something that I just did.
I had been a personal trainer for awhile when I got a new client. An eighty something professor who taught Dante’s Inferno, Italian, collected degrees, and was actively pursuing some field in psychology (forget what one).
For about 6 months, we’d work out on Saturday mornings and he’d always ask of my adventures since we last saw each other. I’d regale him and that was that.
One morning after going though it all, he asked, “what else is there?” or something. Whatever it was, it stopped me in my tracks. I couldn’t answer. That question hit me harder than a freight train.
At that moment, I realized there was a massive issue with myself. I wanted a change, but a) didn’t know what to change, b) how to change, 3) how to feel about myself. We continued to work on him and his goals, which was to bench 135 safely. He got to his goal. ;). He also helped me to get to mine, which was to focus more on internal validation and be happy with self.
I was able to shift from heavily skewed external validation to external validation probably being now around 20%-30% and the rest being internal.
Because of him, I was able to embrace myself and lean into the information seeking snd knowledge gaining person I am today and get to a level that someone with my academic background should not be at.
A quote that I came up with many years ago that explains all of this and the transformation I had, “you’re not going to change until the pain of change is less than the pain of staying the same.”
One other one too. From him, the professor. I have severe adhd and can read the same sentence 50 time and not remember what I just read, if it’s not something I’m highly interested in. I came to him and told him that it’s so damn boring and it’s just a fight to sit there and attempt to read it.
He gave me a mind shift: instead of thinking how it’s important or exciting to you, try to imagine why the author of it thought it was so exciting, to where they spent their career learning about that subject. That allowed me to completely change how I read and that too has helped me more in the past years than I could imagine.
Ah yes—as the saying goes: “keep your friends at the Bayes-optimal distance corresponding to your level of confidence in their out-of-distribution behavior, and your enemies closer”
A simple Hack that still works for me after years:
1. Place a tiny LED (red or yellow) by the side of your monitor or virtually on the screen corner. Basically anywhere almost bordering your field of view.
2. Make it blink like a fast heartbeat (120-150 bpm) and gradually slowdown to around 60 bpm (or your slow heartbeat base). Make the slope approx 20 to 60 minutes (you can adjust the best rate by testing in 10m increments after a few days in one setting).
Now...
3. Get to work regardless if distracted and agitated. Close all apps except what you need to work and BOOM!, let the magic happen. Without realising, your brain will try to sync with the light that you can barely see, calming you down and allowing you to go focus-mode with the task in had.
Works like hypnosis!
It is also a cheap hack... I build my unit with a cheap ESP32 and heart-rate sensor to sync deeper and dynamically adjust the slope...
Will explain better if any interest.
No science behind (only principles), I just hammered a solution like any Ape with the shakes would need!
Yep. Capture the distribution you want to sample from by training a DNN on the data and then sample it via generative/diffusion. Basically the DNN is a learnt parametrized distribution and replaces the Markov chain. The adversarial training approach seems to me like a forward backward algorithm over the dataset anyway.
Not to take away from anything you’ve done here, you guys have put a lot of great effort into this, but this paradigm is not “new”. It’s a common modeling paradigm in banks and hedge funds at least. I’ve built/worked on frameworks based on exactly this concept at 2 previous firms. Here’s some open source examples of the same concept: pyungo, fn_graph, Loman
Paraphrased for HN: > “The difference between the hackers and all the other developers, is that the hackers find a path to a solution when they have the least at their disposal. You have to focus on what you can control. The most common mistake is to try to feel good, or try to work well. But this is not something you can control. My number one advice is don’t focus on yourself, but focus on the strategy to break down the tasks, knowing what you have today. Because when you focus on you and your problems, you don’t focus on the tasks. My second piece of advice work on your engagement and your attitude. The engagement comes from the way you speak to yourself. So find a way to talk to yourself in a way that helps you have the best possible engagement, which will help you also keep positive, and help you keep the focus on the task and not on yourself. The hackers, on a bad day, focus only on those two things, and forget all the rest that they have no control over.”
Dang mentions curiosity as a key virtue for HN. Curiosity helps with both of the two things above: wondering what comes next helps with digging in and breaking down tasks; wondering what comes next also helps with engaging with, and hence actually accomplishing, each subtask.
To elaborate(and just slightly correct on this point).
The problem that classic primitive raytracing has had was that it never scaled well for complex primitives since you needed to solve the equations that could have many intersection points for a ray.
A plane (and triangle) has 0 or 1 intersection point, this is quite trivial to solve.
Insert the ray equation ( x'=x0+dxt, y'=y0+dyt, z'=z0+dzt) into the plane equation ( Ax+By+Cz = D) and solve for [t] that is the intersection distance as seen from the ray origin [x0,y0,z0] in delta units.
A sphere has 0, 1 or 2 intersections.
You again insert a ray equation into a sphere equations and after solving you end up with a classic second degree equation with a square root.
A donut can have 0, 1, 2, 3 or 4 intersections.
All these are fairly trivial shapes, but you see how the code complexity goes up very quickly even here with more intersection cases to handle even for these fairly simple shapes.
Raytracing was used with triangle-meshes (with acceleration structures) in offline renderers since it still allowed for better lighting models with free-er ray sampling than normal rendering (and now RTX has put this ability in hardware for triangle soups)
Now, for something simple as a sphere and plane, raytracing is faster than raymarching.
The difference however is that since distance field raymarching only relies on a single value (the distance to the nearest surface) and SDF functions are trivially composable there really isn't any bounds on how complex shapes you can render with the technique, as long as the combination and core distance functions are at least somewhat conservatively "correct" in producing a single distance value (raymarching is can be forgiving for inaccuracies as long as they don't over-shoot).
So while raymarching isn't really super-fast, it's fast enough that most GPU's eats them up, since it can all be run in parallel without almost any data bandwidth.
(and the fact that raymarching often converges on "big" surfaces within a few iterations only needing more iteration in areas like borders that only take a small bit of the screen estate)
See a problem. Figure out how many people it is a problem for. Figure out why no one else has solved that problem. Figure out if you know how to solve the problem. Figure out how much folks would be willing to pay for a solution to the problem. If you asses you are able to be fairly compensated (over long periods of time) for solving the problem after all your costs of solving it are reconciled: Commit to spending vast amounts of your resource to exploring and productizing the solution to said problem. This isn't the advice the author gives. However, here is another post written by the same author: https://rethinkdb.com/blog/rethinkdb-shutdown/
I was trying to figure out the difference between the Stockfish approach (minimax, alpha-beta pruning) versus Alpha Zero / Leela Chess Zero (MCTS). My very crude understanding is that stockfish has a very light & fast neural net and goes for a very thorough search. Meanwhile, in MCTS (which I don't really understand at this point), you eval the neural net, sample some paths based on the neural net (similar to minimax), and then pick the path you sampled the most. There's also the training vs eval aspect to it. Would love a better explanation.