Как Python использует сборку мусора для эффективного управления памятью

В Python мы часто думаем о переменной как о метке для значения. Однако, если говорить точнее, то переменная на самом деле указывает на объект, который хранит значение.

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

В Python мы часто думаем о переменной как о метке для значения. Однако, если говорить точнее, то переменная на самом деле указывает на объект, который хранит значение.

Вам когда-нибудь говорили, что вы пишете плохой код?
Здесь стыдиться нечего. Мы все пишем несовершенный код, когда только учимся. Хорошая новость в том, что улучшить его — довольно просто, главное — желание.
Один из лучших способов улучшить свой код — освоить принципы проектирования в объектно-ориентированном программировании. Можно сказать, что принципы программирования — это философия кода или руководство, как стать более крутым программистом.
Существует целый ряд принципов в программировании (я бы даже сказал, что их слишком много), но я расскажу о пяти основных, которые складываются в аббревиатуру SOLID.

Описание проблемы
Последние год три меня доставала неприятная вибрация при разгоне автомобиля, поначалу немного, но со временем все больше и больше. Езжу я мало, в лучшие-то годы набегало около 12 ткм в год, сейчас же использование авто свелось к практически только летней эксплуатации, поэтому у меня было сравнительно много времени от слабо беспокоящих начальных симптомов до сильного устранить неудобства. Авто, герой этой статьи это C max (2007 года, 2л, автомат), пробег 164 ткм, первая замена ШРУСов на 20 ткм (порванный пыльник) на подделку, вторая через год на родные. Т.е. комплект родных проходил где-то 130 ткм.
Симптомы:
• После 60 км\ч начинается вибрация, особенно при нагрузке в горку. При езде накатом вибрация отсутствует. При увеличении загрузки авто (например, не 2, а 4 человека в салоне) вибрации растут до неприемлемых.
• Вибрации трясут морду влево-вправо, поперек машины. От дисбаланса колес (и других вращающихся элементов) вибрации ориентированы иначе (вдоль машины)
• Балансировка, смена колёс летние\зимние перед\зад не влияет
• При езде в крутую горку с низкой скоростью вибраций нет.
• В поворотах вибрация не меняется никак.
Очень похоже на внутренние ШРУС(ы), но со стандартным набором симптомов не совпадает скорость начала тряски. Считается, что износ ШРУСов дает вибрации начиная от 40 км\ч, а в моем случае заметные вибрации начинались от 70-75 км\ч и органолептически очень похожи на дисбаланс колес.
Год назад специалист сервисного центра прокатился на машине и уверенно сказал – это не ШРУСы. Возможно, в тот момент износ дорожек был еще достаточно мал, что и привело к неверному суждению. Прошел еще год и вибрации стали беспокоить уже сильно.

После того как я реально «подсел» на чтение Хабра, захотелось «освежить» что‑то из своего богатого математического прошлого. Воскресить, так сказать, старые наработки, зайдя, естественно, через дверь с табличкой Python. Предлагаемая публикация посвящена простейшим методам численного дифференцирования дискретных функций (они же решетчатые функции, они же табличные функции, они же функции, заданные набором данных и т. п.). Очень странно, что в библиотеках Python с такой простой темой не все так просто и безоблачно, есть кое‑какие вопросы и проблемы. SciPy, как оказалось, вообще не об этом, а в NumPy «тема не раскрыта». На простейших примерах рассмотрим то, что предлагает NumPy, что там не так и как можно сделать лучше.

Тут будет код и непонятные слова (неподготовленным лучше не лезть)
Приветствую всех!
Сегодня мы разберём, как можно использовать Chat GPT для создания парсера сайта.
Будем использовать Python и библиотеку Selenium.
🛑 Отмечу, что данная статья не предназначена для создания универсального инструмента парсинга любого сайта.
Я расскажу, как ускорить процесс создания парсера с помощью Chat GPT.

Привет. Я не являюсь разработчиком и когда набросал простой скрипт для личных целей, задался вопросом: «Как запустить код не на своем компьютере?». Самые частые ответы в поисковике были про сервер и Docker. В результате забил гвоздь микроскопом.
Для специалистов с опытом статья наверное не имеет ценности, но новичкам надеюсь поможет сориентироваться и не потратить много часов на поиск информации и не совершить моих ошибок.

Приветствую, форумчане!
Данная тема будет интересна тем, кто сохраняет учетные записи в браузере. Сначала ответим на вопрос, который возникнул в предыдущей статье, а именно: Ради чего этот пароль искать OSPF, что бы что? И что дальше то с этим делать?
Напоминаю, что пароли это один из важнейших аспектов ИБ и часто используются для защиты информации от несанкционированного доступа. В OSPF парольная аутентификация — это мера безопасности, которую можно использовать для защиты маршрутной информации OSPF от изменения или подделки.
То есть имея пароль, злоумышленник может легко подключиться к домену маршрутизации и вносить изменения. При этом, одной из основных причин использования аутентификации OSPF является предотвращение формирования окружения OSPF неавторизованными устройствами, что, в свою очередь, запрещает доступ к сети и манипулирование ей.
При защитите домена маршрутизации с помощью аутентификации, нужно убедиться, что используемые вами пароли достаточно надежны, а не такие стандартные пароли как в ctf ?.

Основной целью DTO является упрощение коммуникации между слоями приложения, особенно при передаче данных через различные граничные интерфейсы, такие как веб-сервисы, REST API, брокеры сообщений или другие механизмы удаленного взаимодействия. На пути к обмену информацией с другими системами, важно минимизировать лишние расходы, такие как избыточное сериализация/десериализация, а также обеспечить четкую структуру данных, представляющую определенный контракт между отправителем и получателем.
В этой статье я хочу рассмотреть какие возможности есть у Python для реализации DTO. Начиная от встроенных инструментов, заканчивая специальными библиотеками.
Из основной функциональности хочу выделить валидацию типов и данных, создание объекта и выгрузку в словарь.

Привет, мир!
Я бы хотел рассказать о своем open-source проекте Wunjo AI с открытым исходным кодом, который позволит вам создавать дипфейк видео и синтезировать речь из текста у себя на компьютере. В этом посте я постараюсь познакомить вас с возможностями Wunjo AI и пригласить вас поддержать проект на GitHub.

В данной статье мы рассмотрим применение речевых технологий, предоставленных компанией Яндекс в контексте распознавания аудиосообщений в Telegram – популярном мессенджере, объединяющем миллионы пользователей по всему миру.
Давайте создадим чат-бот для Телеграм, который будет присылать нам текстовую расшифровку аудиосообщения!

В конце июля питонисты со всей страны съехались в Москву, чтобы побывать на самой масштабной, но душевной конференции для python-разработчиков: PyCon Russia. Держите отчет о том, как это было.
В дождливую московскую пятницу утром в Старт Хаб яблоку некуда было упасть — в этом году в конференции участвовали больше шестисот человек. Такого еще не помнит новейшая пиконовская история.

Прочитав статью, вы узнаете, как можно прогнозировать погоду с точностью до двух градусов на 3 месяца вперед, причем здесь преобразование Фурье и машинное обучение

У меня есть хобби — я учу финский язык. Просто так зубрить новые слова сложно, поэтому я решила написать бота для геймификации процесса. Бот поддерживает разные режимы тренировок, скоринг слов и объединение слов по темам, в общем — имеет довольно сложную ветвистую логику. В процессе создания бота мне удалось создать структуру кода и ресурсов, которая позволяет легко написать диалогового бота любой сложности, не рискуя запутаться и не беспокоясь о создании инфраструктуры. Ею и хочу с вами поделиться.
Это первая статья цикла, в ней я расскажу, как создать базу — шаблонного serverless бота на Python с использованием Yandex Cloud Functions и базы данных YDB с нуля.
В следующих статьях расскажу о том, как добавить боту свои команды, о структуре кода, настройке и обработке пользовательских стейтов, безопасной работе с базой данных, удобном логировании и тестировании бота, которые реализованы в шаблоне. В качестве примера буду использовать примитивного бота, реализованного в моём репозитории ydb_serverless_telegram_bot.

Давно устоявшийся и прекрасно показывающий себя фреймворк. Постоянная поддержка, множество пакетов «из под капота», отличный ORM, хорошее распределение компонентов и простота в изучении — вот, что предлагает Django.
Да, все мы знаем, что выходят новые фреймворки, например, FastAPI, который все увереннее закрепляется на рынке, но сможет ли он похвастаться тем, что имеет Django? Например, для нормальной ORM, если вы не хотите писать напрямую SQL‑запросы конечно же, нужно будет воспользоваться sqlalchemy и alembic. В Django же все проще, создай проект и твори! Есть и плюсы FastAPI, но об этом в другой статье, не будем отходить от темы.
Так вот, есть и не такие «молодые» технологии, например, тот же Flask, тоже хорошо закрепился на рынке и стеке разработчиков, но ситуация очень похожа с FastAPI, не хватает простоты и множества удобств. Та же панель администратора — это что‑то с чем‑то, максимально полезный инструмент, который используются все при создании проектов на Django. Так же, стоит отметить приложения в Django, отличный способ разделять основные модули проекта и не ловить путаницу, опять‑таки, не все могут этим похвастаться. Не стоит и забывать об огромном комьюнити пользователей этого фреймворка, я не раз сталкивался с ошибками и практически все находил на том же Stack Overflow. Еще одна, но значительная плюшка — это неплохой перевод на русский язык.

А вы знаете, сколько стоит один запрос API Chat GPT?
Что скрывается за этим непонятным словом Tokens(токены)?
И как сделать запрос дешевле?

Часто определение разницы между select_related и prefetch_related звучит как “первый для ForeignKey полей, второй для ManyToMany”, однако это описание не раскрывает суть работы этих методов. Ниже я попробовал на примерах показать разницу между этими методами и какое влияние они оказывают на сгенерированный SQL для получения данных.
TLDR: Статья будет в первую очередь полезна тем кто начинает свое знакомство с Django, а также тем, кто использует select_related/prefetch_related в ежедневной работе, но не углублялся в глубь Django.

Да, опять статья про Grafana и визуализацию метрик тестов.
Ваши автотесты интегрированы в CI и рядом лежит TMS (Test Management System), такие как Allure, qase, и так далее, где вы/ваша команда храните тест-кейсы, чек листы и результаты прогонов. По результатам тестирования строятся графики, рисуются цифры и так далее. Но как часто вы смотрите на эти результаты ? Показываете разработчикам, менеджерам? Достаточно ли этих цифр или хочется больше?

Привет, Хабр!
На связи участник профессионального сообщества NTA Максим Алёшин.
Сегодня создание интерактивной карты на python не составляет большого труда: стоит подключить библиотеку (например, Folium или Bokeh), указать картографический сервер, и после выполнения нескольких «магических» строк кода ваши данные как на ладони!
Но что делать, если данные есть, визуализировать их хочется, а в сети, в которой вы работаете, нет доступа к картографическим серверам? В этом случае помогут Plotly и GeoPandas. Но придётся провести ряд подготовительных работ. В этом посте шаг за шагом я покажу, как построить интерактивную карту России по регионам с помощью Plotly, которая будет работать без интернета, регистрации и смс.

Всем привет! Представим, что вам нужен доступ к данным каких-либо смарт-контрактов на Ethereum (или Polygon, BSC и т.д.), например, Uniswap, SushiSwap, AAVE (или даже PEPE-coin) в реальном времени, чтобы анализировать их с помощью стандартных инструментов дата-аналитиков: Python, Pandas, Matplotlib и т.д. В этом туториале я покажу инструменты для доступа к данным на блокчейне, которые больше похожи на хирургический скальпель (сабграфы The Graph), чем на швейцарский нож (доступ к RPC ноде) или, скажем, молоток (готовые API от компаний-разработчиков). Надеюсь, мои неумелые метафоры вас не пугают. Кому интересно научиться, добро пожаловать под кат.
Привет, Хаброжители!