Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
gorset
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
5 ms
·
1.
▲
by
gorset
8mo ago
One of the advantages of of protobuf I never see anyone highlight is how neat and well-designed the wireformat is, in terms of backward/forward compatibility and lowlevel stuff you can do with it. Very useful when building big and dema
2.
▲
by
gorset
9mo ago
This brings back memories debugging an azul zing bug where an effectively final optimization ended up doing the wrong thing with zstd-jni. It was painful enough that I couldn’t convince the team to enable the optimization again for years af
3.
▲
by
gorset
11mo ago
I agree. It’s the enshittification of the internet. Luckily we still have infrastructure providers with more sensible offerings. We don’t have to use aws, gcp, etc.
4.
▲
by
gorset
1y ago
I've used bazel for about 10 years, all in small orgs. Right now, single digit team. I don't think there exists a better solution for a project mixing Java and C/C++ than Bazel. The new module system for bazel has matured a l
5.
▲
by
gorset
1y ago
That’s the default in the monorepos I’ve worked on. When a third party dep is broken or needs a workaround, just include a patch in the build (or fork). Then those patches can be upstreamed asynchronously without slowing down development.
6.
▲
by
gorset
1y ago
I enjoyed both talks a lot. I really appreciate the work done to evolve Java. They seem to be able to both fix earlier mistakes (and there were many!) and new ones from happening. While I see other languages struggling with the weight of co
7.
▲
by
gorset
1y ago
I think the «best practices» found in Java enterprise has meant that a lot of people think all Java has to look like that. High performance Java is awesome and can be competitive with C++ and Rust for non trivial systems, thanks to much bet
8.
▲
by
gorset
1y ago
Mechanisms for getting the linux kernel out of the way is pretty decent these days, and CPUs with a lot of cores are common. That means you can isolate a bunch of cores and pin threads the way you want, and then use some kernel-bypass to ac
9.
▲
by
gorset
1y ago
Isolating a core and then pinning a single thread is the way to go to get both low latency and high throughput, sacrificing efficiency. This works fine on Linux, and common approach for trading systems where it’s fine to oversubscribe a bun
10.
▲
by
gorset
1y ago
In a previous project we used fixedint32/64 instead of varint values in the schema for messages where performance was critical. That left only varint used for tags. For encoding we already know the size at compile time. We also don’t h
11.
▲
by
gorset
2y ago
Nice work! I love the care and discussion around low level optimizations, as such things are often ignored. There are a lot of interesting variants of rank/select and other succinct data structures which has interesting tradeoffs. Mayb
12.
▲
by
gorset
2y ago
The number of unique int32 values is not that great, and a full bitset would only be 512MB. Hard to bit a dense bitset in performance. As a general purpose data structure, I would look at roaring bitmaps for this purpose, which has good tra
13.
▲
by
gorset
2y ago
Selective testing is great also for smaller projects to help keep velocity high for merging and working with branches with many commits. I implemented selective testing using bazel for a CI some years ago, and it was painful to get it right
14.
▲
by
gorset
2y ago
I'm a big fan of this solution! It's always been annoying to perform all the ceremony involved in deploying a system with a bunch of files, with config, scripts and system written in a bunch of different languages. In my current p
15.
▲
by
gorset
2y ago
I always found the existing bazel integrations annoying. My solution has been to generate .classpath based on a set of bazel queries. Not what's officially recommended, but it has worked great for the projects I've been involved i
16.
▲
by
gorset
2y ago
There's a lot of ceremony to run jdtls! I find it easier to just install language servers using brew. Then the command can be simplified to cmd = { 'jdtls', '-data', home_dir .. '/.local/state
17.
▲
by
gorset
2y ago
They could also have gone the commercial route and gotten Zing with their pauseless GC. It’s been around forever and they even cover Cassandra in their marketing. https://www.azul.com/technologies/cassandra/
18.
▲
by
gorset
2y ago
Patch series comes from the linux kernel workflow, which git was developed to support. https://kernelnewbies.org/PatchSeries In this workflow you review every commit and not just the branch diff. Each commit is crafted care
19.
▲
by
gorset
2y ago
The use case is when you look at a branch as a series of patches. Reviewing a clean set of commits is much easier than a branch full of mistakes and wrong paths taken. Useful when we optimize for reviewing and good history for future mainte
20.
▲
by
gorset
3y ago
I struggle to use lmdb when using resource isolation (like docker, nomad exec driver). The hidden complexities really become apparent when you build largish systems using shared infrastructure. Anything is easy if you have a dedicated machi
21.
▲
by
gorset
3y ago
I was asking around in my network after experience with self hosting S3 like solutions. One serious user of SeaweedFS recommended looking into min.io instead. Another serious user of min.io recommend looking into SeaweedFS instead…
22.
▲
by
gorset
3y ago
There are some workarounds. In my company we have a script that generated IDE files automatically. It uses `bazel query` and `bazel build` to find all external and non native dependencies, and then generates IDE config and files for rust, j
23.
▲
by
gorset
3y ago
I have fond memories of my grandfather serving RC Cola to me in a small town in Norway 30 years ago. Imported to the town by a small independent shop focusing on cheaper alternatives to the big brands. Few years ago, IKEA sold RC Cola in th
24.
▲
by
gorset
3y ago
The lack of “interface” was one of the main reasons I never ended up using scheme to build production systems. I loved playing with scheme in my university days 20 years ago, and loved how one can make up any fancy programming concept usin
25.
▲
by
gorset
5y ago
We use gitlab and review a commit at a time and do CI runs on each commit in the MR branch. Just plain git with the fixup/interactive rebase dance. Gitlab is not optimized for this workflow, but it’s liveable. Gitlab-runner can execute
26.
▲
by
gorset
5y ago
Actually you have both 32 and 64 bit wire types: - wire_type=1 64 bit: fixed64, sfixed64, double - wire_type=5 32 bit: fixed32, sfixed32, float Consider a valid protobuf message with such a field. If you can locate the field va
27.
▲
by
gorset
5y ago
It's obviously possible to do protobuf with zero parsing/marshalling if you stick to fixed length messages and 4/8 byte fields. Not saying that's a good idea, since there are simpler binary encodings out there when you n
28.
▲
by
gorset
6y ago
> Aside from the mmap() call, you can do all this without even allocating any memory at all. I think this is the important point when it comes to discussing zero-copy. I've written a custom protobuf implementation for java which can
29.
▲
by
gorset
7y ago
An array of sorted hashes is also nice combined with interpolation search [0] (or hinted binary search) which can give a nice speedup compared to "naive" binary search. [0] https://en.wikipedia.org/wiki/Interp
30.
▲
by
gorset
7y ago
Nice to see more userspace implementations of wireguard. I've been testing out wireguard's linux kernel module, but experienced too much jitter due to wireguard not respecting isolcpus. Probably possible to make the kernel module
More ›