Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kbolino
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
12 ms
·
181.
▲
by
kbolino
1y ago
Deletion creates a hole. The hole can be filled by something else. This is a form of mutation. What you probably want instead is one-way revocation. You place a permanent marker that says "do not use this release because it is {broken,
182.
▲
by
kbolino
1y ago
Yes, and that's not what I meant. I'm sorry for the confusion, but I have clarified already. I meant charging the host from the peripheral, which could be a wall charger, a battery pack, a monitor, etc. I was thinking of laptops w
183.
▲
by
kbolino
1y ago
I think your proposed solution is a great idea, but we're evaluating it at the wrong layer of the software stack. The real problem is Git(Hub)'s (mis-)use of SSH, not SSH itself per se. Adding full TLS and HTTP stacks to SSH clien
184.
▲
by
kbolino
1y ago
(I have also responded to you in kragen's subthread, you may want to consolidate the discussion there)
185.
▲
by
kbolino
1y ago
Let us set aside the reasons why SSH adopted a different certificate format (namely, that X.509 is much more complex than they needed at the time). WebPKI only realistically serves a small portion of the SSH hosts out there. This is quite d
186.
▲
by
kbolino
1y ago
Ok, I think I follow. You'd widen the type under the hood but not expose this fact to user code. However, most longs are just numbers that have no metadata. I guess you'd set the metadata portion to all zeroes in that case. This f
187.
▲
by
kbolino
1y ago
I have a laptop with USB-C ports which cannot charge from them at all. Instead, it has a DC barrel connector, and that is the only accepted charging source. That same laptop, and a desktop PC I have, do not support USB-PD over USB-C, so onl
188.
▲
by
kbolino
1y ago
There is no doubt some number of SSH servers which have public domain names and/or public IP addresses, can accept DNS verification or running a completely unrelated HTTP server for IP verification, don't mind having their existen
189.
▲
by
kbolino
1y ago
That seems worse. For all the wrong code that assumes long can store a pointer, there's likely a lot more wrong code that assumes long can fit in 64 bits, especially when serializing it for I/O and other-language interop. Also, 12
190.
▲
by
kbolino
1y ago
I think webauthn/passkeys will be more successful (frankly I think they already have been) because they're not part of TLS. The problem with client certs, and other TLS client auth like TLS-SRP, is that it inherently operates at a
191.
▲
by
kbolino
1y ago
As far as I can tell, every single Apple Silicon MBP has all ports at full speed. The early Apple Silicon Mac Minis (M1, M2) also had this arrangement. However, as noted elsewhere, this has changed (they now have 3 Thunderbolt ports and 2 n
192.
▲
by
kbolino
1y ago
The CA/Browser Forum does not want to support this either. They are only interested in public, domain-verified websites served over HTTPS. They forbid client certificates and dual-use CAs, they require certificate transparency and shor
193.
▲
by
kbolino
1y ago
Shared write access to the same git repo directory can be done sanely, but you have to get a number of things right (same group for all users, everything group writable, sticky bit on directories, set config core.sharedRepository=group): h
194.
▲
by
kbolino
1y ago
Interesting. I can see how USB-A has better friction/grip in the port (when made properly anyway), but I can't say it has better longevity; I've broken plenty of USB-A connectors and even ports. I am also glad to be rid of th
195.
▲
by
kbolino
1y ago
Are you comparing USB-C to its direct predecessors, things like (micro-)USB-A/B, (mini-)HDMI, and (mini-)DP, or to more distant ancestors like PS/2 and D-sub/VGA/DVI?
196.
▲
by
kbolino
1y ago
What I see here is an evolution away from proprietary connectors (but I definitely agree that they strongly favored such connectors in the past). By the time of mini-DP and Thunderbolt, Apple and Intel were working jointly and the technol
197.
▲
by
kbolino
1y ago
Damn, you're right. I have an M1 Mac Mini and both ports are Thunderbolt. I recall, and Wikipedia corroborates, that the M2 Mac Mini could come with either two or four ports, but all were Thunderbolt. Now though, the M4 ones, besides g
198.
▲
by
kbolino
1y ago
I largely agree that PCs have caught up feature-wise, but because they took longer to get there, I still have a couple crappy USB-C ports on PCs that are otherwise fine. The problem with the 2 USB-C ports on modern PC laptops is that one of
199.
▲
by
kbolino
1y ago
I haven't encountered this, but I've also only used the Apple Silicon devices. This might explain why there are so few ports, though: Thunderbolt is basically PCIe and has AFAIK direct lanes to the CPU; more full-featured ports =
200.
▲
by
kbolino
1y ago
I don't mind that the Macbooks only have USB-C ports. Unlike many PCs, where the USB-C ports can't be used for charging, or can't be used for high-speed data transfer, or can't be used for external displays, or can'
201.
▲
by
kbolino
1y ago
Ok, I think I follow. Instead of putting the comparison logic on the untyped side, you'd put it on the typed side. In code, reusing imports and untypedInt declaration, but replacing the method from before, you'd have: type int
202.
▲
by
kbolino
1y ago
This affects discoverability, though. Your unexported type won't have public documentation. So you end up having to publish an interface anyway (even if you don't return it) or document in words what the method set looks like.
203.
▲
by
kbolino
1y ago
Size classes would save some space and speed up like-to-like comparisons, but wouldn't really do much for unlike comparisons (especially vs. float or complex). Looking only at type pointers fails to account for custom types (e.g., ty
204.
▲
by
kbolino
1y ago
Let's assume the runtime representation case, as it's the most flexible. You'd need to do an assignability check to compare it to a typed number. Keep LHS as the interface, and RHS as the untyped constant. That means followin
205.
▲
by
kbolino
1y ago
Untyped constants deserve an entry of their own in a list of the language's subtleties, that's for sure. Importantly, untyped constants don't exist at runtime, and non-primitive types like interfaces aren't constants, so
206.
▲
by
kbolino
1y ago
> In all other cases, like any(2) == 2, we compare the values. But any(nil) == nil returns true like you'd expect. The reason that any((*int)(nil)) == nil is false is the same reason that any(uint(2)) == 2 is false: interfaces compa
207.
▲
by
kbolino
1y ago
FWIW it looks like Cassandra doesn't belong on this list, and DynamoDB only with qualifications. Though Cassandra is more like quasi-SQL than NoSQL, the bigger issue is that actually the clustering key is never used for sharding. So Ca
208.
▲
by
kbolino
1y ago
Indeed. I started to figure this out, hence my edit. Thanks for the link. There are hypothetical, historical, and special-purpose architectures which don't have cache coherency (or implement it differently enough to matter here), but f
209.
▲
by
kbolino
1y ago
Indeed. In fact, Cassandra and DynamoDB have both hash keys and range keys; I've edited my comment to be more specific.
210.
▲
by
kbolino
1y ago
Lots of distributed, NoSQL databases work (or partially work) this way too (e.g., HBase rowkey, Accumulo row ID, Cassandra clustering key, DynamoDB sort key). They partition the data into shards based upon key ranges and then spread those s
More ›