Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kiitos
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
43 ms
·
721.
▲
by
kiitos
3y ago
ULIDs can get you rough ordering guarantees even in distributed systems. Precision, of course, requires synchronization, which is usually a non-starter.
722.
▲
by
kiitos
3y ago
Crockford base32 works, doesn't it?
723.
▲
by
kiitos
3y ago
Your IDs are []byte of len=11. Those bytes can be represented in many ways. You can represent them as hex strings via encoding/hex.EncodeToString(id), or base64 strings via encoding/base64.StdEncoding.EncodeToString(id), or base32
724.
▲
by
kiitos
3y ago
A UUID is 128 bits, or 16 bytes. This code suggests IDs which are 11 bytes. That's not really comparable. A UUID can also be encoded in any form, it doesn't need to be represented as the dashed string notation which is common, you
725.
▲
by
kiitos
3y ago
> you'll need to manually tag sync/blocking effects Well, that's the hard part, so if I need to do it myself, your library isn't providing much value.
726.
▲
by
kiitos
3y ago
> DRY at any architectural level corresponds naturally to repetition of text in source files. The "repeat" in "don't repeat yourself" refers to semantics (data and sources of truth) and not syntax (text in source
727.
▲
by
kiitos
3y ago
Of course it is impossible to avoid moral judgment. Moral judgment is an obligation of every society.
728.
▲
by
kiitos
3y ago
Free speech doesn't mean unrestricted speech. If you say some garbage bullshit, and a platform deletes your garbage bullshit, that's fine.
729.
▲
by
kiitos
3y ago
Parlor is bad, and should be shut down.
730.
▲
by
kiitos
3y ago
I also oppose this position. It's uninformed, even naive.
731.
▲
by
kiitos
3y ago
Given fn a foo a foo b foo c bar d bar e baz f baz g baz h and fn b foo bar baz fn foo a b c fn bar d e fn baz
732.
▲
by
kiitos
3y ago
I guess you're suggesting that you can build an abstraction layer (I guess you're calling it missionary) which (a) can reliably intermediate every interaction between a user program and any potentially non-deterministic API, and (
733.
▲
by
kiitos
3y ago
Well, when you make a new abstraction, that same PR will presumably also include changes to some N call sites to make use of that abstraction, right? The important thing is that N>=3. Anything less than that is, more often than not, prem
734.
▲
by
kiitos
3y ago
AFAICT you're describing exactly what I mean when I say a fully synchronous system.
735.
▲
by
kiitos
3y ago
It seems like you're equivocating language-level concepts like syntax, semantics, grammar, etc. with program-level concepts like types, functions, names, etc. But these are two categorically different things.
736.
▲
by
kiitos
3y ago
I think we already have a pretty good system for managing access to wealth/value, which has several levels of safety, and is relatively low-hassle. I think it's the existing banking infrastructure.
737.
▲
by
kiitos
3y ago
Better rule is the first time you duplicate, just copy/paste the code. But once you duplicate a third time, that's a pretty good signal that you have something that is common enough to be abstracted, and you can write the abstract
738.
▲
by
kiitos
3y ago
So, to maintain your project, it's not sufficient for me to know language X -- I also have to learn a bunch of domain-specific sub-languages, which any developer on the project may have implemented in response to an arbitrary problem,
739.
▲
by
kiitos
3y ago
Tearing out an abstraction requires a lot of knowledge about the abstraction and how it is used throughout the system. Over time, statistically zero maintainers will have that level of knowledge about any non-trivial system. In contrast, du
740.
▲
by
kiitos
3y ago
Python didn't win, really, in any meaningful sense. It's probably the most ubiquitous language, because it's a great teaching language, and works reasonably well for a bunch of different kinds of users -- but only to a point.
741.
▲
by
kiitos
3y ago
I put 100k EUR of Bitcoin into a wallet, but then I lose the private key. There has to be a way for me to recover access to my funds. The only way to do that is to delegate trust to a central authority. Crypto will never, can never, be
742.
▲
by
kiitos
3y ago
> The problem right now is that there’s no way to control the behavior of the underlying Java threading libraries, nio, and writing to disk. Nor will there ever be, just by the nature of those systems. You can't get deterministic ex
743.
▲
by
kiitos
3y ago
Erlang/OTP expects its processes might crash in response to invalid user input. There, crashing is basically normal and relatively common. In contrast, supervisors like systemd and Docker expect their processes to be generally resilien
744.
▲
by
kiitos
3y ago
> Internally, OTEL has to keep track of every combination of labels it's seen since process start, which can easily come to dominate the processing time in an existing project. Well, every unique combination of labels represents a d
745.
▲
by
kiitos
3y ago
Metrics, logs, and traces are abstract categories of telemetry data, representing the most common modalities of how that data is produced and consumed. They are explicitly not specific or concrete types that can be precisely defined by an e
746.
▲
by
kiitos
3y ago
https://opentelemetry.io > OpenTelemetry is a collection of APIs, SDKs, and tools. Use it to instrument, generate, collect, and export telemetry data (metrics, logs, and traces) to help you analyze your software’s performance
747.
▲
by
kiitos
3y ago
One of the main reasons I became disillusioned with OTel was that the project treated "automatic instrumentation" as a core assumption and design goal for all supported languages, regardless of any language-specific idioms or cons
748.
▲
by
kiitos
3y ago
Switching observability backends is like switching databases -- feasible in theory, impossible in practice for anything but the most trivial use cases. You can't build a sound product if that's one of the design requirements.
749.
▲
by
kiitos
3y ago
John Ousterhout's "A philosophy of software design" and Fred Brook's "The design of design"
750.
▲
by
kiitos
3y ago
You don't even really need to ship traces anywhere. You can just keep them in-process, and build an API on top of that in-memory trace data.
More ›