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 02:04] – 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 [[https:// | ||
Line 7: | Line 7: | ||
==== 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 19: | 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 40: | 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 46: | Line 54: | ||
== Performance profiling == | == Performance profiling == | ||
- | TODO: Performance profiling | + | Performance |
- | I'm surprised at how much of the flamegraphs are just threading stuff, not Tcl-bound. Maybe I'm misreading | + | I've already fixed a lot of weird issues using flamegraph profiling |
- | == 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 fixing the performance stuff. | + | I'm surprised at how much of the flamegraphs are just threading |
+ | |||
+ | {{: | ||
+ | |||
+ | Now working on actually using [[https:// | ||
+ | |||
+ | == Heap profiling == | ||
- | TODO: Memory profiling remaining. | + | 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 92: | 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/ |
- | I'm thinking about the Super Mario Galaxy Wii remote interactions and sounds | + | as for what to do with the trigger button, |
(I also threw a speaker into part orders.) | (I also threw a speaker into part orders.) | ||
Line 125: | 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 140: | 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 154: | Line 182: | ||
==== Andrés ==== | ==== Andrés ==== | ||
- | + | * [[https:// | |
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * Leaflet is hosting an online [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |
newsletters/2024-11.1733018646.txt.gz · Last modified: 2024/12/01 02:04 by osnr