Обновить
516.88

Python *

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

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

Монтаж уличной ip-камеры и вывод изображения по RTSP (python, raspberry pi)

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели30K

Камеры видеонаблюдения стали для многих стран обыденностью, например в Китае, они могут свисать гроздьями, через каждые 5 метров, по улице. Но в провинции России это все еще может быть в новинку. Я отношусь к видеонаблюдению по большей мере положительно. Ведь вид камеры, даже превентивно может предотваратить хулиганство (однажды я использовал муляжи камер в офисе:)), а главное это возможность контроллировать обьект наблюдения.

Этот пост про монтаж уличной камеры, на стену многоквартирного дома и программную реализацию - вывод изображения, без использования стандартной программы, оптимизацию (размещение на raspberry pi).

Читать далее

Учимся анализировать данные на примере API Codewars

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

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

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

Читать далее

Товары-аналоги и с чем их едят или Свежий подход к формированию групп товаров для управления ассортиментом Ozon fresh

Время на прочтение13 мин
Охват и читатели4.8K

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

Ozon fresh — это сервис быстрой доставки продуктов, бакалеи, бытовой техники, электроники и других товаров. В нашем ассортименте более 35 000 уникальных позиций (готовая еда, мясо, рыба, фрукты, овощи, товары для гигиены и многое другое). Специфика Ozon fresh заключается в мини-складах, где хранятся товары. Они доставляются клиентам в радиусе нескольких километров. 

Управление таким количеством позиций требует много человеческих и технологических ресурсов. У нас этим занимаются более 30 человек. Для упрощения работы мы  используем различные группировки товарных позиций. Самая популярная — иерархическая четырёхуровневая группировка (далее мы будем называть её «категорийное дерево»).

Читать далее

Введение в SQL & СУБД на примере доступа к данным через Python

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели23K

Краткое введение в SQL (+СУБД) на примере доступа к данным через Python. Я начинающий Data Scientist и решил написать статью где будет базовое введение в sql, а также как извлекать данные через разные способы (SQLalchemy, Requests).

Читать далеее

Логи в телеграм-ботах

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели29K

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

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

Ведь кто из нас не любит починить что-то за 5 минут, вместо того чтобы провести в поисках проблемы целый день?

Читать далее

Пишем свой GraphQL клиент на Python

Уровень сложностиСредний
Время на прочтение28 мин
Охват и читатели13K

Эта статья родилась из опыта использования GraphQL в проекте одного из крупнейших аэропортов РФ. Проект посвящен созданию системы по автоматизации обслуживания рейсов и управлению ресурсами аэропорта в реальном времени (MRMS система).

Проект реализован на базе микросервисной архитектуры, где модель данных аэропорта представлена в виде GraphQL API, а сервер, предоставляющий API, написан на java. Клиентами этого API являются не только web/mobile, но и сервисы на java, golang и python.

Статья написана как пошаговое руководство по созданию своего GraphQL клиента на python с нуля, где попутно автор демонстрирует проблемы, возникающие на этом пути. Использовать реальную GraphQL схему аэропорта не представляется возможным, поэтому для наглядности будем использовать открытую схему github GraphQL API.

Читать далее

Решетчатый и случайный поиск

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9K

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

Среди разнообразных подходов оптимизации, методы решетчатого (grid search) и случайного (random search) поиска выделяются своей способностью находить оптимальные решения в хардовых пространствах параметров.

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

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

Читать далее

Как программист статистику физической активности собирал

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

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

Читать далее

Эволюция BP-сервиса компании Магнит

Время на прочтение10 мин
Охват и читатели3.6K

Как на сервисе весом в 10 ТБайт ежедневно обрабатывать 1 Тбайт пользовательских данных и спать спокойно.

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

Читать далее

Python. Тестирование API. Структура тестов

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели7.6K

Всем привет, меня зовут Александр, в последние 2 года занимаюсь автоматизированным тестирование. Хочу поделиться своим наработанным опытом по созданию API тестов. Для написания автотестов в компании используем selenium webdriver, behave.

Behave — это фрейморк для программирования через поведение системы в python-стиле. Behave использует тесты, написанные на “естественном”, то есть, английском языке.

Selenium webdriver широко используется и думаю в представлении не нуждается, но всегда можно загуглить.

Структура тестов behave очень проста, если feature файлы в которых описываются сценарии и папка steps в которой находятся шаги для выполнения этих сценариев.

Первое на что можно обратить внимание это на структуру feature файлов (в этих файлах находятся сами тесты, которые состоят из различных шагов):

Читать далее

Covenantus detectus или ещё одна DS-задача

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

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

Сегодня с вами участник профессионального сообщества NTA Серебренников Дмитрий.

И по дружбе, и по IT‑службе регулярно сталкиваюсь с задачами Data Science. Решением одной из них планирую сегодня поделиться. Поработаю с кредитной документацией, выжму из неё необходимое для аудиторской проверки. Из инструментов применю ловкость рук, python, pathlib, regex, pandas и Abbyy Finereader.

Итак, задача состояла в получении необходимых сущностей (ковенантов) из разных по формату и содержанию документов.

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

Covenantus detectus

Большой тест GPT4, GPT3.5, YandexGPT, GigaChat, Saiga в RAG-задаче. Часть 1

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

Меня зовут Дмитрий Гуреев. Я занимаю должность CDTO в одной из медицинских компаний и параллельно веду работу по популяризации ИИ в среднем бизнесе. Генеративные модели привлекли мое внимание ещё в феврале 2022 года. Тогда я внедрил цифрового ассистента для полевых продавцов.

Летом 2022 года хороший знакомый из крупной компании предложил совместный эксперимент. Создать цифрового юриста, способного отвечать на вопросы первой линии, используя в качестве базы знаний 200-страничный регламент из более чем 1200 пунктов. Все это должно было функционировать в закрытом контуре. Без интернета.

Задача представлялась крайне интересной...

Вторая часть здесь.

Читать далее

Algopack Мосбиржи — получаем справочную информация о доступных акциях

Время на прочтение9 мин
Охват и читатели16K

Совсем недавно, буквально 2 месяца назад, Мосбиржа запустила Algopack и выложила на Гитхаб долгожданную многими библиотеку на python – moexAlgo, которая должна упростить работу с AlgoPack API.

Читать далее

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

TMS на замену TestRail: писали для себя, а выложили в open source

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели25K

В прошлом году TestRail прекратил предоставлять и продлевать лицензии компаниям из России, поэтому мы в YADRO решили разработать собственную тест-менеджмент систему TestY. Опирались на опыт работы с другими сервисами, чтобы добавить тот функционал, которого не хватало нашим командам тестирования. За несколько месяцев написали core-часть системы и выложили ее в open source, чтобы другие компании и разработчики, для которых актуален вопрос лицензионной чистоты используемого софтай, пользовались решением и развивали его.

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

Читать далее

Так сколько на самом деле строк на C нужно, чтобы выполнить a + b в Python?

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели28K

Это ответ на статью «Сколько строк на C нужно, чтобы выполнить a + b в Python?» где количество строк так и не указано. Сразу оговорюсь покрывать все сценарии для python по количеству строк я не собираюсь — слишком много вариантов, слишком лень. Но вот вопрос, сколько питону нужно строк, что бы сложить 2 числа, например "4+5"? Будет ли разница, если сохранять эти числа в переменные или нет? Сегодня мы получим ответы на эти вопросы.

Добро пожаловать под кат.

Одно нажатие, весь контроль: WireGuard VPN через Телеграм

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

🌐 Управление VPN через Telegram: Создай свою защищенную сеть в несколько кликов!

Привет, Хабр! Когда мир WireGuard открыл для меня свои двери, родилась идея: почему бы не создать инструмент для максимально простого управления им через Telegram? Да, есть уже проекты, такие как wg-easy, но мне хотелось чего-то своего. В итоге руки дошли, и я представляю вам wg_telegram – бот для WireGuard в вашем мессенджере.

Читать далее

Выявление проблем в log-файлах с помощью аналитики

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели14K

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

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

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

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

Читать далее

Победа над ORM путем кодогенерации

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

Сразу хочу отметить перед читателем, что это не просто вольные рассуждения на тему, а в том числе и презентация моей библиотеки для Python, которую можно найти на github и установить через pip, и которая трудится в моей многопользовательской игре как SQL движок проекта.

Проблемы ORM известны всем, кто хоть раз ими пользовался. Об этом существует множество статей как у нас, так и в зарубежных источниках. Эти проблемы в общем можно объединить довольно сложным термином Object‑relational impedance mismatch, что позволю себе вольно перевести как «Объектно‑реляционная разница потенциалов».

Альтернативой использованию ORM всегда было использование чистых драйверов баз данных и написание сырых SQL запросов, которые в свою очередь очень тяжело поддерживать и рефакторить в реальных проектах.

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

Читать далее

Замыкания и декораторы в Python: часть 1 — замыкания

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели47K

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

Читать далее

Разработка мобильных приложений на kivy, kivymd с использованием buildozer'а. Установка, запуск и решение проблем

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

Разработка мобильных приложений на kivy, kivymd с использованием buildozer'а. Установка, запуск и решение проблем.

Читать далее

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