Обновить
512.52

Python *

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

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

Фильтруй базар! Как мы параллельный русско-башкирский корпус чистили

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

Чтобы обучать нейросети понимать и генерировать человеческие языки, нужно много качественных текстов на нужных языках. «Много» – не проблема в эпоху интернета, но с качеством бывают сложности. В этом посте я предлагаю использовать BERT-подобные модели для двух задач улучшения качества обучающих текстов: исправление ошибок распознавания текста из сканов и фильтрация параллельного корпуса предложений. Я испробовал их на башкирском, но и для других языков эти рецепты могут оказаться полезны.

Читать далее

Легкий фаззинг в интеграционных тестах с помощью hypothesis

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

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

Читать далее

Кажется, вы больше не должны давать тестовые задания кандидатам на дом

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

В 2023 году, в эпоху взрывного роста нейросетей, вся IT-отрасль продолжает давать кандидатам в стажёры (и не только) домашние тестовые задания. Компании тратят время на то, чтобы придумать эти задания, студенты тратят время на то, чтобы их сделать, потом компании снова тратят время на проверку… В этой небольшой заметке я продемонстрирую, что все задачи последних лет решаются за несколько минут при использовании нейронки, доступ к которой может получить каждый.




Я возьму тестовые задания на Python, C++, Go и C#  и буду использовать только открытые источники, убрав названия компаний и прямые ссылки, чтобы исключить любые подозрения в предвзятости.


А в качестве нейронки использую ChatGPT Plus (GPT 4). Она всё еще очень глупа, много выдумывает и постоянно смешно ошибается, но как раз для таких задач годится хорошо.


И да, вместо дисклеймера. Если вы хоть немного успели «посотрудничать» с ChatGPT, то статья может показаться вам глубоко капитанскоочевидной (она такая и есть, безусловно). Но если вы вместо хайпа по нейронкам предпочитаете работать, то у вас нет времени на такие развлечения. Так что, возможно, несколько минут, которые вы сейчас потратите на прочтение, сэкономят вам много часов инвестиций в «ненастоящих стажеров» и «ненастоящих джунов». И соответственно, помогут не наделать ошибок при найме.

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

Как сделать Telegram-бота для проверки аптайма своего сервиса на Python (ч.1 мгновенные метрики)

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

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

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

Под кат

Простейший бот «на движке» WEB WhatsApp

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

Доброго времени суток всем!

Продолжу изгаляться над Web версией Whatsapp и попробую превратить его в подобие телеграмм-бота. Тем более, что все это бесплатно и не требует никаких внешних сервисов.

Я не буду повторять все действия, которые нужны для для запуска python c необходимыми пакетами, он описаны в моей предыдущей статье: https://habr.com/ru/articles/737990/

Только упомяну, что в данном боте (его код будет ниже) не требуется подключение autoit, так как он не предусматривает отправку файлов в ответ на запрос.

Теперь опишу суть задумки. Так как нет специализированного сервера, то придётся использовать выделенный компьютер (виртуальную машину, docker-образ & etc). На нём в цикле запускать робота, который будет просматривать группу, где подключены все пользователи бота, и отвечать на их запросы. Данный робот ничего умного не умеет, кроме как отправить назад, в группу текст сообщения с префиксом "Echo:". Но с учетом предыдущего поста, думаю, что можно превратить его в полноценного "ответчика".

А сейчас, подробнее по структуре бота. Он реализован в классе, который называется whatapp(). В нём есть следующие методы:

Читать далее

Оптимизации работы Jupyter notebook при помощи параллельных вычислений (Библиотека Joblib)

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

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

Меня зовут Серов Александр, я участник профессионального сообщества NTA.

Параллелизм играет важную роль в задачах Data Science, так как может значительно ускорить вычисления и обработку больших объемов данных. В посте расскажу  о возможностях применения параллельных вычислений в интерактивной среде Jupyter notebook языка Python.

Узнать больше

Как создать свой мод для Cyberpunk 2077? Шерстим исходники, Lua, C++ и Python

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

Недавно мой коллега @Doctor_IT попросил помочь с его проектом — VR-жилетом, который «проецирует» ощущения урона, которые получает персонаж, на тело игрока. С моей стороны — мод, который будет отправлять данные из Cyberpunk 2077 на сам жилет.

Информации по теме моддинга мало, на русском языке материалов практически нет, а существующие статьи местами устарели — пора это исправить. Если вам интересно, как разработать свой мод для Cyberpunk 2077 и собрать VR-жилет, добро пожаловать под кат.
Читать дальше →

Как я написал конвертер 3D-моделей из подручных средств

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

Всем привет! Меня зовут Шико, я работаю в Яндекс Маркете в команде Android-разработки. Сегодня я расскажу историю, которая случилась в 2021 году. Как-то раз я вызвался добавить в мобильное приложение AR (то есть, дополненную реальность). Оно нужно, чтобы товар можно было «примерить» в интерьер.

Сначала я расстроился: показалось, что ничего особо интересного не будет — всего-то подключить ARCore и делов. Но это ровно до тех пор, пока не выяснилось, что большинство файлов моделек было в USDZ-формате, а ArCore на тот момент с ним не работал. То есть, когда на iOS в процессе разработки таких проблем не возникало, нам нужно было придумать способ перевести существующие модельки в другой формат — GLB. Казалось бы, скачай конвертер и нажми на кнопку «Конвертировать». Не тут-то было. 

И в этой статье я расскажу, какие методы конвертации я пробовал, почему они не подошли и с чем не смогли справиться Blender и Unreal Engine. Спойлер: в итоге мне пришлось написать собственный плагин и я покажу его код.

Читать далее

Всё хорошо, но нужно переписать или почему ваш код не попадает в прод

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

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

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

Читать далее

Мониторинг активности пользователей OpenVPN при помощи Python

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

Приветствую! Меня зовут Евгений, я DevOps в команде развития инфраструктуры. Мои прошлые статьи были посвящены протоколу BGP, но в этот раз я приготовил нечто поинтереснее. В прошлом году мне захотелось расширить своё портфолио навыков в сторону автоматизации задач. Не последнюю роль в этом желании сыграла книга «Автоматизация программируемых сетей», выпущенная известным в IT-кругах издательским домом O'Reilly. В ней примеры скриптов написаны на Python. Позже я в учебном центре прошёл курс повышения квалификации по программе «Python для сетевых инженеров. Автоматизация сетевых задач», а затем продолжил самостоятельно постигать это искусство. Недавно подвернулась интересная задача, о решении которой при помощи Python я вам сегодня и расскажу. Усаживаетесь поудобнее, мы отправляемся.

Читать далее

Messaging для чайников. Утилизируем все возможности RabbitMQ на Python

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

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

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

Простых и понятных примеров на Python тоже мало, так как они заставляют вас вникать не только в особенности различных вариантов маршрутизации RabbitMQ, но и в особенности используемых библиотек. Для человека, который видит что-то pika-подобное первый раз, это может быть испытанием.

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

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

Поехали

Крестики-нолики для питонистов: сначала пишем, потом играем

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

Всем привет! Меня зовут Кирилл Быков, и я — наставник на курсе «Python-разработчик» в Яндекс.Практикуме. Тема передачи знаний меня интересовала всегда, ещё со школьных олимпиад, продолжилась в вузе и не оставила на позиции лида. Теперь мой прямой интерес — сделать всех разработчиков в команде, от сеньоров до джунов, максимально эффективными.

Сегодня, юный падаван, на примере простой игры «крестики-нолики» мы разберём, как создают подобные приложения, продумывают для них требования и создают игровую логику. Мы не будем устанавливать много требований, в идеале поведение нашего кода должно соответствовать правилам игры на 100%. Если я вдруг где-то с этим не справился, прошу в комменты. Цель — сделать вас более уверенными при кодировании в парадигме ООП.

Открывайте любимую IDE и пробуйте шаги, которые прошёл я, не стесняясь шагать в сторону, если любопытно или хочется что-то изменить или улучшить.

Напишу и поиграю

Как определить причины достижений и неудач футбольного клуба с помощью цифр

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

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

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

Читать далее

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

Решение задачи определения RUL трансформаторов с помощью машинного обучения на python

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

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

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

Читать далее

Как делать full-stack с одного устройства без СМС и регистрации

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

Как крутить 2 сервера с белыми IP одного компа, и попутно разрабатывать Telegram Web Apps  на Bot API 6.7. Фронт + бэк на примере веб приложения внутри телеграм React + Fast-api.

Читать далее

Как можно компилировать типизированный Python

Время на прочтение15 мин
Охват и читатели10K
Прошло уже целых 9 лет с тех пор, как состоялся документ PEP 484, в котором сообществу Python были ниспосланы типы. Многих это сильно разозлило, и в широких массах этот ход осуждался (1). С тех пор жители Интернета неоднократно заявляли, что стремятся выяснить: в самом ли деле это означает, что теперь можно компилировать Python в нативный код и таким образом его ускорять? Вопрос совершенно оправданный. Он возник у меня на самом раннем этапе моих разработок, касающихся Python-компиляторов. Итак, осуществимо ли это?

Нет. Но в каком-то роде и «да», с оговорками. Сейчас объясню. Разберём этот вопрос на примере «компиляции перед исполнением» (AOT) в коде на CPython или в смежном с ним коде. В настоящее время CPython – основная подобная реализация в коде на Python. Средства динамической (JIT) компиляции – уже другая категория, и они также будут подробнее описаны ниже. Совершенно новой информации в этом посте нет, я всего лишь постараюсь помочь вам разобраться в ворохе известных академических и отраслевых знаний.

Ключевой тезис статьи таков: типы – это очень развёрнутые подсказки, и иногда они врут.
Читать дальше →

Telegram-бот для инвесторов c аналитикой, рассылкой изменения цен и анализом новостей от ChatGPT

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

Бот автоматизирует процессы сбора информации о трендах в реальном времени. Возможна подписка на получение списка акций с резким изменения тренда. Так же он позволяет получать финансовые новости с анализом от ChatGPT.

Читать далее

Ваш Main() — это бомба замедленного действия: Как MOPP позволит вам избежать катастрофы в вашем коде?

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

MOPP: Main-Only-Programming-Pattern

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

Что это такое?

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

Читать далее

Умный дом с голосовым ассистентом на минималках

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

Небольшой лонгрид с предысторией и планами, чтобы лучше понимать почему, что и как получилось.

Разработка шла с переменной скоростью в течении лет 5. Совсем не сразу взялся за летопись, поэтому прошу прощения, если что-то будет некорректно ;)

В результате имеем масштабируемое решение, которое можно использовать в любом месте (квартира, дом или еще что).

Читать далее

Вскрываем средство для DDoS-атак на российскую ИТ-инфраструктуру

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

Привет, Хабр! В начале апреля 2023 года на одном из хостов был обнаружен подозрительный файл mhddos_proxy_linux_arm64 (MD5: 9e39f69350ad6599420bbd66e2715fcb), загружаемый вместе с определенным Docker-контейнером. По открытым источникам стало понятно, что данный файл представляет из себя свободно распространяемый инструмент для осуществления распределённой атаки на отказ в обслуживании (DDoS), направленный против российской ИТ-инфраструктуры.

После запуска программа получает все необходимые настройки и автоматически
инициирует массированные сетевые подключения к целевым хостам на различных
уровнях TCP/IP для осуществления отказа в обслуживании.

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

Читать далее

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