The point stands that this doesn't "just work" for global services.
325 karma · joined September 10, 2015
The point stands that this doesn't "just work" for global services.
I'm reminded of an article on the front page recently about the use of bloom filters for search. Would something like a bloom filter per-topic make it easier to link seemingly unrelated ideas?
Event Sourcing is not strictly designed to achieve eventual consistency in the face of concurrent writes though. But that doesn't mean it can't be!
I've also been considering an intent based CRDT system for a while now (looking forward to checking out GPs link) and agree that it looks/sounds very much like Event Sourcing. It's worth while being clear on the definition/difference between the two though!
The only point from the article I agree with strongly would be putting the keyboard away for a bit and picking up a pencil & some paper and trying out some rough sketches (though I think you can do this just as well at your regular desk)
I can't remember the specifics for why fields cannot be used within a Go interface but I do remember missing it a few times while writing Go code.
Any code sending an outbound request in reaction to a write is causally related and could be represented as a pipelined promise. The receiving system can then proceed in its work until it needs to "await" the incoming promise and can see whether it was broken due to a failure to persist some earlier write. This could also be handled at the network layer if the receiving system was external.
I'm pretty sure I remember Kenton announcing that Cloudflare Workers now supports something like (or exactly) object capabilities and promise pipelining and his knowledge/interest in such systems is already reflected in Cap'n Proto RPC.
Very cool stuff if you ask me!
But a diff between two different states of raw text can't convey the intent of a code change (beyond very simple changes).
This is why I think CRDTs haven't caught on for VCSes and I'm not sure they _could_ without some kind of structured editing.
TFA seems to present reasonable advice. Yet lots of comments here don't seem to agree that "give experts necessary context and trust to build good products" is a decent strategy.
It's not just hiring managers and recruiters. A large number of senior leaders in organizations have a very poor understanding of product management as far as I can tell.
Feature factories are much easier to implement/understand and fit more neatly into traditional structures.
I don't think it's that simple though. My personal belief is that leadership rarely has a good reason for obtuse decisions and following the leader seems more likely. Even if the first company has a good reason that makes sense for them, I'm not convinced the same (or any) reasoning applies to all the followers.
I also believe that the majority of the leadership at companies I've worked for are poor downwards communicators :)
These kinds of best practices make sense regardless of how many apps access a db.
Following the advice doesn't also prevent you from enforcing a strict contract for external access and modification of the data.
Event sourcing and CRDT like distributed data using something like the Event Calculus?
I don't think products necessarily accrete features because the existing users need them to do more "stuff".
Additional features tend to target new/different subsets of users in an attempt to increase the size of the user base (and thus value to the creators).
So how do you choose the "MVP" features to expose to each subset of users?
E had some really cool ideas, it's sad that it doesn't seem to be that well known!
I agree wholeheartedly. Knowledge, or even intelligence, shouldn't be the most highly valued skill in a team lead.
But there are many people extremely confident in their confirmation bias that seem to be unwilling to consider anything that might challenge their ideas. Our industry has a problem with celebrating the intelligent arsehole. Not only is humility not incentivized, it seems to be actively counterproductive.
I wonder how we can foster the kind of culture that values experience, encourages innovation, and is also able to get things done without chasing geese?
I believe Sandstorm.io (and Cap'n Proto) at least adopts some of the ideas.
I've been into CRDTs for a while and have started wondering about generic mechanisms for distributed data. This lead me to read a lot more about the Relational Model of data and eventually to the Event Calculus.
What's interesting to me is that these things end up feeling a lot like CRDTs[1] or Event Sourcing. I haven't quite finished pulling on these threads but the relic link was a timely read considering!
I really liked the first half of this paper and the Authors categorization of complexity. However the second half fell a bit short for me. It seems they made the same mistake as many other people (SQL != Relational) and their idea of Feeders and Observers seems a bit more like an escape hatch than an elegant method for interfacing with the outside world.
[0] https://github.com/wotbrew/relic [1] http://archagon.net/blog/2018/03/24/data-laced-with-history/
Have you got any tips or advice for getting better at "persuasive education" or inspiring others to see the same things?
I think part of it is the knowledge and experience you base your expectations/perspective on.
I would argue that there is a subjective aspect to taste that is determined by your personal/technical values. Having different values doesn't mean you have bad taste, it means you're optimising for different things.
If you find yourself in an environment where you're unhappy because things don't match your taste, you might value different things. This doesn't necessarily mean anything is wrong or objectively bad.
I think it's useful to frame things in this way because it can prevent you from dismissing the opinions of people that value different things.
Diversity of opinion and perspective is a good thing to a certain degree. Lack of a common set of shared values is probably a breeding ground for conflict though!
You talk to customers to better understand the problems they face and how valuable a solution might be.
Not for ideas or suggestions.
Once you've built a thing, you talk to customers to understand _how well_ your thing solves their problem.
None of this necessitates incremental solutions.
Having said that, I believe that art (and design) requires intention and thus some amount of "reasoning".
This isn't an inherent problem of the technique though. You should be giving things enough space so that this kind of thing doesn't happen. It should be pretty simple to check that the smallest unit of space used anywhere isn't smaller than the amount being trimmed from the top/bottom of the text box.
Mark Dalgleish describes the technique in this video (around 9:45) https://m.youtube.com/watch?v=jnV1u67_yVg
It's made it a lot easier to reason about the layout of text compared to other elements on the page and achieve more consistent use of spacing.