[video output=day218 member=cmuratori stream_platform=twitch stream_username=handmade_hero project=code title="Hashing Debug Elements" vod_platform=youtube id=66DXTnHDesc annotator=Miblo]
[1:20][All You Can Eat][quote 302]
[1:50]["We don't know which kind of a lunch buffet our debug system will be yet..."][quote 303]
[2:58][Build and run and note how fast the guy zips around, before turning the debug system back on]
[3:34]["There will always a better lunch tomorrow"][quote 304]
[3:47][handmade_debug_interface.h: Recap the GUID concept]
[5:23][On shifting the place settings when serving lunch][quote 305]
[5:53][handmade_debug_interface.h: Pass in the GUID and make it work]
[7:15][Thoughts on the macro processor][quote 306]
[8:22][On thinking about memory allocation over lunch][quote 307]
[9:40]["It's more of a lunch thing"][quote 308]
[10:01][handmade_debug.cpp: Make CollateDebugRecords put Elements into locations based on where they came from]
[12:13][handmade_debug.cpp: Introduce GetElementFromEvent]
[16:04][First Rule of Programming: "You don't eat lunch if you're already full"][quote 309]
[16:21][handmade_debug.cpp: Continue implementing GetElementFromEvent]
[19:50]["That's like getting lunch delivered..."][quote 310]
[20:46][handmade_debug.cpp: #if 0 CreateVariable, AddVariableToGroup, CreateVariableGroup and FreeVariableGroup]
[21:11][handmade_debug.cpp: Introduce StoreEvent]
[23:54]["Easy peasy lemon squeezy"][quote 311]
[24:31][handmade_debug.cpp: Continue working with the StoreEvent]
[25:58][Thoughts on lunch despotism][quote 312]
[26:24][handmade_debug.cpp: Remove all of the Region stuff and #if 0 AddVariableToGroup]
[27:32][handmade_debug.cpp: Implement StoreEvent]
[29:07][handmade_debug.cpp: Fix compile errors]
[30:51][Apologise for making a faux pas][quote 313]
[31:00][On the programming equivalent of sitting at the wrong seat at lunch][quote 314]
[31:18][handmade_debug.cpp: Vaporise PushSizeWithDeallocation]
[32:01]["Don't let your whole life be defined by the one bad lunch you ate"][quote 315]
[32:32][handmade_debug.cpp: Make the StoredEvents be freed as necessary]
[36:58][handmade_debug.cpp: Introduce FreeOldestFrame]
[39:36][Compile, fix compile error and ensure everything else is doing something reasonable]
[40:14][handmade_debug.cpp: Add if(ArenaHasRoomFor) to NewFrame]
[42:40][handmade_debug.cpp: Make a PerFrameArena SubArena]
[44:44][Debugger: Step into PushSize and discover that we didn't have enough debug memory]
[45:33][Run the game and note that we're storing all of our debug data]
[46:25][handmade_debug.cpp: Investigate why our Last frame time is wrong]
[48:10][Debugger: Hit a FrameMarker and inspect values]
[50:06][handmade_debug.cpp: Correctly set the MostRecentFrame]
[50:19][Run the game and see that our Last frame time is now correct]
[50:32][handmade_debug.cpp: Print out the memory usage of the arena]
[52:37][Run the game and see our Per-frame arena space remaining]
[53:05][handmade_debug.cpp: Reduce the size of that SubArena]
[53:41][Run the game and see the new Per-frame arena space remaining]
[53:57][Debugger: Step into StoreEvent and ensure that everything's still working properly]
[55:10][Warn against eating more lunch than we can reasonably digest][quote 316]
[55:43]["There's always lunch tomorrow"][quote 317]
[56:02][Q&A][:speech]
[56:32][@Miblo][When we come to do the AI system, do you think it'd be reasonable to give the dudes a "gather lunch" behaviour?]
[56:50][@insofaras][What did you have for lunch?]
[57:24][@doritosranger][Imagine that you're young again and you're eating your lunch and you can choose between a C and Java-like language in what you can work with memory in much C-like way but that language would say you how to implement some ideas (like a Python is about line offsets, which is not good I think)? What would you choose then and why?]
[58:42][@evraire][During HandmadeCon will there be an organised lunch at the Campfire BBQ?]
[59:04][@assnburgers][Does Emacs offer more syntax support than what I am seeing at the moment?]
[59:36][@Ikkir_Isth][Is there anything that could be considered a "free lunch" in low level optimization?]
[59:47][@cubercaleb][Fair warning: The optimizer might store the strings in the same place which will break the whole GUID thing]
[1:00:13][@btnGames][Do you suggest programming should be snacked upon throughout the day as an alternative to a 3 course code feast?]
[1:02:28][@insofaras][Why do you think that there have been no good new languages since C? Are all the language designers out to lunch these days?]
[1:04:13][@PookiesRevenge][Do you feel there's a perfect balance between test-based coding, or more efficiency / optimization? Or do you prefer one over the other?]
[1:06:39][@assnburgers][What are your thoughts on clang?]
[1:07:31][@TheMaxS_][I think he meant string literals, like the -Og flag, I think]
[1:07:41][@Csixone][What do you think about Unity, etc.?]
[1:09:49][@z3rky][What's been the biggest hurdle you've had to overcome so far on this endeavor?]
[1:10:03][@killerfred3000][What do you suggest that people who are in the first year of C++ do as projects for coding throughout the day? (Feel free to skip if you've answered this before)]
[1:11:21][@jessem3y3r][Have you seen John Cleese's talk on creativity? If so, what are your thoughts on it?]
[1:11:36][@insofaras][How many more features will the debug system get? It already eats most other engines' lunch]
[1:12:25][@LeXxXiNgToN][Do you feel that taking calculus 1/2 is needed to become a good programmer?]
[1:13:31][@TheMaxS_][It was actually the -GF flag for the MSVC compiler. It enables string pooling, lumping all string literals into a read-only portion of memory so it only stores one of each different string]
[1:14:42][@ImJustRoids][Do you think there really hasn't been a good language since C, period? Or just that there haven't been any good languages that do what C can, like a good "competitor"? For example, if someone needs a small app, use C regardless or some higher languages are good for that (in your opinion)?]
[1:16:00][@insofaras][What if it doesn't pool strings and two same string literals get different addresses? Would the system lose its lunch?]
[1:17:06][Pseudonym73: Note that "good language" is relative to what you're doing. I've done things in Prolog that I wouldn't want to do in C]
[1:20:14][Wind down][:speech]
[1:22:34]["Don't forget to eat lunch"][:speech][quote 318]
[/video]
