User Tools

Site Tools


newsletters:2026-05

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:2026-05 [2026/06/03 21:48] – [General system improvements] osnrnewsletters:2026-05 [2026/06/05 17:08] (current) osnr
Line 2: Line 2:
  
 {{htmlmetatags>metatag-og:title=(Folk Computer May 2026 newsletter) {{htmlmetatags>metatag-og:title=(Folk Computer May 2026 newsletter)
-metatag-media-og:image=(newsletters:img_3690.jpeg) +metatag-media-og:image=(newsletters:img_5266.jpeg) 
-metatag-og:description=(More new studio setup (new 4K projector, new L area); multi-display and multi-cameracalibration improvements) +metatag-og:description=(To-scale tabletop editor and printingExpect!; new drawing primitives; big open house; SVA talk)}}
-}}+
  
 //Our next Folk open house will be on [[https://luma.com/niypr5av|Tuesday, June 30th, 2026]].// //Our next Folk open house will be on [[https://luma.com/niypr5av|Tuesday, June 30th, 2026]].//
Line 19: Line 18:
   * Added [[https://github.com/FolkComputer/folk/pull/259/changes/0931c0b4e949d7fb0f254ce0ebc5629a8d08c916|support for array length as a virtual parameter in C calls]], which lets us get rid of a lot of extra parameters/cruft at the caller where we were passing pointer + array length separately   * Added [[https://github.com/FolkComputer/folk/pull/259/changes/0931c0b4e949d7fb0f254ce0ebc5629a8d08c916|support for array length as a virtual parameter in C calls]], which lets us get rid of a lot of extra parameters/cruft at the caller where we were passing pointer + array length separately
     * {{.:pasted:20260601-174159.png?500px}}     * {{.:pasted:20260601-174159.png?500px}}
-  * Fixed a big memory leak where every block execution was allocating new Jim channels for the stdout/stderr files+  * [[https://github.com/FolkComputer/folk/commit/8296b08f17fd83b56faabf605f517df2dfef5d18|Fixed a big memory leak]] where every block execution was allocating new Jim channels for the stdout/stderr files
     * Helpful: this RAM checker program:     * Helpful: this RAM checker program:
       * {{newsletters:img_4796.jpeg?500px}}       * {{newsletters:img_4796.jpeg?500px}}
 +  * [[https://github.com/FolkComputer/folk/commit/66d771a4557a8e3194908da36721512bdd0800d0|Fixed epoch thread slot cleanup]] so you can keep churning threads without running out of epoch slots in the epoch-based reclamation system
 +  * [[https://github.com/FolkComputer/folk/commit/8caf5ca89c9629931bd3480ba75a134cc393e972|Debounced/reduced canvas creation churn]] when the statement's parent goes away and comes back a lot
 +  * [[https://github.com/FolkComputer/folk/commit/dfbc6b0dce918d6ad99d277cd907a31622b710eb|Fixed RAM exhaustion check]] which had been broken by using meminfo file instead of API (this fix makes it harder to fully break systems such that you can't even ssh in)
 +  * [[https://github.com/FolkComputer/folk/commit/1c4fac2910827b28d578007c0d976842e152ac90|Fixed -atomically]] flag for When which wasn't actually getting the When pattern to distinguish between blocks on the same origin, so you'd get unnecessary blinking
 +    * Also now use atomicallyWithKey to control blinking on titles/footnotes/etc
 +    * Hoping now that we know how to work it, we can use -atomically more aggressively to stomp out blinking + start thinking about how to automatically introduce it so Folk code 'does the right thing' out of the box most of the time
  
 === Fix match destruction and insertion race/crash === === Fix match destruction and insertion race/crash ===
Line 33: Line 38:
 Omar: We were getting crashes when we tried to, say, display a really long string of text (or other complicated graphics). Omar: We were getting crashes when we tried to, say, display a really long string of text (or other complicated graphics).
  
-The problem was that we were actually //running out of texture slots//, which caused a panic.+The problem was that we were actually //running out of texture slots//, which caused a panic. And it's not because we were allocating any more textures than usual; it's because we weren't freeing the old ones in time anymore:
  
 Texture reclamation runs on the GPU thread alongside the parsing and rendering of all the glyph instance objects for that really long string of text. So if you're drawing something complicated such that the parse/render work takes too long (see the draw-lists-construction section here, which is 50-100+ ms), you stop freeing old texture slots before the next frame starts: Texture reclamation runs on the GPU thread alongside the parsing and rendering of all the glyph instance objects for that really long string of text. So if you're drawing something complicated such that the parse/render work takes too long (see the draw-lists-construction section here, which is 50-100+ ms), you stop freeing old texture slots before the next frame starts:
Line 106: Line 111:
 </details> </details>
  
-=== QueryOne! changes and new Expect! construct === 
- 
-Omar: [[https://github.com/FolkComputer/folk/pull/265|Added support for ''-default'' option and 'nameless return value binding' ''/./'' to ''QueryOne!''. Also added ''Expect!'' which directly makes bindings in the caller scope.]] 
- 
-As I've been working on calibration, editing, and printing, I've been using ''Query!'' and ''QueryOne!'' a lot to imperatively grab 'whatever the current state is' during a point action, in these very repetitive patterns: 
- 
-{{.:pasted:20260601-162359.png?300px}} 
- 
-{{.:pasted:20260601-162405.png?300px}} 
- 
-so I finally bit the bullet to clean all of these up and replace them with ''Expect!'' wherever I can: 
- 
-{{.:pasted:20260601-162826.png?700px}} 
- 
-I think it looks great -- much more readable and straightforward, harder to mess up as a user. 
- 
-Thanks to Mason Jones for design input on defaults and s-ol for suggesting the direct-binding ''Expect!'' syntax. 
  
 === Handle HTTPS proxies === === Handle HTTPS proxies ===
Line 153: Line 141:
  
  
 +
 +==== QueryOne! changes and new Expect! construct ====
 +
 +Omar: [[https://github.com/FolkComputer/folk/pull/265|Added support for ''-default'' option and 'nameless return value binding' ''/./'' to ''QueryOne!''. Also added ''Expect!'' which directly makes bindings in the caller scope.]]
 +
 +As I've been working on calibration, editing, and printing, I've been using ''Query!'' and ''QueryOne!'' a lot to imperatively grab 'whatever the current state is' during a point action, in these very repetitive patterns:
 +
 +{{.:pasted:20260601-162359.png?300px}}
 +
 +{{.:pasted:20260601-162405.png?300px}}
 +
 +so I finally bit the bullet to clean all of these up and replace them with ''Expect!'' wherever I can:
 +
 +{{.:pasted:20260601-162826.png?700px}}
 +
 +I think it looks great -- much more readable and straightforward, harder to mess up as a user.
 +
 +Thanks to Mason Jones for design input on defaults and s-ol for suggesting the direct-binding ''Expect!'' syntax.
 ==== Shapes, new and improved ==== ==== Shapes, new and improved ====
   * Andrés: Now that the semester is over and I'm done teaching at Parsons and SVA part time I've been able to go to the studio nearly every day. Most days in May I was working on [[https://github.com/FolkComputer/folk/pull/261|Revive drawing capabilities (new and improved!) (PR #261)|]], which has resulted in enabling a much more consistent and capable set of shape drawing wishes, e.g.:   * Andrés: Now that the semester is over and I'm done teaching at Parsons and SVA part time I've been able to go to the studio nearly every day. Most days in May I was working on [[https://github.com/FolkComputer/folk/pull/261|Revive drawing capabilities (new and improved!) (PR #261)|]], which has resulted in enabling a much more consistent and capable set of shape drawing wishes, e.g.:
Line 305: Line 311:
 Omar, Andrés, and Brian worked on installing a Folk system permanently in a small cubby/study area at School of Visual Arts in Manhattan. It might be our cleanest setup yet -- we like this method of hanging from a dowel and drilled into the ceiling -- it is easily able to support the weight, and it's adjustable. Omar, Andrés, and Brian worked on installing a Folk system permanently in a small cubby/study area at School of Visual Arts in Manhattan. It might be our cleanest setup yet -- we like this method of hanging from a dowel and drilled into the ceiling -- it is easily able to support the weight, and it's adjustable.
  
-{{newsletters:img_4477.jpeg?200px}} {{newsletters:img_4485.jpeg?200px}} {{newsletters:img_4486.jpeg?200px}} {{newsletters:img_4493.jpeg?200px}}+{{newsletters:img_4477.jpeg?200px}} {{newsletters:img_4485.jpeg?200px}} {{newsletters:img_4486.jpeg?200px}} 
  
-{{newsletters:img_4495.jpeg?200px}} {{newsletters:img_4499.jpeg?200px}}+{{newsletters:img_4493.jpeg?200px}} {{newsletters:img_4495.jpeg?200px}} {{newsletters:img_4499.jpeg?200px}}
  
 Andrés working on the final setup of the table: Andrés working on the final setup of the table:
    
-{{newsletters:img_4617_no_hdr.mp4?400px}}+{{newsletters:img_4617_no_hdr.mp4?200px}} {{newsletters:img_4599.jpeg?200px}}
  
 == The talk == == The talk ==
  
-{{newsletters:img_4599.jpeg?220px}}+Andrés: Omar and I gave a talk at the [[https://sva.edu/events/now-what-mfa-interaction-design-class-of-2026-thesis-exhibition|SVA IxD thesis show]] on May 8th. We covered: 
 +  * A brief introduction to Folk programs (''When'', ''Wish'', ''Claim''
 +  * Talked about inspiration for the Interaction Design History class Andrés taught at SVA IxD this Spring semester, including: 
 +    * [[https://www.lri.fr/~mbl/Stanford/CS477/papers/Weiser-SciAm.pdf|The Computer for the 21st Century (Mark Weiser, 1991)]] 
 +    * [[https://en.wikipedia.org/wiki/Trojan_Room_coffee_pot#|The Trojean Coffee Pot (1991)]] 
 +    * [[https://www.youtube.com/watch?v=Inxp6LY1y_4|Attention Receipts: Utilizing Materiality of Receipts to Improve Screen-time Reflection [CHI2024]]] 
 +    * [[https://clementzheng.info/Printed-Paper-Markers|Printed Paper Markers (Clement Zhang, 2020)]] 
 +  * We ended with a live demo of the system and a Q&A. It was a great time and people asked really insightful questions! 
 +{{newsletters:img_3989.jpeg?200px}} {{newsletters:img_3985.jpeg?200px}}{{newsletters:img_3984.jpeg?200px}} {{newsletters:img_3990.jpeg?200px}} {{newsletters:img_3977.mp4?200px}}
  
 === folk-recurse === === folk-recurse ===
Line 343: Line 357:
 {{newsletters:img_5388.jpeg?300px}} {{newsletters:img_5387_no_hdr.mp4?300px}} {{newsletters:img_5388.jpeg?300px}} {{newsletters:img_5387_no_hdr.mp4?300px}}
  
 +=== Eliana visit ===
 +
 +  * Andrés: [[https://elianagelman.com/|Eliana Gelman]] visited on May 25th, she tried out the new editor experience and we worked on some shape demos together:
 +    * {{newsletters:img_6398.jpeg?200px}} {{newsletters:img_6395.jpeg?200px}}
  
 ===== What we'll be up to in June ===== ===== What we'll be up to in June =====
Line 352: Line 370:
   * Omar: go back to working on SAM2 demos and object tracking   * Omar: go back to working on SAM2 demos and object tracking
   * Omar: work with Karl on DrawTalking demo   * Omar: work with Karl on DrawTalking demo
-  * Omar: continue working on new editor (needs better user experience, calibration accuracyfields interactions+  * Omar: continue working on new editor (needs better user experience, calibration accuracy) + fields interactions (hand-writing, drawing, getting those as objects in Folk)
   * Help tune up the Recurse Center Folk system   * Help tune up the Recurse Center Folk system
  
Line 359: Line 377:
 ==== Andrés ==== ==== Andrés ====
   * [[https://www.instagram.com/reels/DXWqD1oigMV/|A pen and paper game, kind of like a 2-player minesweeper? Very interesting to see people developing new games like this!]]   * [[https://www.instagram.com/reels/DXWqD1oigMV/|A pen and paper game, kind of like a 2-player minesweeper? Very interesting to see people developing new games like this!]]
-  * [[https://www.instagram.com/reels/DY65ZWZJIvN/|A scissor hinge, make totally out of (heavy weight) paper!!+  * [[https://www.instagram.com/reels/DY65ZWZJIvN/|A scissor hinge, make totally out of (heavy weight) paper!!]]
   * [[https://mitchellh.com/writing/my-ai-adoption-journey?utm_source=vicki&utm_medium=email&utm_campaign=we-should-be-more-tired-than-the-model#user-content-fnref-1|My AI Adoption Journey]] (Mitchell Hashimoto) — the only one of these sorts of posts I've actually found reasonable   * [[https://mitchellh.com/writing/my-ai-adoption-journey?utm_source=vicki&utm_medium=email&utm_campaign=we-should-be-more-tired-than-the-model#user-content-fnref-1|My AI Adoption Journey]] (Mitchell Hashimoto) — the only one of these sorts of posts I've actually found reasonable
   * [[https://sre.google/resources/practices-and-processes/no-heroes/|Why Heroism Is Bad And What We Can Do To Stop It]] (Alexander Malmberg) — an oldie (2015 ... which was 11 years ago) but a goodie, from Google, on changing team dynamics to avoid depending on "heros" (who often burn out)   * [[https://sre.google/resources/practices-and-processes/no-heroes/|Why Heroism Is Bad And What We Can Do To Stop It]] (Alexander Malmberg) — an oldie (2015 ... which was 11 years ago) but a goodie, from Google, on changing team dynamics to avoid depending on "heros" (who often burn out)
   * [[https://www.surfabeam.com/?utm_source=ig&utm_medium=social&utm_content=link_in_bio|Sufabeam]] — weird but interesting little app that let's you do planar projection mapping pretty easily   * [[https://www.surfabeam.com/?utm_source=ig&utm_medium=social&utm_content=link_in_bio|Sufabeam]] — weird but interesting little app that let's you do planar projection mapping pretty easily
   * [[https://www.youtube.com/watch?v=zokKqP0plrM|IBM CONFIDENTIAL: SYSTEM/360 FILE ORGANIZATION]] — This is a video on the filesystem of IBM's System/360; intended for salesmen, it's interesting to appreciate how much this has and hasn't become irrelevant to modern computing.   * [[https://www.youtube.com/watch?v=zokKqP0plrM|IBM CONFIDENTIAL: SYSTEM/360 FILE ORGANIZATION]] — This is a video on the filesystem of IBM's System/360; intended for salesmen, it's interesting to appreciate how much this has and hasn't become irrelevant to modern computing.
-  * [[https://x.com/picardie_aurora/status/1547967294533316614|"someone said they were a ‘cloud architect’, for a moment i imagined the most incredible job in the world before i realized they mean like software"]+  * [[https://x.com/picardie_aurora/status/1547967294533316614|"someone said they were a ‘cloud architect’, for a moment i imagined the most incredible job in the world before i realized they mean like software"]]
   * [[https://lifelatelymag.framer.website/|A website that takes your camera roll and turns it into a magazine to send to your friends]] - maybe this specific service isn't so great, I haven't tried it myself, but the rise of services like this (see also: [[https://www.getprinternet.com/|Printernet]], a monthly internet reading list, printed and mailed to your house!) is very Folk-Computer-y (folky?)   * [[https://lifelatelymag.framer.website/|A website that takes your camera roll and turns it into a magazine to send to your friends]] - maybe this specific service isn't so great, I haven't tried it myself, but the rise of services like this (see also: [[https://www.getprinternet.com/|Printernet]], a monthly internet reading list, printed and mailed to your house!) is very Folk-Computer-y (folky?)
   * https://omnifixo.com/en-us   * https://omnifixo.com/en-us
   * [[https://www.instagram.com/reels/DYk00XXpjXG/|QR codes as scrapbooking]]   * [[https://www.instagram.com/reels/DYk00XXpjXG/|QR codes as scrapbooking]]
   * I keep thinking about the E.A.T. exhibition opening, "Some More Beginnings: Experiments in Art and Technology" which was hosted at the Brooklyn Museum, New York in 1968. [[https://rosettaapp.getty.edu/delivery/DeliveryManagerServlet?dps_pid=IE1715894|The online archvie of photos is fascinating]], here's a small selection:   * I keep thinking about the E.A.T. exhibition opening, "Some More Beginnings: Experiments in Art and Technology" which was hosted at the Brooklyn Museum, New York in 1968. [[https://rosettaapp.getty.edu/delivery/DeliveryManagerServlet?dps_pid=IE1715894|The online archvie of photos is fascinating]], here's a small selection:
-    * {{newsletters:gri_2014_r_20_e0606_13948_r.jpg?300px}} {{newsletters:gri_2014_r_20_e0606_13949_r.jpg?300px}} {{newsletters:gri_2014_r_20_e0606_13951_r.jpg?300px}} {{newsletters:gri_2014_r_20_e0606_13954_r.jpg?300px}} {{newsletters:gri_2014_r_20_e0606_13946_r.jpg?300px}} {{newsletters:gri_2014_r_20_e0606_13943_r.jpg?300px}} +    * {{newsletters:gri_2014_r_20_e0606_13948_r.jpg?150px}} {{newsletters:gri_2014_r_20_e0606_13949_r.jpg?150px}} {{newsletters:gri_2014_r_20_e0606_13951_r.jpg?150px}} {{newsletters:gri_2014_r_20_e0606_13954_r.jpg?150px}} {{newsletters:gri_2014_r_20_e0606_13946_r.jpg?150px}} {{newsletters:gri_2014_r_20_e0606_13943_r.jpg?150px}} 
  
 ==== Omar ==== ==== Omar ====
newsletters/2026-05.1780523305.txt.gz · Last modified: by osnr

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki