Системный инженер
5 open-source систем управления событиями безопасности

Чем хороший безопасник в ИТ-сфере отличается от обычного? Нет, не тем, что он в любой момент времени по памяти назовёт количество сообщений, которые менеджер Игорь отправил вчера коллеге Марии. Хороший безопасник старается выявить возможные нарушения заранее и отлавливать их в режиме реального времени, прилагая все силы, чтобы не было продолжения инцидента. Системы управления событиями безопасности (SIEM, от Security information and event management) значительно упрощают задачу быстрой фиксации и блокировки любых попыток нарушений.
Переписывание истории репозитория кода, или почему иногда можно git push -f

Одно из первых наставлений, которое молодой падаван получает вместе с доступом к git-репозиториям, звучит так: «никогда не
git push -f
». Поскольку это одна из сотен максим, которые нужно усвоить начинающему инженеру-разработчику ПО, никто не тратит время на уточнение, почему именно так нельзя делать. Это как младенцы и огонь: «спички детям не игрушки» и баста. Но мы растём и развиваемся как люди и как профессионалы, и однажды вопрос «а почему, собственно?» встаёт в полный рост. Эта статья написана по мотивам внутреннего митапа на тему: «Когда можно и нужно переписывать историю коммитов», который я проводил, когда работал в компании FunCorp.Immutable Trie: найди то, не знаю что, но быстро, и не мусори

И даже реализаций в коде, в том числе на JavaScript, для него существует немало — от «каноничной» by John Resig и разных оптимизированных версий до серии модулей в NPM.
Зачем же нам понадобилось использовать его для сервиса по сбору и анализу планов PostgreSQL, да еще и «велосипедить» какую-то новую реализацию?..
Web Cryptography API: пример использования
В этом туториале мы рассмотрим Web Cryptography API: интерфейс шифрования данных на стороне клиента. Данный туториал основан на этой статье. Предполагается, что вы немного знакомы с шифрованием.
Что конкретно мы будем делать? Мы напишем простой сервер, который будет принимать зашифрованные данные от клиента и возвращать их ему по запросу. Сами данные будут обрабатываться на стороне клиента.
Сервер будет реализован на Node.js с помощью Express, клиент — на JavaScript. Для стилизации будет использоваться Bootstrap.
Код проекта находится здесь.
Если вам это интересно, прошу следовать за мной.
Как убрать из Git-репозитория файлы с конфиденциальной информацией
Каждый разработчик когда-то по ошибке коммитил в общедоступный репозиторий файлы с конфиденциальной информацией. Как справиться с такой проблемой? Как сделать так, чтобы ничего подобного больше не случилось бы?
В этой статье я расскажу о том, что делать в том случае, если в репозиторий случайно попал файл, которому там совершенно нечего делать. Здесь же я приведу команды Git, которые позволят подправить историю, и поделюсь некоторыми рекомендациями по организации безопасной работы с конфиденциальной информацией.

Удаление файлов с конфиденциальной информацией из Git-репозитория (изображение большого размера)
Kubernetes для тех, кому за 30. Николай Сивко (2018г)
Мы в okmeter.io в какой-то момент поняли, что нам тоже нужен k8s в production, хотя у нас нет даже CI/CD, но есть задача делить общий пул серверов между приложениями и достаточно легко добавлять мощности в кластер. При этом был ряд обстоятельств, которые усложняли внедрение k8s:
- мы очень заботимся об отказоустойчивости (мы не притаскиваем новые технологии в prod, пока не разберемся в них на достаточном уровне);
- у нас есть сервисы со временем ответа меньше 10ms;
- у нас очень мало человеческих ресурсов на эту задачу (узнать 10 новых терминов ОК, 50 — уже нет).
11 инструментов для разработки микрофронтендов, о которых стоит знать

Идея, лежащая в основе микрофронтендов, заключается в разбиении монолитной клиентской части веб-проекта на более мелкие части, которыми легче управлять. При таком подходе у каждой команды, занятой на проекте, есть собственный участок работ, команды отвечают лишь за некий фрагмент проекта и полностью самостоятельно занимаются его развитием. Так, каждая команда работает с собственной кодовой базой, независимо от других выпускает новые версии своей подсистемы, непрерывно вносит в неё небольшие инкрементальные улучшения. Интеграция этой подсистемы с другими фрагментами приложения, работой над которыми занимаются другие команды, осуществляется посредством API. При такой схеме работы интерфейсные части проектов собирают из независимых фрагментов, работающих сообща.
Дэн Абрамов, в мае прошлого года, писал в своём Твиттере о том, что он не понимает микрофронтенды. Он полагает, что задачи, которые они должны решать, уже решены средствами хороших компонентных моделей. «Может, микрофронтенды — это решение организационных проблем, а не технических? Например, когда две команды разработчиков не могут ни о чём договориться, в том числе — об инфраструктуре проекта», — размышляет он.
Существует много подходов к разработке микрофронтендов: от интеллектуальной интеграции компонентов во время сборки проекта до организации совместной работы разных частей приложения во время выполнения кода путём использования особых подходов к маршрутизации. В этом материале я собрал самые заметные инструменты, направленные на разработку микрофронтендов.
Мини Термометр & гигрометр с E-PAPER на nRF52 — или о том, что пока не выпустили производители
Целью данного проекта была разработка миниатюрного датчика, сравнимого по размерам с обычными беспроводными датчиками температуры, но при этом получить еще и вывод данных на самом устройстве. И при всех этих условиях что бы устройство работало от небольшой батарейки достаточно долго. Что из этого получилось, прошу оценить и не скупится на комментарии.

Опенсорсные альтернативы Google Analytics на своём хостинге

Веб-интерфейс опенсорсного сервиса аналитики Matomo
Дегуглификация онлайновой жизни требует внедрения свободных альтернатив во всех областях. Защитники приватности ведут списки таких продуктов по категориям.
С точки зрения системного администратора в этих списках отдельно выделяется категория веб-аналитики — замена сервису Google Analytics, который собирает детальную статистику о посетителях сайта. Все знают, как работает такой сервис. Внедряете на страничках JS-код отслеживания, и если человек не установил блокировщик следящих скриптов, то каждый раз при открытии страницы будет срабатывать этот скрипт. Дальше статистика по вашим пользователям отправляется на хранение в корпорацию Google.
К счастью, есть ряд свободных, опенсорсных альтернатив Google Analytics, которые к тому же работают быстрее, поскольку скрипты меньше по размеру и загружаются с вашего собственного хостинга, а не со стороннего сервера. Информация о пользователях никуда не отправляется, а многие сервисы не используют куки и соответствуют законодательству GDPR о защите личных данных.
PostgreSQL Query Profiler: как сопоставить план и запрос

… в красиво оформленный запрос с контекстными подсказками по соответствующим узлам плана:

В этой расшифровке второй части своего доклада на PGConf.Russia 2020 я расскажу, как нам удалось это сделать.
С транскриптом первой части, посвященной типовым проблемам производительности запросов и их решениям, можно ознакомиться в статье «Рецепты для хворающих SQL-запросов».
Тестирование ПО: суть профессии, требования и заработная плата
Разработка программного обеспечения — сфера, которая будет в ближайшее время только расти, несмотря ни на эпидемию, ни на экономический кризис. Соответственно, будет увеличиваться дефицит технических специальностей, связанных с разработкой.
Одна из них — тестирование ПО. Забегая наперед, скажем, что в тестировщиках нуждаются практически все компании, которые занимаются созданием программного обеспечения и сервисов. Что касается порога входа, требований, которые предъявляются к разработке ПО и размере заработной платы тестировщиков, то в этом вопросе поможет разобраться преподаватель курса GeekBrains «Тестирование ПО» Максим Засецкий.
Обновление версий PostgreSQL, или Как не уронить базу при update?

Как создать успешный Fintech-стартап за границей: 8 рекомендаций от практиков
Мир финансов и финансовых услуг огромен и по этой же причине неповоротлив. Современные технологии приучили людей к скорости, доступности и удобству. Классические решения, хоть и остаются на рынке, но требуют изменений.

А пока обычные банки просчитывают риски будущих изменений, их место занимают fintech-стартапы: проекты, решающие задачи в финансовой и около финансовой сфере быстрее, удобнее и зачастую дешевле, чем банк.
Количество новых fintech-компаний увеличивается каждый месяц, и оно понятно: это выход на огромный, богатый деньгами и возможностями рынок. Требуется лишь получить лицензию и… и вот о том, что учитывать при создании fintech-проекта, мы и поговорим.
В этой статье мы опираемся на реальный опыт как при создании fintech-проектов для себя, так и для наших клиентов.
ViennaNET: набор библиотек для backend’а. Часть 2
В этой статье пройдемся по еще не рассмотренным библиотекам для работы с распределенными транзакциями, очередями и БД, которые можно найти в нашем репозитории на GitHub (исходники лежат здесь), а Nuget-пакеты здесь.

Книга «Программирование квантовых компьютеров. Базовые алгоритмы и примеры кода»

Эрик Джонстон, Ник Хэрриган и Мерседес Химено-Сеговиа помогают развить необходимые навыки и интуицию, а также освоить инструментарий, необходимый для создания квантовых приложений. Вы поймете, на что способны квантовые компьютеры и как это применить в реальной жизни. Книга состоит из трех частей: — Программирование QPU: основные концепции программирования квантовых процессоров, выполнение операций с кубитами и квантовая телепортация. — Примитивы QPU: алгоритмические примитивы и методы, усиление амплитуды, квантовое преобразование Фурье и оценка фазы. — Практика QPU: решение конкретных задач с помощью примитивов QPU, методы квантового поиска и алгоритм разложения Шора.
Power-line communication. Часть 1 — Основы передачи данных по линиям электропередач

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

При проведении научных и прикладных исследование часто создаются модели, в которых рассматриваются точки и/или векторы определенных пространств. Например, в моделях шифров на эллиптических кривых используются аффинные и проективные пространства. К проективным прибегают тогда, когда необходимо ускорить вычисления, так как в формулах манипулирования с точками эллиптической кривой выводимых в рамках проективного пространства отсутствует операция деления на координату, которую в случае аффинного пространства обойти не удается.
Операция деления как раз одна из самых «дорогих» операций. Дело в том, что в алгебраических полях, а соответственно и в группах операция деления вообще отсутствует и выход из положения (когда не делить нельзя) состоит в том, что операцию деления заменяют умножением, но умножают не на саму координату, а на обращенное ее значение. Из этого следует, что предварительно надо привлекать расширенный алгоритм Евклида НОД и кое что еще. Одним словом, не все так просто как изображают авторы большинства публикаций о ЕСС. Почти все, что по этой теме опубликовано и не только в Интернете мне знакомо. Мало того, что авторы не компетентны и занимаются профанацией, оценщики этих публикаций плюсуют авторов в комментариях, т. е. не видят ни пробелов, ни явных ошибок. Про нормальную же статью пишут, что она уже 100500-я и от нее нулевой эффект. Так все пока на Хабре устроено, анализ публикаций делается огромный, но не качества содержания. Здесь возразить нечего — реклама двигатель бизнеса.
Полноценный Kubernetes с нуля на Raspberry Pi

Совсем недавно одна известная компания объявила, что переводит линейку своих ноутбуков на ARM-архитектуру. Услышав эту новость, я вспомнил: просматривая в очередной раз цены на EC2 в AWS, обратил внимание на Graviton'ы с очень вкусной ценой. Подвох, конечно же, был в том, что это ARM. Тогда мне и в голову не приходило, что ARM — это довольно серьезно…
Для меня эта архитектура всегда была уделом мобильных и прочих IoT-штучек. «Настоящие» серверы на ARM — как-то необычно, в чем-то даже дико… Однако новая мысль засела в голову, поэтому в один из выходных решил проверить, что вообще можно сегодня запустить на ARM. И для этого решил начать с близкого и родного — кластера Kubernetes. Причем не просто какого-то условного «кластера», а всё «по-взрослому», чтобы он был максимально таким же, каким я привык его видеть в production.
По моей задумке, кластер должен быть доступным из интернета, в нём должно выполняться некоторое веб-приложение и еще должен быть как минимум мониторинг. Для реализации этой идеи понадобится пара (или больше) Raspberry Pi не ниже модели 3B+. Площадкой для экспериментов могла бы стать и AWS, но мне были интересны именно «малины» (которые всё равно стояли без дела). Итак, мы развернём на них кластер Kubernetes с Ingress, Prometheus и Grafana.
Настройка ПИД-регуляторов: так ли страшен черт, как его малюют? Часть 4. Frequency Response Based PID Tuner
Среда Simulink предоставляет возможность исследования нелинеаризуемых систем и настройки их регуляторов с помощью метода гармонического анализа. Одним из инструментов, использующих данный метод, является Frequency Response Based PID Tuner.
Information
- Rating
- Does not participate
- Location
- Nordrhein-Westfalen, Германия
- Registered
- Activity