Иллюстрированное руководство по Web Authentication, новому стандарту для аутентификации без паролей на основе криптографии с открытым ключом → https://webauthn.guide/
Почему разработчики Flow игнорировали опенсорс-сообщество и чем они занимались весь прошлый год: официальное объяснение и позиция касательно перехода части проектов Facebook на TypeScript → https://medium.com/p/54239c62004f
Анализ уязвимостей процесса аутентификации: Вадим Горбачёв рассказывает о распространённых проблемах веб-безопасности, иллюстрируя их удивительными историями о реальных взломах → https://medium.com/p/475b749fbb9f
Как работать с денежными значениями в JavaScript: Сара Даян о распространённых ошибках и способах их избежать в переводе Игоря Камышева → https://medium.com/p/bb0706840f0e
«Веб-стандарты» №158, в гостях Роберт Харитонов и Денис Радин: сайт «Веб-стандартов», события и сообщества, новинки Safari TP, свежие статьи, снипеты и редакторы кода, кому нужен VR, фонд GitNation → https://medium.com/p/eac76300bd8f
«Фронтенд-юность» №81, в гостях Павел Черторогов и Алексей Золотых: всё, что вы хотели знать о GraphQL, Казахстан, jQuery, React и Ruby, Flow vs TypeScript → https://soundcloud.com/frontend_u/e81
Для непрерывной интеграции (Continuous Integration) обычно используют инструменты вроде Jenkins, TeamCity, Travis или CircleCI. Эти инструменты предоставляют собственный интерфейс для конфигурирования CI, в котором процесс обычно описывается шагами: настройка окружения, запуск тестов, сборка, деплой и так далее.
Настройка CI через интерфейс используемого инструмента непрозрачна и неудобна:
— изменения не версионируются; — для внесения изменений каждый раз нужно открывать сам инструмент, который может быть недоступен (например, из-за выключенного корпоративного VPN); — для изменения процесса в рамках конкретной задачи придётся плясать с бубном и разделять в инструменте общий билд и билд этой задачи.
Решение этих проблем — описание процесса в виде кода (например, в виде sh-скрипта или Makefile) и хранение этого кода непосредственно в репозитории проекта. В используемом вами инструменте остаётся только указать команду запуска этого кода.
Если описать основные шаги процесса в виде отдельных скриптов, их также можно будет использовать локально: например, запустить настройку окружения при старте работы с проектом или прогонять тесты перед каждым коммитом.