Как стать автором
Поиск
Написать публикацию
Обновить
547.3

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Решил перейти на Python и не пожалел

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров4.7K

С полгода назад я начал чаще использовать для программирования Python. Почему? Конечно, из-за ИИ. Лично для меня очевидно, что сегодня эта сфера связана с очень большими деньгами перспективами во всех направлениях. А какой язык является самым распространённым для ИИ? Да-да, как-раз этот проныра.

Я уже писал на Python, но только небольшие скрипты. К примеру, вот этот скрейпит метаданные всех видео с моего канала на YouTube. Собранные метаданные выводятся в виде файла JSON, который я использую для показа красивой статистики роликов на этой статичной странице. Как можно видеть здесь, этот скромный скрипт через GitHub Actions выполняется в соло-режиме каждый понедельник. Просто реализовать всё это на Python куда проще, чем с помощью того же Batch. И не только из-за более дружественного синтаксиса, но и потому, что его интерпретатор нативно интегрирован во все дистрибутивы Unix. Разве не круто?

Читать далее

Новости

Google Indexing API для SEO-специалиста: пошаговая инструкция «без кода» для быстрой индексации

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1K

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

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

Готовый скрипт лежит здесь, но не спешите его качать, сначала всё подготовим.

Читать далее

Создаем 3D карту помещения лидаром Unitree L2 на Windows без ROS

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров1.9K

При обследовании зданий и сооружений практически всегда необходимо создать точную 3D модель помещения для формирования паспорта объекта или для разметки дефектов на уже существующей BIM-модели. То есть, лидар и 3D-сканер входят в необходимый джентльменский набор инженера, при этом стоит такой кит весьма недешево, в среднем 150к-1,5 млн рублей. Мы попробовали изучить возможность использования лазерных лидаров более бюджетного класса, к примеру, Unitree 4D LiDAR-L2 (далее Unitree L2), который стоит в пределах 28-40К рублей. Можно ли с помощью лидара, используемого не в промышленном сканировании, а в робототехнике (конкретно эта модель используется как навигатор для робособак) составлять из облаков точек 3D-модели зданий и сооружений? Дополнительно еще решили задачку, а можно ли это делать на Windows, так как у инженеров в поле чаще всего на ноутбуках стоит именно эта ОС, тогда как официально ПО Unitree L2 написано под Ubuntu? Наш вывод – оба ответа – да, можно!

Читать далее

Большой разлив чая: сервис анонимных слухов о мужиках Tea спалил персданные пользовательниц

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров4.7K

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

Читать далее

«Мой код не работает!» или как я превратила баг в фичу (почти случайно)

Время на прочтение2 мин
Количество просмотров1.7K

Всем привет.

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

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

Читать далее

SonarQube: базовая настройка и анализ качества кода с помощью FastAPI

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.5K

Ошибки в коде— не всегда вопрос невнимательности. Часто они кроются в архитектурных решениях, устаревших практиках и банальном отсутствии инструментов контроля качества. В этой статье — практический разбор того, как настроить и использовать SonarQube с FastAPI, чтобы находить баги, уязвимости и «запахи» ещё до запуска приложения. Разберёмся, как выглядит процесс статического анализа кода на практике, как развернуть SonarQube через Docker и интегрировать его в рабочий цикл через CI/CD.

Читать далее

Автотесты как документация: «чистый» код и генератор на Regex

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров938

Привет, Хабр! Проблема рассинхронизации автотестов и тестовой документации знакома многим. Код постоянно меняется, а кейсы в Confluence — нет. В итоге документация становится бесполезной, а время команды тратится на выяснение того, что же на самом деле проверяет тот или иной тест.

Есть занятия, которые наполняют жизнь QA-инженера особым, экзистенциальным смыслом, и ручное ведение тест-кейсов, бесспорно, одно из них. Этот медитативный ритуал — найти нужную страницу в Confluence, сверить её с кодом, осознать их полную асинхронность, глубоко вздохнуть и начать творить — несравненно закаляет дух. Но, увы, в какой-то момент безжалостные требования бизнеса к скорости заставили меня пожертвовать этим священным процессом и, скрепя сердце, написать скрипт, который делает всю эту замечательную работу за меня.

Читать далее

Разработка браузерного расширения: путь от идеи до публикации в web store

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров1.3K

Разработка браузерного расширения началась с простой идеи: упростить поиск по закладкам и открытым вкладкам, а также попробовать свои силы в создании проекта с элементами монетизации. В этой статье я расскажу, как за две недели прошёл путь от прототипа до публикации в Chrome Web Store и Firefox Add-ons, какие технологии использовал и с какими трудностями столкнулся. Надеюсь, мой опыт вдохновит других разработчиков попробовать свои силы в создании подобных проектов. Полный код проекта доступен на GitHub.

Читать далее

Тесты не лгут — прислушивайтесь к ним. Часть 1

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров823

(Статья — результат со вместной работы с Максимом Степановым)

Когда начинаешь писать тесты к коду, иногда возникает ощущение, что пытаешься расчесать запутанные волосы, и чем больше дёргаешь, тем больше узлов находишь. Это полезный сигнал, к которому стоит прислушиваться: плохая тестируемость подсказывает, что у кода есть изъяны в архитектуре. 

Связанный код, который сложно поддерживать и расширять, сложно и тестировать. Как сказал Боб Мартин

«Тестируемый код — синоним разъединённого кода»

А значит, тестируемость может быть маркером хорошей архитектуры. Именно это мы и попробуем здесь продемонстрировать.

Мы напишем тесты для примитивного скрипта на Python, который проверяет IP пользователя, определяет их регион и сообщает текущую погоду в регионе. Нас будет интересовать, как эти тесты заставят нас изменить код. Они, как расчёска, помогут нам методично разобрать проблемные места, чтобы код (как и волосы) стал гладким и послушным. Полный пример доступен здесь, каждый основной шаг находится в отдельной ветке.

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

Читать далее

За неделю от ночных кошмаров до спокойного сна: как я автоматизировал защиту от AI-хакеров

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.8K

Никто не любит быть тем парнем, который говорит «а давайте еще и защиту поставим». Особенно когда речь идет о блестящем новом AI‑продукте, который должен был запуститься «еще вчера». Но когда твой корпоративный чат‑бот начинает выдавать системные промпты направо и налево, а в 2 ночи тебе в Telegram прилетают сообщения «СРОЧНО! Хакеры взломали бота!» — понимаешь, что без брони в бой идти нельзя.

Читать далее

Telegram как платформа для автоматизации бизнеса: боты, парсеры, прокси и защита

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2.4K

Telegram — не просто альтернатива WhatsApp или Slack. Это полноценная платформа с открытым API, богатой экосистемой и миллионами активных пользователей. За последние годы Telegram стал ключевым инструментом в сфере:

Читать далее

Автоматизация миграции структуры БД с Firebird 2.5 на PostgreSQL

Время на прочтение2 мин
Количество просмотров677

Миграция с устаревающих СУБД — частая задача в ИТ. При переходе с Firebird 2.5 на PostgreSQL одной из первых становится необходимость переноса структуры базы данных. Ручной перенос сложных схем с множеством таблиц, индексов, процедур и функций — трудоёмкий и ошибко подверженный процесс. В этой статье я хочу поделиться инструментом, который берёт на себя большую часть рутинной работы.

Читать далее

Практическое руководство по атакам на IPv6 в локальной сети

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров2.2K

Отключение IPv6 на шлюзе давно перестало быть надежной защитой. Протокол по умолчанию активен на большинстве клиентских машин, которые периодически отправляют в сеть служебные запросы вроде Router Solicitation. Именно эта «скрытая» активность открывает двери для целого класса атак, позволяющих перехватить трафик, подменить DNS или провести NTLM-Relay.

В этой статье мы подробно, с примерами кода на Python/Scapy и командами для настройки, рассмотрим самые распространенные векторы атак на IPv6 в локальном сегменте:

RA Spoofing: Как навязать себя в качестве шлюза по умолчанию.

RDNSS Spoofing: Как стать DNS-сервером для современных ОС без DHCPv6.

DHCPv6-атаки: Механика работы mitm6 и ее ручная реализация.

Пассивный сбор данных: Как составить карту сети, просто слушая эфир.

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

Читать далее

Ближайшие события

Anchor Optical TrackeR Update: Улучшенная система трекинга с адаптивной стабилизацией при ветре

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров828

Спустя время после публикации первой версии Anchor Optical TrackeR, провел значительное улучшение системы трекинга, добавив адаптивные механизмы, повышающие устойчивость к внешним воздействиям, особенно к ветровым нагрузкам. В новой версии реализована интеллектуальная система управления путевыми точками по принципу «верёвочной лестницы» и адаптивное увеличение плотности точек при обнаружении сильного ветра.

Читать далее

Меньше нагрузки — больше запросов: искусство кеширования API

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.6K

Привет! Меня зовут Дима, я Backend-разработчик в Doubletapp. В этой статье расскажу про кеширование API (на примере Django Ninja): чем оно полезно бизнесу и когда его стоит внедрять.

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

А теперь представьте: вы можете обрабатывать одновременно в несколько раз больше запросов пользователей без расширения ресурсов и без переписывания ядра продукта. Как? С помощью кеширования — подхода, который «запоминает» одинаковые запросы и снижает нагрузку на сервер.

Содержание

Серверный кеш (хранилища «ключ-значение»)
Клиентский кеш (браузер, прокси)
Условные HTTP‑запросы
Промежуточное кеширование (CDN, reverse proxy)

Читать далее

Почему простой парсер не всегда решает задачу: мой опыт интеграции спортивных API

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров668

В рамках собственной системы спортивной аналитики я хотел получить real-time доступ к данным о движении коэффициентов — в частности, с платформы pickingodds.com. У сервиса интересная фича — визуализация графика изменения линии по каждому событию. Это потенциально полезный источник вторичных сигналов (например, для обнаружения аномалий, связанных с резкой коррекцией маркет-мейкеров).

Изначальный план был прост: интегрироваться по REST API, выкачивать данные раз в несколько минут, писать в TSDB, использовать далее для анализа и фичей в ML-пайплайнах. На практике же всё быстро ушло в зону нетривиальной оптимизации.

Читать далее

PACS и ИИ: от внедрения до интеграции машинного обучения в российском здравоохранении

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров382

PACS (Picture Archiving and Communication System) — это не просто софт. Это нервная система медицинской визуализации, которая собирает, архивирует и распределяет DICOM-данные между всеми участниками медицинского процесса. А внедрение PACS в реальном здравоохранении — это смесь инженерии, логистики, дипломатии и кризис-менеджмента.

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

DICOM (Digital Imaging and Communications in Medicine) — это не просто формат файлов, это целая экосистема для медицинской визуализации. Представьте его как универсальный язык, на котором говорят все медицинские устройства: от рентгеновских аппаратов до МРТ-сканеров. Каждый DICOM файл — это не просто картинка, а целая история пациента, закодированная в цифровом виде.

Когда пациент проходит обследование, оборудование создает не только само изображение, но и записывает массу дополнительной информации: кто пациент, когда проводилось исследование, на каком оборудовании, с какими настройками. Все это упаковывается в DICOM файл вместе с пиксельными данными. Получается своеобразная медицинская капсула времени — полная картина того, что происходило в момент исследования.

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

Читать далее

Как я написал современный GUI для yt-dlp на Python

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров9.7K

Надоело каждый раз лезть в терминал, чтобы скачать видео с YouTube? Мне тоже. Поэтому я сделал нормальный GUI для yt-dlp - без лишних кнопок, с современным интерфейсом и чтобы просто работал. Код на GitHub, готовая сборка тоже есть.

Зачем вообще это делать?

Да, yt-dlp крутой - качает с кучи сайтов, быстрый, надёжный. Но блин, каждый раз набирать команды в консоли - это не для всех. Особенно когда нужно быстро скачать что-то и не париться с параметрами.

Посмотрел на существующие GUI - одни выглядят как из 2005 года, другие напичканы настройками, которые 99% пользователей никогда не трогают. Захотелось сделать что-то простое: вставил ссылку, выбрал качество, скачал. Всё.

Что хотел получить:

Простоту - минимум кликов от ссылки до файла

Нормальный вид - тёмная тема, без уродских кнопок из 90-х

Скорость - никаких тормозов и зависаний

Работает везде - Windows точно, остальные ОС в планах

Не требует установки - скачал exe и пользуешься

Читать далее

Когда денег нет, но мы держимся. Резервное копирование на Python

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров2.8K

Разработка универсальной системы резервного копирования на языке Python. Как сделать, как применить.

Читать далее

Пишем чат-бота для мессенджера MAX на Python

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров12K

Рассказываю как создать эхо-бота для MAX на Python с помощью библиотеки maxapi без проблем для aiogram разработчика!

Получить код
1
23 ...

Вклад авторов