Рубрика «код» - 9

Как именно в Netflix реализован код до этапа работы в облаке? Части этой истории мы рассказывали и прежде, но сейчас настало время добавить в неё больше деталей. В данном посте мы опишем инструменты и методы, позволившие нам пройти путь от исходного кода до развёрнутого сервиса, который позволяет наслаждаться фильмами и сериалами более чем 75 миллионам подписчиков со всего мира.

image

Схема выше – отсылка к предыдущему посту, представляющему Spinnaker, нашу глобальную непрерывную платформу передачи данных. Но до попадания в Spinnaker строке кода нужно пройти несколько этапов:

  • Код должен быть написан и локально испытан плагинами Nebula;
  • Изменения перемещаются в центральное хранилище git;
  • Jenkins запускает Nebula, которая создаёт, тестирует и подготавливает приложения для облака;
  • Билды «выпекаются» в Amazon Machine Image;
  • Spinnaker способствует разблокировке и активизации измененного кода.

В остальной части этого поста мы опишем инструменты и методы, использованные на каждом из этих этапов и поговорим об испытаниях, которые повстречались на нашем пути.

Организационная культура, облако и микросервисы

Прежде чем углубиться в описание процесса создания кода Netflix, необходимо обозначить ключевые факторы, которые влияют на принимаемые решения: наша организационная культура, облако и микросервисы.

Культура Netflix расширяет возможности инженеров в плане использования любого, по их мнению, подходящего инструментария ради решения поставленных задач. По нашему опыту, для того, чтобы какое-либо решение получило всеобщее признание, оно должно быть аргументированным, полезным и уменьшать когнитивную нагрузку на большинство инженеров Netflix. Команды свободны в выборе пути решения задач, но за это расплачиваются дополнительной ответственностью по поддержке этих решений. Предложения центральных команд Netflix начинают считаться частью «проторенной дорожки» (paved road). Сейчас именно она находится в центре нашего внимания и поддерживается нашими специалистами.
Читать полностью »

В этой статье рассматриваются 4 подхода к управлению приватными данными классов ES6:

1. Хранение данных в конструкторе класса.
2. Маркировка приватных свойств через соглашение об именовании (например, префиксное подчеркивание).
3. Хранение приватных данных в WeakMaps.
4. Использование символов в виде ключей для приватных свойств.

Первый и второй подходы широко использовались в ES5, а третий и четвертый – появились только в ES6. Давайте поочередно рассмотрим каждый на одном примере.

Управление приватными данными классов ES6 - 1
Читать полностью »

Изучать программирование под Андроид я начал не так давно. После того, как Eclips выдал мой первый Hello Word, сразу захотелось большего: возникло много планов и грандиозных идей. Одной такой идеей было написание своего Браузера. Думаю, у многих начинающих программистов возникало такое желание. Вот какие требования были мной поставлены и что получилось в итоге.

  • Программа должна открывать ссылки глобальной сети, свободно переходить по страничкам вперёд и назад;
  • Иметь возможность скачивать файлы и загружать обратно в сеть;
  • Создавать закладки и сохранять их;
  • Иметь возможность загружать ссылки, отправленные с других приложений;
  • Должна быть кнопка домашней страницы, меню с различными настройками и т.д.

В общем, полноценный браузер своими руками. Воплотим это в код.
Читать полностью »

Нарезка приложения – это новая фича, которая появилась в iOS и tvOS версии 9.0. Теперь разработчики могут загружать на App Store несколько вариантов ресурсов для разных типов устройств. Это существенно уменьшает размер приложения, поскольку пользователь загружает пакет данных только для своего конкретного устройства.

Нарезка ресурсов – путь к оптимизации размера iOS-приложений - 1
Читать полностью »

В переводе представлен новый подход к модульному тестированию огромной базы унаследованного кода на C++, плохо реагирующей на тесты.

Моки, фейки и заглушки на C++ - 1
Читать полностью »

Тысячи языков программирования были изобретены за первые 50 лет развития компьютеров. Одни из них были характерными, другие следовали традиционным, эволюционным путем их предшественников.

У некоторых революционных языков наблюдалась четкая направленность, дифференцирующая их от большего количества собратьев общего назначения. LISP подходил для обработки списка. SNOBOL использовался для обработки текстовых данных. SIMSCRIPT помогал в моделировании. А язык APL предназначался для математики с акцентом на обработку множества.

APL (от А Programming Language — язык программирования) был разработан в 1957 г. профессором Гарварда Кеннетом Айверсоном (Kenneth Iverson), который в дальнейшем перешел работать в фирму IBM.

Язык программирования APL - 1

Кеннет Айверсон (1920 — 2004) — канадский ученый в области теории вычислительных систем, создатель языка программирования APL

Читать полностью »

Недавно у нас с коллегами возникла дискуссия на тему первых компьютеров и программ. В разговоре вспомнились не только знаменитые ученые, такие как Чарльз Бэббидж, но и менее известных вроде Ады Лавлейс. В результате возникла идея провести исследование и составить хронологию развития истории компьютеров и программирования.

В процессе изучения различных источников обнаружилось немало любопытных фактов. Например, тот же Бэббидж технически не является изобретателем компьютера, что первым высокоуровневым языком программирования был вовсе не FORTRAN, а для CRT-мониторов использовались стилусы.

18 великих изобретений в мире компьютеров и программирования - 1
Читать полностью »

Трагизм непризнанности и ранимая гениальность. Великие умы в истории криптографии США - 1

Трагическая история непризнанного гения. Эдвард Хепберн

Американец Эдвард Хепберн посвятил дисковым шифраторам лучшие порывы своего таланта. Хепберн был в таком восторге от своего творения, что даже написал целую оду в честь дискового шифратора.

На Западе появилось удивительное изобретение.
Это триумф многолетнего, неустанного, терпеливого труда
Решена многовековая, сложнейшая проблема.
Создан изумительный, совершенный шифр…
Его достоинства столь очевидны, что ни одно государство в мире
Не может его игнорировать.
Он – результат глубоких исследований, продиктованных необходимостью.
Теперь «Хеберн электрик код» властвует над всеми шифрами.
Рыцарь радио, страж сокровищ,
Мозг нации, гарант полной безопасности,
Сердце корабля, хранитель жизней
В борьбе грубой силы против интеллекта…
Непостижимая, хитроумнейшая загадка для науки,
Настолько глубокая, что берегитесь, коварные предатели!
Вокруг вас расставлена невидимая гениальная западня.
Мировая война продемонстрировала его крайнюю необходимость,
Ученые всех государств участвовали в жестоком состязании.
Лучшие умы человечества стремились добиться успеха.
И сейчас в центре мирового внимания – американское изобретение.

Громкое заявление, не правда ли?

Хепберн заинтересовался криптографией только в возрасте 40 лет. Изначально он создал шифрсистему, в которую входили две электрические пишущие машинки, соединенные между собой 26 проводами. Когда нажималась какая-либо клавиша на одной машинке, это приводило к тому, что на другой печаталась буква шифртекста. Провода оставались подсоединенными к одним и тем же контактам на протяжении всего периода Читать полностью »

По ту сторону войны. Шифровальные устройства Германии - 1

«Если знать место и время битвы, то за тысячи ли можно вести бой». — китайский полководец Чжугэ Лян (181 — 234 гг.)

Начало ХХ века ознаменовалось зарождением и созданием нового вида оружия для борьбы за господство на мировой арене — оружия информационного. Важной составляющей государственного управления вооруженными силами стала система связи, которая смогла эффективно влиять на ход военных сражений, непосредственно влиять на систему управления войсками, а иногда и частично выводить ее из строя. Такое оружие сверхопасно для защищенных систем, систем шифрования. В случае, если удавалось завладеть шифрами или ключами к ним, предоставлялась возможность не только владеть информацией, передаваемой по этим линиям связи, а и посылать ложные указания, приказы, зашифровав их шифром противника.

«Функельшпиль» или «радиоигра» — первая процедура навязывания ложных команд противнику, была применена во время Первой мировой войны. Эффективность воздействия радиоигр на ход военных сражений была потрясающей. Это осознали в первую очередь Англия и Германия. Они предприняли огромные усилия для создания и развития своих специальных служб, уделяющим радиоиграм самое пристальное внимание. Уже к началу Второй мировой войны эти страны стали ведущими в мире в области информационного оружия.
Читать полностью »

В своей первой статье я писала о легендарном Блетчли-Парке и криптографической службе Великобритании военного периода, о шифровальных машинах Тьюринга и немецкой «Энигма». Сейчас речь пойдет о нашей отечественной криптографии. В СССР криптография была полностью закрытой дисциплиной, которая использовалась исключительно для нужд обороны и государственной безопасности, а потому не было необходимости в публичном освещении достижений в этой области.

Сокровищница отечественной криптографии - 1

Попытки создания аппаратов для автоматического шифрования

Многие согласятся с американский историком Дэвидом Каном в том, что «свой современный вид шифровальное дело получило благодаря телеграфу».
Россия. Конец ХIХ века. 1879 год. Главный механик, помощник начальника Петербургского почтово-телеграфного округа Деревянкин разработал оригинальный прибор для шифрования телерамм «Криптограф».Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js