Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
Diggsey
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
29 ms
·
271.
▲
by
Diggsey
5y ago
This is very interesting: I have a bit of an aversion to implicit await, but guaranteed completion does make that slightly less bad in my mind. There are a few things that I felt were a bit glossed over: 1) How exactly does an executor full
272.
▲
by
Diggsey
5y ago
See my other reply: I'm not talking about bugs, I'm talking about tech debt and design mistakes.
273.
▲
by
Diggsey
5y ago
I'm not talking about bugs, I'm talking about tech debt and design problems. Tests can't catch those things, and you can't rollback six months of work...
274.
▲
by
Diggsey
5y ago
Because in a monolith, the problem can easily extend into all parts of the system, making it very difficult to continue feature work whilst fixing the problem. In a microservice, in the absolute worst case (let's say a foundational tec
275.
▲
by
Diggsey
5y ago
> But that's normal and expected on any non-trivial codebase that has been evolving over some amount of time. Having to stop all feature work is not normal. A healthy business should be able to have a certain proportion of its engin
276.
▲
by
Diggsey
5y ago
There are three main ways governments can change behaviours: - Tax the behaviour they want to discourage. - Subsidise a behaviour they want to encourage. - Outlaw a behaviour they want to discourage. It looks like all three were attempted b
277.
▲
by
Diggsey
5y ago
There are plenty more reasons than the three you've mentioned... However, the one thing that's not a reason to use microservices and which the article brought up a lot, is to increase resilience. Microservices do not increase re
278.
▲
by
Diggsey
5y ago
Pointers in Rust behave the same way. The problem is that the "array index" operator in Rust returns a reference to the indexed element, not a pointer, and references must be safely dereferenceable.
279.
▲
by
Diggsey
5y ago
I agree with you somewhat: especially when starting a project, it just makes no sense to write tests up-front (again, unless the product is the tests). That said, when making incremental changes to an existing project, tests (and in some ca
280.
▲
by
Diggsey
5y ago
If the author believes it to be illegal, why should they care about "fixing it"? Murderer: <kills a person with a hammer> You: Let's introduce a new law to make killing people with hammers illegal. Author: We don't
281.
▲
by
Diggsey
5y ago
> states that money not tracked by the government is illegal. And forgery laws state that you can't draw whatever you want on pieces of paper. What a law states has nothing to do with its importance. Many other laws (involving crime
282.
▲
by
Diggsey
5y ago
> This is not in good faith at all. What do you mean? The article is arguing that crypto-currencies (as they are run today) are illegal under existing laws, therefore we don't need new laws. Regardless of whether this is true or not
283.
▲
by
Diggsey
5y ago
"Memory model" is also an academic term which (among other things) describes how memory behaves WRT to concurrent opreations, so I would not use it in this context. Memory management is the correct term. Rust the language does not
284.
▲
by
Diggsey
5y ago
By that definition C++ is also garbage collected and managed. Given that C++ is oft cited as the canonical unmanaged non-GCed language, this seems like a not very useful definition. (And you can call `alloc` and `free` from Rust, https:&
285.
▲
by
Diggsey
5y ago
To be clear: there is no failover happening, even though we do have a failover instance. If there was, we could at least detect that something had happened after the fact! The Cloud SQL failover only occurs in certain circumstances, and in
286.
▲
by
Diggsey
5y ago
> Rust people keep saying they have no Garbage Collector, when they have a Region Based Garbage Collector. Rust does not have a region based garbage collector. Memory management in Rust works exactly the same as in does in C++ (ie. destr
287.
▲
by
Diggsey
5y ago
Also, if you use Cloud SQL in HA mode, it may still go down randomly for up to 90s with no warning or entry in the operation log, and this is considered expected behaviour. Here is a direct quote from google support when we contacted them a
288.
▲
by
Diggsey
5y ago
My mistake - SafeD was introduced since I stopped using D, so I was going off this article: https://dlang.org/articles/safed.html#safed-subset > When you enter SafeD, you leave your pointers, unchecked casts and uni
289.
▲
by
Diggsey
5y ago
What I meant by this is: if you are starting a project today, and have to choose between C and C++, there are certain reasons why you might choose C over C++. Those same reasons would apply for choosing C over D. They might not apply for ch
290.
▲
by
Diggsey
5y ago
I used D for a while. It improves several things over C++, among them: - More powerful metaprogramming capabilities. - Better module and library system. - Nicer syntax. The problem IMO is it's just not enough to justify a total move fr
291.
▲
by
Diggsey
5y ago
You're conflating traits with generics. Generics exist without traits, and in Rust they are more closely aligned with C++ templates than anything else, since they are implemented via monomorphisation, whereas in Haskell they are not. R
292.
▲
by
Diggsey
5y ago
Why not? Rust isn't limited to what Haskell does, and a lot of it's features are driven by a desire for parity with C++, which does have variadic generics. Other languages in the same domain (like D) also have variadic generics.
293.
▲
by
Diggsey
5y ago
Switching to a threaded model would be a lot of work, but there is a simpler solution that retains most of the benefits: using a process-per-connection model for active connections only, and allowing a single process to have multiple idle
294.
▲
by
Diggsey
5y ago
You may be right that it's easy to set up, but pgbouncer doesn't help with this problem most of the time. It's a problem that needs to be solved within postgres. There are three pooling modes: - Session pooling. Doesn't
295.
▲
by
Diggsey
5y ago
Unfortunately what you're describing never actually occurs in practice, unless you're simply rebuilding an existing piece of software, which has only technical improvements (ie. better performance, fewer bugs, etc). The cases wher
296.
▲
by
Diggsey
5y ago
Not sure where you got that idea. The effect of gravity does travel at the speed of light (this is why gravitational waves exist). https://en.wikipedia.org/wiki/Speed_of_gravity
297.
▲
by
Diggsey
5y ago
I was only commenting on electrolysis, I did not make any statement about hydrogen power in general. However, now that you brought it up, the other issues that you mention are very surmountable: - Transport. You can either transport hydroge
298.
▲
by
Diggsey
5y ago
> Because electrolysis is highly inefficient Actually it's pretty efficient. According to wikipedia, efficiency ranges from 70% for the cheaper method, to 80% with more expensive catalysts. Theoretical efficiency is 94%.
299.
▲
by
Diggsey
5y ago
The author is referring to the case where you have multiple traits, and want to provide implentations like: impl<T: Cat> Animal for T { ... } impl<T: Dog> Animal for T { ... } This is impossible without specializati
300.
▲
by
Diggsey
5y ago
I like that it is a literal "back door" in that there's an opening in the barrier at the back of the brain.
More ›