Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
kiitos
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
49 ms
·
781.
▲
by
kiitos
3y ago
Haha, zap did not pioneer anything, what are you talking about.
782.
▲
by
kiitos
3y ago
The nice thing about ASCII diagrams is that they they naturally push back against complexity. That is, a diagram that's too complex to express in ASCII is (almost always) too complex in general. And the nice thing about doing ASCII dia
783.
▲
by
kiitos
3y ago
I don't think so. A Handler is something that transforms log events to concrete outputs (files, disks, writes to stderr, etc.) via side effects. A Logger is what programs use to produce, transform, etc. log events. Both are abstract in
784.
▲
by
kiitos
3y ago
Structured logging means logging where discrete events are sets of key=val pairs, and nothing more. What is a record context? What is a level? These are concepts built on top of a structured logger, which manifest as specific key=val pair
785.
▲
by
kiitos
3y ago
Sure! It's a huge and important benefit of that access mode.
786.
▲
by
kiitos
3y ago
Checking a feature flag for a given cohort/user/demographic/etc. should always be a memory read, not a syscall. (You can't have syscalls in a hot loop!) That means feature flags will always be cached in each application
787.
▲
by
kiitos
3y ago
In-memory SQLite doesn't read or write files, and therefore doesn't generate syscalls, by definition.
788.
▲
by
kiitos
3y ago
What about migrations?
789.
▲
by
kiitos
3y ago
If the cache is out-of-process, access is going to be subject to faults and latencies that are categorically different than anything that would be in-process. You'd never want to include a request to an out-of-process service in any ki
790.
▲
by
kiitos
3y ago
This has never been my experience. Any editor with multi-cursor support can easily be used to produce or maintain ASCII diagrams like the ones described so far.
791.
▲
by
kiitos
3y ago
There is obviously an enormous difference between "don't let performance influence your API (to become awkward or nonidiomatic)" and "ignore performance when designing your API".
792.
▲
by
kiitos
3y ago
Go is more than 10 years old, that's certainly old enough.
793.
▲
by
kiitos
3y ago
And how do you manage conflicts? edit > The writes via SQLedge are sync, that is we wait for the write to be processed on the upstream Postgres server OK, so, it's a SQLite read replica of a Postgres primary DB. Of course, this do
794.
▲
by
kiitos
3y ago
If slog needs to avoid virtual calls or boxing or whatever else for reasons of performance, I guess I feel very strongly that it should do so in a way that doesn't impact users, and shouldn't let these concerns influence the API d
795.
▲
by
kiitos
3y ago
But like, why not just use that ASCII sequence diagram directly? Renderer Browser Network ======== ======= ======= | BeginNavigation | | |---------------------&
796.
▲
by
kiitos
3y ago
So the purpose of the tool is to transform an ASCII diagram to a Unicode diagram? I struggle to understand the value of such a thing. +---+ +---+ | A |-->| B | +---+ +---+ is actually better than ┌─┐ ┌─┐ │A
797.
▲
by
kiitos
3y ago
There is no reason to distinguish a Handler from a Logger. A Handler is just a Logger which has a side effect, nothing more. There is no reason to distinguish an Attr or Group or Record from a (set of) KeyValuePairs. They're all the sa
798.
▲
by
kiitos
3y ago
I'm intimately familiar with structured logging. The domain concepts defined by slog are unquestionably abnormal. From a structured logging package I would expect a far simpler Logger API with a Log method something like Log(pair
799.
▲
by
kiitos
3y ago
I've never seen a structured logging library with concepts like Attrs, Groups, or Records like those defined by slog.
800.
▲
by
kiitos
3y ago
ASCII diagrams can easily be drawn and maintained directly. That's kind of the whole point! Generating them from some more primitive declaration language makes them harder to use, not easier. This kind of tool is frustrating.
801.
▲
by
kiitos
3y ago
I think std async is about as good an example as any.
802.
▲
by
kiitos
3y ago
Rust is definitely not backwards-compatible in the sense that Go is backwards-compatible.
803.
▲
by
kiitos
3y ago
slog defines the concepts of - Logger -- created by New, accepting a Handler, providing a fixed set of level-based logging methods, asserting concepts of Attrs and Groups, not parameterizable by consumers - Handler -- with two default imple
804.
▲
by
kiitos
3y ago
Even after seeing the API, which is enormous and wildly non-intuitive?
805.
▲
by
kiitos
3y ago
UDP doesn't provide reliable delivery, so you would need to implement some kind of delivery assurance in your application. UDP also has very small message (datagram) size limits, so you would also need to implement some way to fragment
806.
▲
by
kiitos
3y ago
https://apenwarr.ca/log/20170814
807.
▲
by
kiitos
3y ago
> I just find it super strange that people want to mirror their app logic + error response codes to some protocol like HTTP – ridiculous :) Why is this ridiculous? HTTP is the default protocol for network services, so it seems to me that
808.
▲
by
kiitos
3y ago
HTTP is itself a protocol, and URLs are part of that protocol. They're not really "connection points" in any meaningful sense.
809.
▲
by
kiitos
3y ago
The Venn diagram overlap between REST and GraphQL is pretty small.
810.
▲
by
kiitos
3y ago
This makes sense if your web API asserts that all responses are JSON responses, and if it provides a schema for responses somewhere as a contract. But, in general, it's totally fine to return a 404 with no other info. That's a tot
More ›