Обновить
749.79

Python *

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

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

Как я настраивал меню выхода в Qtile

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

Некоторое время назад я, в силу ряда причин, решил перейти со стандартного DE на один из оконных менеджеров (для тех, кому интересно, archwiki), изначальным дистрибутивом был выбран ArcoLinux, так как он обладал расширенным репозиторием Arch, который включал в себя собственные пакеты команды ArcoLinux (в т.ч. меню archlinux-logout для выхода в спящий режим, выхода из системы и т.д.), а также предоставлял большие возможности по выбору пакетов, изначально установленных в системе, и настроенных оконных менеджеров (т.к. настраивать их с нуля, зачастую, очень долго и муторно, на мой взгляд).

Читать далее

Pygame для начинающих программистов. Статья первая

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

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

Изучение Python с помощью разработки игр не только делает процесс обучения более интересным, но и помогает освоить ключевые концепции программирования в практическом контексте. Игры — это не просто развлечение; они представляют собой сложные системы, требующие логического мышления, креативности и навыков решения проблем. Разработка игр позволяет новичкам быстро увидеть результаты своего труда, что значительно повышает мотивацию и желание продолжать обучение.

Библиотека Pygame, в свою очередь, предоставляет мощный инструментарий для создания 2D-игр на Python. Она упрощает работу с графикой, звуком и взаимодействием с пользователем, позволяя сосредоточиться на логике игры и дизайне. С Pygame мы будем реализовать свои идеи создавая игровые механики.

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

Все, хватит с пафосными речами. Ими я просто хотел немного замотивировать начинающих программистов - будущих разработчиков игр.

Читать далее

Написание ETL пайплайна при помощи airflow, rabbitmq и postgres

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

В данной статье мы рассмотрим взаимодействие apache airflow, rabbitMQ и postgreSQL. Научимся правильно устанавливать соединения между ними и напишем базовый ETL.

Читать далее

MoexBuilder: как я создаю библиотеку на Python. Часть 2

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

Привет, Хабр! Продолжаю рассказывать о том, как я создаю библиотеку на Python. В этой статья я расскажу о том, как реализовал взаимодействие с ISS MOEX, используя асинхронный подход, а также о том, как был добавлен функционал interval().

Читать далее

MoexBuilder: как я создаю библиотеку на Python. Часть 1

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

Привет, Хабр! Это моя первая статья и в ней я хочу не только поделиться опытом, полученным в ходе реализации собственного проекта, но и услышать обратную связь\критику\предложения\замечания относительно принятых мною решений. Моя статья не предложит вам "подписаться на телегу" или что-то подобное, я просто расскажу о том, чего добился на текущий момент.

Читать далее

Пишем небольшое приложение на Python для повышения продуктивности с помощью ИИ и BotHub API

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

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

В этом туториале я покажу, как создать приложение для автоматического анализа встреч и составления отчетов с использованием API BotHub (Whisper-1 + Claude 3.5 Sonnet). Это приложение будет распознавать речь с аудиозаписей, выделять ключи — кто что сказал и какие задачи в целом обсудили — и составит отчет, включая формат ПДФ.

Читать далее

Кастомизация Django Admin. Часть 1: Структура шаблонов

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

Давайте просто признаемся друг другу... Все мы иногда это делаем. Все мы иногда кастомизируем Django админку. Без четкого понимания того, как построены шаблоны и используемые классы любая попытка кастомизации превращается в пытку.
Этот цикл статей — моя попытка помочь понять и полюбить то, как всё устроено изнутри. Тема длинная, так что начнем с самых азов. Сейчас мы разберем все основные шаблоны и механизм их поиска.

Читать далее

Переосмысление концепции подсчета ссылок и полный отказ от сборщика мусора

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


Фундаментальной (по моему мнению) проблемой множества языков программирования является неявное использование ссылок (ссылочных переменных).


И проблема не в том, что с помощью ссылок изменяются какие-то общие данные, а в том, что часто это делается неявным образом, из-за чего программист должен всегда помнить об особенностях таких переменных.


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


А как бы хотелось отдать эти проблемы на откуп компилятору! Чтобы компьютер сам автоматически проверял корректность доступа по ссылкам, в том числе и из разных потоков и чтобы все это делалось во время компиляции приложения без накладных расходов в рантайме!


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

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

Склеить несколько видеофайлов, что может быть проще…

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

Если их пара. А если их пара десятков? А если несколько сотен? А если они еще и в разных форматах? Идея загонять все в видеоредактор отпала почти сразу. Но в начале — небольшая предыстория.

За каждым великим мужчиной стоит женщина, стоит и ворчит. (народная мудрость, отцензурировано)

Читать далее

Безопасная разработка на Python

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

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

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

Читать далее

Django-аутентификация: просто о сложном

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

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

Аутентификация является фундаментальной частью любого веб-приложения. Мы рассмотрим различные способы реализации аутентификации в Django, начиная от стандартных методов и заканчивая более крутыми техниками, например как 2FA и OAuth2.

Читать далее

Практика: мой опыт интеграции более 50 нейронных сетей в один проект

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

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

Преодолеть открытие

Опционы и формула Блэка-Шоулза (часть 1)

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

В этой серии статей я выведу уравнение Блэка-Шоулза для оценки европейского колл-опциона классическим способом.

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

Не пугайтесь всех терминов, которые встретятся в статье, я постараюсь объяснить каждый из них.

Читать далее

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

Тестируем LLM для русского языка: Какие модели справятся с вашими задачами?

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

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

Готовые LLM для русского языка часто показывают низкую точность и ограниченные возможности. Проблемы конфиденциальности также вынуждают компании выбирать локальные модели.

Наша компания давно занимается искусственным интеллектом и стала часто получать подобные запросы от клиентов — создание ИИ-решения с локальной обработкой данных. Мы задались вопросом, какие LLM хороши для таких решений, что мы можем предложить заказчику? Всё это вылилось в большой рисеч разных языковых моделей.

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

Читать далее

Управляем проектом и его документацией при помощи Python

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

Доброго времени суток, хабр! Управление проектом — это настоящее искусство, требующего внимания к деталям, навыков планирования. Документация, планы и структура проекта должна составляться в первую очередь, перед написанием кода.

Недавно я присоединился к команде, которая работает над одним амбициозным проектом, то мы сразу на первом созвоне осознали, что нам нужна структура проекта, правильное его управление, дорожная карта — все это позволит воплотить в жизнь и не бросить его.

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

Читать далее

Python 3.13, что не попало в заголовки

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

Python 3.13 — отличный релиз, полный различных фич и улучшений, но уже есть тонна статей, которые подробно разбирают release notes. Если вам нужна хорошая выжимка — у RealPython есть хорошая статья, но я не вижу смысла проходиться по ним еще раз в этой статье.

Так что мы не будем говорить про новый REPL, no‑GIL сборку, экспериментальный JIT‑компилятор, устаревшие штуки, новые плюшки системы типов или улучшенные сообщения об ошибках (как всегда, мое любимое).

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

Читать далее

Автоматизация сетевого оборудования на Python. Работа через jump-host

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

В моей первой статье на сайте об автоматизации оборудования Juniper в качестве подопытного выступал коммутатор, который стоит под столом, и до которого имеется полный прямой доступ по сети. Однако, такая ситуация скорее исключение. Практически всегда сейчас используют для доступа на сетевые устройства Jump Host. В этой статье я хотел бы рассмотреть, какие решения мы можем использовать при автоматизации работы с сетевым оборудованием на Python, чтобы учесть наличие промежуточного устройства.

Читать далее

Алгоритмы поиска путей на пальцах. Часть 2: Алгоритм Дейкстры

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

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

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

Читать далее

Алгоритмы поиска путей на пальцах. Часть 1: Поиск в ширину

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

Давайте представим, что вы устроились много лет назад в 2GIS и вам выпала честь написать алгоритм, который будет прокладывать самый короткий автомобильный маршрут от точки A к точке B.

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

Читать далее

Как я автоматизировал поиск работы при помощи LLM

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

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

И тут вспоминается мой прошлый опыт поиска работы с многочасовым блужданием по соответствующим сайтам, вычитыванием очередной вакансии, попытками понять, как те или иные требования работодателя соотносятся с вакансией, добавлены ли они туда потому что действительно нужны или это такой фильтр от лишних соискателей. В общем монотонная однообразная работа вида: "Открыл вакансию -> прочитал -> если заинтересовало, нажал кнопку отклика -> прикрепил сопроводительное письмо и т.д."

Можно конечно ускорить процесс, выкинув из этого алгоритма пункт с вычитыванием резюме, но:
а) есть немалый шанс, кликая на все подряд, как обезьяна, откликнуться на неподходящую для тебя вакансию; кому-то это норм, но мне бы не хотелось дергать HR'ов лишний раз по поводу вакансии, которая на самом деле мне не интересна;
б) некоторые особо хитрые работодатели добавляют в описание своих вакансий всякие ключевые слова/вопросы, которые нужно упомянуть/ответить в резюме; по мне так не самая лучшая практика, но я их за это не виню.

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

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