
- Intro

why does bro have the channel logo on his eye 💀

How do you manage to have that visual environment in parallel and interact with this same environment.

clear view of the iconic eye! I didn't know it was actually exactly as in the icon! I thought there was a 3:1 ratio between blue and brown, maybe randomly distributed as spots. But it is pretty much exactly as the icon!!

finally the 3blue1brown eyes

- Hello World

*Revelation *Behold, I stand at the door, and knock: if any man hear my voice, and open the door, I will come in to him, and will sup with him, and he with me.

Anyone knows how to set that up? Or is it even possible in the community version?

In you've mentioned that you like having this jupiter-esque feeling to the code, while it's still a single file

- Coding up a Lorenz attractor

love that "I guess one thing I should mention before we move on" is identical conversation and in explainer videos. I really thought it was narration over the video:)

classic programmer moment when presenting a project XD

Showing your past ChatGPT chats like that is brave

nice to see some of chat gpt history from grant

Revelation -14And, behold, I come quickly; and my reward is with me, to give every man according as his work shall be.I am Alpha and Omega, the beginning and the end, the first and the last.Blessed are they that do his commandments, that they may have right to the tree of life, and may enter in through the gates into the city.

this is because you've upgraded to Python 3.12 which includes PEP 709 "comprehension inlining". Comprehensions are now running in the same scope

- Add some tracking points

for any C++ devs interested in the zip command, you might be interested to know a zip view was added to the ranges library in C++23

lmao someone in the background forgot to save and their PC crashed right?

- The globals().update(locals()) hack

In python there is a `nonlocal` and `global` keyword which helps python to look for the variable(s) that's after the keyword

At I think you could have written:print(f"{f(10)=}")

One of python’s core philosophies is “were all consenting adults” (really) - and this is a good example.The idea being to not artificially enforce access rules and leave it to the programmer (and convention) to decide. Hacks like this serve a valid purpose for the context!

"it's not as dangerous" goes on my list of famous last words

- absolute horror! The atrocity of the thing in front of me is incalculable! The rate of change in my brain's capacity to think has gone to infinity and the area has somehow become negative! :Shock: and :horror:

Regarding the list comprehension: from the REPL in the bottom right I see you're now on Python 3.12. One of the changes in 3.12 is PEP 709, making list comprehensions are fully inlined as a performance improvement. A side effect is that they have access to the same scope as they're placed in, while they used to effectively be a single-use function call to their own inner scope.

Regarding the Ipython scoping "bug", I have a strong suspicion it's because it works the same way the eval() builtin does.In python3, if you dynamically evaluate some code and specify anything inside of the locals=some_dict parameter of the eval function, you get this unusual behavior where sub-scopes don't seem to be able to access variables defined in the same scope as they are (it's particularly annoying with lambdas).Declaring the variable you use that's from outside the scope as global with the "global" keyword does also resolve the issue (because it's properly moved into the global scope, where it would have usually been), but it is nowhere near as convenient as the cursed globals().update trick

the reason why this "bug" has been "fixed" is due to a change in the Python bytecode on how list comprehensions work. Previously, they would be translated to some sort of fake function with its own scope, but in 3.12, it has been changed for performance reasons, hence the issue disappearing.

I love cursed lines, you can't stop doing them but never stop talking about them.

I think the reason the bug with the list constructors doesn't appear anymore ( ) is because they changed their inner workings in some of the newer python versions (I think 3.12).

why not define the variable as non local in the function definition?

- Final styling on the scene

OK WTF I did not realize he actually has a quarter brown in his right eye. That's INSANELY COOL 😭😭

How is your camera rotating if you no longer have .reorient in the play function?

In it looks like the tail is not starting from the dots, but lagging behind. Is this the expected behavior?

- Rending the scene

Why are the paths so much more jagged here when they were very smooth a moment ago?

- Adding equations

what is the R followed by triple quotes? Is that a python thing?

on Wikipedia and generally speaking on websites rendering tex in browser you can often just copy the alt text or right-click on the image to export the underlying tex, no fancy OCR needed :)

what snipping tool are you using? or what setting to get the full screen guidelines?are the keyboard shortcuts (checkpoint_paste, reorient) within sublime app or automator?thanks!

- Where to start
