Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kentonv
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
33 ms
·
571.
▲
by
kentonv
3y ago
No, for the use cases I'm thinking of, I really do just want an intrusive linked list. Why would I want to invent a convoluted way to adapt std::vector when an intrusive linked list does exactly what I want? (Example use case: Some num
572.
▲
by
kentonv
3y ago
Not really: * In my experience arbitrary limits intended to prevent "resource exhaustion" tend to lead to incidents where the limit was hit but resources weren't really exhausted, so it just caused failures for no reason. V
573.
▲
by
kentonv
3y ago
In most (quite possibly all ) cases I don't know the upper bound even at runtime. So, this ends up requiring allocation.
574.
▲
by
kentonv
3y ago
Yeah I pretty much only use my own alternate container implementations (from KJ[0]), which avoid these footguns, but the result is everyone complains our project is written in Kenton-Language rather than C++ and there's no Stack Overfl
575.
▲
by
kentonv
3y ago
Agreed that std::list is never the best solution. In every case where I want linked list semantics, it's because I want to be able to dynamically add and remove objects from the list without any allocations at all. The only way to achi
576.
▲
by
kentonv
3y ago
I think the other replies may have misunderstood your question. I think you are asking: Why does std::vector<T> require T's move constructor to be noexcept (or else it falls back to copying instead)? The reason goes something lik
577.
▲
by
kentonv
3y ago
unique_ptr seems inappropriate here since the pointers aren't unique. shared_ptr doesn't even work because it looks like this data structure is representing a graph and would expect to have cycles. Perhaps you could use some sort
578.
▲
by
kentonv
3y ago
These are good questions and I think there's more than one answer that's worth exploring. I think that the privacy problems caused by shared caches could be solved, without simply prohibiting them altogether. Like, what if you onl
579.
▲
by
kentonv
3y ago
I believe dynamic linking has been a core feature of WebAssembly from the beginning. You have always been able to load multiple Wasm modules in the same isolate and make them call each other. (But, language toolchains have to actually be de
580.
▲
by
kentonv
3y ago
Indeed, I/O APIs (anything that talks to the outside world) are another sore point for WebAssembly, as browsers do not currently expose any particular APIs directly to Wasm, only to JavaScript. So Wasm has to make calls to a JavaScript
581.
▲
by
kentonv
3y ago
Yes.
582.
▲
by
kentonv
3y ago
This article is very correct: Wasm has a code size problem. This is a problem in browsers because all that code has to be downloaded to start the site. It's also a problem for serverless architectures, where code is often loaded from c
583.
▲
by
kentonv
3y ago
> measuring instantiation time if the module is already loaded in the Edge Node (which can be assumed true for most common programs such as WinterJS, static-web-server and more) It sounds like you're saying that your hosting never i
584.
▲
by
kentonv
3y ago
Wasmer claims to cold start in 50ns. This is obviously impossible: That's 1000x faster than an NVMe read, which is about the fastest cold storage you can get. At least make your claims credible before posting them in competitors'
585.
▲
by
kentonv
3y ago
At present it can only be used between Workers, but I'm interested in enabling connecting to external servers with it, and generally making it available as a Node library. Lots of details need to be worked out to make that happen thoug
586.
▲
by
kentonv
3y ago
Standards bodies only standardize things after they've been proven to work. You can't standardize a new idea before offering it to the market. It's hard enough to get just one vendor to experiment with an idea (it literally t
587.
▲
by
kentonv
3y ago
> How can you call someone a good person I know the guy. > if they literally hired then fired people? If hiring and firing is inherently wrong then I guess all founders are bad?
588.
▲
by
kentonv
3y ago
I don't know anything about what happened here, but I know Sunil is a good person and wouldn't have done this on a whim. Sometimes there are internal problems forcing painful decisions but you just can't go and tweet the deta
589.
▲
by
kentonv
3y ago
FWIW yesterday we announced that WebSocket messages are now billed at 1/20 of a request, rather than a full request. It was kind of buried in this omnibus blog: https://blog.cloudflare.com/workers-production-safety
590.
▲
by
kentonv
3y ago
Thanks, this is great feedback. Cleaning this up is actually something I've been hoping to focus on personally in the coming months. Let's see what we can do...
591.
▲
by
kentonv
3y ago
Yeah, in theory we could build a parallel service that's more Lambda-like and hosts apps in a more centralized way. It's certainly something we've thought about. The challenge is, can we actually build that in a way that is s
592.
▲
by
kentonv
3y ago
Workers started with that use case, but these days we're definitely aiming to be a general-purpose platform for app hosting, especially for new apps. It sounds like we're not getting that message across very well.
593.
▲
by
kentonv
3y ago
(Cloudflare Workers tech lead here.) I disagree about V8 not being optimized for edge environments. The needs of a browser are actually very much aligned with needs of edge, namely secure sandboxing, extremely fast startup, and an extreme c
594.
▲
by
kentonv
3y ago
The unique architecture of our runtime is what enables most of our competitive advantages. It's what lets us run your application in hundreds of locations around the world while also charging less than competing serverless platforms. I
595.
▲
Why Workers environment variables contain live objects
(blog.cloudflare.com)
2 points
by
kentonv
3y ago
|
0 comments
596.
▲
by
kentonv
3y ago
Yes, I agree. But I don't think the path forward is to re-establish the security of root. Instead the path forward is to stop granting the full capabilities of the user to every program the user runs. In Android, for example, every app
597.
▲
by
kentonv
3y ago
In theory that might work. In practice, it doesn't help much; you might as well stick with setuid-root. * The mechanism for granting capabilities to binaries is convoluted, requiring special tools, filesystem support, and fiddly code.
598.
▲
by
kentonv
3y ago
Unprivileged user namespaces make it possible for unprivileged programs to set up sandboxes. For example, Chrome uses namespaces to implement its process sandbox. However, Chrome installs a setuid-root binary, so that it doesn't need &
599.
▲
by
kentonv
3y ago
FWIW, my C++ toolkit library, KJ, does the same thing.[0] But presumably you could still write a condition predicate which looks at things which aren't actually part of the mutex-wrapped structure? Or does is the Rust type system able
600.
▲
by
kentonv
3y ago
Yeah that's fair, it does seem like Bebop and capnp are targeted at different use cases, even if they're both Protobuf alternatives. It obviously doesn't make sense to benchmark a JavaScript Bebop implementation against a C++
More ›