Pull to refresh
143
0
Олег Сухонос @sukhe

программист

Send message

Путь в GitOps или как мы перевели кластер Kubernetes под управление Argo CD

Reading time10 min
Views3.2K

Всем привет! Если вы работаете с Kubernetes, то, скорее всего, используете kubectl, kustomize или Helm для развёртывания сервисов в кластере. Про последнюю утилиту я уже писал статью — можно посмотреть тут. Тогда я рассказал о своём опыте внедрения этого инструмента для собственных нагрузок и сравнил подходы kubectl apply и helm install.

Управление конфигурацией в Kubernetes может осуществляться с помощью различных инструментов. Помимо Helm, можно использовать просто YAML-манифесты или же kustomize. Для каждого из этих инструментов предусмотрена своя команда.

В данной статье мы рассмотрим подход GitOps для K8s-кластеров и применим такой инструмент, как Argo CD.

Читать далее
Total votes 9: ↑9 and ↓0+12
Comments6

Kiisu — плата, совместимая с Flipper Zero

Level of difficultyEasy
Reading time5 min
Views11K

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

Приглашаю под кат, чтобы посмотреть, что получилось и обсудить, как можно сделать ещё лучше :)

Читать далее
Total votes 88: ↑87 and ↓1+107
Comments32

Обходим замедление Youtube на Android TV без VPN

Level of difficultyMedium
Reading time3 min
Views170K

Всем привет, сегодня речь пойдет про Android TV. Мне обход именно на телевизоре показался самым проблемным и сложным. Так как дома имеется несколько лишенных ютуба телевизоров, а еще больше ожидают настройки у друзей и знакомых - решил собрать все найденные способы обхода блокировки.

Читать далее
Total votes 47: ↑45 and ↓2+54
Comments68

Делаем правильный анаглиф своими руками

Level of difficultyEasy
Reading time12 min
Views5.8K


Всем привет. Сегодня я поделюсь методом создания высококачественных анаглифических изображений с минимальными трудозатратами. Динозавров делать не будем: возьмем любую фотографию из семейного архива и получим полноценное трехмерное изображение. Сразу скажу, что концепция не новая, но мы будем использовать современные наработки и даже напишем простейший плагин для GIMP, от которого, впрочем, придется отказаться…
Читать дальше →
Total votes 32: ↑31 and ↓1+43
Comments7

Какой роутер для OpenWrt купить в 2025 году?

Level of difficultyEasy
Reading time21 min
Views74K

Я много пишу про OpenWrt и часто получаю вопросы о том, какой взять роутер под эту ОС. В прошлом году я уже делал обзор роутеров, лучше всего подходящих под OpenWrt. Тогда выбор был не очень большой, но сейчас всё изменилось в лучшую сторону. Поэтому я сделал новый актуальный разбор для тех, кто не знает, какой роутер выбрать.

Роутер, как и любой другой девайс, нужно покупать под запрос. Например, линуксоиды привыкли покупать ноутбуки именно под Linux, а не первый попавшийся. Также и тут: если нужен OpenWrt, то роутер тоже надо выбирать с умом, а не надеяться на то, что кастомная прошивка сделает конфетку из роутера за 700 р.

В 2023 и 2024 появились интересные роутеры, которые уже поддерживаются проектом OpenWrt. Эти роутеры сделаны на базе ARM-процессоров. Такие роутеры появились у нескольких компаний, и дальше их количество будет только увеличиваться.

Читать далее
Total votes 222: ↑222 and ↓0+246
Comments231

Программируем полётный контроллер на основе DIY проекта Flix

Level of difficultyMedium
Reading time19 min
Views16K

У нас в МАИ, в 8-м институте, учатся будущие разработчики IT‑продуктов и софта для авиационных систем, аэропортов, логистики и много чего ещё интересного. Один из курсов с 2023 года мы решили посвятить разработке программного обеспечения для автопилота. В курсе всё как положено, с красивыми диаграммами регуляторов, кватернионами и кодами таких проектов как Ardupilot, PX4, Betaflight, iNav и другими.

Однако, довольно сложно сразу вкатиться в тему полетных прошивок — они переполнены всякими фичами и функционалом, так что неподготовленному разработчику сложно понять как же это всё работает. Поэтому долгое время я искал такой проект, который позволяет «на пальцах» объяснить как работает прошивка полётника. Таким проектом для меня стал Flix от Олега Калачева. Про опыт сборки проекта и изучения на его основе полетной прошивки со студентами и пойдет разговор в этой статье.

Полетели !
Total votes 40: ↑39 and ↓1+50
Comments21

Вам следует написать новый (ужасный) язык программирования

Level of difficultyEasy
Reading time5 min
Views14K

Каждый разработчик ПО использует язык программирования, и обычно даже несколько. Лишь немногие из нас создают языки программирования. Это логично, ведь работу, которую мы выполняем, чаще всего можно сделать при помощи уже существующих языков. И совершенствованием этих языков уже занимаются другие люди, а мы можем сосредоточиться на нашей непосредственной задаче.

Но из-за этого мы теряем возможность научиться чему-то новому. Я нашла это новое, когда создала язык, руководствуясь глупым принципом: поток управления должен осуществляться через исключения и ничего больше. Я создала его как шутку, но неожиданно для себя в процессе разработки получила новые знания.
Читать дальше →
Total votes 45: ↑43 and ↓2+55
Comments63

Любой может получить доступ к удалённым и приватным данным репозиториев GitHub

Level of difficultyMedium
Reading time6 min
Views49K

Кто угодно может получать доступ к данным из удалённых форков, удалённых репозиториев и даже приватных репозиториев GitHub. И эти данные доступны всегда. Это известно разработчикам GitHub, и они намеренно спроектировали систему таким образом.

Это настолько огромный вектор атак для всех организаций, использующих GitHub, что мы решили ввести новый термин: Cross Fork Object Reference (CFOR). Уязвимость CFOR возникает, когда форк одного репозитория может получить доступ к требующим защиты данным из другого форка (в том числе и к данным из приватных и удалённых форков). Аналогично Insecure Direct Object Reference, при CFOR пользователи передают хэши коммитов, чтобы напрямую получать доступ к данным коммитов, которые иначе были бы для них невидимыми.

Давайте рассмотрим несколько примеров.
Читать дальше →
Total votes 114: ↑106 and ↓8+127
Comments41

Индуктивная статистика: доверительные интервалы, предельные ошибки, размер выборки и проверка гипотез

Level of difficultyMedium
Reading time15 min
Views10K

Одной из самых распространённых задач аналитики является формирование суждений о большой совокупности (например, о миллионах пользователей приложения), опираясь на данные лишь небольшой части этой совокупности - выборке. Можно ли сделать вывод о миллионной аудитории крупного мобильного приложения, собрав данные 100 пользователей? Или стоит собрать данные о 1000 пользователях? Какую вероятность ошибиться при анализе мы можем допустить: 5% или 1%? Относятся ли две выборки к одной совокупности, или между ними есть ощутимая значимая разница и они относятся к разным совокупностям? Точность прогноза и вероятность ошибки при ответе на эти и другие вопросы поддаются вполне конкретным расчётам и могут корректироваться в зависимости от потребностей продукта и бизнеса на этапе планирования и подготовки эксперимента. Рассмотрим подробнее, как параметры эксперимента и статистические критерии оказывают влияние на результаты анализа и выводы обо всей совокупности, а для этого смоделируем тысячу A/A, A/B и A/B/C/D тестов.

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

Где жить в городе именно вам? Персонализированный сервис подбора идеальных домов

Level of difficultyEasy
Reading time40 min
Views8.8K

Для кого-то это будет очередная…, а для другого — очередная! статья, посвящённая анализу качества городской среды. Попытаемся выяснить, в каких домах и районах города условия проживания более комфортные, а в каких — менее. Причём более комфортные исходя не из усреднённых пожеланий и предпочтений, а исходя из ваших собственных!

Созданный сервис представляет собой интерактивную web-карту, на которой вы можете сами настроить, какие факторы жизни в городе для вас наиболее важны. В данном случае, в подмосковном городе Пушкино.

Статья детально описывает все шаги составления этой карты: от изучения уже имеющегося опыта и описания концепции до выбора источников, инструментов и методов расчёта показателей. Для удобства прочтения публикации присутствует оглавление.

Узнать подробнее
Total votes 22: ↑21 and ↓1+28
Comments22

Самый быстрый фреймворк на Диком Западе: ускоряем Django-rest-framework вместе с Rust

Level of difficultyMedium
Reading time15 min
Views6.9K

Всем привет! Меня зовут Роман Кабаев, я инженер в отделе разработки инструментов тестирования компании YADRO. Вместе с коллегами мы разрабатываем собственную тест-менеджмент систему с открытым исходным кодом TestY.

На этапе запуска TestY в качестве фреймворка для разработки мы выбрали Django, так как он позволяет в максимально короткие сроки реализовать MVP. Однако развивать такой продукт — добавлять фичи, наращивать число пользователей и объем хранимых данных в системе — бывает сложно.

Мы действительно быстро запустили MVP, перевезли данные из TestRail с помощью плагинов, и команды тестирования YADRO уже более года пользуются системой. Но есть одно «но»: пользовательские сценарии разных команд сильно отличаются. Так, добавление в систему более полумиллиона тестов привело к просадке скорости работы определенных эндпоинтов, завязанных на древовидных структурах. 

Спойлер: камнем преткновения для нас стали CPU-bound задачи с большим количеством данных, о том, как я это выяснил, расскажу ниже. Изучив, как можно ускорить выполнение таких задач в Python, я протестировал несколько решений и нашел оптимальное. Если вы разрабатываете веб-приложение на Django или Python и так же, как я, хотите ускорить работу сервиса, читайте эту статью.

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

Python. Внутреннее устройство множеств set и словарей dict. Часть 2 из 2

Level of difficultyMedium
Reading time7 min
Views4.7K

Продолжение Части 1

4. Хэш-таблицы в dict
4.1. Как компактный dict экономит место и сохраняет порядок
4.2 Алгоритм добавления элементов в компактный dict
4.3. dict с общим доступом к ключам
4.4. Практические выводы по тому как работает dict

Читать далее
Total votes 10: ↑9 and ↓1+11
Comments2

Работа с YOLOV8. Детекция, сегментация, трекинг объектов, а также подготовка собственного датасета и обучение

Level of difficultyMedium
Reading time26 min
Views9.2K

Если вам кажется, что начать работу с нейросетями - это сложно, то этот материал для вас!

В статье подробно, с примерами кода, разберем основные функции базовой модели YOLOV8 - детекция, сегментация, трекинг объектов, а также создание собственного датасета и дообучение нейросети для работы с собственными объектами!

Читать далее
Total votes 15: ↑15 and ↓0+19
Comments6

SARIMAX vs Экспоненциальное сглаживание: Когда простота побеждает

Reading time10 min
Views4K

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

Читать далее
Total votes 10: ↑10 and ↓0+16
Comments12

Telegram Боты на Aiogram 3.x:  Интеграция с PostgreSQL в пару строк кода

Level of difficultyEasy
Reading time7 min
Views5.6K

Привет, друзья! Вот и добралась до вас обещанная публикация про интеграцию PostgreSQL в Telegram ботов.

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

Сегодня мы закроем этот вопрос.

В этой статье мы напишем:

Читать далее
Total votes 7: ↑5 and ↓2+4
Comments9

Ускорение роутера в Django в 51 раз

Level of difficultyMedium
Reading time6 min
Views13K

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

Читать далее
Total votes 54: ↑53 and ↓1+61
Comments17

Дедупликация данных в Windows 10 и Windows 11 средствами Microsoft

Level of difficultyMedium
Reading time6 min
Views13K

Сегодня я кратко расскажу вам как включить дедупликацию данных в клиентских ОС - Windows 10 и Windows 11, добавив функционал из Windows Server, причем не какие-то сторонние бинарники, а оригинальные, подписанные файлы Microsoft, которые к тому же будут обновляться через Windows Update.

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

Начать знакомство рекомендую с базовой теории Введение в дедупликацию данных / Хабр (habr.com) от компании Veeam, затем почитать о том, что такое дедупликация Microsoft - Обзор и настройка средств дедупликации в Windows Server 2012 / Хабр (habr.com) - статья моего бывшего коллеги по Microsoft Георгия говорит о том, как настраивается дедупликация NTFS в Windows Server 2012. В последующих изданиях Windows Server 2012R2, 2016, 2019, 2022 и 2025 функционал развивался, появилась поддержка ReFS, стало возможно (неочевидным способом) дедуплицировать системный том, расширились компоненты управления, - но для конечного пользователя все остается там же. Установили одним кликом, включили для диска, забыли. В заключение подготовительной информации - тем кого действительно интересует кроссплатформенные решения и их сравнения, предложу ознакомиться со статьей Илии Карина - Dedup Windows vs Linux, MS снова “удивит”? / Хабр (habr.com) - его не должны заподозрить в рекламе Microsoft, его сравнение подходов, и результат меня самого удивил. У меня на такую большую исследовательскую работу сил и возможностей нет, - почитайте. И имейте в виду, что если вы используете последний Windows 11, то и компоненты дедупликации в нем будут последние, от Windows Server 2025, то есть с еще более впечатляющим результатом.

Читать далее
Total votes 17: ↑17 and ↓0+20
Comments53

Подключение модулей навигаторов U-BLOX к Repka Pi

Level of difficultyMedium
Reading time18 min
Views2K

Ранее в статье Получаем спутниковые координаты GPS/ГЛОНАСС с помощью модуля SIM868 на Repka Pi мы рассказали про модуль GSM/GPRS/GNSS Bluetooth HAT, реализующий все основные функции смартфона, в том числе получение координат GPS.

Теперь вы узнаете, как подключить к микрокомпьютеру Repka Pi модули, созданные компанией u-blox AG, созданные специально для работы со спутниковыми системами глобального позиционирования GNSS. Такие модули пригодятся, например, если вам не нужна полная функциональность SIM868.

Пользуясь нашей статьей, вы научитесь настраивать конфигурацию таких модулей с помощью программы, составленной на языке Python, а также мощной программой U-CENTER, созданной компанией u-blox AG. Такая настройка пригодится, например, для работы с российской системой ГЛОНАСС.

Читать далее
Total votes 4: ↑4 and ↓0+6
Comments3

Еще один WSPR маяк?

Level of difficultyEasy
Reading time3 min
Views5.5K

Еще один WSPR маяк?

Привет, Хабр! Много ли вы видели различных проектов WSPR маяков? Не знаю, но хочу поделиться с вами своим небольшим проектом который ориентирован в основном на начинающих радиолюбителей.

Читать далее
Total votes 19: ↑19 and ↓0+26
Comments5

Автоматизация поиска аккаунта в телеграм через номер. Простой поиск людей через телеграм

Reading time4 min
Views13K

Введение

Рады снова приветствовать дорогих читателей! Продолжаем рубрику статей "ШХ" в которой мы рассматриваем методы и инструменты OSINT. В этой статье хотим рассмотреть очередной перечень инструментов которые могут значительно упростить жизнь сетевым разведчикам.

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

Читать далее
Total votes 4: ↑3 and ↓1+3
Comments0
1
23 ...

Information

Rating
5,884-th
Location
Донецкая обл., Украина
Registered
Activity

Specialization

Backend Developer