Обновить
842.9

Python *

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

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

Поиск названия компании с использованием Python и контекстно-свободных грамматик

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

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

Читать далее

Возможности интеграции Counter-Strike: Global Offensive

Время на прочтение9 мин
Охват и читатели17K
Image by andytb under license CC BY-SA 2.0
Counter-Strike: Global Offensive — современная версия старой доброй «CS 1.6». За двадцать лет развития серии технологии сильно изменились. Ранее соревнования по CS проходили в конференц-залах, а информация, доступная наблюдателю, была крайне скудна. Сейчас крупные соревнования по Counter-Strike проводятся на огромных стадионах, а количество выводимой на экраны информации зашкаливает.

Мне стало интересно, как организован экспорт игрового состояния в сторонние системы, например, для управления сценическим освещением. В этой статье я расскажу про то, как это работает, и покажу, как можно превратить телефон на Android в устройство вывода игрового состояния.
Читать дальше →

Python: Логируем как профессионалы

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

Часто вижу, что помимо обработки исключений, люди мучаются кое с чем еще, а именно с логированием.

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

Читать далее

Создание API на основе протокола MTProto

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

В уже  далеком 2019 Telegram объявил конкурс на создание веб-версии своего мессенджера, в котором мне удалось поучаствовать. По итогу у меня осталась библиотека, которая может работать с API Telegram по протоколу MTProto. Полученный опыт вдохновил меня реализовать протокол MTProto для бэкенда. Разработку вел на python, так как я этот язык хорошо знаю и был уверен, что смогу на нем реализовать свою идею. Для удобства использовал библиотеку aiohttp для соединения по web-socket’у, а для описания структур использовал typings и dataclass.

Читать далее

Многопоточный Python на примерах: как правильно хранить настройки приложения

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

Если опустить первое и самое главное предубеждение относительно питонячьей многопоточности у большинства программистов — что её не существует из-за GIL, — то остается другое, и, наверное, вполне достоверное: что многопоточность — это сложно, и нам этого, пожалуйста, не надо. И знаете что? Так оно и есть. Многопоточность — это сложно, особенно когда выбираешься за пределы стандартных руководств и попадаешь со своей многопоточной поделкой в реальный мир. И, возможно, вам не нужно. Ни здесь, ни далее я не буду обсуждать целесообразность написания многопоточного кода на Python и сразу перейду к тому, как это делать.

Так как же?

Находим нарушителей на миллионы рублей при помощи борщевика и Python

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

В октябре Минимущества Московской области отчиталось, что за 2021 год был начислено 410 млн рублей штрафов за борщевик Сосновского в Подмосковье. В этой заметке расскажу, как сейчас собирают штрафы в МО, и как мы сделали свой прототип программы для поиска владельцев участков с растущим борщевиком Сосновского.

Читать далее

Простой GUI калькулятор на Python #3. Backspace, отрицание и регулировка размера шрифта

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

Штош. Дописываем калькулятор. Сделаем Backspace, отрицание, отрегулируем размер шрифта, чтобы он не выходил за рамки приложения. Если вы не читали прошлую статью, я вам настоятельно рекомендую это сделать.

Дописываем!

Блокчейн на Python

Время на прочтение7 мин
Охват и читатели42K
Когда я читал статью про блокчейн на JavaScript, мне было интересно познакомиться с идеями о блокчейн-разработке, которые отличаются от тех, что мне уже известны. А как только я начал читать код, мне захотелось сопоставить его с аналогичным Python-кодом, чтобы ещё и разобраться с его отличиями от кода, написанного на JavaScript.

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



Несмотря на то, что исходная статья появилась на свет после того, как её автор ознакомился с примером блокчейн-разработки на Python, мне хотелось написать Python-код, который как можно более точно воспроизводит JavaScript-код из статьи. Это позволит сопоставить реализацию блокчейна на разных языках.

Я, кроме того, собираюсь сделать так, чтобы моя реализация блокчейна, как и в статье про JavaScript, тоже поместилась бы в 60 строк.
Читать дальше →

Металлургический хакатон ЕВРАЗа по Data Science: результаты, проекты и победители

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

Привет, Хабр! На связи ЕВРАЗ, и сегодня мы хотим рассказать, как организовали и провели хакатон по Data Science и Computer Vision. Казалось бы, где металлургия и где хакатон — но нет. На самом деле, в мире практически не осталось предприятий, которые работают без поддержки IT.

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

Металлургии необходимы инновации, и для участников EVRAZ AI Challenge мы подготовили задачи, соответствующие реальным запросам бизнеса. О том, что из этого получилось — под катом.

Читать далее

Книга «Python и DevOps: Ключ к автоматизации Linux»

Время на прочтение11 мин
Охват и читатели22K
image Привет, Хаброжители! За последнее десятилетие технологии сильно изменились. Данные стали хитом, облака — вездесущими, и всем организациям понадобилась автоматизация. В ходе таких преобразований Python оказался одним из самых популярных языков программирования. Это практическое руководство научит вас использовать Python для повседневных задач администрирования Linux с помощью наиболее удобных утилит DevOps, включая Docker, Kubernetes и Terraform.

Умение взаимодействовать с Linux играет важнейшую роль для миллионов специалистов. Python сильно упрощает эту задачу. Прочитав книгу, вы научитесь разрабатывать программное обеспечение и использовать контейнеры, а также выполнять мониторинг, телеметрию, нагрузочное тестирование ПО и вводить его в эксплуатацию. Ищете эффективный способ достичь поставленных целей на Python? Это руководство — для вас.
Читать дальше →

Краткий экскурс в ruGPT-3. Инструкция и демонстрация

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

GPT-3 — нейронная сеть, наделавшая шума в 2020 году, как самая сложная, объёмная и многообещающая модель по работе с текстовыми данными. Создана организацией OpenAI в нескольких вариациях, от 125 миллионов до 175 миллиардов признаков. Хотя в названии организации и есть слово “Open”, по факту модель GPT-3 является проектом проприетарного типа, то есть, с закрытым программным кодом, доступ к которому выдаётся за деньги.

В октябре этого же года команды из SberDevices на основе статьи от OpenAI и кода модели GPT2 смогли разработать русскоязычный аналог под название ruGPT-3 в 5 вариациях от 125 млн. до 13 млрд. признаков, используя мощности суперкомпьютера «Кристофари», а самое главное, что в данном случае код действительно открытый, за исключением модели на 13 млрд.

За счет универсальности и гибкости модели ее можно использовать не только для создания текста, но и в десятках других сложных сценариев, например:

Читать далее

Диаграмма воронки в Python

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

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

В этой статье мы рассмотрим, как построить воронку с нуля с помощью Matplotlib, а затем рассмотрим более простую реализацию с помощью Plotly.

Читать далее

Атака не клонов, или Генерация и анализ тестовых данных для нагрузки. Часть 2

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

В предыдущей статье я рассказал о подготовке данных для тестирования, что данные лучше генерировать, а не клонировать. Теперь стоит подробно разобрать, как их генерировать. Есть несколько подходов к генерации данных: c SQL, Python, сериализацией. У всех из них есть свои плюсы, минусы и особенности, которые стоит учитывать.

Читать далее

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

Пишем Python-расширение на Ассемблере (зачем?)

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

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

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

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

Эксперимент, о котором я хочу рассказать, пронизан тем же духом. Мне хотелось узнать о том, смогу ли я написать расширение для CPython на чистом ассемблере.

Зачем мне это? Дело в том, что после того, как я дописал книгу CPython Internals, разработка на ассемблере всё ещё была для меня чем-то весьма таинственным. Я начал изучать ассемблер для x86-64 по этой книге, понял какие-то базовые вещи, но не мог связать их со знакомыми мне высокоуровневыми языками.

Вот некоторые вопросы, ответы на которые мне хотелось найти:

— Почему расширения для CPython надо писать на Python или на C?
— Если C-расширения компилируются в общие библиотеки, то что такого особенного в этих библиотеках? Что позволяет загружать их из Python?
— Как воспользоваться ABI между CPython и C, чтобы суметь расширять возможности CPython, пользуясь другими языками?

Читать далее

Консольные изображения ( от ЧБ до 24bit )

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

В данной статье будет рассмотрен прогресс от ЧБ картинки в консоли до 24 bit изображения в ней же
Чёрно белое -> 48 цветов -> 216 цветов -> 24 bit

Читать далее

Как посчитать количество звёзд на фото?

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

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

Узнать!

Восстанавливаем результаты выборов в Государственную думу 2021 года с помощью машинного обучения

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

Результаты выборов в государственную думу, которые проходили 17-19 сентября 2021 вызывают сомнения у многих экспертов. Независимый электоральный аналитик Сергей Шпилькин оценил количество голосов, вброшенных за партию власти, примерно в  14 миллионов. В данной работе применены методы машинного обучения для того, чтобы выявить избирательные участки, на которых подсчет голосов происходил без нарушений и установить истинный результат на тех участках, где , предположительно, были зарегистрированы ошибочные данные.

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

Читать далее

Автоматическое принятие приглашений к обмену документами в ЭДО Диадок по API

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

Автоматизация приема приглашений к обмену документами в кабинете ЭДО

Читать далее

Сегментация изображений со спутника с помощью сверточной нейронной сети

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

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

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

Читать далее

Библиотека Pygame / Часть 2. Работа со спрайтами

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

Вторая часть серии руководств «Разработка игр с помощью Pygame». Она предназначена для программистов начального и среднего уровней, которые заинтересованы в создании игр и улучшении собственных навыков кодирования на Python. Начать стоит с урока:

Читать далее

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