135 karma · joined July 26, 2020
Unfortunately, I recognize this doesn't change unless an org goes 100% back onsite.
export function pipeline(in$: Observable<Product>):
Observable<string> {
return in$.pipe(
mergeMap(product => from(product.Images)),
);
}
Why use mergeMap at all here? Why not not just return in$.pipe(
map(product => product.Images),
);
I get that this is a toy example, not trying to be pedantic."Feature Flags that live inside your code" - That's just variables, no?
For the record, I don't think it's the authors fault.
f + g = g + f
f + (g + h) = (f + g) + h
f + -f = 0
(a * b) * f = a * bf
a (f + g) = af + ag
(a + b) * f = af + bf
Honest question - What would you do to justify doing this over using cookie based sessions? Like, are there back of the napkin calculations you could do to find when one approach becomes comparable in performance to another? That's one thing in system design that I struggle with.
If you work on a large application with lots of transactional processing, it makes sense. I've worked on apps with 10's of 1000's of lines of Ibatis scripts. And on applications where you're expected to just invoke stored procedures for every little operation. I'll take Hibernate over that situation any day.
People really overstate the pitfalls of ORM's. If you're running reports against a data warehouse, don't use an ORM. If you are trying to optimize a complex query, don't use an ORM. For an app that is write heavy, with very many simple updates to a complicated object graph, it makes sense.
But the first few chapters are so conversational and grounded in historical context that it's a real joy to read, even if you're not following along on pen and paper through all of the steps. If you know of any other "must reads" of the 20th century like this, please let me know! I love to hear the arguments presented as they were actually discussed at the time, not just what was settled on as the end result a century later.
As you say, the existence of photons wasn't immediately jumped to. All that he deduces is that energy transfer must be quantized, and this is the real insight of quantum mechanics, but it gets lost in the woo-ey clickbaity world of modern pop sci.
It was so nice to read the derivation from the point of view of a contemporary 20th century physicist, made me want to start reading a bunch of other 20th century physics papers in their original form.
The base case is simple enough, the symbol-function value of the first symbol in a list is looked up, the rest of the arguments are evaluated or self-evaluated, then passed in to the function. The problem is that when the first symbol is a macro, you need to remember which of the following arguments are evaluated, or taken as unevaluated forms. Anyone who thinks this is easier to parse because there's less syntax either has too little experience with Common Lisp, or is kidding themselves.
This isn't Math in the sense of numerical computing or solving partial differential equations. But its a better and more natural abstraction to work from. We've figured out the types of graphs we require to express our computations, and we've figured out the language representations that generate those graphs, as well as efficient methods to generate those graphs given an input language and a sequence of sentences. Add to that all the rich developments of type theory.
The Photon/Hyperfiddle thing seems to me to be somewhat similar. It's declarative approach, let the compiler figure out all the cut points and join points, and just stop worrying about it. I'm sure if you looked at their source code, you'd find a lot of code concerned with walking the program tree and coloring different sections, then transforming those sections in a context-dependent way in to something that can run on a server versus a client with well defined interactions.