"a long series of individual programming tasks" is basically the key idea here. things only seem impossible when the whole thing appears in your mind as a big opaque boulder where you can't see any handles to grab it. but with programming or anything else about problem solving, there are always places where you can worm your way in and start to make progress. thanks again for the shoutout!
This is what inspires me about reverse engineering and homebrew programming. They have this massive proprietary blackbox which is often encrypted, but they just worm their way in and hack it.
Hey Roger! Love your latest project. And totally agree about the handles. Everything has handles, you just have to fumble around until you find them and not get discouraged too soon :)
I hope the idea of programing media (not just tutorials) spreads. One of the things I love about your channel is that it's mostly just the raw experience. Watching you work is not only interesting but honestly been beneficial to me. Thank you.
i also hope that more people make videos about systems development. that's one reason why I think Andreas's stuff is so good. there's a LOT of stuff out there about game development, which is great, but not as much about applications, compilers, or kernels, which are the technologies that actually power our lives in the modern world
I've definitely thought that building something was beyond me once upon a time. I remember desperately wanting to learn how to build compilers back in college but I was literally the only student interested, so they cancelled the class. Been getting more and more into systems programming with toy virtual machines, and pretty soon, I'm planning on writing things like databases, distributed KV stores and yes, compilers. The video was inspiring. Thanks for that. :-)
Speaking of seemingly impossible programming projects, earlier today I was working on a C/C++ cross-compatible library, and I decided to use preprocessor macros to get rid of all the ugly “#ifdef __cplusplus” checks when it came to defining namespaces and such; to really streamline everything but still keep it somewhat C-like: e.g. CPP_NAMESPACE(SimLib, CPP_NAMESPACE_C_API( /* C code goes here ) CPP_NAMESPACE_CPP_API( /* C++ code goes here */ ) ) The preprocessor would format the code correctly based on the compilation mode (C or C++), and it was admittedly pretty easy. As such, that’s not the aforementioned impossible part. Because I was EXTRA lazy, I decided to attempt to abuse preprocessor macros to make it so that I would only have to write out code to define a class once, and it would output both a C struct with accompanying data/functions and a C++ class that acted as a wrapper for the C struct. It would’ve been great, too! I planned for there to be scoping (I found an excellent library that implements RAII scoping in C via macros lol), templates (void*s would be used in the C data structure to contain the data, but the size of the template’s data would too be tracked, and the C++ class would use the language’s built-in templates and stricter type system when wrapping the C struct’s functionality), public/protected/private (can’t do anything about that really in C, so underscores will have to do to shoo away the curious Georges; C++ would have them function as usual); basically I wanted the ultimate tool for creating a library for C++ without leaving out its older, yet still capable, father on the wayside. Problem: The C Preprocessor isn’t designed for Simons to exploit it to such an absurd degree. Solution: I abandoned the preprocessor all together and decided to create a separate utility to do the hard work for me. Gist: takes in class source file as input, creates header & source files that implement the class as output. Should be an interesting project! So far it’s a lot of fun! In the meantime, keep up with the excellent videos!
I have a similar ambition regarding game engines. So many people just pick up Unreal or Unity and don't think twice about what's going on underneath such huge applications. Of course that's perfectly fine, but me? I have to know *more*. Researching propriety/in-house game engines has been such a fun process for me this year.
This year I've been working on my own programming language and the whole thing is now completely demystified for me. I don't know how many developers outside of the PL community know about it, but there are countless hobby languages and compilers. Everyone has their own Scheme implementation. It's really something any programmer can do. This short Wikipedia article really blew my mind and convinced me that I could make my own programming language: en.wikipedia.org/wiki/Brainfuck#Commands
Thanks, you've been an inspiration for me. I am working on my own programming language (yes, it has a (unoptimizing) compiler) which should also work as a database and graphical environment: blog.rfox.eu/Bystroushaak%20s%20blog/English%20section/tinySelf.html
"a long series of individual programming tasks" is basically the key idea here. things only seem impossible when the whole thing appears in your mind as a big opaque boulder where you can't see any handles to grab it. but with programming or anything else about problem solving, there are always places where you can worm your way in and start to make progress. thanks again for the shoutout!
This is what inspires me about reverse engineering and homebrew programming. They have this massive proprietary blackbox which is often encrypted, but they just worm their way in and hack it.
Hey Roger! Love your latest project. And totally agree about the handles. Everything has handles, you just have to fumble around until you find them and not get discouraged too soon :)
I hope the idea of programing media (not just tutorials) spreads. One of the things I love about your channel is that it's mostly just the raw experience. Watching you work is not only interesting but honestly been beneficial to me.
Thank you.
Hi Yori! That would be really cool :) The more the merrier. I’m very happy you’re able to gain something from my content!
Jon Blow & Handmade Hero have done a great job demystifying games.
i also hope that more people make videos about systems development. that's one reason why I think Andreas's stuff is so good. there's a LOT of stuff out there about game development, which is great, but not as much about applications, compilers, or kernels, which are the technologies that actually power our lives in the modern world
These are really nice insights, thanks a lot!
I've definitely thought that building something was beyond me once upon a time. I remember desperately wanting to learn how to build compilers back in college but I was literally the only student interested, so they cancelled the class. Been getting more and more into systems programming with toy virtual machines, and pretty soon, I'm planning on writing things like databases, distributed KV stores and yes, compilers.
The video was inspiring. Thanks for that. :-)
These commute talks are really pleasing and helpful : ))
Speaking of seemingly impossible programming projects, earlier today I was working on a C/C++ cross-compatible library, and I decided to use preprocessor macros to get rid of all the ugly “#ifdef __cplusplus” checks when it came to defining namespaces and such; to really streamline everything but still keep it somewhat C-like:
e.g.
CPP_NAMESPACE(SimLib,
CPP_NAMESPACE_C_API(
/* C code goes here
)
CPP_NAMESPACE_CPP_API(
/* C++ code goes here */
)
)
The preprocessor would format the code correctly based on the compilation mode (C or C++), and it was admittedly pretty easy. As such, that’s not the aforementioned impossible part.
Because I was EXTRA lazy, I decided to attempt to abuse preprocessor macros to make it so that I would only have to write out code to define a class once, and it would output both a C struct with accompanying data/functions and a C++ class that acted as a wrapper for the C struct. It would’ve been great, too! I planned for there to be scoping (I found an excellent library that implements RAII scoping in C via macros lol), templates (void*s would be used in the C data structure to contain the data, but the size of the template’s data would too be tracked, and the C++ class would use the language’s built-in templates and stricter type system when wrapping the C struct’s functionality), public/protected/private (can’t do anything about that really in C, so underscores will have to do to shoo away the curious Georges; C++ would have them function as usual); basically I wanted the ultimate tool for creating a library for C++ without leaving out its older, yet still capable, father on the wayside.
Problem: The C Preprocessor isn’t designed for Simons to exploit it to such an absurd degree.
Solution: I abandoned the preprocessor all together and decided to create a separate utility to do the hard work for me.
Gist: takes in class source file as input, creates header & source files that implement the class as output.
Should be an interesting project! So far it’s a lot of fun!
In the meantime, keep up with the excellent videos!
I have a similar ambition regarding game engines. So many people just pick up Unreal or Unity and don't think twice about what's going on underneath such huge applications. Of course that's perfectly fine, but me? I have to know *more*. Researching propriety/in-house game engines has been such a fun process for me this year.
This year I've been working on my own programming language and the whole thing is now completely demystified for me. I don't know how many developers outside of the PL community know about it, but there are countless hobby languages and compilers. Everyone has their own Scheme implementation. It's really something any programmer can do.
This short Wikipedia article really blew my mind and convinced me that I could make my own programming language:
en.wikipedia.org/wiki/Brainfuck#Commands
Thanks, you've been an inspiration for me.
I am working on my own programming language (yes, it has a (unoptimizing) compiler) which should also work as a database and graphical environment: blog.rfox.eu/Bystroushaak%20s%20blog/English%20section/tinySelf.html
Just joined a big company about 4 months ago, and i am quite disappointed. A lot of shitty codes.