From e83f377aba7079eca2ab774e7f27f2704f669f43 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Tue, 20 Dec 2022 13:05:54 -0500 Subject: add answer captions, add rest of IRC comments --- ...t-no-one-asked-for--zachary-romero--answers.vtt | 411 +++++++++++++++++++++ 1 file changed, 411 insertions(+) create mode 100644 2022/captions/emacsconf-2022-asmblox--asmblox-a-game-based-on-webassembly-that-no-one-asked-for--zachary-romero--answers.vtt (limited to '2022/captions/emacsconf-2022-asmblox--asmblox-a-game-based-on-webassembly-that-no-one-asked-for--zachary-romero--answers.vtt') diff --git a/2022/captions/emacsconf-2022-asmblox--asmblox-a-game-based-on-webassembly-that-no-one-asked-for--zachary-romero--answers.vtt b/2022/captions/emacsconf-2022-asmblox--asmblox-a-game-based-on-webassembly-that-no-one-asked-for--zachary-romero--answers.vtt new file mode 100644 index 00000000..3bccf8fb --- /dev/null +++ b/2022/captions/emacsconf-2022-asmblox--asmblox-a-game-based-on-webassembly-that-no-one-asked-for--zachary-romero--answers.vtt @@ -0,0 +1,411 @@ +WEBVTT + +NOTE +Introduction + +00:00:00.000 --> 00:00:05.799 +[Amin]: All right. Hey, everyone. Thanks, Zach, for the great talk. Here is a live Q&A. + +00:00:05.800 --> 00:00:12.399 +People can start putting the questions onto the pad, and Zach will answer them. + +00:00:12.400 --> 00:00:15.007 +Zach, take it away. Thanks, Zach. Here is a live Q&A. + +00:00:15.008 --> 00:01:12.599 +[Zach]: Okay. So, first question. Let's see. + +NOTE Why did you choose an internal state versus many 'state buffers'? + +00:01:12.600 --> 00:01:16.039 +Okay. So, the first question is why did you choose an internal state + +00:01:16.040 --> 00:01:22.959 +versus many state buffers? So, the main reason was more control + +00:01:22.960 --> 00:01:29.599 +from the game perspective. I mean, if this was to be a tool, + +00:01:29.600 --> 00:01:35.519 +if this was to be a tool that perhaps was used for more, like, + +00:01:35.520 --> 00:01:41.479 +real-world applications where maybe you'd want users to be able to, like, + +00:01:41.480 --> 00:01:43.399 +use any of their preexisting + +00:01:43.400 --> 00:01:48.559 +— like, if you wanted to really make a grid of cells that would — + +00:01:48.560 --> 00:01:53.639 +so, then I think maybe using real buffers in that case + +00:01:53.640 --> 00:01:56.199 +would probably be the better thing since you wouldn't have to, like, + +00:01:56.200 --> 00:02:04.239 +redo everything. But I found that just, like, centralizing the state + +00:02:04.240 --> 00:02:10.719 +into one place for the game at least made it the easiest to implement. + +NOTE Do you have plans to port shenzhen.io to Emacs? + +00:02:10.720 --> 00:02:14.079 +Next one. Do you have plans to port Shenzhen I.O. to Emacs? + +00:02:14.080 --> 00:02:19.559 +Well, I was actually thinking about exopunks, perhaps, + +00:02:19.560 --> 00:02:26.599 +but Shenzhen I.O. would be pretty cool to add as well. + +00:02:26.600 --> 00:02:29.959 +So, this doesn't use any Wasm at all. + +NOTE Did this use WASM? + +00:02:29.960 --> 00:02:33.799 +So, the next question is, did this use Wasm? + +00:02:33.800 --> 00:02:41.999 +So, it's asking about, like, using Wasm Emacs. So, this actually — + +00:02:42.000 --> 00:02:45.239 +this doesn't use any Wasm under the hood. + +00:02:45.240 --> 00:02:49.639 +It's pretty much analogous to the game TIS 100 is to real assembly + +00:02:49.640 --> 00:02:59.799 +as this game is to web assembly. Slight resemblance, but, yeah, just a game. + +NOTE Why wasm rather than a more traditional Assembly dialect? It wouldn't be harder to implement, right? + +00:02:59.800 --> 00:03:06.039 +So, okay, so the next question is why Wasm + +00:03:06.040 --> 00:03:09.359 +rather than a more traditional assembly dialect? + +00:03:09.360 --> 00:03:11.799 +It wouldn't be harder to implement, right? + +00:03:11.800 --> 00:03:16.919 +So, it would actually probably have been easier, in all honesty, just because, + +00:03:16.920 --> 00:03:20.679 +you know, more traditional — like, TIS 100, for example. + +00:03:20.680 --> 00:03:24.599 +You have each of the — you have each instruction on a line, + +00:03:24.600 --> 00:03:29.519 +and it's pretty easy to, you know, syntax hiding just one line. + +00:03:29.520 --> 00:03:32.599 +So, this with the weird S expressions across the line, deeply nested, + +00:03:32.600 --> 00:03:37.239 +and then, like, the step debugger thing and these weird cell things. + +00:03:37.240 --> 00:03:40.239 +They made things really complicated, but I definitely wanted to, like — + +00:03:40.240 --> 00:03:47.559 +the main reason is I didn't — I wanted it to not — to look as least as — + +00:03:47.560 --> 00:03:52.919 +to look — to resemble TIS 100 as little as possible, + +00:03:52.920 --> 00:03:54.399 +even though it's still pretty much the same game. + +00:03:54.400 --> 00:04:44.439 +[Amin]: Thanks, Zach. I think we still have about, like, eight minutes or so. + +00:04:44.440 --> 00:04:46.159 +Or eight and a half minutes of Q&A time. + +00:04:46.160 --> 00:04:47.919 +So, folks, if you do have any other questions, + +00:04:47.920 --> 00:04:50.119 +please do keep them coming in the pad, and, yeah, + +00:04:50.120 --> 00:04:53.079 +Zach will continue answering them. + +00:04:53.080 --> 00:05:08.959 +[Zach]: Sounds good. Thank you. + +NOTE Any next projects on your mind? + +00:05:08.960 --> 00:05:11.399 +So, next question. Any next projects on your mind? + +00:05:11.400 --> 00:05:15.679 +Yeah, actually, I have a couple ideas for projects, + +00:05:15.680 --> 00:05:21.639 +and these would all be, hopefully, maybe more useful. + +00:05:21.640 --> 00:05:24.119 +I think TreeSitter is pretty + +00:05:24.120 --> 00:05:28.639 +cool. I think there's a lot of directions that I could go, like, + +00:05:28.640 --> 00:05:34.639 +there's a plugin in NeoVim called NeoGen, which generates documentation. + +00:05:34.640 --> 00:05:41.359 +That would be cool. I've been playing with this. What else? + +00:05:41.360 --> 00:05:45.559 +Yeah, I mean, hopefully, next year, at next the Emacs conference, + +00:05:45.560 --> 00:05:52.679 +I could be presenting something more useful. + +NOTE Does this work with any other paren-based editing packages? + +00:05:52.680 --> 00:05:57.479 +Next question. Does this work with any other paren-based editing packages? + +00:05:57.480 --> 00:06:02.759 +Not at all. Not at all. In fact, just because of the way the buffer was set up, + +00:06:02.760 --> 00:06:07.999 +how it's just, like, the illusion of a buffer, like, not even, like, + +00:06:08.000 --> 00:06:17.119 +the syntax parsing works correctly, because just because everything's, like, + +00:06:17.120 --> 00:06:19.239 +the way the grids are set up, like, you have, like, + +00:06:19.240 --> 00:06:23.839 +the other cells kind of interfering with the way that parse is. + +00:06:23.840 --> 00:06:29.799 +But the way it was architected, it's actually a really simple macro. + +00:06:29.800 --> 00:06:33.159 +There's a little macro called, like, run in buffer. + +00:06:33.160 --> 00:06:37.279 +You have, like, run in buffer, and then you put your elist code, + +00:06:37.280 --> 00:06:42.439 +and then it tries to create the illusion that it's actually running + +00:06:42.440 --> 00:06:46.919 +in a real buffer. So this macro kind of does all the configuration setup. + +NOTE What kind of tool could use this idea? + +00:06:46.920 --> 00:06:55.839 +So, I mean, maybe with, like, more configuration settings, + +00:06:55.840 --> 00:06:58.399 +maybe something like that could have been done. + +00:06:58.400 --> 00:07:04.239 +So next question. What kind of tool could you use this idea? + +00:07:04.240 --> 00:07:09.479 +Oh, going back to the next project on your mind. + +00:07:09.480 --> 00:07:12.639 +This actually came up to my mind as, like, a graphical. + +00:07:12.640 --> 00:07:21.359 +So, in terms of, like, there's a lot of graphing tools, like ASCII. + +00:07:21.360 --> 00:07:25.679 +So, like, you type in some text representation, it generates an ASCII document. + +00:07:25.680 --> 00:07:28.599 +I think it would be really cool to have, like, + +00:07:28.600 --> 00:07:31.079 +an Emacs package that sort of works, like, + +00:07:31.080 --> 00:07:35.519 +those online really slick graph drawing tools. + +00:07:35.520 --> 00:07:40.919 +So, like, you can just press tab, and it draws a new box with an ASCII arrow, + +00:07:40.920 --> 00:07:43.759 +and then, like, it can create these diagrams really easy. + +00:07:43.760 --> 00:07:46.359 +I think that would be a really cool project. + +00:07:46.360 --> 00:07:52.039 +And so, something like that, obviously, like, you have different cells. + +00:07:52.040 --> 00:07:56.279 +And so, that's actually another thing I think would be cool to work on. + +NOTE How did you go about designing the puzzles? + +00:07:56.280 --> 00:08:04.039 +So, designing puzzles. So, it's funny. + +00:08:04.040 --> 00:08:07.879 +If you listen to Zach Barth's talk about TS100, + +00:08:07.880 --> 00:08:12.759 +he goes into, like, you pretty just, like, you pretty just, + +00:08:12.760 --> 00:08:16.159 +it's just like you make up a puzzle you think could work, + +00:08:16.160 --> 00:08:18.279 +and chances are it does end up working. + +00:08:18.280 --> 00:08:23.959 +And that's how I roll, at least my custom puzzles in the game, just, like, + +00:08:23.960 --> 00:08:28.599 +come up with some random idea, think it probably should work, + +00:08:28.600 --> 00:08:35.839 +and then try to go implementing it. And usually, it's implementable. + +00:08:35.840 --> 00:08:39.319 +I mean, four by three boxes, you can do quite a bit. + +NOTE What are your favorite changes in the upcoming Emacs 29? + +00:08:39.320 --> 00:08:44.119 +And I don't put any restrictions on the cells, like, TS100. + +00:08:44.120 --> 00:08:47.719 +What are your favorite changes in the upcoming Emacs 29? + +00:08:47.720 --> 00:08:50.479 +So, definitely TreeSitter is pretty cool. + +00:08:50.480 --> 00:08:55.679 +Just because, like, you have syntax, you have access to that. + +00:08:55.680 --> 00:08:59.719 +You can build syntax-aware extensions. + +00:08:59.720 --> 00:09:03.559 +So, like, I was just I was playing around with it, and it's pretty cool. + +00:09:03.560 --> 00:09:07.479 +You can just, like, get the syntax tree and search for syntax patterns. + +NOTE Are there tools to add more puzzles? + +00:09:07.480 --> 00:09:25.199 +So, it's exciting to see what might be done with that. + +00:09:25.200 --> 00:09:28.879 +Are there tools to add more puzzles? So, there's not tools, + +00:09:28.880 --> 00:09:35.959 +but in the code itself, there's a file called azimbox puzzles. + +00:09:35.960 --> 00:09:39.079 +And it's pretty much just, like, you have a generator function. + +00:09:39.080 --> 00:09:43.079 +You configure it's just, like, you're pretty much defining a struct. + +00:09:43.080 --> 00:09:45.679 +So, I mean, if you're familiar with the Emax list, + +00:09:45.680 --> 00:09:47.959 +you can kind of define puzzles pretty easily. + +00:09:47.960 --> 00:09:54.279 +Define where your inputs are, generate a function to generate these inputs, + +00:09:54.280 --> 00:09:57.799 +and then a generator function to generate which outputs you want. + +00:09:57.800 --> 00:10:02.159 +So, it's pretty, I mean, code-wise, it's pretty self-contained. + +00:10:02.160 --> 00:10:10.239 +But yeah, maybe I could have done, like, a more streamlined job with that. + +00:10:10.240 --> 00:10:17.159 +Like, a binding to graph is? Oh, yeah, with the graph thing I was mentioning. + +00:10:17.160 --> 00:10:23.479 +So, that would also actually be pretty cool, too. But I was thinking more just, + +00:10:23.480 --> 00:10:31.119 +like, plain ASCII graphs. Just, like, you already have just, like, so, + +00:10:31.120 --> 00:10:33.439 +a tool I've seen recently is called Diagon. + +00:10:33.440 --> 00:10:38.079 +So, you basically type in, like, some really, like, + +00:10:38.080 --> 00:10:41.759 +a textual representation of the graph, like, A arrow B, B arrow C, + +00:10:41.760 --> 00:10:44.079 +and it generates, like, an ASCII diagram. + +00:10:44.080 --> 00:10:52.799 +So, something like that would be cool, like, so, like, you have, like, + +00:10:52.800 --> 00:11:01.839 +a grid of, like, little nodes, and control F maybe brings you to the next one, + +00:11:01.840 --> 00:11:07.279 +and maybe tab, maybe would create a new node with a new ASCII + +00:11:07.280 --> 00:11:20.879 +arrow to it. That would be a cool, that would be a really cool extension. + +00:11:20.880 --> 00:11:25.319 +But, yeah, I mean, obviously, graph is an amazing tool. + +00:11:25.320 --> 00:11:28.079 +So, a lot could be done with that as well. + +00:11:28.080 --> 00:12:49.679 +[Amin]: I think we have about, like, a minute or a minute and a half of live questions. + +00:12:49.680 --> 00:12:50.719 +We are opening the Q&A, this BB room for people to join. + +00:12:50.720 --> 00:12:51.759 +So, folks who want to do that are welcome to do so. + +00:12:51.760 --> 00:12:52.199 +And, yeah, after that, the stream will move on. + +00:12:52.200 --> 00:12:52.359 +But you can still come in this BB room or keep asking questions on the web. + +00:12:52.360 --> 00:12:53.439 +Okay. I think that's about all the time that we have on the stream. + +00:12:53.440 --> 00:12:55.079 +Thanks again, Zach, so much, and both for the Q&A and for your great talk, + +00:12:55.080 --> 00:12:57.319 +and see you all around. Thank you. + +00:12:57.320 --> 00:12:58.239 +Cheers. + +00:12:58.240 --> 00:12:58.359 +[Zach]: Thank you. + +00:12:58.360 --> 00:14:19.200 +You are currently the only person in this conference. -- cgit v1.2.3