Kartik Agaram 2023-12-11 05:26:34 Tom Lieber 2023-12-12 00:03:02 Is that “Rectangle World” link broken? It just takes me to this channel in a new window.
Kartik Agaram 2023-12-12 03:44:19 Could you share what device+app you're on? For me on Linux+Firefox and Android+Slack it goes to this channel but a Nov 3 post.
Kartik Agaram 2023-12-14 16:42:35 Yesterday I turned a couple of my unused kids apps into just scripts you could run on Lua Carousel.
git.sr.ht/~akkartik/sum-grid.love
git.sr.ht/~akkartik/spell-cards.love (exercising my phone's microphone for the first time)
Both qualified successes. I didn't uncover any bugs, but the programs were 250 and 350 lines long, which starts to feel too long for my implementation of scrollbars.
Maikel van de Lisdonk 2023-12-17 16:19:59 I heard that day-5 part two was a curveball, so I really want to be able to implement it using my visual programming system... which failed so far. Using a brute force solution would mean that the program would run very very long. And my current "speed run" solution wouldn't suffice for this.
Part one actually provided a big challenge for my vps as well, running the program with the small test dataset can be seen in the video: youtu.be/td0QeePvfGQ . I've spend a lot of time adding more new node-types this weekend (like handling a while-loop and improved array handling) and making changes to the variable-nodes and expressions. Also the variable scoping (needed for local function variables) that I implemented had some flaws, so I fixed that as well. You can now define global and scoped variables. I've also made some simple variable visualizers that better show the data for data types like dictionary/array and grid.
My current vps solution works better than the flow-based vps that I was building last year. A big difference is that the data that is send from node to node is now just a single value. That value can still be of different types (number, string, array).. and special variable-nodes are needed to keep track of data. These variables also have a type like number, string, array, dictionary, grid. Often working with a single value is not enough and that's why these variables are needed. They can be referenced from within expressions. Also being able to run some flow-parts in parallel or sequentially helps a lot. This starts to feel much more like a regular 3rd gen programming language.
The UI is currently quite limited.. to be able to create a flow program efficiently it definitely needs a lot of work. Textual programming is much faster. I want to finish at least one of the advent of code puzzles where a grid is involved .. so today's puzzle (17) seems like a good fit. I'll probably work on that next weekend.
Kartik Agaram 2023-12-17 18:18:36 How are you using a VPS?! Is this running in a browser that receives graphics from a server that's executing the program? Or is this a "head-ful" native app that's rendering graphics locally somehow? Or something else?
Maikel van de Lisdonk 2023-12-17 18:20:42 This is 100% in the browser build with typescript without any libraries. It's all regular DOM and svg elements with css (tailwind and css transforms)
Maikel van de Lisdonk 2023-12-17 18:24:29 I hope that I can put something online in january, there are still some bugs that I want to fix before I do that 😊
Kartik Agaram 2023-12-17 18:26:14 Oh, you don't mean Virtual Private Server, do you? What does vps mean, Visual Programming System?
Maikel van de Lisdonk 2023-12-17 18:30:03 The regular term that is used is usually VPL for these kind of applications, but thats not what i want to try and build. It's a part of it , but I want to build a system that can be used to build multiple visual programming languages and environments. I am probably aiming to high for a one person project 😅
Kartik Agaram 2023-12-17 18:33:32 One nice reusable abstraction my LÖVE apps have all converged on is an immediate-mode button primitive. I draw all my buttons each frame along with all the callbacks they need, and a couple of framework-y lines of code in the mouse-press callback is all it takes to get them working. Last night I realized (while poking inside love2d.org/forums/viewtopic.php?p=236661#p236661) that my hacky sliders in Lua Carousel's settings admit a similar abstraction (even better than the one there). The only additional complexity is it needs a couple more lines in the update
callback that continually refresh the backing value as you drag the slider.
Jimmy Miller 2023-12-17 18:35:20 Finally starting to see a workflow come together in my editor. Here you can see Fibonacci at three different levels in the language I'm making. These functions live in three different files. Looking at them at once and comparing them isn't easily supported in any other editor I use. On the left is a simplistic symbol browser.
I'm super excited that I'm slowly getting to the point where I can do these kinds of things. Having different views of our codebases that we can switch between is something I've been wanting for years.
Jimmy Miller 2023-12-17 18:36:10 Also, I'm not actually making a lisp, but rust makes it so easy to make a macro that is a lisp, I always do that for my ASTs well before I write a parser
David Alan Hjelle 2023-12-17 18:57:46 This is three different ~human~ -authored versions at different levels?
Jimmy Miller 2023-12-17 19:08:59 Yes. I wrote them by hand bottom up. The highest level compiles to that lower level. But that isn’t the output of that code.