Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kbolino
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
17 ms
·
271.
▲
by
kbolino
1y ago
This is an interesting perversion of Amdahl's law. Yes, if you are looking at a single request-response interaction over the Internet in isolation and observing against wall clock time, the time spent on JSON (de-)serialization (unless
272.
▲
by
kbolino
1y ago
I think the "omitempty" tag name might be too tarnished to keep around, but I think the distinction made between its redefined meaning and the new "omitzero" tag in v2 is quite useful: - "omitempty" will omit a
273.
▲
by
kbolino
1y ago
I'm finding conflicting info on this. It seems to be down to the specific GPU/core/microarchitecture. In some cases, the "missing" FP64 units do physically exist on the dies, but have been disabled--likely some of t
274.
▲
by
kbolino
1y ago
Do cards with intentionally handicapped FP64 actually use anywhere near their TDP when doing FP64? It's my understanding that FP64 performance is limited at the hardware level--whether by fusing off the extra circuits, or omitting them
275.
▲
by
kbolino
1y ago
Yes, though I hadn't thought about it in those terms at first. The modern, technocratic government controls policy through many means, but monetary policy is a major one. The switch to fully fiat currency was an important transition po
276.
▲
by
kbolino
1y ago
There is something in Rust that can help, though. You can define multiple impls for different bounds. Supposing we started off with a trait for expression nodes: pub trait ExprNode { fn eval(&self, ctx: &Context) -> Value; }
277.
▲
by
kbolino
1y ago
More specifically, you cannot add new abstract (aka "pure virtual") methods to an existing class/interface/trait when that class/interface/trait is already extended/implemented by code you don't con
278.
▲
by
kbolino
1y ago
Then it's not money and so it's not really relevant. It has little to no bearing on the money supply or the value of money. The issue is not double taxation per se, it is the inability to pay taxes at all. In order to pay the tax
279.
▲
by
kbolino
1y ago
Neither exempts you from taxes, which not only must be paid but specifically must be paid in fiat.
280.
▲
by
kbolino
1y ago
Go has taken exactly this stance, at least since Go 1.22 from 18 months ago. They settled on 8 rounds of ChaCha with 300 bytes of internal state to amortize the latency. The end result is something only 1.5-2x slower than (their particular
281.
▲
by
kbolino
1y ago
DNS for key management is nonviable due to the lack of uptake of DNSSEC. Though it's an interesting hypothetical question whether that would still have been the case without X.509.
282.
▲
by
kbolino
1y ago
Yeah, "experimental" may not be the right word, but actually getting to use the 3-1 split required all of the following: at least 3GB of physical RAM (obviously), the O/S booted with /3GB flag, and the application in q
283.
▲
by
kbolino
1y ago
FWIW there is an official term for "code points excluding surrogates", it is "Unicode scalar value".
284.
▲
by
kbolino
1y ago
In order to implement grapheme cluster segmentation, you have to start with a sequence of Unicode scalars. In practice, that means a sequence of 32-bit integers, which is UTF-32 in all but name. It's not a good interchange format, but
285.
▲
by
kbolino
1y ago
What problem are you trying to solve? If you just want constant-time operations, you just need dedicated instructions. Maybe they run on dedicated cores, but that's an implementation detail. I think this is a good idea, and it feels li
286.
▲
by
kbolino
1y ago
Thanks! I was able to find some additional info on no-MMU Linux [1], [2], [3]. It seems position-independent executables are the norm on regular (MMU) Linux now anyway (and probably have been for a long time). I took a look under the covers
287.
▲
by
kbolino
1y ago
True, you don't have to go full microkernel just to have messages passed though a buffer. However, if the buffer is shared by all processes, it does need to have some protection. I guess you could assign one buffer per process (which m
288.
▲
by
kbolino
1y ago
That's fair. If so, then you still can have things like drivers and HAL and so on too. However, there's no hard security barriers. How do multiple processes actually work, though? Is every executable position-independent? Does the
289.
▲
by
kbolino
1y ago
Hmm. I don't understand how that would work. I think it would be possible for e.g. microkernels to greatly reduce the size of the reservation (though not to eliminate it entirely). However, I can't imagine how you would handle the
290.
▲
by
kbolino
1y ago
Applications don't get 4GB with a 32-bit address space. The practical split between application and kernel was usually 1-3 or 2-2 with 3-1 being experimental and mooted with the switch to 64-bit. Nowadays with VRAM being almost as larg
291.
▲
by
kbolino
1y ago
Yeah, a lot of what defines "operating system" for us nowadays is downstream of having memory isolation. Not having an MMU puts you more into the territory of DOS than UNIX. There is FreeDOS but I'm pretty sure it's x86-
292.
▲
by
kbolino
1y ago
Yes, that's how Cell works. If you want to work with the data in place, you need a RefCell instead.
293.
▲
by
kbolino
1y ago
On the other end, when Windows first started having multiple users and locking down write access to system directories (*), lots of video games (and some other programs besides) decided to just dump their files anywhere. Just looking at m
294.
▲
by
kbolino
1y ago
I would be surprised if Android has a reputational issue among users. Maybe at the margins, but not enough to significantly affect market share. Most people have already sorted into iOS and Android camps already. To whatever extent Google m
295.
▲
by
kbolino
1y ago
Any language running on the JVM (Java, Kotlin, etc.) and CLR (C#, VB.NET, etc.). As long as you don't compile directly to native code and you aren't running in a locked-down environment where codegen is disabled, you can generate
296.
▲
by
kbolino
1y ago
Ideally, I would want Optional[T] to encode the same as T when a value is present, and to encode in a configurable way when the value is absent. Admittedly, the nothing to null problem exists with *T too, and even with *T and `json:",o
297.
▲
by
kbolino
1y ago
It is rare to encounter this in practice, and it does get picked up by the race detector (which you have to consciously enable). But the language designers chose not to address it, so I think it's a valid criticism. [1] Once you know a
298.
▲
by
kbolino
1y ago
There's also atomic operations (sync/atomic) and higher-level abstractions built on atomics and/or mutexes (sempahores, sync.Once, sync.WaitGroup/errgroup.Group, etc.). I've used these and seen them used by others.
299.
▲
by
kbolino
1y ago
There's some other issues, too. For JSON, you can't encode Optional[T] as nothing at all. It has to encode to something, which usually means null. But when you decode, the absence of the field means UnmarshalJSON doesn't get
300.
▲
by
kbolino
1y ago
You may already know this, but let-bindings are not necessarily on the stack. The reference does say they are (it's important to remember that the reference is not normative), and it is often simpler to think of them that way, but in r
More ›