Broadcasted live on Twitch -- Watch live at / j_blow
Жүктеу.....
Пікірлер: 31
@ryoonio Жыл бұрын
Appreciate the more frequent uploads lately! This series and the space invaders game have been great to watch. And great progress in a short period of time.
@namr2000 Жыл бұрын
Thanks for putting these streams up, they''re giving me motivation to do my own weekend projects.
@Paul-to1nb6 ай бұрын
This was an extremely fun stream. Thank you for uploading!
@Pangeli70 Жыл бұрын
I followed the entire series, really cool. Enjoyed all the development cycle, from the beginning to the end. With all the decisions and bug hunting and testing and experimenting in a real project. I have so many ideas to improve the tool. On the UI part, there are so many things that could be done. If it could be integrated with a text viewer or text editor, you could maybe control-click on a function and jump directly into the file and look at it for immediate investigation. Or maybe you can shift-click and list all the modules where the function is used or where all the polymorphs are declared. Right-click could open a context menu for quick contextualized operations. I'd try to remove entirely the bottom area of the UI to expand the treemap and I'd show a tooltip under the cursor while you move it so you don't have to read in a different position where the cursor is. Clicking on the file cursor could pop up a window that shows the function's metrics in detail. Another cool thing to add would be an AST per metric visualizer of the function to display how these are collected. Adding this tool to a profiler can allow us to watch how the behaviour of the program evolves at runtime. And combing codex data with profiler data could help join code complexity metrics with real usage metrics to visually identify bottlenecks and areas where to push hard till reaching the metal to squeeze out the performance. AST patterns and Codex metrics could be used to identify and visualize antipatterns, or obsolete syntax and aim at the areas that need refactoring. So many ideas. Maybe someone useful. :)
@Protoex Жыл бұрын
There is a very easy to fix bug to improve squareness. Instead of alternating between horizontal/vertical layout, decide it based on the aspect ratio of the remaining free rectangle. At some point in part one, it seems like you got the idea, but as complexity spiraled out, you make it alternating and never fixed back
@jblow888
Жыл бұрын
Have you actually tried this and compared to see if it is better?
@JeffHanke
Жыл бұрын
@@jblow888 I haven't, but it should reduce the number of rects that get squashed in the upper-right corner of parent rects that start out with an aspect far away from 1. When packing squarish rects into columns/rows and always alternating between them, the remaining space's aspect ratio will trend away from 1. Imagine starting with 200x100 (aspect ratio 2), you pack a column of 10x10, and a row of 10x10, you're left with 190x90 (aspect ratio 2.11), if you pack another column & row of 9x9s, you end up with 181x81 (aspect 2.23), etc. Subtracting approximately equal values from both the width and height will push the aspect ratio father and farther from 1. With the proposed change, you'd pack a column of 10x10s, end up with 190x100 (aspect ratio 1.9), see it's above 1 still, pack another column of 10x10s, end up with 180, etc, until you get down around 100x100 (aspect ratio 1) and then (most likely) start switching back and forth. Without trying it myself, I can't be *sure* that the packed rects will be more square, but the remaining space will certainly be more square, and I think that will end up giving you more rects that are close to square.
@Protoex
Жыл бұрын
@jblow888 sorry I haven't. Do I get beta access to the compiler if it get improved?
@Adamarla Жыл бұрын
The algorithm in the original paper picks packing to rows or columns based on aspect ratio rather than toggling. That reduces the thin rectangles as it allows them to be packed in the other direction. I waited until finishing watching everything before pointing this out in case it was already fixed on stream.
@unnameduser6683 Жыл бұрын
Great stuff!
@draakisback Жыл бұрын
Oh sweet, you use emacs as well. Been watching these videos for awhile and just noticed that. I really like what I've seen of this jai language you've created. Useful compiler errors, simple syntax but with powerful features and a compiler that is relatively reasonable as far as speed goes. I hope to get my hands on it soon, though my interest is less regarding gaming and more about the actual compiler and language design itself.
@malusmundus-9605 Жыл бұрын
Jai language looks sick... nice map too. Identifier : Type is noice.
@Muskar2
Жыл бұрын
Yeah, I'm sure we're many who can't wait to try it out!
@Guyflyer12 Жыл бұрын
Has Jon talked about the whole `codex` and memory profiler thing? Besides just the visualization but the under the hood stuff?
@benjaminpedersen9548 Жыл бұрын
About program to module ratio, I guess it is actually smaller than it would have been in C++, since Thekla has actively modularized code for the programming language.
@EnricoMartelli Жыл бұрын
Spotted some code that could be improved: recompute_if_dirty calculates the root node, but it can simply call treemap.root draw_treemap call recompute_if_dirty 2 times each
@adama7752 Жыл бұрын
We did it boys!
@clerothsun39332 ай бұрын
Can't wait to use this language in 2150
@szabolcsdezsi8028 Жыл бұрын
The border widths should be independent of the zoom level. When you zoom in a lot the borders take up a lot of space. If you addressed this in the stream, then sorry :)
@Muskar2 Жыл бұрын
What is the color coding of the tree? It seems to be tied to the "blend" value, but what is that? Is it a weighted calculation of all the others stats?
@Muskar2
Жыл бұрын
"Generic code quality metric" (part 4 - 2:44:22) It seems to me like it's a metric that is inherited from the rest of the GUI, and not implemented in the treemap code. I'll update this if I get around to watching all parts to verify that assumption
@linkVIII Жыл бұрын
And with the last, I need to find more things to focus on while I play more mindless zelda that still doesn't respect your time
@nates9778 Жыл бұрын
This is like nuclear technology dude!
@crimsonhawk52 Жыл бұрын
a command line REPL for Jai would be really nice. I use python on command line as my go-to calculator and to do dumb tiny shit I can't do in my head. ttrpg statistics mostly. But python is hella cringe tbh
@benjaminpedersen9548
Жыл бұрын
I am not in the beta, but I imagine that it would be perfectly possible to make it with a compile-time metaprogram.
@ar_xiv Жыл бұрын
somebody get mr blow some new fonts. georgia is soo 2005 wordpress blog or something
@ar_xiv
Жыл бұрын
Might I recommend the CMU family designed by donald knuth
@SemperVinco
Жыл бұрын
@@ar_xiv You want his games to look like a mathematics paper?! TeX is fantastic but computer modern is my least favorite bit. Why not Bitstream Charter?
@DoctorGester
Жыл бұрын
Pretty sure it's Karmina - the signature Thekla font
@sanjacobs6261
Жыл бұрын
@@DoctorGester Yes, it is Karmina. And, arXiv: Selecting fonts based on current trends is a fast-track to becoming generic. I'm pretty sure Jon appreciates 2005 Wordpress much more than he does 2023 Squarespace.
@TheIonizator
Жыл бұрын
Imagine if Jon started using fonts from wild niche ultramodern type agencies like ABC Dinamo. Now that's would be interesting and non generic. Would love Jai to have more bold identity, one can dream
Пікірлер: 31
Appreciate the more frequent uploads lately! This series and the space invaders game have been great to watch. And great progress in a short period of time.
Thanks for putting these streams up, they''re giving me motivation to do my own weekend projects.
This was an extremely fun stream. Thank you for uploading!
I followed the entire series, really cool. Enjoyed all the development cycle, from the beginning to the end. With all the decisions and bug hunting and testing and experimenting in a real project. I have so many ideas to improve the tool. On the UI part, there are so many things that could be done. If it could be integrated with a text viewer or text editor, you could maybe control-click on a function and jump directly into the file and look at it for immediate investigation. Or maybe you can shift-click and list all the modules where the function is used or where all the polymorphs are declared. Right-click could open a context menu for quick contextualized operations. I'd try to remove entirely the bottom area of the UI to expand the treemap and I'd show a tooltip under the cursor while you move it so you don't have to read in a different position where the cursor is. Clicking on the file cursor could pop up a window that shows the function's metrics in detail. Another cool thing to add would be an AST per metric visualizer of the function to display how these are collected. Adding this tool to a profiler can allow us to watch how the behaviour of the program evolves at runtime. And combing codex data with profiler data could help join code complexity metrics with real usage metrics to visually identify bottlenecks and areas where to push hard till reaching the metal to squeeze out the performance. AST patterns and Codex metrics could be used to identify and visualize antipatterns, or obsolete syntax and aim at the areas that need refactoring. So many ideas. Maybe someone useful. :)
There is a very easy to fix bug to improve squareness. Instead of alternating between horizontal/vertical layout, decide it based on the aspect ratio of the remaining free rectangle. At some point in part one, it seems like you got the idea, but as complexity spiraled out, you make it alternating and never fixed back
@jblow888
Жыл бұрын
Have you actually tried this and compared to see if it is better?
@JeffHanke
Жыл бұрын
@@jblow888 I haven't, but it should reduce the number of rects that get squashed in the upper-right corner of parent rects that start out with an aspect far away from 1. When packing squarish rects into columns/rows and always alternating between them, the remaining space's aspect ratio will trend away from 1. Imagine starting with 200x100 (aspect ratio 2), you pack a column of 10x10, and a row of 10x10, you're left with 190x90 (aspect ratio 2.11), if you pack another column & row of 9x9s, you end up with 181x81 (aspect 2.23), etc. Subtracting approximately equal values from both the width and height will push the aspect ratio father and farther from 1. With the proposed change, you'd pack a column of 10x10s, end up with 190x100 (aspect ratio 1.9), see it's above 1 still, pack another column of 10x10s, end up with 180, etc, until you get down around 100x100 (aspect ratio 1) and then (most likely) start switching back and forth. Without trying it myself, I can't be *sure* that the packed rects will be more square, but the remaining space will certainly be more square, and I think that will end up giving you more rects that are close to square.
@Protoex
Жыл бұрын
@jblow888 sorry I haven't. Do I get beta access to the compiler if it get improved?
The algorithm in the original paper picks packing to rows or columns based on aspect ratio rather than toggling. That reduces the thin rectangles as it allows them to be packed in the other direction. I waited until finishing watching everything before pointing this out in case it was already fixed on stream.
Great stuff!
Oh sweet, you use emacs as well. Been watching these videos for awhile and just noticed that. I really like what I've seen of this jai language you've created. Useful compiler errors, simple syntax but with powerful features and a compiler that is relatively reasonable as far as speed goes. I hope to get my hands on it soon, though my interest is less regarding gaming and more about the actual compiler and language design itself.
Jai language looks sick... nice map too. Identifier : Type is noice.
@Muskar2
Жыл бұрын
Yeah, I'm sure we're many who can't wait to try it out!
Has Jon talked about the whole `codex` and memory profiler thing? Besides just the visualization but the under the hood stuff?
About program to module ratio, I guess it is actually smaller than it would have been in C++, since Thekla has actively modularized code for the programming language.
Spotted some code that could be improved: recompute_if_dirty calculates the root node, but it can simply call treemap.root draw_treemap call recompute_if_dirty 2 times each
We did it boys!
Can't wait to use this language in 2150
The border widths should be independent of the zoom level. When you zoom in a lot the borders take up a lot of space. If you addressed this in the stream, then sorry :)
What is the color coding of the tree? It seems to be tied to the "blend" value, but what is that? Is it a weighted calculation of all the others stats?
@Muskar2
Жыл бұрын
"Generic code quality metric" (part 4 - 2:44:22) It seems to me like it's a metric that is inherited from the rest of the GUI, and not implemented in the treemap code. I'll update this if I get around to watching all parts to verify that assumption
And with the last, I need to find more things to focus on while I play more mindless zelda that still doesn't respect your time
This is like nuclear technology dude!
a command line REPL for Jai would be really nice. I use python on command line as my go-to calculator and to do dumb tiny shit I can't do in my head. ttrpg statistics mostly. But python is hella cringe tbh
@benjaminpedersen9548
Жыл бұрын
I am not in the beta, but I imagine that it would be perfectly possible to make it with a compile-time metaprogram.
somebody get mr blow some new fonts. georgia is soo 2005 wordpress blog or something
@ar_xiv
Жыл бұрын
Might I recommend the CMU family designed by donald knuth
@SemperVinco
Жыл бұрын
@@ar_xiv You want his games to look like a mathematics paper?! TeX is fantastic but computer modern is my least favorite bit. Why not Bitstream Charter?
@DoctorGester
Жыл бұрын
Pretty sure it's Karmina - the signature Thekla font
@sanjacobs6261
Жыл бұрын
@@DoctorGester Yes, it is Karmina. And, arXiv: Selecting fonts based on current trends is a fast-track to becoming generic. I'm pretty sure Jon appreciates 2005 Wordpress much more than he does 2023 Squarespace.
@TheIonizator
Жыл бұрын
Imagine if Jon started using fonts from wild niche ultramodern type agencies like ABC Dinamo. Now that's would be interesting and non generic. Would love Jai to have more bold identity, one can dream