Sign in with Twitter

Username:

Rich Harris @Rich_Harris New York, New York

Graphics editor, @nytimes investigations team. Open sourceror

1,793 Following   23,455 Followers   17,030 Tweets

Joined Twitter 1/25/09


@tomasz_ducin @MylesBorins Colloquially it doesn't really have that meaning any more, it's a lot more tongue-in-che… https://t.co/hPfQLP7gBT📣 Rollup users and anyone interested in Rollup We're in need of folks who can help with our plugin monorepo - the… https://t.co/q8lJwoJQdK
Retweeted by Rich Harris
11/16
2019
@wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map @lukastaegert @guybedford thank you for taking the time! @guybedford @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map @lukastaegert It's come up at lea… https://t.co/YxMUgJa4ns @guybedford @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map @lukastaegert Right — externalisi… https://t.co/jcLsv9eqyT @wycats @samselikoff @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map I'm assuming y is itself ESM, and that we wan… https://t.co/yVwJfotoh7 @guybedford @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map @lukastaegert The concrete case i… https://t.co/s0sQwECUmM @RReverser @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map @lukastaegert @guybedford very pos… https://t.co/198B8bsaGN @wycats @samselikoff @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map basically, yep, though the error wouldn't man… https://t.co/004qrPhtsP @wycats @samselikoff @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map imagine there's a main.js that includes those… https://t.co/G0i3K1nSFQ @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map Definitely interested in what that would look… https://t.co/JbuGy9i2LG @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map I think the only time I said something that w… https://t.co/Vsj3fa4O2J @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map Will acknowledge other collaborators may have… https://t.co/LNXem50uUY @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map Apologies, seems we're (almost) of one mind t… https://t.co/R4tg6pUV1k @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map Cool, thanks. You're right that it could be b… https://t.co/yshHaClUfq @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map I'm not saying the spec is a thing to ignore,… https://t.co/bIa4DK2e3I @wycats @robpalmer2 @samselikoff @NicoloRibaudo @tjcrowder @ember_map That's going to be difficult because we have… https://t.co/ahc4XLQLIW @wycats @samselikoff @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map I don't know how to explain it other than to… https://t.co/9fAVVEWydiI’m now positive that people who claim to have seen aliens have actually just seen baby owls. https://t.co/CAr65NG9qR
Retweeted by Rich Harris @robpalmer2 @wycats @chadhietala @samselikoff @NicoloRibaudo @tjcrowder @ember_map wowowowow @samselikoff @wycats @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map Extrapolate that far enough, and you could ea… https://t.co/J9J1YbkDuT @samselikoff @wycats @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map Of course in 99% of cases that's totally unne… https://t.co/UBDsebdVX6 @samselikoff @wycats @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map import y from 'y'; window.x = 1; var x = win… https://t.co/0unmVuE04U @samselikoff @wycats @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map Right. To make it as simple as possible, imag… https://t.co/xKNnNWDxBn @wycats @chadhietala @samselikoff @NicoloRibaudo @robpalmer2 @tjcrowder @ember_map omg @wycats @NicoloRibaudo @robpalmer2 @tjcrowder @samselikoff @ember_map (or a later consumer could bundle it. we just don't know yet) @wycats @NicoloRibaudo @robpalmer2 @tjcrowder @samselikoff @ember_map As an external, using a strategy that's yet t… https://t.co/GcOifgsGf2 @wycats @NicoloRibaudo @robpalmer2 @tjcrowder @samselikoff @ember_map So in a case like this... import x from './x… https://t.co/OyQed82me0 @samselikoff @tjcrowder @NicoloRibaudo @robpalmer2 @ember_map @wycats its own polyfill, or apps that consume that l… https://t.co/dIU7O0w8fU @samselikoff @tjcrowder @NicoloRibaudo @robpalmer2 @ember_map @wycats that's an interesting case. i'd consider 'blo… https://t.co/be3UyqPhTo @dancow @CJR aw bless. software people are adorable @tjcrowder @NicoloRibaudo @robpalmer2 @samselikoff @ember_map @wycats matters in cases involving polyfills (I think… https://t.co/IA53fYoWD4 @tjcrowder @NicoloRibaudo @robpalmer2 @samselikoff @ember_map @wycats Yep. There's no way to defer the evaluation o… https://t.co/ZxHtmkwiIe @NicoloRibaudo @robpalmer2 @tjcrowder @samselikoff @ember_map @wycats Basically it would mean you couldn't bundle a… https://t.co/Rnl8d7xdxQ @adolfojbarreto nice! @_alastair Only if, as logic dictates, we change 'boarding' to 'planing'. "We would like to invite our business cla… https://t.co/JKIM9VqrRt
11/14
2019
@calebwilliams12 @sveltejs function that generated initial props, and from that point forward you could only use pr… https://t.co/4OQkoTgsQN @calebwilliams12 @sveltejs > for better or worse definitely for worse! the idea that you have two parallel interfa… https://t.co/9vOPGGp1qb @calebwilliams12 @sveltejs Don't think there is (I thought we'd done it in such a way that props and attributes *we… https://t.co/Qd0mGut6Sa @mattdesl you're in my head! this is the secret long term master plan @samselikoff @ember_map @wycats lol just got to the bit where yehuda says 'rich harris is choosing to violate the e… https://t.co/p99MOdrgqUdeadline is 20 nov, a week today! APPLY APPLY APPLY https://t.co/CfY3yqUgRN @JoviDeC @samccone Basically exactly that. Imagine your framework generated code that was equivalent to old-school… https://t.co/2qqjP581Dq @samccone There's a flip side to this though — it's analogous to induced demand. If you hand-wave away the costs wi… https://t.co/Fxx3pIUUhG @theefer 😂Calling all design system users and advocates: we'd love to get your input on this RFC, which proposes a way to pas… https://t.co/6PkoIyl5Np
Retweeted by Rich Harris @theefer Agree. I think replaying events is the worst possible solution — I don't want my rage clicks to have meaning @tomdale Agree that 'tearing' is a suboptimal term — just a shorthand, really. Quite an effective metaphor for illu… https://t.co/gnDGC9K9lX @tomdale By orthogonal I mean that you can have an initially disabled state and incrementally-enable or enable-ever… https://t.co/0yGqhs9cqV @lihautan @cheeaun @sveltejs afraid I'm not that organised
11/13
2019
@LucasHugdahl @sveltejs I've added an issue for this: https://t.co/5g0Ia0kFgZ. Probably won't happen any time soon but it's a good idea! @MatthewDeaners @saladass117 yeah, the more i think about this the more i think 'just make it really fast' is the best answer @MatthewDeaners @saladass117 that's the worst of all possible worlds — you just rage-clicked the '+1 quantity' butt… https://t.co/7SzlJdYIVW @msavin It's one of those things that's pretty low level and complex and therefore better handled by the framework, if possible @acdlite Sounds wild - look forward to seeing what that looks like when it's accessible outside FB @jeffposnick @sveltejs @Snugug Oh, nice! That's awesome @acdlite Here, the choice is between <main>...</main> <script>DATA={/*several hundred kb*/}</script> <script>hydra… https://t.co/9DJlXopCVA @acdlite Sometimes opting out isn't a possibility, for whatever reason. You *could* use the serialized data while p… https://t.co/tMobLkDuTe @acdlite minute or so (not rendered per req, because of esoteric CMS requirements). You *could* serialize the data… https://t.co/6SdwFtthNs @acdlite Got it, thanks for the explanation. Cases where matching is difficult: simplest case would be <button disa… https://t.co/4jrBkk4JuK @acdlite Yep, queue. By distantly controlled I just mean that in the scenario above, does React know that it needs… https://t.co/WJcnsQPgSP @JohnMu it was suggested to me that this (the bit about JS-enabled crawlers running less frequently and/or later th… https://t.co/BhfnOUUkCv @acdlite That constraint definitely makes me uncomfortable — I've worked on several projects where it would have be… https://t.co/RrgqMLvH4w @cramforce @daslaf @robwormald @amacarthur would love to get a peek at it one day @tomdale Strong agree (though I think it's orthogonal to the tearing-or-delay dilemma). A corollary: hydration shou… https://t.co/ejZHuAYNN1
11/12
2019
@brave_dick you mean infer the props from the markup somehow? it's not possible @brave_dick not sure i understand the question? @lukeed05 ah, gotcha. yeah, that makes sense @lukeed05 doesn't that make tearing likely? https://t.co/1dHghLFX8r The more I think about it, the more I lean tow… https://t.co/SsLjTnCw0N @brave_dick In Svelte, yes. It will 'repair' the DOM as it hydrates it, if anything has changed @robmuh SSR means progressive enhancement, more robust pages, faster initial load, streaming content, better search… https://t.co/wyof4U5pCw @adamdbradley @itsmadou This — where interacting with a hydrated component modifies some state visible in an unhydr… https://t.co/rLV4fwaUtS @MostFoolhardy @jaffathecake @angustweets heh! it's a good hammer, just not one i have in my toolbox :( @lukeed05 Yeah, perf is the root of the problem. Even with this solution, you potentially hit a point where you hav… https://t.co/fO0BWOAxbR @adamdbradley @itsmadou How do you prevent tearing? @MostFoolhardy @jaffathecake @angustweets it *mitigates* the problem at the cost of introducing an architectural co… https://t.co/4jwUjlyuGi @lukeed05 I'm not sure we've solved the dilemma — maybe just improved the performance of hydration enough that it no longer matters @lukeed05 I don't think you even need to special-case process.* (since typically that's replaced *before* the compi… https://t.co/XisI5OhRAh @DavidKPiano omg @bahmutov @DavidKPiano sounds complicated! @itsmadou Not to my knowledge @amacarthur Yes, but in this scenario the component that suddenly needs to get prioritised isn't the one you intera… https://t.co/cczplh7Kg5 @lukeed05 yeah, I guess even <button disabled={true}> can be marked as needing hydration, as long as you don't try and outwit yourself @DavidKPiano True! Given the choice I'd rather the page be visibly uninteractive (<button disabled> etc) than batch… https://t.co/DrUMke55vS @CyberAP but that means delaying interactivity, no? @DavidKPiano Tricky! But if you imagine hydration takes a second or two (for the sake of argument), that's potentia… https://t.co/mXYL90zbJQ @lukeed05 I think it's easier said than done! E.g. <button disabled={!process.browser}> At SSR time, that DCEs to… https://t.co/UHa3GodfE5 @jaffathecake @angustweets For something like a live election results page, you really want that "interactive" (i.e… https://t.co/2FWvm5pJCw @CyberAP @mattibarzeev It doesn't — you'd set state based on the result of the fetch, and a remote component that d… https://t.co/vxQ7vYs1UE @giuseppegurgone ah yep, mentions susceptibility to tearing issues & puts the onus on the app dev to solve. also th… https://t.co/DSAHlm4JOA @theKashey how do you mean? 100% SSRed = no interactivity. SPA typically implies 'no SSR' @evilpingwin Yeah. Lately I've been thinking that maybe Svelte's API should make room for some of this stuff: impo… https://t.co/RjmLZTVQjD @angustweets I'm not so worried about the result being *eventually* correct — if `increment` is called three times,… https://t.co/ItA0gPf9ws @evilpingwin to take an extreme case — say i'm building a video editor. i'd much rather show a 'loading' splash scr… https://t.co/lB0yfGHICi @saladass117 that's impossible by definition. unhydrated = you haven't attached event listeners etc to it @angustweets in this scenario i'm treating option 3 as implicit — the initial SSR'd load is what you're hydrating.… https://t.co/FsPBHUSnxo @theKashey on a per-app basis, *maybe*. but it means a lot of assumptions about the devices your users use, and whe… https://t.co/fP7ekNDr4f @evilpingwin I think the cases where hydration is unacceptably expensive are where you *do* have a lot of non-inter… https://t.co/zjki2g3fbl @teatimewithlisa @mhkeller @gabrieldance thank you @oneofchris @MattWilcox still needs to be faster though! e.g. if you go to https://t.co/wT9ptnVdrN, the main thread… https://t.co/CjIAqeykqG
11/11
2019

0