Pull to refresh
3
0
Send message

Trunk Based Development — кто такой и зачем нужен

Reading time5 min
Views43K

Привет! Меня зовут Павел Лакосников, я тимлид команды бэкенд-инженеров в Авито. Сегодня расскажу про свой любимый подход к разработке Trunk Base Development, сравню его с другими моделями ветвления и подсвечу его достоинства и нюансы.

Краткий обзор трёх моделей ветвления: Central Workflow, Git Flow, Trunk Based Flow, с акцентом на моего фаворита — Trunk Based Flow.

Читать далее
Total votes 27: ↑22 and ↓5+21
Comments44

Kandinsky Video — первая российская модель генерации видео по тексту

Level of difficultyHard
Reading time8 min
Views13K

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

Жозеф Плато, август 1833 года

В недавней статье мы рассказали о возможности создания анимированных видеороликов на основе комбинации синтеза изображений и различных способов преобразования этих изображений (сдвиги в стороны, масштабирование и т. д.). Сегодня же речь пойдёт про нашу новую технологию синтеза полноценного видео по текстовому описанию, которую мы назвали Kandinsky Video (для затравки пара примеров приведена на рисунке 1).

Читать далее
Total votes 29: ↑28 and ↓1+36
Comments11

Самое подробное руководство по установке высокодоступного (почти ಠ ͜ʖ ಠ ) Kubernetes-кластера

Reading time22 min
Views31K

В предыдущей статье я рассказывал, как построить простой кластер Kubernetes с одним мастер-узлом. Прошло время, опали листья... и мне захотелось большего, поэтому решил позариться на высокодоступные кластеры. В интернете много статей о том, как построить подобное решение, и давайте даже опустим тот факт, что многие из них уже устарели. Одно дело — установить кластер, а как же обслуживание: удаление, добавление, замена узлов? Про это и не вспоминают! В итоге оказалось, что не всё так просто, и вот, спустя больше ста установок, удалений и замен, у меня получилось собрать подробнейшее руководство по установке и, главное, обслуживанию highly available кластера с помощью Kubespray.

Читать далее
Total votes 22: ↑22 and ↓0+22
Comments19

Как сделать поиск в интернет-магазине

Level of difficultyMedium
Reading time17 min
Views4.2K

Привет, Хабр! Меня зовут Степан Родионов, я из Х5 Digital. Сегодня расскажу о поиске в интернет-магазине — типовой задаче для e-commerce, которая в теории имеет типовое решение, но на практике оказывается сложнее.

Я запускал около десятка e-commerce проектов, и в каждом из них делал поиск. Этот опыт постарался обобщить в инструкцию по созданию подобного рода систем.

Рассказывать буду на примере проекта Vprok.ru — это мой текущий, самый крупный проект. Он входит в Х5 Digital и занимает на российском рынке третье место: 10 регионов присутствия, более 72 тысяч товаров, примерно 300 RPS на товарные запросы и около 700 тысяч комбинаций товар+склад.

Найдется все
Total votes 9: ↑7 and ↓2+9
Comments8

Делаем приватный монитор из старого LCD монитора

Reading time2 min
Views973K


Вы наконец-то можете сделать кое-что со своим старым LCD монитором, который завалялся у Вас в гараже. Превратите его в шпионский монитор! Для всех вокруг он будет выглядеть просто белым экраном, но не для Вас, потому что у Вас будут специальные «волшебные» очки.

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

Читать дальше →
Total votes 1486: ↑1468 and ↓18+1450
Comments327

Автоматизация безопасности с разнообразием матриц MITRE

Level of difficultyMedium
Reading time9 min
Views3.6K

Алексей Пешик, инженер-эксперт Security Vision

Михаил Пименов, аналитик Security Vision

С каждым годом методы получения неправомерного доступа к данным компаний и частных лиц становятся всё более изощренными. Эффективные меры защиты от проникновения в инфраструктуру породили более сложные, многоэтапные атаки. В связи с этим в методиках защиты информации за последние десять лет сильно возросла актуальность поведенческого анализа злоумышленников. Это, конечно, не означает, что поиск опасных сигнатур следует полностью списать со счетов — этот метод является прекрасной защитой от массовых и распространенных атак (когда, например, зараженное вирусом письмо рассылается по максимально большому количеству адресов), но в современных условиях это лишь первый барьер на пути злоумышленника. Если преступники будут достаточно мотивированы, настойчивы и изобретательны — они найдут способ проникнуть в вашу инфраструктуру, но даже в этом случае им можно помешать завладеть ценной информацией или уничтожить её. 

Пирамида боли

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

Например, в код вируса достаточно внести малейшие модификации, чтобы изменился хэш. Нет никаких сложностей в том, чтобы поменять IP-адрес, а при использовании VPN это происходит автоматически. Доменное имя заменить чуть сложнее, но провайдеры чаще всего не контролируют, кто регистрирует доменные имена, не говоря о том, что есть масса способов получить домен и вовсе бесплатно. С артефактами сети и хоста всё немного сложнее: если жертва выявила триггеры атаки и заблокировала подозрительный процесс, command line или url (чаще всего автоматически, исходя из настроек политик безопасности ИБ-софта), то преступник не сможет продолжать атаку, пока не перенастроит инструменты. Когда же жертва выявила, каким именно инструментом пользуется атакующий, для возобновления атаки придется видоизменить поведение инструмента. Например, когда используется инструмент с настройками по умолчанию, поведенческие индикаторы которого хорошо известны, злоумышленнику придется внести изменения в конфигурацию инструмента. Однако самым болезненным для преступника является ситуация, в которой защищающийся распознал технику и тактику атаки (TTP). 

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments4

Принцип работы async/await в JavaScript

Level of difficultyMedium
Reading time8 min
Views29K


Если вам доводилось работать с JavaScript, то вы наверняка встречались с синтаксисом async/await. Эта функциональность позволяет прописывать асинхронную логику синхронным образом, упрощая тем самым её понимание. Некоторым ветеранам JS известно, что async/await – это просто синтаксический сахар для существующего Promises API. Это означает, что в JS должен быть способ реализации функциональности async/await без использования ключевых слов async и await, хоть и более громоздкий. Именно об этом и пойдёт речь в данной статье.

Видео от автора на ту же тему.
Читать дальше →
Total votes 41: ↑40 and ↓1+54
Comments19

Взаимодействие с MOEX ISS через Python

Level of difficultyEasy
Reading time4 min
Views15K

В этой статье я хочу дать поверхностное представление о том, как работает взаимодействие с MOEX ISS на Python requests. Да, сегодня уже существуют готовые решения для работы с MOEX, например aiomoex. Но как по мне, лучше всегда сначала что‑то захардкодить и понять, как это работает под капотом. Если вы только знакомитесь с MOEX ISS или начинаете заниматься анализом временных рядов, думаю, вам эта статья будет полезна. Если же вы более продвинутый специалист, то вряд ли найдете здесь что‑то новое.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments1

Движок для игры от первого лица в 265 строках Javascript

Level of difficultyHard
Reading time6 min
Views26K
image

Сегодня окунёмся в мир, который можно потрогать. В этой статье мы исследуем, как с нуля, быстро и без особо сложной математики написать движок для игры от первого лица. Для этого мы воспользуемся приёмом под названием «бросание лучей» (raycasting). Возможно, вы видели примеры такой техники в играх Daggerfall и Duke Nukem 3D, а из более свежего – в статьях из «ludum dare» от Нотча Перссона. Что ж, для Нотча это неплохо, но не для меня! Вот демка (управление стрелками и тачпадом) [источник].
Читать дальше →
Total votes 61: ↑60 and ↓1+76
Comments36

Как работает компьютер: глубокое погружение (на примере Linux)

Level of difficultyHard
Reading time48 min
Views144K



Введение


Я делала много вещей с компьютерами, но в моих знаниях всегда был пробел: что конкретно происходит при запуске программы на компьютере? Я думала об этом пробеле — у меня было много низкоуровневых знаний, но не было цельной картины. Программы действительно выполняются прямо в центральном процессоре (central processing unit, CPU)? Я использовала системные вызовы (syscalls), но как они работают? Чем они являются на самом деле? Как несколько программ выполняются одновременно?


Наконец, я сломалась и начала это выяснять. Мне пришлось перелопатить тонны ресурсов разного качества и иногда противоречащих друг другу. Несколько недель исследований и почти 40 страниц заметок спустя я решила, что гораздо лучше понимаю, как работают компьютеры от запуска до выполнения программы. Я бы убила за статью, в которой объясняется все, что я узнала, поэтому я решила написать эту статью.


И, как говорится, ты по-настоящему знаешь что-то, только если можешь объяснить это другому.


Более удобный формат статьи.

Читать дальше →
Total votes 151: ↑151 and ↓0+151
Comments36

Как восстановить утерянный пароль к архиву с помощью видеокарты

Reading time6 min
Views91K
image

Добрый день, Хабрасообщество!


Случилось так, что мне потребовалось подобрать утерянный пароль к архиву 7zip, который содержал резервную копию нескольких файлов со старого диска. Пароль я давно потерял, а процесс его восстановления потребовал определенных усилий и оказался довольно занятным делом. Подробнее об этом и расскажу в статье.
Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments38

Команда SED в Linux/Unix с примерами

Reading time7 min
Views176K

Компиляция из двух смежных статей на тему использования команды sed для редактирования текстовых файлов, включая различные варианты поиска и замены шаблонов, а также всевозможные операции со строками. Идею к публикации этого гайда подал участник nronnie в комментарии к предыдущей статье, посвящённой работе с Bash.
Читать дальше →
Total votes 42: ↑41 and ↓1+61
Comments9

Особенности национального ПО: обзор РЕД ОС

Level of difficultyEasy
Reading time18 min
Views25K

Всем привет! В связи с последними событиями в мире, вопрос отечественных разработок в сфере программного обеспечения и дистрибуции становится все более и более актуальным и нам все чаще поступают запросы по переезду с западных дистрибутивов на отечественные операционные системы. По законодательству государственные учреждения, корпорации с государственным участием, объекты критической инфраструктуры, например больницы и электростанции, обязаны использовать ПО из единого реестра российских программ. В свою очередь для коммерческих проектов важна минимизация рисков санкций на ПО, которые могут косвенно или напрямую повлиять на работу.

Именно поэтому было решено посвятить статью одному из таких продуктов. Речь пойдет о российской операционной системе РЕД ОС — дистрибутиве, построенном на базе ядра Linux и пакетной базе RPM. Со слов разработчиков дистрибутива, РЕД СОФТ опирается на опыт ведущих мировых сообществ Open Source и придерживается конвенций о наименовании пакетов и спецификации сборок.

Решающим фактором в выборе РЕД ОС является наличие свидетельства государственной регистрации программ ЭВМ и ее наличие в едином реестре российских программ.

В рамках статьи будет продемонстрировано развертывание простого Bitrix окружения на этой ОС, а именно развертывание стандартного LEMP (Linux, Nginx, MySQL, PHP) и установка дополнительных решений для работы проекта на данном дистрибутиве. Однако мы посчитали скучным описание установки стека LEMP только из родного репозитория, поэтому решили в рамках статьи развернуть СУБД MySQL 5.7, пакеты которой отсутствуют в репозиториях РЕД ОС. Как показывает наша практика, данная версия MySQL все еще остается одной из самых популярных для LEMP‑стек проектов.

Читать далее
Total votes 14: ↑9 and ↓5+5
Comments22

Почему я отказался от кросс-платформенных решений в мобильной разработке

Reading time9 min
Views11K
image
Позвольте мне с вами кое-чем поделиться. Мне нравится идея кросс-платформенной разработки. Возможность использовать один набор инструментов для всех моих задач — это мечта. Кто не хотел бы использовать только один инструмент, чтобы успешно выполнять свои задачи? Пиши один раз, запускай везде? Я хочу!
Читать дальше →
Total votes 8: ↑6 and ↓2+6
Comments27

Information

Rating
Does not participate
Registered
Activity

Specialization

Security Engineer, Dev-Ops инженер
Middle
From 4,500 $
PostgreSQL
JavaScript
Docker
Nginx
GitLab
DevOps
Webpack
Bash
Kubernetes
Python