User Tools

Site Tools


newsletters:2024-01

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-01 [2024/02/01 21:09] – [Andrés] osnrnewsletters:2024-01 [2024/02/01 21:44] (current) – Add full names, links, and attribution in January friends paragraph admin
Line 16: Line 16:
       * {{newsletters:2592b89b-803d-429a-b5c6-0475e9e54682-1060-00009ee3c60a7a31.png?300}}       * {{newsletters:2592b89b-803d-429a-b5c6-0475e9e54682-1060-00009ee3c60a7a31.png?300}}
       * The web-keyboards.folk code doubles as an (ugly but functional) example of making a Web dashboard, using the WebSockets interface for live feedback from the running Folk system (streaming keypresses). Lots of ugly escaping and nested code to run in different contexts, but it does work, and we want to make it easier and do more things like it.       * The web-keyboards.folk code doubles as an (ugly but functional) example of making a Web dashboard, using the WebSockets interface for live feedback from the running Folk system (streaming keypresses). Lots of ugly escaping and nested code to run in different contexts, but it does work, and we want to make it easier and do more things like it.
 +
 +  * Some struggles to get Bluetooth keyboards working on folk-beads (the cart) -- [[https://answers.launchpad.net/ubuntu/+question/708543|hack to fix driver issue with Intel AX201 Bluetooth]] worked. Always surprising how often we run into bad Linux issues with Wi-Fi and Bluetooth, on what feels like very standard off-the-shelf PC hardware :-(
  
   * You'll want to [[guides:keyboard|get your USB or Bluetooth keyboard and set it up]] to get the editor to work (map your keyboard into /dev/input/by-path, then use the Keyboards page to print out a tag to attach to the keyboard, basically)   * You'll want to [[guides:keyboard|get your USB or Bluetooth keyboard and set it up]] to get the editor to work (map your keyboard into /dev/input/by-path, then use the Keyboards page to print out a tag to attach to the keyboard, basically)
Line 58: Line 60:
 There'll be NUM_CPUS-ish worker threads; each holds a lock while it's touching the database or priority queue; they're constantly pulling off next work item (Assert/Retract/Say/Unmatch) from the shared priority queue. (This is how the mainline evaluator works, except it's just one loop pulling off the priority queue.) There'll be NUM_CPUS-ish worker threads; each holds a lock while it's touching the database or priority queue; they're constantly pulling off next work item (Assert/Retract/Say/Unmatch) from the shared priority queue. (This is how the mainline evaluator works, except it's just one loop pulling off the priority queue.)
  
-(Doing this all in a parallel way kind of *requiresthe entire database, including statements and terms of statements, to be pure C data, since Tcl heap objects can't be shared across threads or processes)+(Doing this all in a parallel way kind of //requires// the entire database, including statements and terms of statements, to be pure C data, since Tcl heap objects can't be shared across threads or processes)
  
 (It'll be fun to get to the point of thinking about scheduling policy -- detecting When blocks that are taking a really long time, maybe setting up additional worker threads as some get blocked, and so on. We don't have any way to entertain concepts like that in mainline Folk right now. It'll also be fun to really push the purity of Folk code, where global state will all literally have to run through statements.) (It'll be fun to get to the point of thinking about scheduling policy -- detecting When blocks that are taking a really long time, maybe setting up additional worker threads as some get blocked, and so on. We don't have any way to entertain concepts like that in mainline Folk right now. It'll also be fun to really push the purity of Folk code, where global state will all literally have to run through statements.)
  
 +To give motivation for all this, I'll quote myself from the November 2023 newsletter:
  
 +> The main motivation is actually sort of a user interface motivation: I want people to feel comfortable writing programs that hang or segfault, and I want people to feel comfortable putting 30 different programs on the table, without being scared that they'll crash the whole Folk system or break their (in-system) editor. That requires Unix process isolation, I think, and it requires preemptive multitasking.
 +
 +I was showing people Metrics at the open house recently -- I would flip stuff over and show how much performance improved the more stuff I flipped over, until there was like 1 program out and it would fly (100fps+), and the smoothness was noticeable and impressive. And it made the system much more fun to play with. I want the system to feel like that all the time!
 +
 +(in other words, why should adding a new program slow down all your other programs? it doesn't on a normal OS, up to the actual limit of your hardware)
 ==== RFID ==== ==== RFID ====
  
Line 82: Line 90:
 ==== Friends and events ==== ==== Friends and events ====
  
-  * January had a bunch of friends (Daniel, Geoffrey, Steve, Charles) come by to see the current state of Folk, try their hand printing out programs and messing around with new program form factors. One of these new ideas was using a jar as a dial, pictured below — Andrés particularly loves how the code is wrapped around the jar as if it's a label.+  * January had a bunch of friends ([[https://danielpipk.in/|Daniel Pipkin]][[https://www.geoffreylitt.com/|Geoffrey Litt]][[https://stevekrouse.com/|Steve Krouse]][[https://inclouds.space/|Charles Chamberlain]]) come by to see the current state of Folk, try printing programsand messing around with new program shapes. One new idea Geoffrey came up with was using a jar as a dial — Andrés loves how the code is wrapped around the jar as if it's a label:
     * {{newsletters:img_4121-medium.jpeg?250px}}     * {{newsletters:img_4121-medium.jpeg?250px}}
-  * [[https://jedahan.com|Jonathan Dahan]] has gotten good performance from Folk running on a Pi 5 + 
-  * Govind's home Folk setup has made good progress +  * [[https://jedahan.com|Jonathan Dahan]] has gotten good performance from Folk running on a Pi 5
-  * [[http://enjalot.github.io|Ian Johnson]] has been using Folk with the camera resolution set to 4Kthis is good enough to have printed programs that are the size of playing cards:+    * {{newsletters:img_0974.mp4?200}} 
 +    * Omar: I was surprised at how much better it works than the Pi 4. PCs are faster and a better deal, but Pis are nice because hardware support is good / it's standard hardware, they're small, they have GPIO pins... maybe we'll go back to recommending them at some point. 
 + 
 +  * Govind Manian's home Folk setup is making progress 
 + 
 +  * [[http://enjalot.github.io|Ian Johnson]] has been using Folk with the camera resolution set to 4K -- this is good enough to have printed programs that are the size of playing cards:
     * {{newsletters:playing-card-ian-johnson.jpg?350px}}     * {{newsletters:playing-card-ian-johnson.jpg?350px}}
 +
   * We had our monthly open house just now, on January 31 -- it was nice to roll out the downstairs cart system and to show off the new editor:   * We had our monthly open house just now, on January 31 -- it was nice to roll out the downstairs cart system and to show off the new editor:
     * {{newsletters:d8fff53b-09c5-4b91-bbfe-1d03ec1f53f3_1_105_c.jpeg?300}} {{newsletters:7d065ac0-bfb6-41d7-91cb-95f557302693_1_105_c.jpeg?300}} {{newsletters:image0.jpg?300}} {{newsletters:image1.jpg?300}}      * {{newsletters:d8fff53b-09c5-4b91-bbfe-1d03ec1f53f3_1_105_c.jpeg?300}} {{newsletters:7d065ac0-bfb6-41d7-91cb-95f557302693_1_105_c.jpeg?300}} {{newsletters:image0.jpg?300}} {{newsletters:image1.jpg?300}} 
Line 95: Line 109:
 ===== What we'll be up to in February ===== ===== What we'll be up to in February =====
  
-  * [[https://partiful.com/e/nLXL1DPPM80fwkFxLn4v|Our next Folk open house]] will be on the evening of Thursday, February 22, at our studio in East Williamsburg, Brooklyn.+  * **[[https://partiful.com/e/nLXL1DPPM80fwkFxLn4v|Our next Folk open house will be on the evening of Thursday, February 22]], at our studio in East Williamsburg, Brooklyn.**
  
-  * New collaboration (TBA) on deeper phone/laptop integration and knowledge management+  * New collaboration (to be announced) on deeper phone/laptop integration and knowledge management
  
   * [[https://ijc8.me|Ian Clester]], who we worked with on RFID and who built the [[https://www.youtube.com/watch?v=9Jik_CfcaGA|music demo]] last year, is in town to do a workshop with [[https://livecode.nyc|Livecode.NYC]], so we want to brainstorm a little bit about future audio   * [[https://ijc8.me|Ian Clester]], who we worked with on RFID and who built the [[https://www.youtube.com/watch?v=9Jik_CfcaGA|music demo]] last year, is in town to do a workshop with [[https://livecode.nyc|Livecode.NYC]], so we want to brainstorm a little bit about future audio
  
   * Polishing Folk/CNC interface for use by other people at Hex House and in general   * Polishing Folk/CNC interface for use by other people at Hex House and in general
-    * USB stick +    * USB stick install / Linux distro (can we make it a turnkey install if you have a CNC machine and want a Folk UI for it?) 
-    * Reliability +    * System reliability (can we feel sure that people can walk up to it and use it?) 
-    * Umbrella for finishing up the calibration work from December as well+    * Finishing up the 3D/high-accuracy calibration work from late last year to actually do the machine preview in Folk
  
   * Refining the editor & follow-up work on the Folk system: jitter reduction, handling event bugs   * Refining the editor & follow-up work on the Folk system: jitter reduction, handling event bugs
newsletters/2024-01.1706821757.txt.gz · Last modified: 2024/02/01 21:09 by osnr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki