@jmoironGreat advice: "Don't be afraid to try; just think a bit first and be willing to experiment." Also, the target should be to document your internal libraries as well as this https://t.co/Da9WTFdqGe https://t.co/9ydZmJ0fjj
@jmoiron@copyconstruct There are always good ways to add robustness to a system that are simply not worth the effort but will still inevitably show up on a post mortem next year. It can be really hard anticipate when the threshold will be crossed.
@jmoironRT @simonw: Maybe the solution to the Fermi paradox is that significantly advanced civilizations discover crypto currencies and then furiou…
@jmoiron@elithrar @golang Initially, `[]interface{}`, the way loop var implementation leaks into several situations, like using their address or closing over them with `go func() { ... }`. Later the right way to structure channel pipelines so they can be shutdown safely.
@jmoironI've never seen code that can adequately express "Every comment you write is a failure to express yourself well in code." so clearly it is bullshit and we can all move on.
@jmoiron@chimeracoder Avatar's borrow-word meaning has even been borrowed into _other_ languages to mean "online character" https://t.co/QFWZBlz53c
@jmoironAlan Donovan's casual aside at @gothamgo about turing incompleteness being a feature for Skylark really resonates. Choosing the right limitations for a certain problem domain is often much more powerful than allowing anything.
@jmoironRemember, in distributed computing, the only thing easy to distribute is failure.
@jmoiron@copyconstruct "[..] starting with a solution first only to later find a convincing argument to somehow retrofit our problem space into the solution space [..]" How else could all these reactjs apps get built? We think we're immune on the backend, but we're not. We're often wo...
@jmoiron"Monzo’s backend is written as several hundred microservices..." It's a testament to k8s et al. that this works in the first place, but I can't help but think it enables an architecture that nobody can understand.
@jmoiron@PreetamJinka :(
@jmoiron@copyconstruct Great point, it will vary org to org based on how they define those roles. Addressing the context gap here is probably the primary benefit of adopting standardized infrastructure level connective tissue like k8s and envoy and the like.
@jmoironRT @copyconstruct: @jmoiron IMO gaining confidence into the behavior of code/systems shouldn't be primarily left to a monomaniacal obsessio…
@jmoiron@copyconstruct The work done in the last ~30y on the TCP congestion window and various congestion algorithms comes to mind. You can write tests to verify they actually work or do not have well known flaws but on some level you have to do experimentation: https://t.co/MTwk90Fd6y
@jmoiron@copyconstruct A lot of stuff related to resource exhaustion and performance both over the network and within a CPU (these days basically the same). Services slowing down or becoming unresponsive cause outages despite behaving within the boundary of correctness as established by...
@jmoiron@copyconstruct There are almost certainly useful parts of those systems which you can test for incorrectness, but whose essential suitability only exists within context, and whose "tests" are more akin to experiments and do not fall into the integration/unit taxonomy.
@jmoiron@copyconstruct I agree. A sufficiently complex system will always have behaviours that are trivial to observe but incredibly difficult to simulate.
@jmoironI keep trying to meaningfully weigh in on various conversations about {testing,design,dependencies}, but I only have anecdata to offer.
@jmoironIt's easy to believe an opinion you disagree with needs data, but one you agree with is data.
@jmoiron@chimeracoder @mallyvai ah okay, so young+urban is the right demo, but coding it "liberal" amplifies the affect of the young+urban+white part? And it's already amplified enough because of structural racism (+sexism)?
@jmoiron@chimeracoder @mallyvai does that mean you think that whiteness skews tech more liberal than its age makeup does, or just that it's a contributing factor that is overlooked?
@jmoironcorollary: frequency of use should be inversely proportional to the name length (ie, "long distance" usage should be infrequent because the names must carry necessary context and lots of long variable names hurt readability)
@jmoironsimple rule of thumb on variable naming: length should be proportional to the distance between first and last use
@jmoiron@copyconstruct Oh, I'd prefer Lua, too, but I guess js makes a lot more sense from a marketing perspective. I think js-as-lambda is fine, though; at its core it's still used as a procedural language here.