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

программист

Send message

Любой может получить доступ к удалённым и приватным данным репозиториев 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
Comments42

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

Level of difficultyMedium
Reading time15 min
Views11K

Одной из самых распространённых задач аналитики является формирование суждений о большой совокупности (например, о миллионах пользователей приложения), опираясь на данные лишь небольшой части этой совокупности - выборке. Можно ли сделать вывод о миллионной аудитории крупного мобильного приложения, собрав данные 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
Views9K

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

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

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

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

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

Level of difficultyMedium
Reading time15 min
Views7.1K

Всем привет! Меня зовут Роман Кабаев, я инженер в отделе разработки инструментов тестирования компании 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
Views5K

Продолжение Части 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
Views11K

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

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

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

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

Reading time10 min
Views4.2K

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

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

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

Level of difficultyEasy
Reading time7 min
Views6.6K

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

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

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

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

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

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

Level of difficultyMedium
Reading time6 min
Views14K

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

Читать далее
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
Comments55

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

Level of difficultyMedium
Reading time18 min
Views2.3K

Ранее в статье Получаем спутниковые координаты 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.6K

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

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

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

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

Reading time4 min
Views13K

Введение

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

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

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

Цивилизация Пружин, 1/5

Reading time14 min
Views109K
### Часть 1. Золотое «Ку»

Лет в шесть мне попался в руки дедовский справочник[50] по грузовым автомобилям середины 20-го века. Добротный, напечатанный на гладкой плотной бумаге раритет. Единственное, что вообще осталось на память от деда после распада страны, войн и переездов.



В справочнике содержалось множество интересных ТТХ, так что слово «грузоподъёмность» стало мне знакомо с раннего детства. И когда отец на прогулке упомянул, что любой грузовик весит столько же, сколько увозит сам, я это запомнил. Запомнил и, много позже, заинтересовался.

Отец был прав. Для грузовиков 60-х годов это правило выполняется с довольно удивительной точностью:

Читать дальше →
Total votes 237: ↑230 and ↓7+223
Comments266

Почему для меня так важен алгоритм CORDIC

Level of difficultyMedium
Reading time8 min
Views18K

CORDIC — это алгоритм для вычисления тригонометрических функций вроде
sin, cos, tan и тому подобных на маломощных устройствах без использования модуля обработки операций с плавающей запятой или затратных таблиц поиска. По факту он сводит эти сложные функции до простых операций сложения и битового сдвига.

Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
Читать дальше →
Total votes 87: ↑87 and ↓0+113
Comments27

Как я разработал квадрокоптер на ESP32 с нуля (ушло 4 года)

Level of difficultyMedium
Reading time12 min
Views56K

При сборке квадрокоптеров и других БПЛА обычно используют готовую плату полетного контроллера, содержащую все необходимые датчики и периферию, и готовую полетную прошивку, например, Betaflight, ArduPilot или PX4. Полетный контроллер управляет моторами квадрокоптера и обеспечивает стабильный полет.

Занимаясь БПЛА с 2016 года, я решил разобраться в устройстве полетных контроллеров максимально глубоко и создать квадрокоптер с нуля, не используя готовый полетный контроллер и готовый софт. Спустя долгое время разработки мне удалось это сделать. Я написал прошивку с максимально простым исходным кодом и выложил ее на GitHub. В этой статье я расскажу о теории и практике разработки полетного софта для квадрокоптера и проиллюстрирую это на примере своего дрона на базе микроконтроллера ESP32, который можно увидеть на картинке выше.

Читать далее
Total votes 312: ↑312 and ↓0+371
Comments132

TOTP без смартфона, послесловие

Level of difficultyEasy
Reading time4 min
Views8.5K

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

Поскольку объём работы оказался достаточно большой, то оформил её в виде отдельной публикации-послесловия.

Читать далее
Total votes 18: ↑18 and ↓0+21
Comments52

Путешествие в глубины сети с Shodan – поисковой системой, открывающей двери в неизведанное

Reading time6 min
Views8.5K

Shodan — это инструмент для поиска подключенных к интернету устройств.
Для работы ему не нужны записи DNS. Вместо этого он самостоятельно отправляет запросы на различные сетевые узлы, проверяя каждый порт в разных диапазонах IP-адресов.

Благодаря этому Shodan позволяет узнать, какие устройства и операционные системы наиболее распространены, а также оценить уровень проникновения интернета в разные регионы мира.

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

Рассмотрим с вами два вопроса:

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

90+ дашбордов для OSINT и глобального мониторинга

Level of difficultyEasy
Reading time13 min
Views26K

Наблюдение за тем, какие изменения происходят на планете в масштабах стран и континентов — настоящий источник вдохновения для OSINT-аналитиков. Специалисты Бастион поделились актуальным списком интерактивных дашбордов, которые они держат в закладках, плюс я добавил парочку от себя.

Даже если вы никак не связаны с ИБ, зато часами залипали в контурные карты глобальных стратегий или восхищались глобусом в центре управления X-COM, эта подборка инструментов наверняка вам понравится.

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

Разворачиваем ML модель с использованием ONNX на Android в километре над землей

Level of difficultyMedium
Reading time8 min
Views2.1K

Иногда в жизни программиста возникают интересные задачи. Например, как перенести полученную ML модель, созданную в Python, на Android смартфон. Потому что этот самый смартфон пристегнут к параплану, висящему в километре над землей, а модель должна помогать пилоту лучше искать восходящие потоки.

Интернета в полете при этом обычно нет, так что вариант с доступом к удаленному Python-серверу по API отпадает. Ноутбук с запущенным Jupyter с собой тоже не возьмешь.

На помощь приходит промежуточный формат ONNX, созданный для обмена ML моделями между разными системами. Под катом описание того, как сконвертировать модель в этот формат и как загрузить и использовать ее в Android приложении.

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

Information

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

Specialization

Backend Developer