implementing a scientific paper in C, but also an in depth strawberry pasta discussion at 20:10. Where else would I go to find such diverse content
@AHuMycKАй бұрын
Hi Tsoding, not sure if you read the paper or not but your sum operation is not correctly defined. According to the paper """ All functions appearing in the RandomArt algorithm are scaled so that they map the interval [-1; 1] to the interval [-1; 1]. This condition ensures that all randomly generated expression trees are valid. For example, the scaling for the add function is achieved by defining add(x; y)=(x + y)/2 """ Because your add(x;y) is defined as x+y, it means that your sum node generates invalid expression tree and that's why you were able to generate all those beautifully looking non-linear patterns. I'm not sure it's possible to generate images that you did (4:26:19, 4:26:47 and so on) by using any combination of x,y, add and mult (linear) operands
@weekipi5813Ай бұрын
it's not that he generated an invalid expression tree. The expression tree generated was a valid one, rather the evaluation as you're correctly pointing out was not aligned with the paper.
@froop2393Ай бұрын
Creating a terminating rule is easy if you do it in reverse. Start with some terminals and then join them with add, mult etc. until you have three left and return them as triple. It's just like building a mahjong stack is super easy, but solving is hard and may fail. I really enjoyed the full 4h. This was one of your best streams ever!
@FaZekiller-qe3ufАй бұрын
tsodinPenger
@krux02Ай бұрын
You missed the opportunity to use Lisp in the domain, where it is at it's best: Generating code at runtime and executing it.
@salim444Ай бұрын
lisp supremacy
@adrien335Ай бұрын
Could you provide a code snippet/gist to showcase where you would use macros? Just curious.
@krux02Ай бұрын
@@adrien335 Yes I could.
@ismbksАй бұрын
@@adrien335asking for a code in yt comments that's a bit wild 😂
@paper_cut9457Ай бұрын
in the end, programming is all about printf-ing a triangle of stars and feeling good about it: but the level here is quite higher ! thanks
@theevilcottonballАй бұрын
Errr, no. Tsogramming is much more than that. Printf to a terminal, are you from the 1970s?
@itsmenewbie03Ай бұрын
functions mentioned
@Italya3343Ай бұрын
Thank you so much for sharing your AMAZING video!! 🔥🔥🔥💐 Plz, continue making more and more paper 📃 to C videos 🙏
@lifelover69Ай бұрын
this is the kind of generative art i can get behind, very cool
@asdfmonstrosityАй бұрын
Don't know if you resolve it later, but the paper says to always pick branches->items[0] when depth
@nel_tu_Ай бұрын
This. Also, there is no min. depth for a grammar; you just follow the first branch assuming it terminates. He also missed the part in the paper where there is only 50% chance to go deeper, bro just needs to read. He should have titled the video "Implementing a scientific paper but changing everything because I don't feel like reading it" smh
@kaviisuri9997Ай бұрын
Is there a video for when you implemented the bnfuzzer?
@geertdepuydt268324 күн бұрын
Best way to learn C when coming from another language 100%. Extremely educational.
@ecosta28 күн бұрын
Implementing a scientific paper is always a bet. Sometimes it just works. Sometimes you find so many holes in the solution that I feel like I'm rewriting the article from scratch.
@coathАй бұрын
Epic programming moment
@darktale6716Ай бұрын
wow Tsoding knows about the valencian flooding! it was pretty rough
@edbrito-swdevАй бұрын
You have the coolest KZbin developer channel. Do you work in the IT industry or do you only do KZbin and these projects (plus patreon and stuff) as a means to make money?
@edbrito-swdevАй бұрын
Ok, I just saw you saying "Why pasta with strawberry isn't fine" and now I've lost all my respect for you. Just kidding (but I was shook).
@blackt0werАй бұрын
He writes code for banks in the .ru
@H3llsHeroАй бұрын
He doesn't make money from Twitch/KZbin/Patreon because he is in Russia. He used to work as a software developer for some American company, presumably he saved enough and lives frugally enough to not have a day job anymore. But who knows?
@thebirdhasbeenchargedАй бұрын
he's a cia bot
@zaitsev5990Ай бұрын
@@thebirdhasbeencharged KGB*
@Hamsters_RageАй бұрын
you dont need all this stuff with bools and ifs. if you make all funcs binary, like if_gt, if_less etc - you can store it in just an array-packed binary tree and execute all genetic ops on this array
@John-yg1cqАй бұрын
In reference to the terminal nodes: I have to ask, is a terminal node not simply a node of type A? As you're calling E, you get a triplet of C C C which then can be a op which then can be self-referential to As, and As can only be random number within range or x or y. As you traverse the grammar, any A node is a terminal node, as described in figure 3 (a)? Am I misunderstanding?
@markahlenganpanjangАй бұрын
The resulting image is insane
@samuraijosh1595Ай бұрын
what tool do you use for dark mode on pdfs?
@TsodingDailyАй бұрын
mupdf
@anon_y_mousseАй бұрын
You can also use okular and change its settings to invert colors. Seems to have the most features yet still runs fast, even runs on my Pi.
@theevilcottonballАй бұрын
Maybe I will implement genetic art as referenced as an inspiration in the paper
@xspagerАй бұрын
Not a lisper myself but this paper sounded like the ideal case for Lisp
@thistentАй бұрын
You know, you can apply an invert filter to the CSS in your browser's PDF reader.
@LucreciousАй бұрын
that is so fucking cool man, nice man
@IvanNovitskiiАй бұрын
Omg just provide happy path by marking grammar rules that eventually lead to termination with ones, and when you exceed depth take that path. It will no be exactly the right depth but within 2 lvls. You can even have multiple options to exit and scale probabilities. The struggle was painful to watch. But I guess you should have figured it out already. But cool result though nevertheless On a side note, you can precompute how much it takes to exit (in min steps) via each rule in production to make the border strict and do not take path that cannot terminate in time. Its just a graph problem in the end.
@tens0r884Ай бұрын
I needa find a girl who's as loyal to me as zozin is to C
@multicoloredwizАй бұрын
Damn.. got a little crazy once he got to the nn/grammar stuff.. uff
@monad_tcpАй бұрын
BNF is almost basically a CFG for an automaton.
@edbrito-swdevАй бұрын
A BNF is essentially a DFA (from what I remember from my language processing classes and personal experience. Might be some cases where that breaks, though).
@MrFramАй бұрын
@@edbrito-swdev BNF is a notation for CFG, and DFA is below CFGs on the Chomsky Hierarchy, which makes it a subset of CFG, though BNF is usually not used for it. DFA is equivalent to NFA (up to exponential difference in size), and regular expressions are the common notation for NFAs.
@edbrito-swdevАй бұрын
@@MrFram Yes, you are obviously completely right. I should have thought a little more about it before writing. Of course Backus Naur has to be above because it is used for grammars and DFAs are used for things like regexes. This should have been obvious to me 🤦
@mohammedkaka5558Ай бұрын
I'm doing this bro, I was looking for a C refresher project then this came up. Any suggestions?
@SiroitinАй бұрын
Suggestions for what?
@karoI508Ай бұрын
suggestion is: stop asking, do it
@SlinkyDАй бұрын
I use your binviz for that. Will you take a PR thru a comment since I can't find my github password or recovery codes? I'll make it a couple of sed commands since its small.
@greyshopleskin2315Ай бұрын
You can generate a patch with either git or diff. Learn about it
@SlinkyDАй бұрын
@@greyshopleskin2315 Who woulda thunk‽
@SlinkyDАй бұрын
no @@greyshopleskin2315
@mattshuАй бұрын
Do you have any vim tutorials? I wish I was as fast as you!
@eeriemyxiАй бұрын
He uses Emacs. You can use any code editor for multiple years and start typing at insane speeds. It's about practice.
@ratofthecity6351Ай бұрын
i think theprimeagen has some decent vim tutorials that are worth watching as a beginner. id recommend using vim (neovim) almost exclusively while you learn it, and to try to incorporate it into your workflow wherever you can. the best way to learn it is by immersing yourself in it. also you should rebind your capslock key to either ctrl or escape - i prefer ctrl but ive heard many vim users like escape
@JamesSjaalmanАй бұрын
You could have emitted RPN, which is much easier to process.
@HodebrotАй бұрын
30:39 recreational beatboxer / programmer
@whatthehelliswrongwithyou25 күн бұрын
whats up с карнеги мелона
@SeedwreckАй бұрын
Implement Chaotic map for PRNG next
@LarsDonnerАй бұрын
42:26 Just pretend that your image format uses a 0.8 fixed-point numbers for the color channels. Then even PNG uses the [0..1) range!
@SphereofTimeАй бұрын
2:33 hash visualization
@explqicot3293Ай бұрын
Can you do more scientific papers please 🙏
@re_detachАй бұрын
we gettin 2 the bottom of this 2 day
@theevilcottonballАй бұрын
Use Rust at 2:20:01. Me litterally coding along writing the same thing in Rust. (because using the same language aas Mr. Tsoding is too easy) Actually Rust is quite nice with pattern matching on the Node enum and yes I clone all over the place to have a fun time in Rust.
@theevilcottonballАй бұрын
C; single file dependency Cargo: Lets download profiling, deques, bigint, unicode, weezl, adler32, adler2-simd,... they even use a crate "rgb" for a single struct of rgb pixels, an entire crate!
@theevilcottonballАй бұрын
Sad, that -Wint-conversion does not catch it.
@hubstrangers3450Ай бұрын
Thank you....
@devdeev3675Ай бұрын
this in GLSL!!!
@theevilcottonballАй бұрын
Tsoding: What maps two spacial coordinates to a 3D color. Me: A shader? (I know its a usually 4D color) Tsoding: Neural Network.
@devdeev3675Ай бұрын
@@theevilcottonball Lol, he did it with shaders
@the_yugandharrАй бұрын
Your streams are free??
@krux02Ай бұрын
Streams are free, but you can't comment for free there. That only works here in the non life version.
@the_yugandharrАй бұрын
@krux02 free to watch. that's already enough for me :D
@bzboiiАй бұрын
bran cheese
@darktale6716Ай бұрын
Hello @laur0276, I am a subtitle watcher :)
@niculaelaurentiu1201Ай бұрын
Omg hello xD
@dancinglazer1628Ай бұрын
Oh
@John-yg1cqАй бұрын
21:00 I want to disagree that bread == pasta so much. Thanks, I hate it.
@shrddrАй бұрын
no f way you get stack overflow on first try when there's only 2/3 chance to add a depth level
@GesteromTVАй бұрын
They litarly sad that going to moon was easier then faking it. Assuming generating random gramar and parsing it was a moon landing.
@imya_mujik_familiya_tajikАй бұрын
> 420 meditation lane lmao
@emoosavimehrАй бұрын
30:58
@xspagerАй бұрын
Based
@azharalibhutto1209Ай бұрын
Great ❤❤❤❤❤❤❤
@xbelanchАй бұрын
from 16:9 to 4:5 weird
@NicolaCodesАй бұрын
✅✅✅✅✅✅✅✅
@m4ya_0Ай бұрын
amogus drip
@naranyala_devАй бұрын
try sokol
@tilakmadichettitheappdeveloperАй бұрын
neovim > emacs > my boring depressing life j.k
@frogg03_Ай бұрын
Big neural networks with random weights basically just give you average values. I think that if you tried small neural networks, one for each r, g and b values, it would be much more interesting!
@rogo7330Ай бұрын
For an hour he tried to go around a depth by still doing the same thing as the depth does not exist. Instead of doing what chat tried to tell him "just return NK_RAND and make it terminal". You should go to water instead of tea because it's clearly makes you so freaking nervous and unfocussed, man. (joking, but still, wtf is happening with you? you haven't being like that year ago)
@theevilcottonballАй бұрын
I don't care that chat is sub only, now. Twitch chat is useless most of the time anyway. In sub only mode its less useless but still useless.
@KybaLioN66Ай бұрын
zozin ))))))
@NvimchadАй бұрын
sir why don't you make video series about the topic you cover, I mean It's Hard to see specific topic don't you think it's unorganised, I also looked at playlists but I didn't find that I was looking for... can you please make new series on golang...?
@twl148Ай бұрын
cool but disliking for calling ipv6 a useless protocol