Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
sujayakar
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
9 ms
·
31.
▲
by
sujayakar
5y ago
it seems like libraries can't use import maps though, right? the final binary can provide that flag, but is there a way for library dependencies to specify their own import maps? the spec [1] has support for scoping, but I didn't
32.
▲
by
sujayakar
6y ago
Note that this paper was first submitted to arXiv in May 2020. I haven't been able to find any previous discussion by an expert, though.
33.
▲
by
sujayakar
6y ago
> Bit-reverse is unimplemented on x86 for some reason, but bswap64() is good enough. You totally nerd-sniped me! I implemented a basic "reverse 128-bit SIMD register" routine with `packed_simd` in Rust. The ideas to process 4 b
34.
▲
by
sujayakar
6y ago
Very cool! Independent of the cool use of `aesenc` and `aesdec`, the features for skipping ahead in the random stream and forking a separate stream are awesome. > My current home project is bump-allocator + semi-space garbage collection
35.
▲
by
sujayakar
6y ago
I'm very interested in this space! I've been hacking on some open-source libraries around these ideas: rsdict [1], a SIMD-accelerated rank/select bitmap data structure, and arbolito [2], a SIMD-accelerated tiny trie. For rsdi
36.
▲
by
sujayakar
6y ago
are there any good composable programming abstractions for expressing progress in a system? as an analogy, I really like RAII-based cancellation for futures in rust. dropping a future means the caller is no longer interested, and the sane b
37.
▲
by
sujayakar
6y ago
For Question 1, you can turn division by a known constant into multiplications + bitshifts using a library like `libdivide`[1]. Then, we could use the regular rejection sampling algorithm mentioned in the annotated code [2]. I'd be cur
38.
▲
by
sujayakar
6y ago
if you can email me (my HN username @dropbox.com) the email address associated with your account once you've sent the bug, I can take a look!
39.
▲
by
sujayakar
6y ago
we just use our regular CI infrastructure for running linux, macOS, and windows. we have infrastructure for managing VMs for our different supported platforms, setting up filesystems, and so on. here's a talk from one of our engineers
40.
▲
by
sujayakar
6y ago
yeah, we don't merge file contents. it's really hard to do this well, since you'd need to implement something like operational transforms for every different file type, and the cost of getting wrong is really high, since we&#
41.
▲
by
sujayakar
6y ago
here's some of the greatest hits from memory: 1) when we upload a file, we first ask the server which blocks we need to upload. this allows us to deduplicate blocks with other files or previous revisions of files you have. I had writte
42.
▲
by
sujayakar
6y ago
hey, can you file a bug from the app? it will collect a report that we can use to diagnose. there's a "Report Bug" option adjacent to "Preferences..."
43.
▲
by
sujayakar
6y ago
hey all, author of the previous post ( https://news.ycombinator.com/item?id=22595782 ) here, and I'm happy to answer any questions about the system! I think the author isaac is here too.
44.
▲
by
sujayakar
7y ago
we still have to check every file on startup, since we use the `ReadDirectoryChangesW` call on windows, but it should be less expensive on nucleus. but, now that we've rolled out nucleus, we can start exploring going beyond sync engine
45.
▲
by
sujayakar
7y ago
I think a lot of projects in Rust take a hybrid approach with async, where they have some ambient "runtime" (like tokio, for example) and allow forking off futures to its executor. this is similar to the `go` statement referenced
46.
▲
by
sujayakar
7y ago
and on lobste.rs too :) https://lobste.rs/s/ob6a8z/rewriting_heart_our_sync_engine
47.
▲
by
sujayakar
7y ago
yep! it was 100% critical to have the experts on sync engine classic involved with nucleus. we shared the oncall rotation of maintaining the old system among the entire rewriting team.
48.
▲
by
sujayakar
7y ago
IIRC, we had a team of about six engineers working on the core system itself plus a few product teams building features on top. and yes, the team did get recognition for their work, which definitely helped when we decided to begin rewriting
49.
▲
by
sujayakar
7y ago
for mac it's FSEveents: https://developer.apple.com/documentation/coreservices/file_... . > As soon as I paid for the Plus Plan, I started having to wait several minutes for a file to upload. Even from one
50.
▲
by
sujayakar
7y ago
sure! the rust team has done a fantastic job with the language design, and once a programmer gets over the initial learning curve, the ergonomics of "pair programming" with the compiler are really great. they've put a lot of
51.
▲
by
sujayakar
7y ago
yeah, I'm familiar with those tools, and other teams at dropbox have used TLA+ for verifying their protocols, but we haven't done it for our system yet. we've spent most of our time on testing working on better randomized tes
52.
▲
by
sujayakar
7y ago
we actually extensively use structured concurrency patterns with futures in rust. it's easy to have "nested" futures in rust, where one top-level future (our control thread) owns its subcomponents (like a protocol component
53.
▲
by
sujayakar
7y ago
hey everyone, author here! happy to answer any questions about the post, our system, or our usage of rust :)
54.
▲
by
sujayakar
7y ago
does Go's compiler emit SIMD instructions? it'd be cool to see the disassembly for the final, column order version since that loop would vectorize well. the same question goes for the speed-of-light benchmark -- there may be roo
55.
▲
by
sujayakar
9y ago
> In fairness, I don't recall any literature on these (as is the norm for high-end database computer science). Check out Navarro's book Compact Data Structures: A Practical Approach . It's a really great survey of the li
56.
▲
by
sujayakar
10y ago
The modes are the sequence of seven notes you're choosing from. If we're counting in half-steps (where 12 half-steps is an octave and gets you back to the same note), the different modes would look like... 1
57.
▲
by
sujayakar
10y ago
Yeah, I think it's pretty interesting to compare Germany with Japan in that case. Japanese cultural memory and historiography intensely remembers the suffering of civilians from famine, firebombing, and nuclear weapons [1] (but rarely
58.
▲
by
sujayakar
10y ago
It's one of those moments in war where technology leaps ahead of international law. Additional Protocol I to the Geneva Conventions in 1977 outlawed the attack of "works or installations containing dangerous forces" to the c
59.
▲
by
sujayakar
10y ago
Try Leavitt's Modern Method for Guitar! I'm totally in the same boat, and forcing myself to "slow down" and play really simple songs well in standard notation has helped my confidence a ton. It's totally reasonabl
60.
▲
by
sujayakar
12y ago
That's so cool! Any fun stories or obscure algorithms that came up?
More ›