HN user

jitl

12,884 karma

Jake Teton-Landis

https://jake.tl

https://twitter.com/@jitl

https://github.com/justjake

Making https://notion.so/product since 2019.

Posts97
Comments3,153
View on HN
twitter.com 21d ago

Claude Fable 5 available globally tomorrow

jitl
46pts3
github.com 2mo ago

Show HN: JavaScript port of SQLite's parser, 2x-200x faster than others

jitl
2pts0
lisette.run 3mo ago

Lisette – Rust syntax, Go runtime

jitl
12pts1
arstechnica.com 3mo ago

Honda cancels the two electric vehicles it was developing with Sony

jitl
2pts0
dgryski.medium.com 4mo ago

Consistent Hashing: Algorithmic Tradeoffs (2018)

jitl
1pts0
materialize.com 9mo ago

Scaling Beyond Memory: How Materialize Uses Swap for Larger Workloads

jitl
2pts0
chrisdown.name 10mo ago

In defence of swap: common misconceptions (2018)

jitl
116pts150
ahl.dtrace.org 1y ago

ZFS: Apple's new filesystem that wasn't (2016)

jitl
205pts203
www.notion.com 1y ago

How we evolve our code: Notion's "ratcheting" system using custom ESLint rules

jitl
2pts3
www.mothersruin.com 1y ago

How macOS sandbox security scoping and capabilities work for URL bookmarks

jitl
1pts0
aws.amazon.com 1y ago

AWS: Amazon Aurora DSQL

jitl
2pts0
news.bloomberglaw.com 1y ago

DOJ Will Push Google to Sell Chrome to Break Search Monopoly

jitl
4pts0
news.ycombinator.com 1y ago

Wat: JavaScript lighting talk (2012) [video]

jitl
1pts0
daringfireball.net 1y ago

The iOS Continental Drift Fun Gap

jitl
5pts1
www.inkandswitch.com 1y ago

Provenance for science papers, local-first access control

jitl
2pts0
kaleidawave.github.io 2y ago

Enzo JavaScript type checker: the quest continues

jitl
2pts0
twitter.com 2y ago

Supercut – Netflix and Prime Video App for Vision Pro

jitl
1pts0
www.cnbc.com 2y ago

Xiaomi bets big on its new electric vehicle – targets 20M premium users

jitl
30pts25
ydb.tech 2y ago

YDB – an open source distributed SQL database

jitl
91pts16
blog.readyset.io 2y ago

How Database Replication Works Under the Hood

jitl
2pts0
www.theregister.com 2y ago

Beijing demands government apps must shed their bureaucratic skins

jitl
3pts0
twitter.com 2y ago

Organizer invents fake women speakers for DevTernity and JDKon conferences

jitl
84pts19
www.macrumors.com 2y ago

M3 Max Chip Around as Fast as M2 Ultra in Early Benchmark Results

jitl
89pts100
eslint.org 2y ago

ESLint Deprecating Formatting Rules

jitl
2pts0
materialize.com 2y ago

Building Differential Dataflow from scratch (the framework behind Materialize)

jitl
1pts0
fortune.com 2y ago

San Francisco could get 90% of homeless off streets with housing speculation tax

jitl
3pts1
use-fireproof.com 2y ago

Architecture – Fireproof distributed real-time database

jitl
2pts0
mattweidner.com 2y ago

CRDT Survey, Part 2: Semantic Techniques

jitl
14pts1
www.mydistributed.systems 2y ago

Samsung's KV-SSD: An NVMe SSD with In-Storage Key-Value Store

jitl
3pts2
impromptugames.com 2y ago

So You've Decided to Move from Unity to Unreal Engine

jitl
8pts2

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!

https://justjake.github.io/dalien-signals/

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.

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.

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"

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...

TypeScript 7 14 days ago

yeah but, the existing code was also full of bugs, so isn’t it all a wash in the end?

TypeScript 7 14 days ago

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.

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?