Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
mgaunard
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
6 ms
·
121.
▲
by
mgaunard
7mo ago
Reduced to 80km/h since 2018.
122.
▲
by
mgaunard
7mo ago
The dynamic linker can clearly tell you where it looks for files and in which order, and where it finds them if it does. You can also very easily harden this if you somehow don't want to capture libraries from outside certain paths. Yo
123.
▲
by
mgaunard
7mo ago
You can use S3 or equivalent; a normal filesystem (networked or not) also works well. You hash all the inputs that go into building foo.cpp, and then that gives you /objs/<hash>.o. If it exists, you use it; if not, you build
124.
▲
by
mgaunard
7mo ago
I have several times built my own system to do just that when it wasn't even my main job. Doesn't take more than a couple of days. Bazel is certainly not the solution; it's arguably closer to being the problem. The worst buil
125.
▲
by
mgaunard
7mo ago
You'd be wrong. If the build system has full knowledge on how to build the whole thing, it can do a much better job. Caching the outputs of the build is trivial. If you import some ready made binaries, you have no way to guarantee they
126.
▲
by
mgaunard
7mo ago
This is all wishful thinking disconnected from practicalities. First you confuse API and ABI. Second there is no practical difference between first and third-party for any sufficiently complex project. Third you cannot have multiple version
127.
▲
by
mgaunard
7mo ago
ODR violations are very easy to trigger unless you build the whole thing from source, and are ill-formed, no diagnostic required (worse than UB).
128.
▲
by
mgaunard
7mo ago
Build everything from source within a single unified workspace, cache whatever artifacts were already built with content-addressable storage so that you don't need to build them again. You should also avoid libraries, as they reduce gr
129.
▲
by
mgaunard
7mo ago
Not necessarily, I already explained how (resource binding). Close the socket, all handlers are cancelled, context can be freed immediately. The socket owns the data.
130.
▲
by
mgaunard
7mo ago
It's fundamentally different; Rust entirely rejects the notion of a stable ABI, and simply builds everything from source. C and C++ are usually stuck in that antiquated thinking that you should build a module, package it into some libr
131.
▲
by
mgaunard
7mo ago
In my experience, no one does build systems right; Cargo included. The standard was initially meant to standardize existing practice. There is no good existing practice. Very large institutions depending heavily on C++ systematically fail t
132.
▲
by
mgaunard
7mo ago
What about hyphenization?
133.
▲
by
mgaunard
7mo ago
A coroutine doesn't do anything more than a callback does -- it's just syntactic sugar. The default behaviour of many asynchronous systems is to extend the lifetime of context data until all the asynchronous handlers have run. You
134.
▲
by
mgaunard
7mo ago
This is literally what coroutines are, syntactic sugar to generate nested lambdas. Except in C++ this removes a fair amount of control given how low-level it is.
135.
▲
by
mgaunard
7mo ago
Using shared_ptr everywhere is an antipattern. The whole point of controlling the capture is controlling the memory layout, which is what C++ is all about. Even with Asio, you don't really have to do this. It's just the style the
136.
▲
by
mgaunard
7mo ago
Given a coroutine body ``` int f() { a; co_yield r; b; co_return r2; } ``` this transforms into ``` auto f(auto then) { a; return then(r, [&]() { b; return then(r2); }); }; ``` You can ea
137.
▲
by
mgaunard
7mo ago
You can embed the state in your lambda context, it really isn't as difficult as what people claim. The author just chose to write it as a state machine, but you don't have to. Write it in whatever style helps you reach correctness
138.
▲
by
mgaunard
7mo ago
Coroutines is just a way to write continuations in an imperative style and with more overhead. I never understood the value. Just use lambdas/callbacks.
139.
▲
by
mgaunard
7mo ago
The age check laws is just funneling money directly to VPN companies. There's no way anyone sensible would give over their identity to dodgy websites. It's easier to just pretend to be in a different country.
140.
▲
by
mgaunard
8mo ago
What the hell do allocations even have to do with time to read from memory... It seems all of these Rust performance warriors have no understanding of computer architecture fundamentals.
141.
▲
by
mgaunard
8mo ago
The real question is why wouldn't you prefer the terminal way over silly GUIs?
142.
▲
by
mgaunard
8mo ago
Does it support C++?
143.
▲
by
mgaunard
8mo ago
Ops people are typically more useful given you probably already have devs.
144.
▲
by
mgaunard
8mo ago
As far as I can tell Google Gemini has the best overall integrations (Android, WearOS, Google Home) with the only voice recognition that actually works (Gemini Live). Anthropic Claude has the best integrations with coding; what would make s
145.
▲
by
mgaunard
8mo ago
"Think of the children" is merely a political argument to get a law to be popular among normal people.
146.
▲
by
mgaunard
8mo ago
I wouldn't be squatting in the first place, and I personally always invested in improving whatever place I was living in even if just renting. So it's difficult for me to relate to those issues.
147.
▲
by
mgaunard
8mo ago
Cookware that isn't flat is usually because it is warped, which happens if you mistreat your cookware with thermal shock.
148.
▲
by
mgaunard
8mo ago
Most convection ovens are electric, not sure why you needed the gas...
149.
▲
by
mgaunard
8mo ago
I do not have a microwave, but I remember having one, and never managed to intuitively use it to iterate on my cooking. Meanwhile, throw stuff in the pan, move it around, adjust the temperature, add in some stuff as it goes, is a much more
150.
▲
by
mgaunard
8mo ago
I think most traditional software engineers do indeed understand what transformations compilers do.
More ›