Kindle Highlights – 08/2019

Sapiens. Краткая история человечества (Юваль Ной Харари)

  • Все перечисленные разделения – на свободных и рабов, белых и черных, богатых и бедных – коренятся в человеческом воображении. (О разделении на мужчин и женщин поговорим позже.) Однако в истории действует железное правило: любая воображаемая иерархия отрицает свою вымышленность и провозглашает себя естественной и необходимой.
  • Уже в 48 году н. э. император Клавдий принял в сенат нескольких галльских аристократов, заявив при этом, что они «обычаями, культурой и узами брака соединены с нами». Снобы-сенаторы возмутились: как это, недавних врагов впустить в самое сердце римской политической системы?! И тогда Клавдий напомнил им о том, о чем они предпочли забыть: сенаторские семьи по большей части происходили от италийских племен, которые во время оно сражались против Рима, а потом получили римское гражданство. И даже сам Клавдий, владыка Рима, свой род возводил к сабинянам. Во II веке н. э. Римом правила династия императоров из Иберии, вероятно, с примесью иберийской крови. Именно эта эпоха – Траяна, Адриана, Антонина Пия и Марка Аврелия – считается золотым веком империи. Рухнули все внутренние этнические барьеры. Император Септимий Север (193–211) был отпрыском поселившегося в Ливии карфагенского рода. Гелиогабал (218–222) был сирийцем. Императора Филиппа I (244–249) прозвали Арабом. Новые граждане с таким энтузиазмом перенимали культуру императорского Рима, что спустя многие столетия после распада империи они все еще говорили на ее языке, сохраняли христианскую религию, пришедшую из левантийской провинции, и следовали законам империи.
  • 23 августа 1572 года французские католики, так ценившие добрые дела, напали на французских протестантов, которые большее значение придавали Божьей любви к людям. За сутки в этой резне, запомнившейся под именем Варфоломеевской ночи, погибло от пяти до десяти тысяч протестантов. Услышав эту новость, папа римский возликовал, назначил праздничный молебен и заказал Джорджо Вазари фреску, которая должна была увековечить сцены убийств (теперь это помещение Ватикана закрыто для посетителей). За 24 часа от рук христиан погибло больше христиан – пусть и иной конфессии, – чем за всю историю гонений в Римской империи.

На пике (Брэд Сталберг, Стив Магнесс)

  • Исследование показывает, что когда мы видим, как кто-то другой выражает чувства счастья или грусти (то есть улыбается или хмурится), в нашем мозге активируется связанная с этими эмоциями нейронная сеть. То же касается боли. Один вид страдающего человека активирует наш собственный нейронный отклик на боль. Это объясняет, почему мы плачем во время печальных фильмов, чувствуем подъем среди счастливых друзей и кривимся, когда видим, что кому-то больно. По словам психолога Стэнфордского университета профессора Эммы Сеппала, «мы запрограммированы на эмпатию».
  • «Культура ест стратегию на завтрак».
  • Помните, что, когда вы демонстрируете мотивацию и положительный настрой, вы помогаете не только себе, но и всем, кто вас окружает. К сожалению, негативное отношение и пессимизм также заразны. Не смиряйтесь с ними. Цепь сильна лишь настолько, насколько сильно ее самое слабое звено.
  • По возможности связывайте свою деятельность с какой-либо великой целью. И тогда, если вы столкнетесь с серьезными затруднениями и ваш разум посоветует вам все бросить, вы сможете спросить себя, зачем вы это делаете. Если ответом будет: «Я делаю это для кого-то или чего-то, что превыше меня», то вы, скорее всего, сможете пробиться.
  • Меньше думать о себе — это лучший способ развить себя.

The DevOps Handbook (Gene Kim)

  • “In any value stream, there is always a direction of flow, and there is always one and only constraint; any improvement not made at that constraint is an illusion.”
  • “five focusing steps”: Identify the system’s constraint. Decide how to exploit the system’s constraint. Subordinate everything else to the above decisions. Elevate the system’s constraint. If in the previous steps a constraint has been broken, go back to step one, but do not allow inertia to cause a system constraint.
  • The effectiveness of approval processes decreases as we push decision-making further away from where the work is performed. Doing so not only lowers the quality of decisions but also increases our cycle time, thus decreasing the strength of the feedback between cause and effect, and reducing our ability to learn from successes and failures.
  • we enable the product teams to get what they need, when they need it, as well as reduce the need for communications and coordination. As Damon Edwards observed, “Without these self-service Operations platforms, the cloud is just Expensive Hosting 2.0.”
  • Note that canary releases require having multiple versions of our software running in production simultaneously. However, because each additional version we have in production creates additional complexity to manage, we should keep the number of versions to a minimum. This may require the use of the expand/contract database pattern described earlier.
  • One sophisticated example of such a service is Facebook’s Gatekeeper, an internally developed service that dynamically selects which features are visible to specific users based on demographic information such as location, browser type, and user profile data (age, gender, etc.). For instance, a particular feature could be configured so that it is only accessible by internal employees, 10% of their user base, or only users between the ages of twenty-five and thirty-five. Other examples include the Etsy Feature API and the Netflix Archaius library.
  • In The Art of Monitoring, James Turnbull describes a modern monitoring architecture, which has been developed and used by Operations engineers at web-scale companies (e.g., Google, Amazon, Facebook).
  • Business level: Examples include the number of sales transactions, revenue of sales transactions, user signups, churn rate, A/B testing results, etc. Application level: Examples include transaction times, user response times, application faults, etc. Infrastructure level (e.g., database, operating system, networking, storage): Examples include web server traffic, CPU load, disk usage, etc. Client software level (e.g., JavaScript on the client browser, mobile application): Examples include application errors and crashes, user measured transaction times, etc. Deployment pipeline level: Examples include build pipeline status (e.g., red or green for our various automated test suites), change deployment lead times, deployment frequencies, test environment promotions, and environment status.
  • Etsy open-sourced their experimentation framework Feature API (formerly known as the Etsy A/B API), which not only supports A/B testing but also online ramp-ups, enabling throttling exposure to experiments. Other A/B testing products include Optimizely, Google Analytics, etc.
  • Ronny Kohavi, Distinguished Engineer and General Manager of the Analysis and Experimentation group at Microsoft, observed that after “evaluating well-designed and executed experiments that were designed to improve a key metric, only about one-third were successful at improving the key metric!” In other words, two-thirds of features either have a negligible impact or actually make things worse.
  • One of the core beliefs in the Toyota Production System is that “people closest to a problem typically know the most about it.”
  • when asked to describe a great pull request that indicates an effective review process, Tomayko quickly listed off the essential elements: there must be sufficient detail on why the change is being made, how the change
  • Ian Malpass, an engineer at Etsy observes, “In that moment when we do something that causes the entire site to go down, we get this ‘ice water down the spine’ feeling, and likely the first thought through our head is, ‘I suck and I have no idea what I’m doing.’ We need to stop ourselves from doing that, as it is route to madness, despair, and feelings of being an imposter, which is something that we can’t let happen to good engineers. The better question to focus on is, ‘Why did it make sense to me when I took that action?’”

Distributed systems for fun and profit (Mikito Takada)

  • Every concept originates through our equating what is unequal. No leaf ever wholly equals another, and the concept “leaf” is formed through an arbitrary abstraction from these individual differences, through forgetting the distinctions; and now it gives rise to the idea that in nature there might be something besides the leaves which would be “leaf” – some kind of original form after which all leaves have been woven, marked, copied, colored, curled, and painted, but by unskilled hands, so that no copy turned out to be a correct, reliable, and faithful image of the original form.
  • Byzantine fault tolerance. Byzantine faults are rarely handled in real world commercial systems, because algorithms resilient to arbitrary faults are more expensive to run and more complex to implement.
  • Several computers (or nodes) achieve consensus if they all agree on some value. More formally: Agreement: Every correct process must agree on the same value. Integrity: Every correct process decides at most one value, and if it decides some value, then it must have been proposed by some process. Termination: All processes eventually reach a decision. Validity: If all correct processes propose the same value V, then all correct processes decide V.
  • CA (consistency + availability). Examples include full strict quorum protocols, such as two-phase commit. CP (consistency + partition tolerance). Examples include majority quorum protocols in which minority partitions are unavailable such as Paxos. AP (availability + partition tolerance). Examples include protocols using conflict resolution, such as Dynamo.
  • ACID consistency != CAP consistency != Oatmeal consistency
  • Consistency model a contract between programmer and system, wherein the system guarantees that if the programmer follows some specific rules, the results of operations on the data store will be predictable The “C” in CAP is “strong consistency”, but “consistency” is not a synonym for “strong consistency”.

Ореховый Будда (Борис Акунин)

  • Не старайся всё сразу усвоить и понять. Знания – как зерна. Одни засохнут, другие прорастут.
  • – Умному и хитрому человеку в России жить выгодно, – говорил Ян, ведя постояльцев по мосту обратно в город. – Нужно только знать правила. Здесь кажется, что всё нельзя, а на самом деле почти всё можно. Симпэй кивал, думая: вот обычный урок, который извлекает слепец, бредя жизненной дорогой, но не видя Пути. На самом деле всё наоборот. Кажется, что тебе всё можно, но хорошему путнику почти всё нельзя. Только идти вперед.
  • Не старайся всё сразу усвоить и понять. Знания – как зерна. Одни засохнут, другие прорастут.

Стресс как внутренняя игра (Тимоти Голви, Эдд Ханзелик, Джон Хортон)

  • Один чрезвычайно занятый корпоративный юрист, посещавший наш семинар, однажды упомянул, что ему было так трудно выделить время для физических упражнений, что он купил оборудование для домашнего тренажерного зала и нанял личного тренера, который приходил к нему на дом. И вот как-то раз утром, занимаясь на тренажере под руководством тренера, он выглянул на улицу. День стоял прекрасный, садовник копался в саду. И тут юриста осенило. «Я понял, что плачу тренеру за занятия, плачу за тренажерное оборудование и плачу садовнику. И подумал, что, возможно, если бы я сам занялся садом, то достиг бы сразу трех целей: не платил бы за тренера и оборудование, наслаждался бы физическим трудом на свежем воздухе и при этом еще и улучшал бы свой сад».