One patten I've seen to address this is to define a "plugin architecture" where disparate components are integrated into the main system via fixed "sockets". The sockets themselves are generic as is the glue code that attaches plugin and socket.
This does create a lot of boiler plate, but that boiler plate is predictable and uninteresting, and a good candidate for code generation.
> But, wow. This is beginning to look pretty scary.
This is the main benefit I see of having our government take these measures: making people like you realize THIS IS SERIOUS. It has "looked pretty scary" for almost two months. And no one has taken it seriously. And now we're here.
> If the first line of a commit message is a title, it changes the way you write it. It becomes just some text to introduce some more text, without any stress on the information density.
I agree with the author that commit messages should optimize for information density. However the example they provide does a poor job of this:
> This is a smart synopsis, as information dense as possible.
"This is a" is the type of thing that should never appear in a commit message as it could apply to EVERY commit message. Synopsizing is the action, but doesn't indicate what is being synopsized; one of the most important facts for someone to understand what is happening here. Finally "as information dense as possible", again should also be cut as this is telling us HOW not WHAT (and ironically hurts information density).
Were I writing this example it would be:
Synopsize how to write a commit message
---
I led an initiative at my current company to enforce all commit messages start with an imperative verb and be less than 72 characters. Some people hate it, some people love it.
Aside from standardization, the primary reason to do this is the imperative mood leads to the most concise sentence possible. By leading with the action, the most natural thing to do next is to talk about what is being acted upon. Unnecessary words are dropped and the most important facts are emphasized. In short it forces the author to get to the point.
[Act] upon [some aspect of the code]
e.g.
Add user login link on home screen
Refactor authentication into separate classes
Lint PR titles conform to standard format
Rather than `git add -p`, I suggest creating a second clone of your repo, staging your foundational refactor changes in the second repo, creating and merging your commits there, and then rebasing your working branch.
This makes sure you can fully test your refractors and that their change sets stand alone.
Travis Kalanick, Uber's CEO, made public statements indicating that Uber must work with the Trump administration. Four days later Uber stepped up as scrubs while the rest of the New York's taxi service protested Trump's deplorable racist actions. It's hard to pretend this is a coincidence.
>better-informed parties find it extremely difficult to think about problems from the perspective of lesser-informed parties
Reading this made me think of poker. Calibrating to the skill level of lesser players is often very difficult for intermediate and lower-advanced players. Being able to synthesize the less sophisticated thought technologies beginners are using is surprisingly difficult. Failure to adjust often leads better players to play incorrectly against newbies. Anyone who has experienced the frustration of beating medium/high stakes cash games only to lose in home games with your friends for 1/1000th the stakes will know what I mean.
Uh, fine. Sure, some of the rejections may be appropriate. But the situation with Drafts and PCalc are still very valid examples of problems with Apple's policies.