Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
Twisol
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
55 ms
·
481.
▲
by
Twisol
5y ago
> It is, using standard industry terminology. Just to add some support here, concurrency definitely has very little to do with actual independence of progress. It has far more to do with encapsulation of knowledge (for an active agent, n
482.
▲
by
Twisol
5y ago
> but (a function or a program) being stateless means automagically avoiding all bugs relating to state; thus you don't need those "x-ray points". That's not entirely true, at least the way I understand "state&qu
483.
▲
by
Twisol
5y ago
A "functor" lets you take a unary operation on simple values, `a -> b`, and apply it to a value which structures some `a`s within a larger context (`f a -> f b`). A classic example is (to use some Java syntax) `List<A>
484.
▲
by
Twisol
5y ago
Apparently, it's illegal to pump your own gas in New Jersey. [0] [0] https://www.mentalfloss.com/article/74549/why-cant-you-pump-...
485.
▲
by
Twisol
5y ago
For other readers, the `UPDATE` step is an exact anlogue of the "compare-and-set" atomic instruction [0]. It's really cool to see how you've realized it in SQL! As a capability, compare-and-swap has an infinite consensus
486.
▲
by
Twisol
5y ago
Yes, but the definition of "computer" in this context is much more expansive than the hunks of silicon we're using to converse right now. The Turing machine was meant to capture the basic set of actions any human could in pri
487.
▲
by
Twisol
5y ago
I would consider what you described to be "algorithms" (or "complexity theory"), a particular sub-area of computer science. There are quite a few other areas of CS. The ACM organizes a number of SIGs (Special Interest Gr
488.
▲
by
Twisol
5y ago
It's at least maintained enough for their README to be up to date as of the recent Freenode brouhaha: > All these channels are on the libera.chat network.
489.
▲
by
Twisol
5y ago
Without any personal context, this stance appears very "baby meets bathwater". In particular, I'm not sure I see anything about this particular situation that renders it purely a problem of CS research. What makes other field
490.
▲
by
Twisol
5y ago
As far as the boolean flag argument goes, I've seen it justified in terms of data-oriented design, where you want to lift your data dependencies to the top level as much as possible. If a function branches on some argument, and further
491.
▲
by
Twisol
5y ago
> There's a formal concept for this in philosophy, but that's up to you to figure out. I think I know this one! Is it the paradox of the heap? https://en.wikipedia.org/wiki/Sorites_paradox
492.
▲
by
Twisol
5y ago
> Even if B is technically mutable (which 99% of the time it is because almost everything in Python is mutable), just don't mutate it and pretend like you're not allowed to do so. This gets you pretty far, but it's hard to
493.
▲
by
Twisol
5y ago
Yes, I would like to see more efforts out there like Distill in making cutting-edge research more accessible. I don't think we can wish away the significant gap in expertise and knowledge embodied by research, though. Somebody has to p
494.
▲
by
Twisol
5y ago
Aggressively shared-xor-mutable. If an object A has a reference to some other object B, either B is (deeply) immutable or A has the only reference to B. This means that in general, data is only held by some code as long as is needed to oper
495.
▲
by
Twisol
5y ago
> But isn't it the case in any programming language that impure operations only have side effects when they are executed? That's a great question! This framing is indeed universally true, which suggests there's something
496.
▲
by
Twisol
5y ago
The linked MathOverflow answer was written by Dr. Terence Tao, and it really is an excellent dissection of the many needs levied upon notation. I find the two "Suggestiveness" items to be most related to concision as practices in
497.
▲
by
Twisol
5y ago
> Do you really need to express concepts with a single strange character? What does it buy you, given that the downsides for readability are quite obvious? As someone who dabbles in the field, I'll bite. I find that more succinct ex
498.
▲
by
Twisol
5y ago
> Purity doesn’t mean that effects don’t happen. It means that effects don’t happen as a side effect of mere expression evaluation. I don't disagree? I was adding color to your explanation for other readers, not attempting to correc
499.
▲
by
Twisol
5y ago
You're right, but I think there's a distinction here that is easy to miss. An IO action describes what to do, but something still has to do that action. A Haskell program on its own doesn't do anything; that's exactl
500.
▲
by
Twisol
5y ago
As a very concrete example of this, in games like Diablo, you might have an item literally called "Big Ball" that can have a color attribute. You would (and I have) absolutely refer to a particular colored item as a "red Big
501.
▲
by
Twisol
5y ago
Oh cool, thanks! > - Any subset which does not contain infinity We get those from the original (discrete) topology, I assume? > - Any subset containing infinity whose complement is finite. Ohh, is this construction related to the cofi
502.
▲
by
Twisol
5y ago
Let's see how much I can extract from that description... (Okay, after having written this comment, I can say it's "not much", but at least I think I can identify which parts are more glue and reshaping than contain real
503.
▲
by
Twisol
5y ago
That's pretty egregious, yeah. To be as fair as possible, the author did say "describe", not "understand", but that's small consolation. Perhaps more materially, HN is obviously(^) not the intended audience for
504.
▲
by
Twisol
5y ago
It's definitely related, yes! You can reduce any list given a monoid on the type of elements of the list. That is, if you have a type `T` with combining operator `combine: (T, T) -> T` and unit `e: T`, you can reduce a list of `[T]`
505.
▲
by
Twisol
5y ago
> On one hand, Dropbox Desktop Client has just a few settings. On the other, behind this simple UI lies some pretty sophisticated Rust code with multi-threaded compression, chunking, and hashing. On the lowest layers, it is backed up by
506.
▲
by
Twisol
5y ago
Nice extra context, thanks! You've now introduced two more magic constants, though, and so the question continues: where do those come from? Since 3072 is 3 * (16KB / 16), I'm guessing the 3 still comes from the original arti
507.
▲
by
Twisol
5y ago
Fascinating! But it replaces one question with another: > The way innodb MySQL databases worked was that you can only have 767 bytes for an index Was somebody a Boeing fan or is there another story behind the 767 figure? EDIT: aaand I fi
508.
▲
by
Twisol
5y ago
`Stack -> (Char, Stack)` is equivalent to `(Stack -> Char, Stack -> Stack)`, which amounts to adding a `peek` method to the scheme above. The inclusion of `peek` changes nothing about the description of stack mutations above, and i
509.
▲
by
Twisol
5y ago
> My go-to example of a monoid is (the set of strings, string concatenation, the empty string) My favorite is the monoid of endomorphisms! "Endomorphism" is a fancy word, but it just means "if you give me a `T`, I'll
510.
▲
by
Twisol
5y ago
> So this isn't really the stack monoid, this is mutations as a monoid (which is a construction that exists for anything mutable) I can see why you'd balk at the name "stack monoid", but the specific commands / a
More ›