Skip to content
  • Home Home Home, current page.
  • Moments Moments Moments, current page.

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @
  • Language: English
    • Bahasa Indonesia
    • Bahasa Melayu
    • Català
    • Čeština
    • Dansk
    • Deutsch
    • English UK
    • Español
    • Filipino
    • Français
    • Hrvatski
    • Italiano
    • Magyar
    • Nederlands
    • Norsk
    • Polski
    • Português
    • Română
    • Slovenčina
    • Suomi
    • Svenska
    • Tiếng Việt
    • Türkçe
    • Ελληνικά
    • Български език
    • Русский
    • Српски
    • Українська мова
    • עִבְרִית
    • العربية
    • فارسی
    • मराठी
    • हिन्दी
    • বাংলা
    • ગુજરાતી
    • தமிழ்
    • ಕನ್ನಡ
    • ภาษาไทย
    • 한국어
    • 日本語
    • 简体中文
    • 繁體中文
  • Have an account? Log in
    Have an account?
    · Forgot password?

    New to Twitter?
    Sign up
BRIAN_____'s profile
Brian Smith
Brian Smith
Brian Smith
@BRIAN_____

Tweets

Brian Smith

@BRIAN_____

Code farmer. Security, crypto, performance, networking, usability. Rust, C++, C, Haskell, DSLs, etc. *ring*, webpki, crypto-bench, mozilla::pkix.

Honolulu & San Francisco
briansmith.org
Joined April 2008

Tweets

  • © 2018 Twitter
  • About
  • Help Center
  • Terms
  • Privacy policy
  • Cookies
  • Ads info
Dismiss
Previous
Next

Go to a person's profile

Saved searches

  • Remove
  • In this conversation
    Verified accountProtected Tweets @
Suggested users
  • Verified accountProtected Tweets @
  • Verified accountProtected Tweets @

Promote this Tweet

Block

  • Tweet with a location

    You can add location information to your Tweets, such as your city or precise location, from the web and via third-party applications. You always have the option to delete your Tweet location history. Learn more

    Your lists

    Create a new list


    Under 100 characters, optional

    Privacy

    Copy link to Tweet

    Embed this Tweet

    Embed this Video

    Add this Tweet to your website by copying the code below. Learn more

    Add this video to your website by copying the code below. Learn more

    Hmm, there was a problem reaching the server.

    By embedding Twitter content in your website or app, you are agreeing to the Twitter Developer Agreement and Developer Policy.

    Preview

    Why you're seeing this ad

    Log in to Twitter

    · Forgot password?
    Don't have an account? Sign up »

    Sign up for Twitter

    Not on Twitter? Sign up, tune into the things you care about, and get updates as they happen.

    Sign up
    Have an account? Log in »

    Two-way (sending and receiving) short codes:

    Country Code For customers of
    United States 40404 (any)
    Canada 21212 (any)
    United Kingdom 86444 Vodafone, Orange, 3, O2
    Brazil 40404 Nextel, TIM
    Haiti 40404 Digicel, Voila
    Ireland 51210 Vodafone, O2
    India 53000 Bharti Airtel, Videocon, Reliance
    Indonesia 89887 AXIS, 3, Telkomsel, Indosat, XL Axiata
    Italy 4880804 Wind
    3424486444 Vodafone
    » See SMS short codes for other countries

    Confirmation

     

    Welcome home!

    This timeline is where you’ll spend most of your time, getting instant updates about what matters to you.

    Tweets not working for you?

    Hover over the profile pic and click the Following button to unfollow any account.

    Say a lot with a little

    When you see a Tweet you love, tap the heart — it lets the person who wrote it know you shared the love.

    Spread the word

    The fastest way to share someone else’s Tweet with your followers is with a Retweet. Tap the icon to send it instantly.

    Join the conversation

    Add your thoughts about any Tweet with a Reply. Find a topic you’re passionate about, and jump right in.

    Learn the latest

    Get instant insight into what people are talking about now.

    Get more of what you love

    Follow more accounts to get instant updates about topics you care about.

    Find what's happening

    See the latest conversations about any topic instantly.

    Never miss a Moment

    Catch up instantly on the best stories happening as they unfold.

    1. Alex Russell‏ @slightlylate Jul 28
      Replying to @davidben__ @jaffathecake and

      I/O+bound isn't different to CPU-bound when responsiveness is at risk. Environments without threading rely on tasks deferring for responsiveness.

      2 replies 0 retweets 2 likes
    2. David Benjamin‏ @davidben__ Jul 28
      Replying to @slightlylate @jaffathecake and

      Which is why I mentioned symmetric vs asymmetric operations. Computing a hash is not a responsiveness risk. We're talking operations where we look at avoiding malloc because it's on the radar at this scale.

      1 reply 0 retweets 3 likes
    3. Jeffrey Yasskin‏ @jyasskin Jul 28
      Replying to @davidben__ @slightlylate and

      … the TAG should probably give some guidance about when a CPU-bound operation takes long enough to make it promise-based. e.g. Hashes and AES handle 1MB in about 1ms, which is probably fine to block the main thread, but we also just added img.decode() because images take longer.

      3 replies 0 retweets 2 likes
    4. Elliott Sprehn‏ @ElliottZ Jul 29
      Replying to @jyasskin @davidben__ and

      Also 1ms is somewhere between 2% and 10% of your main thread budget in a lot of situations... Getting non UI work off the main thread is critical to fixing a lot of mess in apps (native and web).

      1 reply 0 retweets 3 likes
    5. David Benjamin‏ @davidben__ Jul 29
      Replying to @ElliottZ @jyasskin and

      Developers already can iterate over a giant array and do slow stuff. Nothing will avoid the need to think about jank. All we can do is forbid the really bad things while still making the things you need possible.

      1 reply 0 retweets 1 like
    6. David Benjamin‏ @davidben__ Jul 29
      Replying to @davidben__ @ElliottZ and

      For network requests, this is clear. An RTT is an RTT. Crypto scales with data, and you often need to make lots of small calls. Look at the key schedule of any protocol. Adding async points between each 32-byte hash op costs perf and complexity.

      1 reply 0 retweets 2 likes
    7. David Benjamin‏ @davidben__ Jul 29
      Replying to @davidben__ @ElliottZ and

      If *really* worried about confused devs, sync + must be in web worker is a plausible start. Then you run your entire protocol on the thread. The important thing is to get the promises out of all the little intermediate steps.

      1 reply 0 retweets 1 like
    8. Alex Russell‏ @slightlylate Jul 29
      Replying to @davidben__ @ElliottZ and

      I'd like to see numbers. Promises were explicitly designed to allow for "fast forwarding" so that you don't need a full turn around the event loop. Might not be enough, but data matters.

      1 reply 0 retweets 0 likes
    9. David Benjamin‏ @davidben__ Jul 29
      Replying to @slightlylate @ElliottZ and

      (Am tied up packing for a big move but it sounded like others had numbers.) "Fast" depends on context. Overhead for an IO-bound event loop iteration is different from overhead for a small chunk of compute in it. We wouldn't push array lookups or object allocations into a promise.

      2 replies 0 retweets 1 like
    10. Elliott Sprehn‏ @ElliottZ Jul 29
      Replying to @davidben__ @slightlylate and

      I'd love to see data though. It's possible the APIs need a batch interface so you can hash multiple strings in one call if the per call overhead vs. computation cost is too high. Sync is not the only way to fix this.

      2 replies 0 retweets 2 likes
      Brian Smith‏ @BRIAN_____ Jul 29
      Replying to @ElliottZ @davidben__ and

      Every app and every intermediate (not lower layer) crypto library would need to be rewritten, if there is no sync interface, because they have *all* been written to use a sync interface. Imagine porting BoringSSL or a BoringSSL-based app to WebAssembly. All of BoringSSL is sync.

      11:56 AM - 29 Jul 2018
      • 1 Like
      • Deirdre Connolly
      3 replies 0 retweets 1 like
        1. New conversation
        2. Elliott Sprehn‏ @ElliottZ Jul 29
          Replying to @BRIAN_____ @davidben__ and

          I suppose I could be convinced having a sync crypto interface in a worker makes sense, though it doesn't make sense to do any of that work on the same thread that does webgl or the UI main thread.

          1 reply 0 retweets 2 likes
        3. Brian Smith‏ @BRIAN_____ Jul 29
          Replying to @ElliottZ @davidben__ and

          Right, just like you wouldn't allow WebAssembly to run on those threads.

          0 replies 0 retweets 0 likes
        4. End of conversation
        1. New conversation
        2. Elliott Sprehn‏ @ElliottZ Jul 29
          Replying to @BRIAN_____ @davidben__ and

          What apps? There isn't a sync socket API in the web, or even a low level one to do such a thing. Super interested in your app, how are you using BoringSSL on the web?

          2 replies 0 retweets 0 likes
        3. Brian Smith‏ @BRIAN_____ Jul 29
          Replying to @ElliottZ @davidben__ and

          We can't use BoringSSL on the web because (1) it isn't safe to compile its C code to wasm because wasm doesn't guarantee safety w.r.t. side channels, and (2) BoringSSL's API is sync, so it can't implement its API on top of WebCrypto because WebCrypto is async.

          0 replies 0 retweets 1 like
        4. End of conversation
        1. New conversation
        2. Elliott Sprehn‏ @ElliottZ Jul 29
          Replying to @BRIAN_____ @davidben__ and

          I'm also skeptical that success lies in "porting existing apps to webassembly". WASM is a great technology, and a useful tool, but you still need to leverage the platform for what it does well: being async, loading fast over a network, being SLICE:https://www.google.com/amp/s/paul.kinlan.me/amp/slice-the-web/ …

          1 reply 0 retweets 3 likes
        3. Alex Russell‏ @slightlylate Jul 29
          Replying to @ElliottZ @BRIAN_____ and

          Right. If we had a way to mark workers as being "input sinks" and turning off all sync APIs for them, I'd feel better about allowing them.

          2 replies 0 retweets 1 like
        4. David Benjamin‏ @davidben__ Jul 29
          Replying to @slightlylate @ElliottZ and

          I think there is a clear misunderstanding here as to what these operations actually are. Twitter is not a good medium to clear this up. Let's get on a VC when I'm back at work and not dealing with a move.

          1 reply 0 retweets 4 likes
        5. Elliott Sprehn‏ @ElliottZ Jul 29
          Replying to @davidben__ @slightlylate and

          Sure thing. Very excited to learn more about your use cases!

          0 replies 0 retweets 1 like
        6. End of conversation

      Loading seems to be taking a while.

      Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.

        Promoted Tweet

        false

        • © 2018 Twitter
        • About
        • Help Center
        • Terms
        • Privacy policy
        • Cookies
        • Ads info