Правильная работа с базой данных на Python

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

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

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

При выполнении параллельной программы, активно задействующей CPU, нам часто необходимо, чтобы пул потоков или процессов имел размер, сопоставимый с количеством ядер CPU на машине. Если потоков меньше, то вы будете использовать все преимущества ядер, если меньше, то программа начнёт работать медленнее, так как несколько потоков будет конкурировать за одно ядро. Ну, или такова ситуация в теории.
Как же проверить, сколько ядер есть у компьютера? И действительно ли это хороший совет?
Оказывается, на удивление сложно определить, сколько потоков выполнять:
- В стандартной библиотеке Python есть множество API для получения этой информации, но ни одного из них недостаточно.
- Хуже того, из-за таких функций CPU, как параллельность на уровне команд и одновременной многопоточности (Hyper-threading в CPU Intel), количество ядер, которое можно эффективно использовать, зависит от того кода, который напишете вы!
Давайте разберёмся, почему так сложно определить, сколько ядер CPU может использовать программа, а затем подумаем над потенциальным решением.

Привет, уважаемый читатель!
Хочу немного поведать тебе как через Python в локальной сети можно подключиться к PLC от Allen Bradley.
В свое время перепробовал кучу разных библиотек, но в один прекрасный день нашлась та самая "pycomm3".

Привет! Меня зовут Илья Набатчиков, я MLE в компании Kamaz Digital. Также я являюсь учусь в онлайн магистратуре на базе университета ИТМО @ai-talent.
Сегодня я хочу рассказать о библиотеке ortools для решения проблемы маршрутизации транспортных средств с учетом ограничений по времени и грузоподъемности (CVRPTW).
И самое важно поделиться парой важных фичей, которых вы не найдете в документации.

Просматривая недавно соцсети, я наткнулся на этот скриншот. Разумеется, его сопровождало множество злобных комментариев, критикующих попытку этого новичка в программировании решить классическую задачу computer science: операцию деления с остатком.
В современном мире, где ИИ постепенно заменяет программистов, отнимая у них работу и совершая переворот в том, как мы подходим к рассуждениям о коде, нам, возможно, следует быть более открытыми к мыслям людей, недавно пришедших в нашу отрасль? На самом деле, показанный выше код — идеальный пример компромисса между временем и задействованной памятью. Мы жертвуем временем и в то же время памятью и временем компьютера! Поистине чудесный алгоритм!
Поэтому я решил изучить эту идею проверки чётности числа при помощи одних сравнений, чтобы понять, насколько хорошо она работает в реальных ситуациях. Я сторонник высокопроизводительного кода, поэтому решил реализовать это на языке программирования C, потому что он и сегодня остаётся самым быстрым языком в мире с большим отрывом от других (благодаря гению Денниса Ричи).

Прочитав замечательную статью от @dalerank, я подумал, а чем собственно мы хуже: моя любимая индустрия тоже полна мифов и разочарований, особенно учитывая недавние "прорывы в AI" и хайп вокруг больших языковых моделей по типу ChatGPT.
Создается ощущение, что теперь каждая компания считает, что у ей непременно нужно прикрутить волшебную вундер-вафлю на машинном обучении к каждому своему продукту, добавить AI в рекламную кампанию, и дела пойдут в гору. Шутка ли, этот ваш пресловутый AI теперь даже в холодильниках есть.
Ну а если на рынке растет спрос, значит должно расти и предложение, в следствие чего я вижу все больше людей, которые приходят к нам в болото с горящими глазами и готовностью перевернуть этот мир, а в итоге разбиваются о скалу реальности.
Нет, скорее всего вы не будете создавать state of the art (SOTA) системы, которые будут рисовать, искать информацию и писать код лучше, чем эти бесполезные кожаные мешки. А даже если будете - это будет только 20% вашей работы. Так ли это грустно? - я постараюсь рассказать под катом.
Начинаем гуглить информацию о Python. Все статьи как под копирку: тут хорошо платят, легко учиться, гостеприимное коммьюнити, просто рай на земле. Это ловушка. Я писала на Python полтора года, так что пришло время поговорить о том, как там обстоят дела на самом деле.

Как начать работать с Flask
Меня зовут Михаил, и я пишу эту статью специально для начинающих программистов, желающих изучить основы веб-разработки с использованием Flask.
Вы новичок в программировании и мечтаете о создании собственных веб-приложений? Эта статья — ваш ключ к пониманию Flask, одного из самых доступных и гибких веб-фреймворков на Python. От установки и простых примеров до работы с данными и базами данных — мы покрываем все, что вам нужно для старта.
За 15-20 минут чтения вы получите не только теоретические знания, но и практические советы от опытного разработчика. Присоединяйтесь к миру веб-разработки и откройте для себя, как просто и увлекательно может быть создание ваших первых веб-приложений с Flask!

Расскажу как просто задеплоить телеграмм бота на Aiogram 3 с webhook на VPS/VDS. Посмотреть видео версию, которую я выложил, можно на YouTube
Также покажу установку двух типов сертификатов SSL: ...
C Nginx и без него ...

Продолжение первой части статьи о создании торгового бота на python с нуля с использованием Binance API!
В данной статье мы напишем полностью рабочую реальную стратегию с использованием биржевых данных. Я расскажу что такое линии Боллинджера, а также о других популярных стратегиях. Мы подробно разберем реализацию стратегии Боллинджера на python, и напишем production-ready код!

В преддверии Нового года Хабраслизень занят поисками пропавшего Деда Мороза на огромной Фабрике подарков. Не без помощи хабраюзеров, конечно, которые следят за ходом поисков в хабе «Адвент 24». Они уже успели обыскать Книжный квартал, но следов Деда Мороза не нашли. Теперь внимание Хабраслизня привлёк большой Квартал Образования.
Он собирается осмотреть местные цеха и поискать Деда Мороза там, но Слизень ещё не знает, что местные роботы любят подшутить и уже расставили свои ловушки. Помогите Хабраслизню разгадать загадки роботов и найти правильные ответы среди фальшивок.

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

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

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

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

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

Эта статья родилась из опыта использования GraphQL в проекте одного из крупнейших аэропортов РФ. Проект посвящен созданию системы по автоматизации обслуживания рейсов и управлению ресурсами аэропорта в реальном времени (MRMS система).
Проект реализован на базе микросервисной архитектуры, где модель данных аэропорта представлена в виде GraphQL API, а сервер, предоставляющий API, написан на java. Клиентами этого API являются не только web/mobile, но и сервисы на java, golang и python.
Статья написана как пошаговое руководство по созданию своего GraphQL клиента на python с нуля, где попутно автор демонстрирует проблемы, возникающие на этом пути. Использовать реальную GraphQL схему аэропорта не представляется возможным, поэтому для наглядности будем использовать открытую схему github GraphQL API.

Привет, Хабр!
Среди разнообразных подходов оптимизации, методы решетчатого (grid search) и случайного (random search) поиска выделяются своей способностью находить оптимальные решения в хардовых пространствах параметров.
Решетчатый поиск - это метод, при котором пространство возможных параметров систематически исследуется путем оценки и сравнения результатов на равномерно распределенных точках. Его юзают, когда необходимо исследовать каждую комбинацию параметров, хотя он может быть ресурсоемким при большом количестве параметров.
Случайный поиск в свою очередь предлагает раскапывать пространство параметров путем случайного выбора точек. Этот метод используют когда пространство параметров слишком велико для полного перебора, или когда только некоторые параметры оказывают значительное влияние на результат.

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