Handmade Hero»Episode Guide
Removing Entity Generators
?
?

Keyboard Navigation

Global Keys

[, < / ], > Jump to previous / next episode
W, K, P / S, J, N Jump to previous / next marker
t / T Toggle theatre / SUPERtheatre mode
V Revert filter to original state Y Select link (requires manual Ctrl-c)

Menu toggling

q Quotes r References f Filter y Link c Credits

In-Menu Movement

a
w
s
d
h j k l


Quotes and References Menus

Enter Jump to timecode

Quotes, References and Credits Menus

o Open URL (in new tab)

Filter Menu

x, Space Toggle category and focus next
X, ShiftSpace Toggle category and focus previous
v Invert topics / media as per focus

Filter and Link Menus

z Toggle filter / linking mode

Credits Menu

Enter Open URL (in new tab)
0:02Recap and set the stage for the day
🗩
0:02Recap and set the stage for the day
🗩
0:02Recap and set the stage for the day
🗩
0:59Plan to optionally start the player in the dungeon
🏃
0:59Plan to optionally start the player in the dungeon
🏃
0:59Plan to optionally start the player in the dungeon
🏃
4:08Try making CreateWorld() set StartRoom to the Dungeon.EntranceRoom
4:08Try making CreateWorld() set StartRoom to the Dungeon.EntranceRoom
4:08Try making CreateWorld() set StartRoom to the Dungeon.EntranceRoom
4:47We didn't start in the dungeon
🏃
4:47We didn't start in the dungeon
🏃
4:47We didn't start in the dungeon
🏃
5:09Make CreateWorld() set HeroRoom to the Dungeon.EntranceRoom->Vol
5:09Make CreateWorld() set HeroRoom to the Dungeon.EntranceRoom->Vol
5:09Make CreateWorld() set HeroRoom to the Dungeon.EntranceRoom->Vol
5:48We start in the dungeon
🏃
5:48We start in the dungeon
🏃
5:48We start in the dungeon
🏃
6:07Plan to place the door switch tiles in interesting formations
🏃
6:07Plan to place the door switch tiles in interesting formations
🏃
6:07Plan to place the door switch tiles in interesting formations
🏃
10:12Begin to introduce gen_entity_pattern
10:12Begin to introduce gen_entity_pattern
10:12Begin to introduce gen_entity_pattern
12:54Consider replacing entity creators with custom-written pattern generators
📖
12:54Consider replacing entity creators with custom-written pattern generators
📖
12:54Consider replacing entity creators with custom-written pattern generators
📖
15:58Remove gen_entity_pattern
15:58Remove gen_entity_pattern
15:58Remove gen_entity_pattern
16:02Plan to remove entity generators
📖
16:02Plan to remove entity generators
📖
16:02Plan to remove entity generators
📖
18:00Introduce GEN_CREATE_ENTITY_PATTERN() as a function creator
18:00Introduce GEN_CREATE_ENTITY_PATTERN() as a function creator
18:00Introduce GEN_CREATE_ENTITY_PATTERN() as a function creator
19:58Introduce an AddCat GEN_CREATE_ENTITY_PATTERN, and remove the old GEN_CREATE_ENTITY
19:58Introduce an AddCat GEN_CREATE_ENTITY_PATTERN, and remove the old GEN_CREATE_ENTITY
19:58Introduce an AddCat GEN_CREATE_ENTITY_PATTERN, and remove the old GEN_CREATE_ENTITY
25:03Remove GEN_CREATE_ENTITY and get_entity_tag_builder
25:03Remove GEN_CREATE_ENTITY and get_entity_tag_builder
25:03Remove GEN_CREATE_ENTITY and get_entity_tag_builder
27:08Make gen_create_pattern a function pointer in gen_entity, and remove unneeded values
27:08Make gen_create_pattern a function pointer in gen_entity, and remove unneeded values
27:08Make gen_create_pattern a function pointer in gen_entity, and remove unneeded values
29:23Change all the GEN_CREATE_ENTITY() functions to be regular functions
29:23Change all the GEN_CREATE_ENTITY() functions to be regular functions
29:23Change all the GEN_CREATE_ENTITY() functions to be regular functions
32:13Respecify the GenEntityAt*() functions as PlaceEntityAt*() and introduce PlaceEntityOnTraversable()
32:13Respecify the GenEntityAt*() functions as PlaceEntityAt*() and introduce PlaceEntityOnTraversable()
32:13Respecify the GenEntityAt*() functions as PlaceEntityAt*() and introduce PlaceEntityOnTraversable()
35:13Replace PlaceSnake(), AddSnakeHead() and AddSnakeBody() with an AddSnake GEN_CREATE_ENTITY_PATTERN
35:13Replace PlaceSnake(), AddSnakeHead() and AddSnakeBody() with an AddSnake GEN_CREATE_ENTITY_PATTERN
35:13Replace PlaceSnake(), AddSnakeHead() and AddSnakeBody() with an AddSnake GEN_CREATE_ENTITY_PATTERN
43:07Augment gen_entity with an asset_tag_hash for AddSnake to set
43:07Augment gen_entity with an asset_tag_hash for AddSnake to set
43:07Augment gen_entity with an asset_tag_hash for AddSnake to set
44:20Make CreateDungeon() call AddPattern(), renaming AddSnake to SnakePattern
44:20Make CreateDungeon() call AddPattern(), renaming AddSnake to SnakePattern
44:20Make CreateDungeon() call AddPattern(), renaming AddSnake to SnakePattern
47:41Consider ending up with gen_create_pattern as a flags field
📖
47:41Consider ending up with gen_create_pattern as a flags field
📖
47:41Consider ending up with gen_create_pattern as a flags field
📖
49:20Introduce TileSwitchPattern and NPCPattern GEN_CREATE_ENTITY_PATTERN
49:20Introduce TileSwitchPattern and NPCPattern GEN_CREATE_ENTITY_PATTERN
49:20Introduce TileSwitchPattern and NPCPattern GEN_CREATE_ENTITY_PATTERN
54:24Streamline base_game.hht
🗹
54:24Streamline base_game.hht
🗹
54:24Streamline base_game.hht
🗹
57:13Add asset_tag_id for Molly, Fred and Hannah
57:13Add asset_tag_id for Molly, Fred and Hannah
57:13Add asset_tag_id for Molly, Fred and Hannah
59:08Remove RecursiveOpenTileSearch(), FindPlaceToPutEntityGroup(), GetPieceAsset() and ChangeHash()
59:08Remove RecursiveOpenTileSearch(), FindPlaceToPutEntityGroup(), GetPieceAsset() and ChangeHash()
59:08Remove RecursiveOpenTileSearch(), FindPlaceToPutEntityGroup(), GetPieceAsset() and ChangeHash()
1:08:06Implement TileSwitchPattern
1:08:06Implement TileSwitchPattern
1:08:06Implement TileSwitchPattern
1:10:51Implement NPCPattern
1:10:51Implement NPCPattern
1:10:51Implement NPCPattern
1:14:51Respecify AddEntity() as AddPattern(), and remove AddTag() and AppendEntity()
1:14:51Respecify AddEntity() as AddPattern(), and remove AddTag() and AppendEntity()
1:14:51Respecify AddEntity() as AddPattern(), and remove AddTag() and AppendEntity()
1:16:11Weld gen_entity in to gen_entity_group as gen_entity_pattern
1:16:11Weld gen_entity in to gen_entity_group as gen_entity_pattern
1:16:11Weld gen_entity in to gen_entity_group as gen_entity_pattern
1:21:43Introduce AddTree() and replace GetTreeTags()
1:21:43Introduce AddTree() and replace GetTreeTags()
1:21:43Introduce AddTree() and replace GetTreeTags()
1:26:32Port the Lamp and Door creation code
1:26:32Port the Lamp and Door creation code
1:26:32Port the Lamp and Door creation code
1:33:26Port the pattern creator dispatch loop
1:33:26Port the pattern creator dispatch loop
1:33:26Port the pattern creator dispatch loop
1:34:56Port the apron and tree placement code in GenerateApron()
1:34:56Port the apron and tree placement code in GenerateApron()
1:34:56Port the apron and tree placement code in GenerateApron()
1:36:11Consider pattern placement
📖
1:36:11Consider pattern placement
📖
1:36:11Consider pattern placement
📖
1:37:21Spec out pattern placement in SnakePattern, NPCPattern and TileSwitchPattern
1:37:21Spec out pattern placement in SnakePattern, NPCPattern and TileSwitchPattern
1:37:21Spec out pattern placement in SnakePattern, NPCPattern and TileSwitchPattern
1:46:08Introduce FindRandomOpenTile() and FindAdjacentOpenTile()
1:46:08Introduce FindRandomOpenTile() and FindAdjacentOpenTile()
1:46:08Introduce FindRandomOpenTile() and FindAdjacentOpenTile()
2:13:00Hit our Contents assertion in GenerateRoom()
🏃
2:13:00Hit our Contents assertion in GenerateRoom()
🏃
2:13:00Hit our Contents assertion in GenerateRoom()
🏃
2:13:59Mark TraversableIsOpen() as NotImplemented
2:13:59Mark TraversableIsOpen() as NotImplemented
2:13:59Mark TraversableIsOpen() as NotImplemented
2:15:37GenerateRoom() is indexing beyond the extent of the tile's Y dimension
🏃
2:15:37GenerateRoom() is indexing beyond the extent of the tile's Y dimension
🏃
2:15:37GenerateRoom() is indexing beyond the extent of the tile's Y dimension
🏃
2:16:19Fix Advance() to work in X and Y (not Z)
2:16:19Fix Advance() to work in X and Y (not Z)
2:16:19Fix Advance() to work in X and Y (not Z)
2:16:47Hit our NotImplemented marker in TraversableIsOpen()
🏃
2:16:47Hit our NotImplemented marker in TraversableIsOpen()
🏃
2:16:47Hit our NotImplemented marker in TraversableIsOpen()
🏃
2:16:50Implement TraversableIsOpen()
2:16:50Implement TraversableIsOpen()
2:16:50Implement TraversableIsOpen()
2:19:35Hit our assertion in GetTraversable()
🏃
2:19:35Hit our assertion in GetTraversable()
🏃
2:19:35Hit our assertion in GetTraversable()
🏃
2:20:30Fix TraversableIsOpen() to require a TraversableCount
2:20:30Fix TraversableIsOpen() to require a TraversableCount
2:20:30Fix TraversableIsOpen() to require a TraversableCount
2:21:08We generated a lot of actual stuff
🏃
2:21:08We generated a lot of actual stuff
🏃
2:21:08We generated a lot of actual stuff
🏃
2:22:13Scan FindAdjacentOpenTile() for bugs
📖
2:22:13Scan FindAdjacentOpenTile() for bugs
📖
2:22:13Scan FindAdjacentOpenTile() for bugs
📖
2:23:10Step through FindAdjacentOpenTile()
🏃
2:23:10Step through FindAdjacentOpenTile()
🏃
2:23:10Step through FindAdjacentOpenTile()
🏃
2:25:11Consider TileSwitchPattern to be doing what we've told it to
📖
2:25:11Consider TileSwitchPattern to be doing what we've told it to
📖
2:25:11Consider TileSwitchPattern to be doing what we've told it to
📖
2:26:17Fix AddPlayer() to use our stripped down set of tags
2:26:17Fix AddPlayer() to use our stripped down set of tags
2:26:17Fix AddPlayer() to use our stripped down set of tags
2:26:49Our stone walls are broken
🏃
2:26:49Our stone walls are broken
🏃
2:26:49Our stone walls are broken
🏃
2:27:19Make CreateWorld() start the hero in the bedroom
2:27:19Make CreateWorld() start the hero in the bedroom
2:27:19Make CreateWorld() start the hero in the bedroom
2:28:30Our orphans work, but the conversation tile is considered occupied
🏃
2:28:30Our orphans work, but the conversation tile is considered occupied
🏃
2:28:30Our orphans work, but the conversation tile is considered occupied
🏃
2:28:55Fix the edit_tile version of PlaceEntityAtTraversable() to call its namesake
2:28:55Fix the edit_tile version of PlaceEntityAtTraversable() to call its namesake
2:28:55Fix the edit_tile version of PlaceEntityAtTraversable() to call its namesake
2:29:05Our conversation tiles are unoccupied again
🏃
2:29:05Our conversation tiles are unoccupied again
🏃
2:29:05Our conversation tiles are unoccupied again
🏃
2:29:25Set the cats' asset alignment points
🏃
2:29:25Set the cats' asset alignment points
🏃
2:29:25Set the cats' asset alignment points
🏃
2:34:47Introduce a StandardLightingPattern GEN_CREATE_ENTITY_PATTERN
2:34:47Introduce a StandardLightingPattern GEN_CREATE_ENTITY_PATTERN
2:34:47Introduce a StandardLightingPattern GEN_CREATE_ENTITY_PATTERN
2:39:05Our orphanage lacks light
🏃
2:39:05Our orphanage lacks light
🏃
2:39:05Our orphanage lacks light
🏃
2:39:22Make CreateDungeon() use our StandardLightingPattern
2:39:22Make CreateDungeon() use our StandardLightingPattern
2:39:22Make CreateDungeon() use our StandardLightingPattern
2:40:34Our dungeon is spectacularly lit
🏃
2:40:34Our dungeon is spectacularly lit
🏃
2:40:34Our dungeon is spectacularly lit
🏃
2:41:52Make CreateOrphanage() use our StandardLightingPattern
2:41:52Make CreateOrphanage() use our StandardLightingPattern
2:41:52Make CreateOrphanage() use our StandardLightingPattern
2:43:35Our orphanage is lit
🏃
2:43:35Our orphanage is lit
🏃
2:43:35Our orphanage is lit
🏃
2:44:00Spec out a light spacing rule in StandardLightingPattern, enabling Advance() to operate on passed Base and dGrid parameters, and introducing CalcBasePForOffset()
2:44:00Spec out a light spacing rule in StandardLightingPattern, enabling Advance() to operate on passed Base and dGrid parameters, and introducing CalcBasePForOffset()
2:44:00Spec out a light spacing rule in StandardLightingPattern, enabling Advance() to operate on passed Base and dGrid parameters, and introducing CalcBasePForOffset()
2:50:32Crash in GetSimSpaceTraversable()
🏃
2:50:32Crash in GetSimSpaceTraversable()
🏃
2:50:32Crash in GetSimSpaceTraversable()
🏃
2:50:47Fix StandardLightingPattern to use a newly introduced version of PlaceEntityAtP() that takes an edit_tile
2:50:47Fix StandardLightingPattern to use a newly introduced version of PlaceEntityAtP() that takes an edit_tile
2:50:47Fix StandardLightingPattern to use a newly introduced version of PlaceEntityAtP() that takes an edit_tile
2:52:27Our orphanage is well lit
🏃
2:52:27Our orphanage is well lit
🏃
2:52:27Our orphanage is well lit
🏃
2:53:01Make StandardLightingPattern decrease the light intensity
2:53:01Make StandardLightingPattern decrease the light intensity
2:53:01Make StandardLightingPattern decrease the light intensity
2:53:15Our orphanage is better lit
🏃
2:53:15Our orphanage is better lit
🏃
2:53:15Our orphanage is better lit
🏃
2:53:50Make UpdateAndRenderEntities() draw the lights
2:53:50Make UpdateAndRenderEntities() draw the lights
2:53:50Make UpdateAndRenderEntities() draw the lights
2:55:12Our lights are well distributed
🏃
2:55:12Our lights are well distributed
🏃
2:55:12Our lights are well distributed
🏃
2:56:35Remove the snake segment lights
2:56:35Remove the snake segment lights
2:56:35Remove the snake segment lights
2:57:34Start to make CalcBasePForOffset() work from the centre
2:57:34Start to make CalcBasePForOffset() work from the centre
2:57:34Start to make CalcBasePForOffset() work from the centre
2:59:47Introduce AddBlock() for GenerateRoom() to use for doors
2:59:47Introduce AddBlock() for GenerateRoom() to use for doors
2:59:47Introduce AddBlock() for GenerateRoom() to use for doors
3:09:46Our doors remain invisible
🏃
3:09:46Our doors remain invisible
🏃
3:09:46Our doors remain invisible
🏃
3:10:07Make CreateWorld() set HeroRoom to the Dungeon.EntranceRoom->Vol
3:10:07Make CreateWorld() set HeroRoom to the Dungeon.EntranceRoom->Vol
3:10:07Make CreateWorld() set HeroRoom to the Dungeon.EntranceRoom->Vol
3:10:25We start in the dungeon
🏃
3:10:25We start in the dungeon
🏃
3:10:25We start in the dungeon
🏃
3:10:41Scan AddBlock() for bugs
📖
3:10:41Scan AddBlock() for bugs
📖
3:10:41Scan AddBlock() for bugs
📖
3:11:31Our door is placed, just invisible
🏃
3:11:31Our door is placed, just invisible
🏃
3:11:31Our door is placed, just invisible
🏃
3:13:24Try making GenerateRoom() pass Tag_Floor to AddBlock()
3:13:24Try making GenerateRoom() pass Tag_Floor to AddBlock()
3:13:24Try making GenerateRoom() pass Tag_Floor to AddBlock()
3:13:33Our door is placed and visible
🏃
3:13:33Our door is placed and visible
🏃
3:13:33Our door is placed and visible
🏃
3:13:51Make GenerateRoom() set the DoorDim
3:13:51Make GenerateRoom() set the DoorDim
3:13:51Make GenerateRoom() set the DoorDim
3:16:08Our doors are visible and operable
🏃
3:16:08Our doors are visible and operable
🏃
3:16:08Our doors are visible and operable
🏃
3:16:49Make ExecuteBrainSwitches() move unlocked doors further into the floor
3:16:49Make ExecuteBrainSwitches() move unlocked doors further into the floor
3:16:49Make ExecuteBrainSwitches() move unlocked doors further into the floor
3:17:11Our doors drop fully into the floor
🏃
3:17:11Our doors drop fully into the floor
🏃
3:17:11Our doors drop fully into the floor
🏃
3:18:01Q&A
🗩
3:18:01Q&A
🗩
3:18:01Q&A
🗩
3:18:33ablindorphan handmade_hero Maybe it could actually be a gameplay feature for the door movement to obscure the tiles one floor down?
🗪
3:18:33ablindorphan handmade_hero Maybe it could actually be a gameplay feature for the door movement to obscure the tiles one floor down?
🗪
3:18:33ablindorphan handmade_hero Maybe it could actually be a gameplay feature for the door movement to obscure the tiles one floor down?
🗪
3:18:52longboolean Q: When plopping down furniture / props do you want to allow for pattern variations, e.g. desk above, chair below desk, lamp on the right? But another pattern on a side wall would require a completely different arrangement
🗪
3:18:52longboolean Q: When plopping down furniture / props do you want to allow for pattern variations, e.g. desk above, chair below desk, lamp on the right? But another pattern on a side wall would require a completely different arrangement
🗪
3:18:52longboolean Q: When plopping down furniture / props do you want to allow for pattern variations, e.g. desk above, chair below desk, lamp on the right? But another pattern on a side wall would require a completely different arrangement
🗪
3:19:29mindmark42 Q: Can you explain again why only one switch is being added to a room?
🗪
3:19:29mindmark42 Q: Can you explain again why only one switch is being added to a room?
🗪
3:19:29mindmark42 Q: Can you explain again why only one switch is being added to a room?
🗪
3:20:24technicbeam Q: You were talking about switching bodies vs switching heads. Would you be able to switch to have a snake / cat / bird / dragon body? That would be pretty cool, especially if it was required to accomplish something later in the game, like using the snake body to press down on multiple adjacent buttons at the same time
🗪
3:20:24technicbeam Q: You were talking about switching bodies vs switching heads. Would you be able to switch to have a snake / cat / bird / dragon body? That would be pretty cool, especially if it was required to accomplish something later in the game, like using the snake body to press down on multiple adjacent buttons at the same time
🗪
3:20:24technicbeam Q: You were talking about switching bodies vs switching heads. Would you be able to switch to have a snake / cat / bird / dragon body? That would be pretty cool, especially if it was required to accomplish something later in the game, like using the snake body to press down on multiple adjacent buttons at the same time
🗪
3:22:05hexadecimalinteger Q: Will you add normal maps to sprites for lighting effects?
🗪
3:22:05hexadecimalinteger Q: Will you add normal maps to sprites for lighting effects?
🗪
3:22:05hexadecimalinteger Q: Will you add normal maps to sprites for lighting effects?
🗪
3:22:20ablindorphan Q: Are you intending for it to be a mix of hand-authored rooms and generated patterns, or pure generation?
🗪
3:22:20ablindorphan Q: Are you intending for it to be a mix of hand-authored rooms and generated patterns, or pure generation?
🗪
3:22:20ablindorphan Q: Are you intending for it to be a mix of hand-authored rooms and generated patterns, or pure generation?
🗪
3:22:52longboolean Q: Gameplay-wise are you going for something like needing to enter a pattern in a particular way, monsters get in the way, clearing the room makes it feasible to enter the code to unlock the door? Or are you thinking, have monsters that can't die that you need to look at their behavior and wrangle them into opening the doors for you?
🗪
3:22:52longboolean Q: Gameplay-wise are you going for something like needing to enter a pattern in a particular way, monsters get in the way, clearing the room makes it feasible to enter the code to unlock the door? Or are you thinking, have monsters that can't die that you need to look at their behavior and wrangle them into opening the doors for you?
🗪
3:22:52longboolean Q: Gameplay-wise are you going for something like needing to enter a pattern in a particular way, monsters get in the way, clearing the room makes it feasible to enter the code to unlock the door? Or are you thinking, have monsters that can't die that you need to look at their behavior and wrangle them into opening the doors for you?
🗪
3:23:17x1bzzr handmade_hero I've heard you say before that you don't believe it's good or necessary to know many programming languages because, in your words, "programming works from first principles". I do hear all the time, though, that you shouldn't be married to a programming language and you should always use the best language for the problem you're trying to solve. Why do you think people think this way and can you elaborate on why you disagree?
🗪
3:23:17x1bzzr handmade_hero I've heard you say before that you don't believe it's good or necessary to know many programming languages because, in your words, "programming works from first principles". I do hear all the time, though, that you shouldn't be married to a programming language and you should always use the best language for the problem you're trying to solve. Why do you think people think this way and can you elaborate on why you disagree?
🗪
3:23:17x1bzzr handmade_hero I've heard you say before that you don't believe it's good or necessary to know many programming languages because, in your words, "programming works from first principles". I do hear all the time, though, that you shouldn't be married to a programming language and you should always use the best language for the problem you're trying to solve. Why do you think people think this way and can you elaborate on why you disagree?
🗪
3:26:29ablindorphan Q: Do you find it harder to design the engine without the concrete requirements of a specific game design? I find sometimes I rathole on abstractions / generalisations I'll never end up using if I don't have a specific goal in mind
🗪
3:26:29ablindorphan Q: Do you find it harder to design the engine without the concrete requirements of a specific game design? I find sometimes I rathole on abstractions / generalisations I'll never end up using if I don't have a specific goal in mind
🗪
3:26:29ablindorphan Q: Do you find it harder to design the engine without the concrete requirements of a specific game design? I find sometimes I rathole on abstractions / generalisations I'll never end up using if I don't have a specific goal in mind
🗪
3:26:55maciejzbj1992 Q: I don't know if I can ask these here, but how's Star Code Galaxy doing? When will something be available?
🗪
3:26:55maciejzbj1992 Q: I don't know if I can ask these here, but how's Star Code Galaxy doing? When will something be available?
🗪
3:26:55maciejzbj1992 Q: I don't know if I can ask these here, but how's Star Code Galaxy doing? When will something be available?
🗪
3:27:39guybru5h_vi Q: How do you avoid overcomplicating your code?
🗪
3:27:39guybru5h_vi Q: How do you avoid overcomplicating your code?
🗪
3:27:39guybru5h_vi Q: How do you avoid overcomplicating your code?
🗪
3:29:38hexadecimalinteger Q: If I like a low level language like C, but a syntax feature like member function, what's the solution? Metaprogramming?
🗪
3:29:38hexadecimalinteger Q: If I like a low level language like C, but a syntax feature like member function, what's the solution? Metaprogramming?
🗪
3:29:38hexadecimalinteger Q: If I like a low level language like C, but a syntax feature like member function, what's the solution? Metaprogramming?
🗪
3:30:17hexadecimalinteger Q: Yeah, I meant a feature that doesn't exist
🗪
3:30:17hexadecimalinteger Q: Yeah, I meant a feature that doesn't exist
🗪
3:30:17hexadecimalinteger Q: Yeah, I meant a feature that doesn't exist
🗪
3:30:57Plug Discord1 for questions on Star Code Galaxy
📖
3:30:57Plug Discord1 for questions on Star Code Galaxy
📖
3:30:57Plug Discord1 for questions on Star Code Galaxy
📖
3:31:50cyberdyneyeah Q: When someone notes "// TODO(casey)", does that mean it's a TODO casey noted or a TODO for casey to do?
🗪
3:31:50cyberdyneyeah Q: When someone notes "// TODO(casey)", does that mean it's a TODO casey noted or a TODO for casey to do?
🗪
3:31:50cyberdyneyeah Q: When someone notes "// TODO(casey)", does that mean it's a TODO casey noted or a TODO for casey to do?
🗪
3:32:46x1bzzr Q: Following up on the question about programming languages. A lot of people seem to think that dynamic languages are way more expressive than non-dynamic ones in the sense that you can accomplish a lot with very little code. When you say these languages are limited do you mostly mean they don't allow you to write performant code or do you mean more than that?
🗪
3:32:46x1bzzr Q: Following up on the question about programming languages. A lot of people seem to think that dynamic languages are way more expressive than non-dynamic ones in the sense that you can accomplish a lot with very little code. When you say these languages are limited do you mostly mean they don't allow you to write performant code or do you mean more than that?
🗪
3:32:46x1bzzr Q: Following up on the question about programming languages. A lot of people seem to think that dynamic languages are way more expressive than non-dynamic ones in the sense that you can accomplish a lot with very little code. When you say these languages are limited do you mostly mean they don't allow you to write performant code or do you mean more than that?
🗪
3:41:37vivonner handmade_hero It took me 400 lines of code to write a 2D plotting calculator in JavaScript. I don't know why it takes so much for a simple crud website though
🗪
3:41:37vivonner handmade_hero It took me 400 lines of code to write a 2D plotting calculator in JavaScript. I don't know why it takes so much for a simple crud website though
🗪
3:41:37vivonner handmade_hero It took me 400 lines of code to write a 2D plotting calculator in JavaScript. I don't know why it takes so much for a simple crud website though
🗪
3:43:33Thank you, everyone, with a plug of Wednesday's lecture for the University of Twente about optimising the grass and plant distribution code in The Witness
🗩
3:43:33Thank you, everyone, with a plug of Wednesday's lecture for the University of Twente about optimising the grass and plant distribution code in The Witness
🗩
3:43:33Thank you, everyone, with a plug of Wednesday's lecture for the University of Twente about optimising the grass and plant distribution code in The Witness
🗩