here’s a page with a very unscientific benchmark that runs a computed signal for every pixel of a {320p, 480p, 720p, 1080p, 4k} canvas and tries to recompute 10% of the graph per frame. on my m4 macbook pro, dalien-signals manages the highest fps and lowest heap out of libraries i could find to test. i think there’s still room for improvement though, im not satisfied with cache locality of graph under heavy churn; iirc i only compact/move stuff on resize or a large deallocation batch. so theres potential for original js-heap-allocated alien-signals to be faster in spots where moving GC becomes an advantage. lemme know if my library ends up being a win for you!
HN user
jitl
Jake Teton-Landis
https://jake.tl
https://twitter.com/@jitl
https://github.com/justjake
Making https://notion.so/product since 2019.
my understanding of FRP is the inverse of your description, I use the same definition of “functional reactive programming” as in this Jane Street blog post on the subject https://blog.janestreet.com/breaking-down-frp/ : FRP is history sensitive and wants to compute over some stream of events explicitly - and the sort of events we expect the system to handle are UI events like mouse motions, clicks, and FRP is expected to turn those into application semantics. Self-adjusting computation (like Incremental or js “signals” like alien-signals) is mostly history-insensitive by default because it’s lazy and seeks to recompute a node once during stabilize() no matter how many times an input changed since the last stabilize(). I definitely do not think “signals” in the JS/TC39 formulation of the concept is FRP: not nearly enough attention paid to first-class events.
but yeah to zoom out, the semantic boundaries and even definitions of terms in this area are kind of fuzzy and i don’t think it’s interesting to try too hard to sort stuff into a taxonomy unless you’re going to define all the parts of your taxonomy and provide a bunch of examples; these terms are not well-defined enough otherwise and arguing about ill-defined semantics is not my idea of a good time.
For example how to taxonomize something like Signia, which has fair bit of history sensitivity but is mostly concerned with diffs (https://signia.tldraw.dev/docs/incremental#using-diffs-in-co...), like Incremental uses logical clocks for validation, but is much more “pull” oriented in its recomputation/“stabilize” algorithm? To me it sounds like you’d put it in the “incremental computation” bucket because deltas; but Incremental itself doesn’t seem too concerned with deltas at the root of the library, i didn’t find any mention of them in the into docs and think it sounds more like js “signals”. https://github.com/janestreet/incremental/blob/master/src/in...
This style of reactive programming is quite popular in JavaScript UI frameworks these days under the moniker “signals”, with a proposal for standardization here: https://github.com/tc39/proposal-signals#-javascript-signals...
It’s used by frameworks Vue, SolidJS, Svelte, Ember, Angular, and there’s a few different implementations for React like Mobx and Jotai. There’s a few different algorithms for how to propagate changes and evaluate the DAG, I believe SolidJS2 uses a height-based algorithm similar to Incremental.
I’ve been fooling around with an implementation that uses an Int32Array arena to allocate nodes and link them together with linked lists without paying O(dependency edges) GC load: https://github.com/justjake/dalien-signals/tree/dalien-signa...
There are a few of these for Rust as well, Leptos is an example in UI frameworks, and Salsa is an example in general incremental computing, used in rust-analyzer.
Another way to look at this sort of thing is as a build system with automatically tracked dependencies. One such build system is tup, which instruments build jobs to detect what files they read to establish dependency relationships. Interesting reading from the author: https://gittup.org/tup/build_system_rules_and_algorithms.pdf, see also the classic Build Systems à la Carte https://www.microsoft.com/en-us/research/wp-content/uploads/...
every time i post an amazon link people downvote me but i'll do it for you. this is not a referral link, just copied straight from my order history https://www.amazon.com/dp/B0DGXRQQ3H "3i S10 Ultra Robot Vacuum and Mop with WaterRecycle System"
it would be pretty impressive if its a marketing lie, as i've had the robot running for about a year and haven't had to refill the water tank. it's "just" a dehumidifier. i live in miami so plenty of moisture to go around.
plenty of companies seem to live just fine off selling scuba gear to divers
it’s very much like iRobot vacuums - more expensive and less performant than the chinese competitors that have totally overtaken the market. iRobot sad story, but so behind. i have a chinese robot from 3i that fills its mop water tank from humidity in the air. and my action camera is an Insta360 that does great 360 video underwater without a case.
the action part of “action camera” is the reason why you buy an action camera. if a normal camera is fine then yeah, you don’t need it.
i need to read the docs. i don’t need to read the code.
even though im quite interested in the content, i have up reading after hitting too many claude-isms. i just can’t do it, i already read enough slop output at work, i just get frustrated by all its odd patterns. please, at least edit the stuff you post to de slop it a bit.
noooo my stonks
I've needed 2 USB-C ports on one-port devices (phone, Steam Deck) a few times so I got this tiny 2-port hub with micro SD card reader (also has option for 3.5mm audio port instead of card reader): https://www.amazon.com/dp/B0DKV7JSHC?th=1 "Satechi USB C Mobile Hub, 4-in-1 USB C Multiport Adapter, 4K HDMI, 100W Pass-Through Charging, 10Gbps Data"
Xiaomi has a few; I got their teensy travel one but more models: https://www.mi.com/global/product-list/personal-care/shaver/
Trimmer: I purchased this from Amazon USA for $70 on sale, now listed at $96. I am happy with it, but haven't had it long enough to comment on durability: https://www.amazon.com/dp/B0BQ1GZY7H "Manscaped Beard Hedger Men's Premium Beard Trimmer, 20 Length Adjustable Blade Wheel, Stainless Steel T-Blade for Precision Facial Hair Trimming, Cordless Waterproof Wet/Dry Clipper"
Shaver: I purchased this in-person at a Xiaomi store in Manila, very happy with it especially for the price ($20-ish): https://www.mi.com/global/product/xiaomi-electric-shaver-s20...; Amazon link: https://www.amazon.com/Xiaomi-Electric-Skin-Touch-Waterproof... "Xiaomi Electric Shaver S200"
Same. Other devices I'm powering with USB-C:
- Vacuum, $???, Xiaomi, okay (hard to clean filter): https://www.mi.com/global/product/xiaomi-vacuum-cleaner-p30/ (gift from friends)
- Beard trimmer, $90, Manscaped, great (but I just got it): https://www.amazon.com/dp/B0BQ1GZY7H
- Shaver, $20, Xiaomi, great: https://www.mi.com/global/product/xiaomi-electric-shaver-s20... (purchased at Xiaomi store in Manila)
- Front door palm reader lock, $299, Eufy, good (slow charge speed mitigated by second built-in battery): https://www.amazon.com/eufy-FamiLock-Smart-Lock-Recognition/...
- Lighter, 10 for $66 after negotiating, Shenzhen Vasipor Technology Co, good but needs USB-A-to-USB-C cable: https://www.alibaba.com/product-detail/High-Powered-Recharge...
yes
that is a specific brevity instruction!
yeah but, the existing code was also full of bugs, so isn’t it all a wash in the end?
bun has never been fit for production, at least not for load bearing business apps. it’s been haunted by segfault bug reports since the early days, and i personally hit at least one a week when im doing lots of bun stuff. im excited for bun with less segfaults
rust to c supports infinite platforms that already have a c compiler by implementing a single rust to c program
on the other hand, porting llvm to an infinite number of platforms requires an infinite amount of work
so, it is less work this way
Works for me:
$ git clone https://code.haverbeke.berlin/wordgard/wordgard.git
Cloning into 'wordgard'...
remote: Enumerating objects: 8274, done.
remote: Counting objects: 100% (8274/8274), done.
remote: Compressing objects: 100% (4747/4747), done.
remote: Total 8274 (delta 6049), reused 5002 (delta 3464), pack-reused 0 (from 0)
Receiving objects: 100% (8274/8274), 1.61 MiB | 2.93 MiB/s, done.
Resolving deltas: 100% (6049/6049), done.so like… any website
why would they swap. add
android isn't linux-y enough to be able to use android auto on a more typical linux kernel?
I have a boring Mercedes mid-size SUV. Carplay works. I can skip/repeat tracks using the standard control on the steering wheel; the instrument cluster shows the current track the same way it's done with connected phones forever. On the center console screen, we use the Carplay view with 3 splits - one for Spotify, two for navigation (map & next direction). Google Maps and Apple Maps are both reliable where I drive (Miami).
Tesla is a great car below the from the headlights down, I love driving my dad's Y performance to the grocery store when I'm visiting home. But no way I'm going to get a car where I can't point the vent at my armpit without using a touch screen. No way I'm going to get a car where I can't talk to whatever agent I want while stuck in traffic. I much rather have a boring car that doesn't tick me off.
If Tesla (or Rivian) add Carplay, they'll really move up the my list (still want physical vent control tho). Would you stop driving your Tesla if an update added Carplay tomorrow?
we’ve got the benchmark graphs from the announcement, and i hear tepid opinions from people with gpt 5.6 access. fable is far ahead of gpt 5.5 (my prev daily driver) also. much less passive aggressive / overly defensive.
it’s the industrial revolution for thinking, seems important
people like me who want to use the best ai on the planet to get stuff done right
the plan is to make money by charging a premium for the best product on the market instead of giving it away for free.
even Japan dropping a credible model
if fugu/fugu ultra was good, why aren’t we hearing about how good it is? seems super slow and expensive, and everyone i’ve talked to who tried it gave up
it’s still significantly far ahead of openai. gpt 5.6 looks like “better 5.5”. fable does not feel like better opus 4.8.