newsletters:2024-11
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| newsletters:2024-11 [2024/12/01 01:47] – osnr | newsletters:2024-11 [2024/12/01 04:09] (current) – osnr | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== November 2024 newsletter | + | ====== November 2024 newsletter ====== |
| + | |||
| + | (Our next Folk open house is [[https:// | ||
| - | (Our next Folk open house is at noon on Sunday, December 15, at our studio in East Williamsburg, | ||
| ===== What we've been up to ===== | ===== What we've been up to ===== | ||
| ==== Small system improvements ==== | ==== Small system improvements ==== | ||
| - | * TODO: Print notice when you hit Print, both on web and tabletop editor | + | * Andrés added: |
| - | * TODO: New /programs design with categories; much easier to read | + | * Print notice when you hit Print, both on web and tabletop editor |
| + | * {{newsletters:img_8911-medium.jpeg? | ||
| + | * New '' | ||
| + | * {{: | ||
| ==== New Folk evaluator ==== | ==== New Folk evaluator ==== | ||
| Line 18: | Line 22: | ||
| There' | There' | ||
| + | |||
| + | Notice how the camera hits 60fps but the full-frame detection is only 20-30fps (this is using a 1080p image): | ||
| + | |||
| + | {{: | ||
| === The bugfixes and improvements === | === The bugfixes and improvements === | ||
| - | * '' | + | * '' |
| - | * tail trace | + | * Tail trace so you can trace latest stuff going on |
| - | * atomic | + | * Replaced the broken refcount scheme with gen+rc+alive |
| - | * timestamp | + | * Now timestamping |
| - | * fully separate | + | * Fully separated |
| - | * fix locking of destructor list | + | * Fixed locking of destructor list |
| * {{: | * {{: | ||
| - | * fix locking of child match/ | + | * Fixed locking of child match/ |
| - | * steal-half | + | * Steal-half now actually works (fixed overflow, fixed stealing 100% instead of half) |
| - | * fix lsorts in infinite loops (not using now that we have serial When though) | + | * Fixed lsorts in infinite loops (not using now that we have serial When though) |
| - | * show each statement' | + | * Now showing |
| * {{newsletters: | * {{newsletters: | ||
| - | * ports from folk1: | + | * Ports from folk1: |
| * dashed-line (want it for gadget marching ants) | * dashed-line (want it for gadget marching ants) | ||
| * camera-rpi throughput improvement using YUV420 format | * camera-rpi throughput improvement using YUV420 format | ||
| Line 39: | Line 47: | ||
| * now runs on an independent clock from the frames! every 2ms | * now runs on an independent clock from the frames! every 2ms | ||
| * hack for ' | * hack for ' | ||
| + | * incremental tag detection to be able to hit 60fps | ||
| Line 45: | Line 54: | ||
| == Performance profiling == | == Performance profiling == | ||
| - | TODO: Performance profiling | + | Performance |
| - | I'm surprised at how much of the flamegraphs are just threading stuff, not CPU. Maybe I'm misreading | + | I've already fixed a lot of weird issues using flamegraph profiling |
| - | == Heap profiling == | + | {{: |
| - | There are still persistent | + | I'm surprised at how much of the flamegraphs |
| - | TODO: Memory | + | {{:newsletters: |
| + | |||
| + | Now working on actually using [[https:// | ||
| + | |||
| + | == Heap profiling | ||
| + | |||
| + | There are still persistent and pretty bad memory leaks on folk2, from 10MB to 200MB per second depending on how much stuff is out. I want to get to these soon after I fix the performance stuff. | ||
| === Various unsuccessful quests === | === Various unsuccessful quests === | ||
| * Heap profiling with gperftools | * Heap profiling with gperftools | ||
| + | * Too slow, doesn' | ||
| * mimalloc arenas | * mimalloc arenas | ||
| + | * Might still be useful for images and stuff, but we'd need to migrate the arena between matches and statements as statements get reused, it's more complicated than expected | ||
| * Sealed Tcl objects | * Sealed Tcl objects | ||
| + | * I had been hoping to do this forever -- it seems elegant and cool and efficient -- but it turned out to be much harder than expected when I looked at it -- would need to change a lot of callsites in Jim Tcl (anywhere it shimmers an object) to make it work, or do horrible hacks with COW pages. | ||
| + | * {{: | ||
| * CPU-oriented scheduling | * CPU-oriented scheduling | ||
| * Spinlocks | * Spinlocks | ||
| + | * [[https:// | ||
| + | * I got too excited since we have fairly tight locking discipline in folk2 | ||
| + | * Look at all this spinning; it's not an improvement over mutexes: | ||
| + | * {{: | ||
| ==== RFID localization ==== | ==== RFID localization ==== | ||
| Omar: Didn't have time to do much this month, but I did figure out how to make the IB program not crash in its new connection-dependent style. We now just drop samples from the radio until a PC connects and we set up a FIFO and RFID protocol parser then. (The current goal is to get IB and OOB both running and synced up to a reset signal over TCP from a PC, then stream info from IB and OOB to the PC.) | Omar: Didn't have time to do much this month, but I did figure out how to make the IB program not crash in its new connection-dependent style. We now just drop samples from the radio until a PC connects and we set up a FIFO and RFID protocol parser then. (The current goal is to get IB and OOB both running and synced up to a reset signal over TCP from a PC, then stream info from IB and OOB to the PC.) | ||
| + | |||
| + | This project isn't particularly blocked on anything, thankfully -- just needs more time to put IB and OOB together and implement localization and then release it. | ||
| ==== Portable gadget ==== | ==== Portable gadget ==== | ||
| Line 91: | Line 116: | ||
| These are all ' | These are all ' | ||
| - | I've been talking about a trigger button for a while. Realized that some commercially available camera grips just use an audio jack. This seems good. Threw it into part orders and will probably throw it into next design rev. | + | I've been talking about a trigger button for a while, but been blocked by figuring out what connectors/ |
| + | |||
| + | as for what to do with the trigger button, I'm thinking about the Super Mario Galaxy Wii remote interactions and sounds... | ||
| (I also threw a speaker into part orders.) | (I also threw a speaker into part orders.) | ||
| - | I' | + | (And the battery system -- there are a bunch of Waveshare products that can supply the needed 5V5A to power everything -- I' |
| === New off-the-shelf revision === | === New off-the-shelf revision === | ||
| Line 109: | Line 137: | ||
| So I spent a while looking at Pi alternatives. | So I spent a while looking at Pi alternatives. | ||
| - | * The [[http:// | + | * The [[http:// |
| * It does work (but, again, the lack of a decent camera solution is a dealbreaker): | * It does work (but, again, the lack of a decent camera solution is a dealbreaker): | ||
| * {{newsletters: | * {{newsletters: | ||
| Line 121: | Line 149: | ||
| * Had our monthly open house: | * Had our monthly open house: | ||
| - | * {{: | + | * {{: |
| * Nice to see people playing around with the cube, the portable gadget (now that we have two, we can have one arm-mounted and one handheld), and editing programs on the table | * Nice to see people playing around with the cube, the portable gadget (now that we have two, we can have one arm-mounted and one handheld), and editing programs on the table | ||
| * Special guests: Paul from Greenville, SC where they' | * Special guests: Paul from Greenville, SC where they' | ||
| Line 127: | Line 155: | ||
| ===== What we'll be up to in December ===== | ===== What we'll be up to in December ===== | ||
| - | * **Our next Folk open house is at noon on Sunday, December 15, at our studio in East Williamsburg, | + | * **Our next Folk open house is [[https:// |
| * Fix blinking in new evaluator (that is, performance optimization so the programs resolve under 16ms) | * Fix blinking in new evaluator (that is, performance optimization so the programs resolve under 16ms) | ||
| * Create a pull request for the new evaluator | * Create a pull request for the new evaluator | ||
| Line 136: | Line 164: | ||
| * Gadget autoadjust exposure maybe? | * Gadget autoadjust exposure maybe? | ||
| * RFID | * RFID | ||
| + | * Actually revisit video support | ||
| + | * More convenient shader language | ||
| + | * Experiment with more tangible papercraft interface elements for Folk programs (using cardboard, rubberbands, | ||
| + | * Revisit a bunch of smaller system improvements that we've had in the backlog for a while | ||
| ===== Links we've enjoyed ===== | ===== Links we've enjoyed ===== | ||
| Line 150: | Line 182: | ||
| ==== Andrés ==== | ==== Andrés ==== | ||
| - | + | * [[https:// | |
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * Leaflet is hosting an online [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
newsletters/2024-11.1733017636.txt.gz · Last modified: by osnr
