User Tools

Site Tools


newsletters:2024-09

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-09 [2024/10/01 03:22] – [Other system improvements] osnrnewsletters:2024-09 [2024/10/01 03:47] (current) – [New parallel evaluator] osnr
Line 1: Line 1:
-====== September 2024 newsletter (WIP) ======+====== September 2024 newsletter ======
  
 ===== What we've been up to ===== ===== What we've been up to =====
Line 5: Line 5:
   * Andrés will be giving the opening keynote at [[https://berlin.causalislands.com/#program|Causal Islands Berlin]] on this Friday, October 4.   * Andrés will be giving the opening keynote at [[https://berlin.causalislands.com/#program|Causal Islands Berlin]] on this Friday, October 4.
     * The talk will use a Folk gadget to control slides, demonstrate Folk, and explain the technology and vision behind Folk. We'll link the recording of the talk in the newsletter next month.     * The talk will use a Folk gadget to control slides, demonstrate Folk, and explain the technology and vision behind Folk. We'll link the recording of the talk in the newsletter next month.
-    * It looks like [[https://ti.to/causal-islands/berlin-2024|livestream tickets are also available]] if you're interested+    * It looks like [[https://ti.to/causal-islands/berlin-2024|livestream tickets are also available]] for anyone interested 
 +  * Our next [[https://partiful.com/e/62C2MjzYBVIpLP7qG330|Folk open house is on the night of Monday, October 21]], at our studio in East Williamsburg, Brooklyn.
  
 ==== Applications and demos ==== ==== Applications and demos ====
Line 59: Line 60:
     * + tell libcamera to configure (reduce) camera exposure time so that projected tags for calibration don't get washed out     * + tell libcamera to configure (reduce) camera exposure time so that projected tags for calibration don't get washed out
  
-These fixed the worst issues -- it now actually calibrates! We can project onto programs! +These fixed the worst issues -- it now actually calibrates! We can project onto programs! (it's still fairly annoying to calibrate, takes 20-30 minutes, but it's doable, and you ideally only have to do it once. I feel like we should ultimately be able to calibrate it really well because the projector is a laser scanning projector and has no lens distortion, also.)
  
 First calibrated use of Omar's gadget (gadget-blue) and of Andrés's gadget (gadget-red), respectively: First calibrated use of Omar's gadget (gadget-blue) and of Andrés's gadget (gadget-red), respectively:
Line 90: Line 91:
 ==== New parallel evaluator ==== ==== New parallel evaluator ====
  
-Omar has been continuing to work on the new evaluator -- it really does feel like the biggest remaining issues in Folk are performance issues, so a lot is riding on thisThere's a mix of little reliability/safety issues and big semantic issues with the evaluator (how do we schedule stuff onto threads? how do we make sure things don't blink out or, conversely, transiently get multiple states at once? when/how do we abort invalidated work items?)+Omar has been continuing to work on the new evaluator -- it really does feel like the biggest remaining issues in Folk are performance & reliability issues, so this is important.
  
-=== Sysmon work ===+There's a mix of little reliability/safety issues and big semantic issues with the evaluator (how do we schedule stuff onto threads? how do we make sure things don't blink out or, conversely, transiently get multiple states at once? when/how do we abort invalidated work items?)
  
-workqueue display on threads page+=== Sysmon and thread pool === 
 + 
 +Started working on sysmon thread which wakes up every few milliseconds and manages the size of the thread pool (too many threads looking for work? kill some; too few threads compared to number of CPUs? spawn some).  
 + 
 +There are subtleties here where you want to avoid churning the thread pool and constantly killing and re-spawning stuff. Haven't figured out yet. It needs heuristics about what threads are occupied and how long they'll be occupied (microseconds? milliseconds? seconds?) to determine this. 
  
 === Sustain / time-to-live field on statements or Holds === === Sustain / time-to-live field on statements or Holds ===
  
-Idea: sustain/TTL.+Idea: sustain/TTL field where statements can get held for some number of milliseconds after their parent is retracted.
  
-sysmon is extended (maybe will rename to custodian) to also handle reaping sustained statements when they hit their deadline+sysmon (which previously was just managing the size of the thread pool) is extended (maybe will rename to custodian) to also handle reaping sustained statements when they hit their deadline. it feels nice to do it here rather than complicating the priority queue further, since sysmon is already waking up every couple milliseconds anyway (and it doesn't need to run any more than that, fixed ticks are fine).
  
-We had a discussion about it in Discord:+We had a good discussion about this proposal in Discord:
  
 +{{:newsletters:pasted:20241001-034059.png?550px}}
  
 +<details>
 +<summary>More discussion of sustain/TTL</summary>
 +
 +{{:newsletters:pasted:20241001-034119.png?550px}}
 +
 +{{:newsletters:pasted:20241001-034138.png?550px}}
 +</details>
  
 === Other new evaluator stuff === === Other new evaluator stuff ===
  
-fixed some keyboard issues+Added workqueue display on /threads Web page, which made it clear that many of the random issues with folk2 are just that work-stealing was breaking down and work items would get permanently stuck on some thread that was stuck running a permanent task (instead of the work getting stolen and executed elsewhere).  
 + 
 +Fixed some keyboard issues where the keyboard process was erroring or exec-ing stuff all the time (because of lack of persistence / because of blinking), and where the grabber was broken because it wasn't inter-thread-safe. 
 + 
 +Scheming about this memory management idea again, since it could simplify a lot of the implementation: 
 + 
 +{{:newsletters:pasted:20241001-033956.png?550px}} 
 + 
 + 
 +<details> 
 +<summary>More discussion of memory management</summary>
  
 +{{:newsletters:pasted:20241001-034016.png?550px}}
 +</details>
  
 ==== Friends and outreach ==== ==== Friends and outreach ====
Line 121: Line 146:
  
   * **Our next [[https://partiful.com/e/62C2MjzYBVIpLP7qG330|Folk open house is on the night of Monday, October 21]], at our studio in East Williamsburg, Brooklyn.**   * **Our next [[https://partiful.com/e/62C2MjzYBVIpLP7qG330|Folk open house is on the night of Monday, October 21]], at our studio in East Williamsburg, Brooklyn.**
-  * Andrés will give the talk at Causal Islands Berlin+  * Andrés will give their talk about Folk at Causal Islands Berlin
     * Maybe some tasks afterward around merging the slides system they built and following up with people     * Maybe some tasks afterward around merging the slides system they built and following up with people
   * Andrés continuing docs and desksaver projects   * Andrés continuing docs and desksaver projects
 +  * Andrés and Omar will work with our new partner [[https://www.kosmik.app|Kosmik]] on knowledge management and phone/laptop integrations and demos with Folk
   * Daniel continuing to work on hand tracking now that the Kinect data is in Folk   * Daniel continuing to work on hand tracking now that the Kinect data is in Folk
   * Omar wants to respin the gadget to make the front panel more solid, maybe add a second camera, & is meeting with Ultimems (the mini projector supplier)   * Omar wants to respin the gadget to make the front panel more solid, maybe add a second camera, & is meeting with Ultimems (the mini projector supplier)
newsletters/2024-09.1727752938.txt.gz · Last modified: 2024/10/01 03:22 by osnr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki