newsletters:2024-12
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
newsletters:2024-12 [2024/12/31 11:19] – [What we'll be up to in January] osnr | newsletters:2024-12 [2024/12/31 22:24] (current) – [New parallel evaluator] osnr | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== December 2024 newsletter | + | ====== December 2024 newsletter ====== |
Thanks for following along so far! We've been working on a lot of big projects in 2024 -- many still under way (parallel evaluator, gadget design, RFID tag localization, | Thanks for following along so far! We've been working on a lot of big projects in 2024 -- many still under way (parallel evaluator, gadget design, RFID tag localization, | ||
Line 7: | Line 7: | ||
* first version of [[newsletters/ | * first version of [[newsletters/ | ||
* more installations around the world: [[newsletters/ | * more installations around the world: [[newsletters/ | ||
- | * Jessie Grosen' | + | * Jessie Grosen' |
* s-ol bekic' | * s-ol bekic' | ||
* [[https:// | * [[https:// | ||
Line 13: | Line 13: | ||
* presented Folk at [[newsletters/ | * presented Folk at [[newsletters/ | ||
- | We're looking forward to seeing more big projects come to fruition | + | In 2025, we're looking forward to seeing more of these big projects come to fruition, then playing with the resulting |
(If you want to stop by next month, our next Folk open house will be [[https:// | (If you want to stop by next month, our next Folk open house will be [[https:// | ||
Line 42: | Line 42: | ||
It seems improved (and I feel a lot more comfortable handling it), but still not perfect. I think one issue is that the camera module is actually not that well-attached to the PCB, like you can just peel it off and wiggle it, and another issue is with the autofocus that means it can float around? ([[https:// | It seems improved (and I feel a lot more comfortable handling it), but still not perfect. I think one issue is that the camera module is actually not that well-attached to the PCB, like you can just peel it off and wiggle it, and another issue is with the autofocus that means it can float around? ([[https:// | ||
+ | |||
+ | === Trigger button === | ||
+ | |||
+ | I've started designing the trigger button as well. I can reuse the outer grip, but I realized I need a whole new inner enclosure for the switches that I have. | ||
+ | |||
+ | After some sanding, the trigger button + inner grip fits inside the outer grip: | ||
+ | |||
+ | {{newsletters: | ||
+ | |||
+ | And I figured out the pins on the 3.5mm jack and socket, so I think I just need to test that my Orange Pi can actually pick up button presses now (and then design the next gadget chassis with a corresponding TRRS port to plug into). | ||
=== New single-board computer === | === New single-board computer === | ||
- | The big problem with the Raspberry Pi 5 is that it lacks support for USB-C video out, so it can't talk to (or power) the retail AnyBeam projector. So we need to do a redesign that uses a different single-board computer. | + | Anyway, the main thing right now is making this new overall design that we can make in bigger quantities. |
== Radxa Rock 5B: nope == | == Radxa Rock 5B: nope == | ||
Line 73: | Line 83: | ||
The problems with the Orange Pi were that it doesn' | The problems with the Orange Pi were that it doesn' | ||
- | == USB cameras | + | < |
+ | < | ||
So I did a small dive into USB cameras. I had been sour on them because I assumed they were all unwieldy, big, webcam-shaped, | So I did a small dive into USB cameras. I had been sour on them because I assumed they were all unwieldy, big, webcam-shaped, | ||
Line 82: | Line 93: | ||
(I also spent a while digging through USB-A and USB-C cables and adapters to find a short cable with minimal plug footprint, 90-degree angle, etc, since the normal USB cables and plugs are obviously a lot bigger than I'd like to fit inside the chassis, in contrast to the Pi CSI camera' | (I also spent a while digging through USB-A and USB-C cables and adapters to find a short cable with minimal plug footprint, 90-degree angle, etc, since the normal USB cables and plugs are obviously a lot bigger than I'd like to fit inside the chassis, in contrast to the Pi CSI camera' | ||
+ | </ | ||
- | === Trigger button === | + | I seem to have all the parts now, so the next steps are system/ |
- | I've started designing the trigger button as well. I can reuse the outer grip, but I realized I need a whole new inner enclosure for the switches that I have. | + | {{newsletters: |
- | After some sanding, the trigger button + inner grip fits inside the outer grip: | ||
- | |||
- | {{newsletters: | ||
- | |||
- | And I figured out the pins on the 3.5mm jack and socket, so I think I just need to test that my Orange Pi can actually pick up button presses now (and then design the next gadget chassis with a corresponding TRRS port to plug into). | ||
==== New parallel evaluator ==== | ==== New parallel evaluator ==== | ||
Line 107: | Line 114: | ||
=== Performance and memory leaks === | === Performance and memory leaks === | ||
- | For most of this month, I've been staring at increasingly elaborate [[https:// | + | For most of this month, I've been staring at increasingly elaborate [[https:// |
{{newsletters: | {{newsletters: | ||
- | Fixed a ton of memory leaks; I think folk2 might be less leaky than folk1 now. | + | Now that I've added enough hooks, I get these extremely rich views of all Folk programs/ |
+ | |||
+ | {{newsletters: | ||
+ | |||
+ | Some of the resulting improvements this month: | ||
+ | |||
+ | * Fixed a ton of memory leaks (mostly freeing clauses and terms in clauses, and some transient objects in C); I think folk2 might be less leaky than folk1 now. | ||
+ | * The Tracy memory visualization is very cool: | ||
+ | * {{newsletters: | ||
+ | * Saw that we were spending a lot of time waiting on the one big trie lock, so replaced the trie with an immutable path-copying trie (and an [[https:// | ||
+ | * Fixed a [[https:// | ||
+ | * Created (by patching up memory leaks) and then fixed a problem where we would leak all the statement slots which eventually caused the whole system to blow up | ||
+ | * {{newsletters: | ||
+ | * "We were not freeing aborted ref which caused us to run out of statement slots which caused statementNew to hang which caused the global workqueue to overflow." | ||
+ | * Fixed horrible bug where my steal-half deque operation was wrong (so were dropping lots of operations, the system was not behaving correctly), replaced with more standard steal-one | ||
+ | |||
+ | I'm kind of addicted to using Tracy -- it feels like it obsoletes a lot of the monitoring stuff I'd hacked into folk2, because you can just use Tracy to //see// everything (as long as you add the right hooks). No need for perf probes, or gperftools heap monitoring, or the trace log endpoint. The Tracy hooks are low-overhead (nanoseconds), | ||
+ | |||
+ | And using Tracy feels // | ||
+ | |||
+ | {{newsletters: | ||
==== RFID localization ==== | ==== RFID localization ==== | ||
Line 130: | Line 158: | ||
(Even before this, we've been kind of poking at Linux to get stuff to work, locking threads at high priority and putting them on specific CPUs, etc. If I turn that stuff off and rely on default scheduling behavior, we do get worse at talking to the tags, so it's doing // | (Even before this, we've been kind of poking at Linux to get stuff to work, locking threads at high priority and putting them on specific CPUs, etc. If I turn that stuff off and rely on default scheduling behavior, we do get worse at talking to the tags, so it's doing // | ||
+ | |||
+ | {{newsletters: | ||
=== Rounds === | === Rounds === | ||
Line 146: | Line 176: | ||
==== Other Folk system improvements ==== | ==== Other Folk system improvements ==== | ||
- | * Sébastien Lerique has been setting up a system in France; fixed an error in calibration | + | * Sébastien Lerique has been setting up his system in France; |
* We might need a better strategy for calibrating ultra-short-throw / highly distorted projectors (maybe conservatively only support a single plane?) | * We might need a better strategy for calibrating ultra-short-throw / highly distorted projectors (maybe conservatively only support a single plane?) | ||
- | * Daniel Pipkin fixed SSID detection on macOS Sequoia | + | * Daniel Pipkin |
- | * Andrés added support for single-l '' | + | * Andrés |
==== Friends and outreach ==== | ==== Friends and outreach ==== |
newsletters/2024-12.1735643976.txt.gz · Last modified: 2024/12/31 11:19 by osnr