User Tools

Site Tools


newsletters:2024-03

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
newsletters:2024-03 [2024/04/02 02:29] – [What we'll be up to in April] osnrnewsletters:2024-03 [2024/04/02 02:48] (current) – Add Forrest youtube links & embeds admin
Line 21: Line 21:
     * {{youtube>Z_bMrp_-G6I?}}     * {{youtube>Z_bMrp_-G6I?}}
  
-  * [[https://www.forresto.com|Forrest O.]] has been doing a lot of experiments with his hexagon tiles, making mini-games, rainbow outlining and animation, loop puzzles TODO+  * [[https://www.forresto.com|Forrest O.]] has been doing a lot of experiments with his [[https://www.youtube.com/watch?v=2mRqCtfaogY|hexagon tiles]], making [[https://www.youtube.com/watch?v=lHjmi4cxUC4|mini-games]][[https://www.youtube.com/watch?v=H3AHmIHRWPs|rainbow outlining]] and [[https://www.youtube.com/watch?v=ngB2AQdHdTM|animation]]and [[https://www.youtube.com/shorts/F4xEztsgJYQ|loop puzzles]] 
 +    * {{youtube>ngB2AQdHdTM?}} 
 +    * {{youtube>lHjmi4cxUC4?}}
  
   * [[https://cristobal.space|Cristóbal Sciutto]] mirrored his [[notes:tableshots|"Towards a folk computer"]] piece about tableshots [[https://cristobal.space/writing/folk-computer.html|up on his site]]   * [[https://cristobal.space|Cristóbal Sciutto]] mirrored his [[notes:tableshots|"Towards a folk computer"]] piece about tableshots [[https://cristobal.space/writing/folk-computer.html|up on his site]]
Line 49: Line 51:
 Nice side benefit of the new evaluator: it boots much faster, making it faster to iterate and test things, because it's only compiling virtual-program-level C code (Gpu, AprilTags); the kernel is statically compiled into a monolithic folk binary. (this feels like a reasonable tradeoff, since no one was messing with the kernel in practice anyway) Nice side benefit of the new evaluator: it boots much faster, making it faster to iterate and test things, because it's only compiling virtual-program-level C code (Gpu, AprilTags); the kernel is statically compiled into a monolithic folk binary. (this feels like a reasonable tradeoff, since no one was messing with the kernel in practice anyway)
  
 +Some remaining stuff to do:
 +  * Performance optimization so we can get it to beat old evaluator, which is the whole point
 +  * Implement Collect & text/labels (the major missing functionality in new evaluator)
 +  * Fix memory leaks (it might end up better than old evaluator here too, since that is leaky anyway)
 +  * Thread management so we can spin up new worker threads as needed to run Whens when current workers are asleep/blocked/unresponsive
 +
 +There are still some high-level challenges from parallelizing the workqueue, stuff that we 'got for free' from having a single thread and converging to a fixed point. like, what order do you do operations in, how do you avoid wasted work, what does 'order' mean if things can happen in parallel.. I think we can hack around a lot of this by messing with priorities and specifying manual 'wait a few milliseconds' type stuff for specific Whens, or maybe having some notion of local convergence or subconvergence.
  
 ==== Live USB & distribution ==== ==== Live USB & distribution ====
Line 56: Line 65:
 The main thing is making a live USB that just boots into Folk and walks through calibration & network setup and can install to disk. (the near-term application is to distribute a version of the CNC stuff as a demo that is immediately useful) The main thing is making a live USB that just boots into Folk and walks through calibration & network setup and can install to disk. (the near-term application is to distribute a version of the CNC stuff as a demo that is immediately useful)
  
-I've been using Debian live-build, which seems to be the de facto standard for making live USBs: documentation/resources are pretty good, you can preinstall any packages from Debian, etc. Good resources are https://terkeyberger.wordpress.com/2022/03/07/live-build-how-to-build-an-installable-debian-10-buster-live-cd/ and https://dquinton.github.io/debian-install/netinstall/live-build.html+I've been using Debian live-build, which seems to be the de facto standard for making live USBs: documentation/resources are pretty good, you can preinstall any packages from Debian, etc. Good resources are https://terkeyberger.wordpress.com/2022/03/07/live-build-how-to-build-an-installable-debian-10-buster-live-cd/ and https://dquinton.github.io/debian-install/netinstall/live-build.html (it's an interesting game to figure out the minimal set of Debian packages to preinstall so you get a 1. working Folk on boot and 2. working internet connection, and after that you don't need to rebuild until you publish, hopefully, since you can hot patch from online on boot)
  
 (I've been building the live .iso in an Intel Linux UTM/qemu VM on my Mac laptop, which is a little annoying. I think the live build process is already slow, it's not incremental at all, so it's installing all the stuff for this 1.4GB Debian setup from scratch on each build, and it's even slower because it's in emulation. I also burned some time trying to make the live USB itself work in a VM to test on my laptop -- the graphics doesn't work, since there's no Vulkan driver for the VM. could use SwiftShader or llvmpipe, but they don't have VK_KHR_display, so now you need a new codepath in Folk and maybe you need libdrm again to put your software-rendered buffer onto the VM's screen...) (I've been building the live .iso in an Intel Linux UTM/qemu VM on my Mac laptop, which is a little annoying. I think the live build process is already slow, it's not incremental at all, so it's installing all the stuff for this 1.4GB Debian setup from scratch on each build, and it's even slower because it's in emulation. I also burned some time trying to make the live USB itself work in a VM to test on my laptop -- the graphics doesn't work, since there's no Vulkan driver for the VM. could use SwiftShader or llvmpipe, but they don't have VK_KHR_display, so now you need a new codepath in Folk and maybe you need libdrm again to put your software-rendered buffer onto the VM's screen...)
newsletters/2024-03.1712024983.txt.gz · Last modified: 2024/04/02 02:29 by osnr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki