Насчёт слово «хитро» – это просто я так перевёл фразу «in a clever way» ¯\_(ツ)_/¯
Я такие статьи воспринимаю как научно-популярные документальные фильмы, они тоже очень важны, даже если в них есть много упрощений. Именно поэтому я взялся переводить этот тред. Вот тут еще комментировал по этой теме habr.com/ru/post/443050/#comment_19886806
Процесс обмена ключами выходит за рамки объяснения алгоритмов симметричного шифрования. Поэтому, видимо, автор не стал про них рассказывать. Алгоритмы обмена ключами используют асимметричное шифрование.
> Ну и как Вам — простой язык?
> А теперь то же самое действительно простым языком:
> «Если биты A и B — разные, то A^B=1. Если же одинаковые, то A^B=0.»
Для меня лично и ваш вариант понятен, и вариант автора. Но из описания автора сразу становится ясно, почему эта операция носит название «исключающее или».
Имхо это тоже самое, только в профиль. Если возвращать промис, то в вашем случае пользователь библиотеки должен соответствующим образом его обработать.
Согласен, это довольно распространенная практика — возвращать из асинхронных модулей промисы. Но если у вас есть обычный модуль (без асинхронной работы) и вы используете его в большом количестве мест, при этом у вас также появляются другие пользователя этого модуля. То, когда происходит изменение интерфейса (в данном примере обычный модуль начинает возвращать промис), вам надо будет исправить все места, где используется этот модуль и каким-то образом оповестить других пользователей этого модуля об изменившемся интерфейсе, что в комплексе получается не очень удобно.
Нашел подходящий user-script https://greasyfork.org/en/scripts/18675-github-custom-hotkeys. Там нет возможности отключить все хоткеи разом, но зато есть возможность переназначить горячие клавиши в том числе и полностью их отключить, для этого в поле «url» надо поставить символ решетки — #.
Да, у гитхаба, есть много разных фишек. Он может рендерить прямо в своем интерфейсе разные типы файлов (3d-модели, pdf, csv). Кстати, информации про .ipynb в помощи github нет. Видимо, это довольно свежая фича.
Я такие статьи воспринимаю как научно-популярные документальные фильмы, они тоже очень важны, даже если в них есть много упрощений. Именно поэтому я взялся переводить этот тред. Вот тут еще комментировал по этой теме habr.com/ru/post/443050/#comment_19886806
> А теперь то же самое действительно простым языком:
> «Если биты A и B — разные, то A^B=1. Если же одинаковые, то A^B=0.»
Для меня лично и ваш вариант понятен, и вариант автора. Но из описания автора сразу становится ясно, почему эта операция носит название «исключающее или».
Но при этом с помощью него был взломан 3DES, так что ссылка правильная.
Если тут какая-то ошибка (я её не вижу), напишите об этом в твиттер автору (https://twitter.com/colmmacc/status/1101578627592839168).
Да, вот тут можно почитать подробнее sweet32.info
> И вообще попытка рассказать все на уровне «детского сада» как то вызывает раздражение.
Я думаю, что это, наоборт, преимущество. Человек простым языком объяснил сложные вещи. Такие статьи вдохновляют на изучение чего-то нового.
При этом пользователь становится привязан к промису, т.е. если интерфейс библиотеки в будущем вновь станет возвращать объект, это вызовет ошибку.
В первом случае модуль возвращает объект:
Во втором — зарезолвленный промис:
В последнем случае пользователю библиотеки надо будет добавить