Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
tylerhou
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
19 ms
·
211.
▲
by
tylerhou
4y ago
Maybe that's true, but safety is an additional concern. You have way more lifetime headaches if you alias the underlying data. Copying avoids all that.
212.
▲
by
tylerhou
4y ago
Copying into a string is a safe default. Also, proto’s API currently returns string references (and not views) so making a copy is required for open source. (Although now std::string_view is common, I hear rumors that the proto API might ch
213.
▲
by
tylerhou
4y ago
The assumption that you are making is that polyrepos will spend the vast amount of engineering effort to maintain a stable interface. Paraphrasing Linus: “we never break userspace.” In practice internal teams don’t have this type of bandwid
214.
▲
by
tylerhou
4y ago
> npm or pip, in order to get things working properly. Yes, this is one large difference between development at Google vs most other companies. https://opensource.google/documentation/reference/thirdparty Perso
215.
▲
by
tylerhou
4y ago
> But well before you get to Google scale, ... doesn't have to change in lockstep. Not updating dependencies is the equivalent of never brushing your teeth. Yes, you can ship code faster in the short term, but version skew will be a
216.
▲
by
tylerhou
4y ago
A lot of the work is only because of the large size of the codebase. E.g. Forge and ObjFS, which is necessary because compiling the really large binaries on a normal workstation would OOM it. Or take days. https://bazel.build
217.
▲
by
tylerhou
4y ago
Because your execs are affiliated with other companies and suddenly those other companies lack liquidity and need a loan. If you’re Tether, that other company is Bitfinex. If you’re FTX, that other company is Alameda. If the other company m
218.
▲
by
tylerhou
4y ago
There is a lot that goes into distribution. It’s not just scping your git repository to some machines on AWS. It’s developing the infrastructure, processes, tooling, etc. to create and package hundreds of millions of doses of a highly speci
219.
▲
by
tylerhou
4y ago
It’s also technically true if you ask about an ounce of gold vs. an ounce of feathers (gold is heavier) because gold ounces are different from feather ounces.
220.
▲
by
tylerhou
4y ago
A bit trickier is a huge understatement.
221.
▲
by
tylerhou
4y ago
When Apple compensates employees with shares they issue them out of thin air IIRC. These are dilutive and are listed on their quarterly financial statements. So yes, they are financing projects with stock.
222.
▲
by
tylerhou
4y ago
You only need to charge it at most every few months. It's not really a big concern.
223.
▲
by
tylerhou
4y ago
(Also this is not counting their sponsorships, merch sales, etc.)
224.
▲
by
tylerhou
4y ago
Setup scripts that mutate an operating system are fragile. Break something? Unless you understand how the scripts work (which will become stupidly complex at a scale like Uber’s) you will have to reinstall your machine. Or you will have to
225.
▲
by
tylerhou
4y ago
Apollo is a large project with many features. I’m sure they have many teams working on relatively-self contained subcomponents.
226.
▲
by
tylerhou
4y ago
What's the alternative? 1. Have people manage their own secrets storage? Most people don't have the time or ability do this securely either. I'd rather pay someone else to secure infra, code, distribution, encryption, backups
227.
▲
by
tylerhou
4y ago
When I read "iterator" I think of an object that points into the vector and can be advanced. For Rust's vector, that is std::slice::Iter ( https://doc.rust-lang.org/std/slice/struct.Iter.html ). When
228.
▲
by
tylerhou
4y ago
Safe iterators have to have bounds checks for dynamically sized arrays; otherwise, how you prevent iterators from walking past the end?
229.
▲
by
tylerhou
4y ago
With bounds checking by default, even if a compiler can't statically prove that an index is in bounds, if the index in practice is always in bounds, the compiler inlines the check/branch into the calling function, and you're
230.
▲
by
tylerhou
4y ago
Previously: https://news.ycombinator.com/item?id=33781563
231.
▲
by
tylerhou
4y ago
By the way, it is fairly easy to purchase a flag that has been flown over the capital. Just contact your senator or representative. California even seems to have an automated flow: https://www.feinstein.senate.gov/public
232.
▲
by
tylerhou
4y ago
I don't see how working at an HFT exploits anyone more than a normal office job. I think a better argument is that earning to give emphasizes careers that produce the "most" value as measured by the market. But there are plen
233.
▲
by
tylerhou
4y ago
I think there is a reasonable explanation for removing OW1. Queue times were already a huge problem (which is a large reason why they moved to one tank, as nobody wanted to play tank). Keeping around OW1 would have fragmented the player bas
234.
▲
by
tylerhou
4y ago
> Sorry for being annoying. I wasn't trying to be. Thanks, no worries. You're right that Java doesn't have this performance problem because it (apart from primitives) has no implicit copies. (So the code wouldn't copy
235.
▲
by
tylerhou
4y ago
Sorry, because of value semantics. (Also, you wrote "performance costs of inopportune value semantics". So the correction is annoying; you know what I meant.) This stuff seeps in without the programmer realizing it because Go ma
236.
▲
by
tylerhou
4y ago
The performance issue here is not value semantics, it's the overhead of automatic lifetime management. The copy is cheap. The lifetime tracking is not because it forces a heap allocation and creates additional GC pressure. In fact, ass
237.
▲
by
tylerhou
4y ago
The prefetcher described in the paper implemented in the M1 is nowhere near a prefetcher that would be able to prefetched linked-list nodes. > We tested for the existence of four DMPs: both single- and two-level versions of pointer-chasi
238.
▲
by
tylerhou
4y ago
Without extra work you can’t use a vector like a queue, and a circular buffer doesn’t necessarily support all types and/or preserve iterators on insert. Could use a deque, a blocked linked list. But IMO list is fine if it’s not clearly
239.
▲
by
tylerhou
4y ago
I have some experience using/modifying linked-list benchmarks ( https://github.com/google/multichase ) specifically to test memory latency. It is extremely difficult, maybe impossible, to design a prefetcher that ca
240.
▲
by
tylerhou
4y ago
If you're iterating, sure, use a vector. If you're pulling from a queue and doing a lot of processing, maybe an RPC -- does the ~70ns memory latency hit really matter that much? Probably not.
More ›