Jared Forsyth
@jaredforsyth
trying to be christian. feminist. mormon. type theory, PLT Mobile dev @KhanAcademy building kipos @jaredforsyth on the dead bird site
New post! "Automate typescript refactors with dosido" I made a tool to move files and definitions around, and for extracting folders into new monorepo packages. jaredforsyth.com/posts/dosido...
Anyone up for a little local-first crdt-backed collaborative wordsearch? crdt-wordsearch.quick.jaredforsyth.com?peer=3e27c3a... while supplies last 😅
somebody stop me, I'm creating an everything app. vega charts, slide decks, polls 🎉
did somebody say inline math? no? well here it is anyway! seamlessly integrated into the collaborative editing experience.
real-time collaborative, rich-text ... mermaid diagrams? Sure why not 😄
annnnotations! proving out "marks, but more complicated". and yes, you can have a footnote in a footnote, or a comment on a footnote in a popover etc.
I came across plim (github.com/darylcecile/...) and couldn't resist integrating it with my new block-rich-text CRDT 😄 very helpful in fleshing out my own API surface
ok I think I've really got this working. - rich text CRDT (peritext-based) - movable blocks with split & join, retaining provenance and collaborative editing - strong cycle prevention both for split/join and block nesting annnd just for fun I've also implemented multicursor in the demo (cmd+click)
doin some animatings. This pattern is from the Minbar of Saladin in Al Aqsa Mosque in Jerusalem
an art based on a macro-pattern from the Mirador de Lindaraja in the Alhambra
I'm struggling to understand what www.npmjs.com means by "Recently updated" 🤔
Here's another flex 💪 we can have a function of two arguments where *at least one* of the arguments needs to have a given attribute defined.
ok this is just really cool. the constraints system I set up gives you "optional record arguments" for free! it would be simple to add syntax affordances for it as well, e.g. ({one, two, three = true}) => ...
Ok so it's possible I'm overlooking something crucial, but I think I might have gotten polymorphic records to work?? without needing a distinction between (extend) and (override), as well as allowing for multiple-extend, e.g. {...a, ...b, c: 2} I haven't seen papers that can pull this off 😳
we have full rewind & replay, including viewing live results of evaluation at every step 🎉 😎