Pull to refresh
-1
0
Send message

Телеграмм бот на Python aiogram 3. Часть 1

Level of difficultyEasy
Reading time9 min
Views11K

В этом пошаговом руководстве пишем простого эхо-бота с нуля. Используем современный стек: Python и асинхронный фреймворк aiogram 3. Главная особенность — разбираем новый, актуальный на 2025 год, способ регистрации бота через Mini App в @BotFather, который пришел на смену старым консольным командам.

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

Читать далее

Изучаем Python: модуль math для начинающих с практическим домашним заданием

Level of difficultyEasy
Reading time8 min
Views6.5K

Базовых арифметических операторов в Python хватает не всегда. Как только задача выходит за рамки простого сложения или умножения, в дело вступает стандартный модуль math. Но как им правильно пользоваться и какие возможности он скрывает?
В этой статье мы структурно разберем один из самых фундаментальных модулей Python. Поговорим о корректном импорте, рассмотрим ключевые константы (pi, e, inf) и подробно разберем самые востребованные функции: от sqrt и pow до тригонометрии и логарифмов. Весь материал — строго по делу, без "воды" и с практическими примерами.
В конце вас ждет домашнее задание из трех задач разного уровня сложности, чтобы закрепить теорию на практике. Будет полезно как начинающим разработчикам, так и тем, кто хочет систематизировать свои знания.

Читать далее

Создаем 'Сапёр' на Python с нуля: пошаговое руководство для начинающих

Level of difficultyEasy
Reading time12 min
Views9.5K

Разбираем создание «Сапёра» на Python. Идеальный проект для начинающих, чтобы на практике освоить Pygame и основы геймдева.

Внутри — подробное пошаговое руководство, где мы:
• Настроим рабочее окружение с venv.
• Напишем игровую логику с нуля, отделив её от графики.
• Реализуем рекурсивный алгоритм для открытия пустых полей.
• Отрисуем всё на экране и научим игру реагировать на клики.

Читать далее

Используем Рутокен ЭЦП для авторизации на сайте

Reading time7 min
Views2K

В прошлый роз я писал про замечательный пакет opensc‑pkcs11, в котором есть программа pkcs11-tool, позволяющая работать с USB‑токенами, и в частности, с Rutoken (если скачать и установить нужную библиотеку‑модуль librtpkcs11ecp.so).
Можно использовать USB‑токен как аппаратное хранилище для паролей шифрования, защищенное пинкодом.

А сейчас — о том, как можно использовать USB‑токен в качестве средства авторизации пользователей при входе на сайты.
Но начнем с конца:

Вместе с pkcs11-tool есть в пакете и программа pkcs11-register.
Что она делает — она «учит» другие программы работать с PKCS#11, например, браузеры.

Читать далее

От консоли к 3D: Как написать игру «Сапер» на Python с нуля версия 3D (часть третья)

Level of difficultyEasy
Reading time26 min
Views3.4K

Создайте 3D-версию легендарного «Сапёра» на Python с использованием OpenGL. В этом руководстве вы шаг за шагом реализуете полностью трехмерную игру: от создания меню со слайдерами до 3D-визуализации игрового поля

Вы освоите работу с камерой в трехмерном пространстве, настройку динамического освещения, создание объемных мин с шипами и 3D-флагов, а также реализуете классическую игровую механику в трехмерной среде

Читать далее

Эффект Манделы или как одновременно вывести звук на две bluetooth колонки c Samsung на андроиде 15

Level of difficultyEasy
Reading time3 min
Views63K

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

Красную таблетку (читать далее)

Рутокен ЭЦП + ИФНС: отправляем отчетность в Линуксе

Reading time4 min
Views4.8K

Еще не так давно периодическая процедура типа «сдача налоговой отчетности» заставляла нервно дергаться глаз: для того, чтобы сделать это онлайн — нужна электронная подпись на USB‑токене, для того, чтобы работать с USB‑токеном нужно установить специальную программу (широко известную в узких кругах), а для того чтобы установить эту специальную программу — нужен компьютер с Windows.
Да еще у нее может закончиться срок лицензии, и тогда его надо продлевать...

Но что делать, если больше ни для чего мне Windows не нужен нигде и никогда? Держать на полке специальный старый ноубук (который все время мешается)? Завести образ виртуальной машины, который нужно будет в определенное время запускать только ради того чтобы отправить файл?
Да еще периодически обновлять программу, выполнять хотелки типа «нужно установить версию ХХХ не ниже YYY!», бороться со странными багами после установки версии XXX...

Причем, нельзя это сделать где‑то на сервере и работать удалённо — получится ошибка типа «по идейным причинам программа не работает с ключом через удаленный Рабочий стол!»‑ ну как‑то так.
Изволь поставить на свой компьютер и работать лично! Очень «удобно», когда у тебя их несколько в разных местах...

Конечно, для большинства это вообще неактуально, так как они живут в Windows, но я про свой случай говорю, а не про всеобщий.
И вот наконец‑то что‑то изменилось.

Читать далее

Краткая история комплексных чисел

Level of difficultyEasy
Reading time15 min
Views15K

Вам это может показаться странным, но были времена, когда отрицательные числа казались людям чем-то неестественным, причём даже тем людям, которые зарабатывали себе на жизнь числами — математикам. Как можно считать числом то, что не имеет физического воплощения? С отрицательными числами в итоге смирились, но уж что точно невозможно было терпеть, так это совсем непонятную величинуi, квадрат которой-1, это уже противоречит всякому здравому смыслу. Тем не менее время показало, что законы физики и математики, сформулированные с использованиемi имеют больший смысл, чем законы, сформулированные без неё. Еще в 19 веке Карл Фридрих Гаусс отметил, что "Если бы вместо того, чтобы называть +1, −1,\sqrt{−1}​ положительной, отрицательной или мнимой (или даже невозможной) единицей, их назвали бы, скажем, прямой, обратной или боковой единицей, то едва ли можно было бы говорить о какой-либо темноте".

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

Читать далее

Модуль datetime в Python для начинающих с домашним заданием

Level of difficultyMedium
Reading time8 min
Views6.4K

Работа с датами и временем в Python — базовая задача, которая часто вызывает трудности у начинающих. В этой статье мы с нуля разберем встроенный модуль datetime, который элегантно решает большинство проблем. Вы научитесь получать текущее время, выполнять операции с датами, а главное — парсить строки и форматировать вывод с помощью strptime и strftime. Это пошаговое руководство для новичков, с практическим заданием на GitHub в конце.

Читать далее

Изучаем Python: модуль os для начинающих с практическим домашним заданием

Level of difficultyMedium
Reading time10 min
Views12K

Разбираем один из самых полезных встроенных модулей Python — os. Простыми словами о том, как управлять файлами и папками прямо из кода. Пройдем путь от os.mkdir() до написания скрипта для автоматической сортировки. Статья для начинающих, но с упором на практику. В финале — домашнее задание на GitHub с автоматической проверкой решений.

Читать далее

SSH-туннель вместо белого IP: как получить доступ к домашнему серверу

Level of difficultyEasy
Reading time8 min
Views46K

Самый простой способ получить удалённый доступ к домашнему серверу — купить у провайдера статический «белый» IP (обычно 100–200 ₽/мес). Если же у вас уже есть арендованный VPS с публичным IP (например, для сайта, VPN или других проектов), его можно использовать как мост для доступа к серверу, сэкономив на покупке статического IP. В этой статье я расскажу, как настроил обратный SSH‑туннель через существующий VPS, чтобы стабильно подключаться к своему домашнему серверу, находящемуся за NAT от провайдера.

Читать далее

LibreChat: как настроить локальный мультичат для сотен нейросетей без подписок (Win11/Linux/Mac)

Level of difficultyEasy
Reading time10 min
Views30K

Представьте себе единый интерфейс, очень похожий на ChatGPT, но с существенной разницей — в выпадающем списке вы можете выбрать не только DeepSeek, но и Claude от Anthropic, Gemini от Google, Grok от xAI и даже экспериментальные модели вроде ChatGPT 4o.

При этом вам не нужны десяток отдельных аккаунтов и VPN для доступа из них.

Это не фантастика, а реальность с LibreChat. Идея показалась настолько очевидной, что я удивился, почему не сделал этого раньше. Собственный чат? На своем компе? С любыми моделями, которые я захочу подключить? Это звучало как манифест цифровой независимости. Решил попробовать, и результат превзошел ожидания.

В этом гайде мы подробно пройдем все шаги установки и настройки LibreChat в средах Windows 11/Linux/Mac, чтобы вы смогли оценить преимущества этого подхода.

Читать далее

Всеобъемлющая Теория Матриц

Level of difficultyEasy
Reading time13 min
Views14K

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

Погрузится в мир матриц

Как написать свой TCP-порт-сканер на Python: опыт, код и примеры использования

Level of difficultyMedium
Reading time8 min
Views3.1K

В этой статье мы разберём, как написать свой многопоточный TCP-порт-сканер на Python. Несмотря на то, что существуют готовые инструменты вроде nmap или masscan, иногда требуется минималистичное решение: встроить проверку в CI/CD, автоматизировать аудит небольшой сети или использовать сканер как обучающий пример. Мы рассмотрим два подхода — на ThreadPoolExecutor и на asyncio, добавим баннер-граббинг, HTTP-проверку и TLS-детекцию. В результате получится компактный инструмент с поддержкой JSON/CSV-вывода, возможностью тонко настраивать параллелизм и таймауты, а также учитывать нагрузку на сеть. Такой сканер удобен для внутренних задач админа и для изучения сетевого программирования.

Читать далее

Ваш смартфон вам не принадлежит. И вот как я в этом убедился…

Level of difficultyEasy
Reading time4 min
Views58K

Мы платим немалые деньги за мощные карманные компьютеры, но реальный контроль над устройством часто остается мифом. Личный эксперимент с «неубиваемыми» приложениями и скрытой слежкой.

Вы купили телефон. Он лежит у вас в кармане. Вы за него заплатили. Казалось бы, он ваш. Но так ли это на самом деле? Моя недавняя история заставила меня усомниться в этом фундаментальном, казалось бы, факте.

Все началось с батареи. Мой телефон стал разряжаться подозрительно быстро. Будучи технически подкованным пользователем, я решил копнуть глубже. Без рут‑прав, но с помощью Android Debug Bridge (ADB) и команды ps, я начал изучать запущенные процессы. На первый взгляд — все чисто, только системные службы. Ничего криминального.

Потом случился инцидент с обновлением приложения Альфа‑Банка. Оно запросило доступ к «Неизвестным источникам» (разрешение на установку приложений). Я разрешил, обновил и... благополучно забыл об этом. Но позже вспомнил: держать приложение в списке источников — серьезный риск! Это как выдать кому‑то ключ от вашей крепости — оно может устанавливать другие приложения без вашего ведома. Я всегда строго контролирую этот список, оставляя там только абсолютно доверенные программы.

Каково же было мое изумление, когда, заглянув в настройки безопасности (Настройки > Безопасность > Установка неизвестных приложений), я обнаружил там несколько программ, которых точно не добавлял! Среди них было какое‑то безликое «Обратная связь» и загадочный «oms‑core».

«Ладно, — подумал я, — Сейчас исправим». Я спокойно снял галочки напротив этих приложений, лишив их статуса источника установки. Чувство выполненного долга длилось недолго. Какое‑то сомнение грызло меня. Я вернулся в настройки буквально через минуту... и обомлел. Галочки стояли на месте! Я проделал операцию еще раз — результат был тот же. Отключить эту функцию у этих приложений оказалось невозможно.

Читать далее

USBODE: самодельный аналог «кармана» IODD / Zalman

Reading time5 min
Views5.5K

Часто ли вам приходится переустанавливать операционную систему? Обычный пользователь на этот вопрос, скорее всего, ответит что-то вроде: «раз в пару лет». Кто-то вообще годами сидит на одной и той же, собирая всяческие глюки. Но есть и те, кто делает эту операцию каждый день. Например, системные администраторы и инженеры ЦОДов.

Именно для этой категории людей южнокорейская компания IODD придумала очень удобные устройства — эмуляторы оптического привода (их еще часто называют «карманами»). Стоит лишь залить нужные ISO-образы дисков в специально выделенную директорию, и девайс сможет прикидываться CD/DVD-приводом, подключенным по USB. Такие гаджеты делает и Zalman, а на Хабре мы уже писали про их особенности.

Во всем этом есть только одна проблема. Цена хорошего «кармана» сейчас от 80 до 100 $. Да и найти его довольно сложно — нишевая штука. Но если вы обладатель Raspberry Pi Zero W, то его можно превратить в такой девайс, к тому же более продвинутый и кастомизируемый.

Читать далее

SQL для всех: от новичка до профи. Полный гид по тренажерам, курсам и песочницам

Level of difficultyEasy
Reading time14 min
Views33K

Привет, Хабр! Часто ли вам приходилось часами смотреть на сложный JOIN, пытаясь понять, почему он работает не так, как надо? Или, может, вы только начинаете свой путь в IT и слышите со всех сторон, что без SQL никуда? Вы правы, так и есть. SQL – это не просто строчки кода, это ваш ключ к данным, настоящий швейцарский нож для любого тестировщика, аналитика или разработчика.

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

Читать далее

Учебник под микроскопом. Часть 1: из PDF в TXT

Level of difficultyEasy
Reading time5 min
Views3.7K

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

Читать далее

Самый быстрый способ читать Excel в Python

Level of difficultyEasy
Reading time14 min
Views15K

Команда Python for Devs подготовила перевод статьи о том, как читать Excel в Python быстрее всех. В статье результаты тестирования pandas, openpyxl, Tablib, DuckDB, LibreOffice и даже связки с Rust. Кто справился лучше всех и как за 4 секунды Python «проглотил» полмиллиона строк — читайте в статье.

Читать далее

Полезные конструкции Python, которые упростят работу с данными

Level of difficultyEasy
Reading time25 min
Views19K

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

В этой статье мы собрали конструкции, которые пригодятся как начинающим, так и более опытным разработчикам.

Читать далее

Information

Rating
Does not participate
Registered
Activity