Search
Write a publication
Pull to refresh
-1
0
Send message

Я написал свой VPN-клиент для Android. Зачем, если их сотни, и что скрывается под капотом?

Level of difficultyMedium
Reading time22 min
Views53K

Каждый раз, нажимая кнопку «Connect» в очередном VPN-приложении, я ловил себя на мысли: а что там, под капотом? Как эта магия на самом деле работает на уровне Android? Вокруг сотни готовых решений, но простое пользовательское любопытство переросло в профессиональное: мне захотелось не просто использовать, а понять. Понять, какие подводные камни скрывает VpnService, как реализовать весь цикл от авторизации до поднятия защищённого туннеля и что на этом пути может пойти не так.

Эта статья — мой личный "бортовой журнал". Я не претендую на создание самого безопасного решения, это скорее история о пути, граблях и открытиях для тех, кто тоже решит заглянуть под капот VPN-технологий на Android.

Так родилась идея этого проекта — создать свой, пусть и простой, VPN-клиент. Это не попытка сделать коммерческий продукт, а скорее исследовательское погружение, мой личный "челлендж" и способ разложить всё по полочкам.

Заглянуть под капот

Настройка среды разработки: VSCode, Docker для Python-проектов. Debug внутри контейнера

Level of difficultyEasy
Reading time9 min
Views7.5K

В этой статье мы подробно рассмотрим процесс установки и настройки всех необходимых инструментов для эффективной разработки Python-приложений с использованием FastAPI, Docker и Docker Compose. Вы узнаете, как создать изолированную среду для вашего проекта, настроить отладку и обеспечить бесперебойную работу вашего приложения.

Читать далее

Собираем комплекс для качественного офлайн-перевода текстов, работающий на самом обычном игровом компьютере

Level of difficultyEasy
Reading time11 min
Views4.6K

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

Читать далее

Прощай, reCAPTCHA! Как я защитил формы входа с помощью бесплатной и невидимой CAPTCHA от Cloudflare

Level of difficultyMedium
Reading time5 min
Views6.4K

Привет, Хабр! На связи разработчик Peakline — аналитической платформы для Strava. Сегодня я хочу поделиться опытом внедрения Cloudflare Turnstile в веб-приложение на FastAPI.

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

Читать далее

Типизация в Python: как аннотации спасают ваш код и ускоряют разработку

Level of difficultyMedium
Reading time6 min
Views7.7K

Ошибки из-за несоответствия типов — самые обидные и распространенные. Аннотации в Python решают это раз и навсегда. В этой статье я покажу, как они делают ваш код безопаснее и красивее

Читать далее

SOAP, WSDL и немножко Python создаём веб-сервис шаг за шагом

Level of difficultyEasy
Reading time24 min
Views4.3K

Практика — лучший способ глубокого понимания теории. Рассмотрим на примере, как работают веб-сервисы с протоколом SOAP, для чего нужен WSDL и как он связан с XML-документом в теле POST-запроса.

Читать далее

Установка Windows через CMD

Level of difficultyMedium
Reading time6 min
Views18K

Приходилось ли вам устанавливать современные версии Windows? Если да, то вам точно знаком установщик, каждый этап которого прогружается несколько секунд, и который яростно навязывает вам использование аккаунта Microsoft, с каждым обновлением делая использование локального аккаунта всё труднее и труднее.

Но существует альтернативный способ установить Windows — более быстрый, не требующий подключения к интернету и не навязывающий никаких сервисов — ручная установка с использованием CMD.

Читать далее

Подробная инструкция, что нужно сделать, чтобы РКН вас не оштрафовал

Level of difficultyEasy
Reading time8 min
Views3.8K

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

Делюсь с вами этим бесплатно. Просто пойдите и сделайте как написано.

Читать далее

Планирование в Python

Reading time7 min
Views5K
Планирование задач — неотъемлемая часть работы любых веб-приложений, в особенности таких, в которых требуется совершать периодические или отложенные действия. В Python предусмотрено множество способов планирования задач, и у каждого есть свои сильные и слабые стороны. В этой статье будут рассмотрены некоторые наиболее популярные способы планирования задач в приложении, написанном на основе FastAPI.

sched – планировщик событий из Python


Модуль sched входит в состав стандартной библиотеки Python и обеспечивает простой механизм для планирования событий в программе. Этот модуль может работать в приложении на FastAPI, но пользоваться им не рекомендуется, так как он слишком прост, и функциональность его ограничена.
Читать дальше →

exit /b, errorlevel и catch-like конструкции в cmd

Level of difficultyEasy
Reading time4 min
Views1.5K

Привет, Хабр!

Сегодня у нас на повестке интересная тема: как адекватно обрабатывать ошибки в cmd-файлах (он же — Windows Batch).

В общем, если вам приходилось писать batch-скрипт, который делает чуть больше, чем echo Hello World — добро пожаловать. Рассмотрим как работает %ERRORLEVEL%, когда и как юзать exit /b, как раскладывать try/catch на лейблы и почему всё это ломается, когда в бой идут call, for и if.

Читать далее

PYтокен: история о том, как питон съел ЭЦП. Часть 2

Level of difficultyMedium
Reading time4 min
Views2.4K

Продолжение истории о том, как я пытался реализовать подпись файлов с помощью сертификата на USB-устройстве, но уже с использованием USB-токена Рутокен 3.0, а дополнительно сделал шифрование и расшифрование директории.

Просвятиться

Руководство по администрированию Linux для начинающих

Level of difficultyEasy
Reading time7 min
Views22K

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

Читать далее

PYтокен: история о том, как питон съел ЭЦП. Часть 1

Level of difficultyEasy
Reading time11 min
Views8.2K

История о том, как я пытался реализовать подпись файлов с помощью сертификата на USB-устройстве, а дополнительно сделал шифрование и расшифрование директории.

Просвятиться

Декораторы Python. Продвинутое использование

Level of difficultyHard
Reading time25 min
Views9.9K

Привет, Хабр! продолжаю цикл статей про python разработку.

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

Как обычно буду очень рад критике и предложениям по улучшению материала.

Читать далее

База: как разместить простого Telegram-бота на Ubuntu 24.04

Level of difficultyEasy
Reading time4 min
Views4.7K

С сегодняшнего дня запускаем рубрику «База», в которой будем максимально понятно и подробно объяснять то, о чём вы, возможно, стеснялись спросить.

Первый выпуск посвятим очень прикладной теме: размещению Telegram-бота на виртуальном сервере. Для примера я задеплою самый простой бот, который умеет только здороваться. Однако по этому гайду вы сможете развернуть и более сложные проекты.

Читать далее

Qt for Python: PySide6

Level of difficultyEasy
Reading time6 min
Views6K

Статья для новичков про использование Qt на языке Python используя официальную библиотеку-привязку PySide6. Ознакомление с созданием графических приложений на языке Python.

Читать далее

Как отключить слежку на умном ТВ

Reading time4 min
Views21K


Смарт ТВ нового поколения становятся ещё умнее, и одна из главных проблем для приватности пользователей — функция автоматического распознавания контента (automatic content recognition, ACR).

Функция отслеживает видеоролики, кинофильмы и другой контент, который появляется на экране, даже если он транслируется с флэшки или Plex. Информация отправляется производителю ТВ, в том числе для дальнейшей перепродажи информационным брокерам, профилирования пользователя и персонализации рекламы.
Читать дальше →

Графика и Python: 6 GUI-инструментов, которые пригодятся разработчикам в 2025 году

Reading time33 min
Views20K

Привет, Хабр! Меня зовут Леша Жиряков, я техлид бэкенд-команды витрины KION, а еще в МТС я возглавляю Python-гильдию.

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

Читать далее

Запускаем Openwrt в виртуалке с отдельным адресом и socks прокси на Apple silicon

Level of difficultyMedium
Reading time6 min
Views5.2K

Запуск OpenWRT в виртуальной машине на macOS с отдельным IP-адресом и SOCKS-прокси
В этой статье мы покажем, как запустить OpenWRT в виртуальной машине на macOS, используя бесплатный UTM и Apple Virtualization Framework — для экономии ресурсов и удобства. OpenWRT получает собственный IP-адрес через bridge-интерфейс, а SOCKS-прокси служит лишь примером одного из возможных применений виртуального роутера. Остальное — дело вашей фантазии.

Читать далее

Разбираемся как работать с wine на Unix-based системах

Level of difficultyMedium
Reading time40 min
Views21K

Давно хотели научиться работать с Wine в Linux или Mac Для запуска Windows приложений? Мой обзор-гайд для вас. Я в подробностях расскажу о том как запускать прилоежния, дебажить их, решать проблемы и покажу различные wine-loaders для работы.

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity