Как стать автором
Обновить
642.77

Python *

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

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

MATPLOTLib: технологическое превосходство

Альтернатива для crop+zoom - растягивание осей inplace
Альтернатива для crop+zoom - растягивание осей inplace

Мы все, конечно, знаем, что старый добрый Matplotlib является одной из самых популярных библиотек для визуализации данных в Python, и он предлагает широкий спектр функций и методов для создания разнообразных графиков. Однако есть еще и Plotly, Bokeh и D3.js, которые также являются мощными инструментами для визуализации. Мое мнение, что Matplotlib предоставляет более гибкие и детализированные возможности для настройки графиков. Matplotlib хорошо работает с осями координат, что позволяет пользователям легко изменять масштабы, деления и метки осей. Кроме того, Matplotlib поддерживает встроенные афинные преобразования, такие как поворот, масштабирование и сдвиг. Пример на графике выше. Толстая линия на графике не сплошная, она сгенерирована из случайных точек. Это становится видно при увеличении, что сделано афинными преобразованиями, причем не предобработкой данных, а прямо сама matplotlib это делает без программирования.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии4

Pre-commit — must have утилита любого проекта

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

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

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

В DevFM пишу о полезном для разработчика.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии1

Простой скрипт на Python для генерации крипто-кошельков по маске (с определенными символами вначале и конце)

На настоящий момент присутствуют генераторы для BTC, ETH и TRON, постепенно добавлю еще.
Генерация происходит на всех доступных ядрях CPU, что ускоряет нахождение нужного адреса. Но всё равно это слишком медленно, нежели использовать GPU, который содержит тысячи небольших и менее мощных ядер, работающих параллельно. Что позволяет обрабатывать действительно большие массивы данных одновременно.

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

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

>>> GitHub проекта.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

🤒 Оптимизация электропотребления в Linux

Как известно, на линухе работа с питанием хуже, чем на Windows. Особенно это критично для людей с ноутбуком, желающих продлить время жизни от батареи.

Рассмотрим 3 инструмента:

  1. Один из самых популярных — TLP

TLP (The Linux Power Management). Мощный инструмент, много гибких настроек для процессора, дисков, сетевых интерфейсов и т.д. Хорошая документация. TLP работает в фоновом режиме, после настройки все будет работать само. Существует удобный TLPUI, чтобы не менять конфиги руками. Автоматически переходит в режим экономии при подключении зарядки.

+ Много гибких параметров

+ Автоматическое адаптивное управление

+ Разные типы устройств

- Возможно, надо будет доп настраивать для некоторых систем (на моем Lenovo Ideapad например пришлось читать вот это, благо дока хорошая)

- Необходимость обновления (сомнительно)

  1. Самый эффективный — auto-cpufreq

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

+ Простота использования — достаточно запустить и забыть

+ Интеграция с другими инструментами

+ Постоянное обновление частоты процессора в зависимости от нагрузки

- Может потребовать доп настройки

- Требует админских прав для работы (сомнительно)

  1. От корпорации зла — Power Profiles Daemon (ppd)

Power Profiles Daemon — три режима работы (производительность, сбалансированный, экономия), между которыми можно переключаться. По умолчанию во всех DE именно он находится в виджете "батарея". Сделан Red Hat.

+ Интеграция с системой

+ Поддержка различных профилей питания

+ Легкость использования через графический интерфейс

— Менее гибок, чем перечисленные выше

Я по итогу выбрал auto-cpufreq и tlp (только потому, что ограничивает заряд батареи)
Если вам есть что сказать, с удовольствием пообщаемся в комментах :)

Теги:
Всего голосов 10: ↑10 и ↓0+12
Комментарии1

ЕВРАЗ доверил ревизию кода искусственному интеллекту

Третий Хакатон ЕВРАЗа  привлек более 600 IT-специалистов со всей страны, а всего о нем  узнали около 500 тыс. человек. В мероприятии участвовали как опытные специалисты, так и студенты топовых технических вузов (МФТИ, МИСиС, ВШЭ, МИРЭА и др.). По итогу было сформировано 130 команд.

Артем Натрусов, вице-президент ЕВРАЗа по информационным технологиям
Артем Натрусов, вице-президент ЕВРАЗа по информационным технологиям

Хакатон прошел в смешанном формате: работа над проектами велась полностью в онлайне, а финалисты из Москвы собрались в студии на церемонии закрытия.

Участники в течение 40 часов разрабатывали решение на основе ИИ, которое позволит автоматизировать один из важнейших этапов разработки — code review. Этот этап традиционно требует значительных временных ресурсов старших программистов и автоматизация данного процесса позволит существенно увеличить эффективность разработки в компании.

Для обучения ИИ участникам были предложены реальные проекты компании по 3-м стекам — TypeScript, C# и Python. Работу команд курировали эксперты ЕВРАЗа, которые делились своими опытом и советами. Это помогло командам погрузиться в реальные проекты компании и предложить идеи решений, которые затем могут быть внедрены в реальные процессы.

Многим командам действительно удалось показать выдающиеся решения:

  • 3-е место заняла команда «Крутые Бобры», чье решение было отмечено за удобный и легкий UI-интерфейс, интеграцию с Telegram и информативность отчета, что особенно важно для быстрого анализа.

  • 2-е место решение команды «overbuffed» жюри оценило за высокую функциональность, конкретику в отчетах и глубокое погружение в проблематику поставленной задачи.

  • Победителем стала команда «Мастер на GPT-унами», представившая нестандартный подход к решению задачи. Их проект отличался качественной проработкой мультиагентной архитектуры и общей логики решения.

Призеры разделили между собой призовой фонд в 500 000 рублей. А победители специальных номинаций получили фирменный мерч компании.

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

Артем Натрусов, вице-президент ЕВРАЗа по информационным технологиям, также подчеркнул стратегическую значимость темы:

«Мы ценим технологичные решения, способные изменить образ металлургии, делая отрасль более эффективной и безопасной. Code review — это важнейший элемент разработки, в котором участвуют наши старшие программисты. Это гарантия качества кода. А что, если освободить время опытных специалистов для работы над прорывными проектами, а рутинные задачи — передать ИИ?»

Теги:
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Обновление и ускорение моего GA для FlappyBird!

Теперь все птицы запускаются одновременно, поэтому обучение ускорилось с ~3-5 часов до 5-10 минут при запуске на CPU, то есть в 50 раз!

https://github.com/LanskoyKirill/GenNumPy.git

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0

Python 3.13 на iMac 2011 High Sierra и VScode

Изучал Python на Anaconda/JupyterLab/Notebook/Spider под Windows 11. Возникла потребность все запускать на старом, но прикольном iMac 2011 32 ГБ ОЗУ, 1 ТБ disk, FulHD экран. Оказалось последняя Anaconda для него 2019 года с Python 3.6. Случайно узнал, что есть для Python отличные PyCharm и VScode. Оказалось VScode предпоследней версии работает на этом iMac, причем в ней есть microsoft Python практически новейший версии 3.13 и отладчик работает и pip есть сразу из коробки. Все работает с достойной скоростью. А ведь куплен iMac был за 10 тыс. руб. Добавлю еще, что он тихий даже под рендерингом анимации 3D в VTK и расчетах pandas. Добавлю еще, что с самого офицального python.org на этот iMac смог поставить только Python 3.11, a Jupyter/Spyder отказались работать.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии5

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

На самом деле, большинство пунктов так же применимо и к другим языкам. Большая их часть универсальна, так же проста (js, php или ruby не сильно отличаются на этом уровне) и в целом универсально подходит для всего (php конечно тут выпадает). Реальная же причина популярности кроется в неожиданном аспекте. Питон уже давно основной язык изучения Computer Science в университетах по всему миру. Я не скажу сколько точно это добавляет пунктов, но если посмотреть использование питона в разрезе конкретных направлений, то видно что разрыв резко уменьшается. Та же django, внезапно, проигрывает rails в веб разработке. А это довольно серьезная часть проектов на Python. И даже лидерство в аналитике достигается скорее за счет числа людей, которые с питоном соприкасаются, но надо понимать, что реального программирования там мало и объемы кода в аналитике не идут ни в какое сравнение с веб-разработкой.

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

p.s. Делюсь опытом программирования и предпринимательства в своем телеграм-канале организованное программирование

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии6

Раз в год-два мне приходится вспоминать, что Python — не C++.

В этот раз я наткнулся на случай, когда отформатировать и склеить колонки результата запроса на стороне PostgreSQL и распарсить Python-ом оказалось эффективнее, чем запрашивать колонки как отдельные значения.

Конкретнее, при переходе от этого запроса:

SELECT * FROM o_relations ORDER BY id DESC LIMIT %(limit)s

к этому:

SELECT CONCAT(entry_id::text, '|', tag_id::text) AS ids FROM o_relations ORDER BY id DESC LIMIT %(limit)s

скорость извлечения данных увеличилась примерно в 4 раза.

Причиной тому тяжёлая конвертация данных из формата С в формат Python внутри Psycopg.

За подробностями можно сходить ко мне в блог: https://tiendil.org/ru/posts/fun-case-of-speeding-up-data-retrieval-with-psycopg

Теги:
Всего голосов 14: ↑4 и ↓10-6
Комментарии4

Привет! Я — Ося, разработчик в Инновационном Центре «Безопасный транспорт», ваш виртуальный проводник в мир технологий и разработки. В блоге рассказываю, как решаю сложные задачи и делюсь знаниями. Здесь мы будем разбираться в коде, обсуждать подходы к проектам и актуальные тренды в IT. Пишу о разработке, больших данных и инновационных технологиях.

Я — робот-осьминог и талисман ИЦ, который иллюстрирует разносторонность и многозадачность нашей команды. Мои 8 щупалец представляют различные направления работы, а 3 сердца обеспечивают высокую эффективность. Отсутствие скелета позволяет гибко адаптироваться к изменениям, а более 1000 рецепторов на щупальцах помогают мне воспринимать малейшие колебания в окружении.

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

Теги:
Всего голосов 4: ↑2 и ↓2+3
Комментарии0

5 ссылок для Python-разработчика. Собрали базу: полезные ресурсы, статьи с разбором основ языка и тонкостей, немного практики.

Теги:
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

Держите задачу на Python от Кирилла Быкова, наставника на курсе «Python-разработчик».

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

Размер последовательности: 1 <= N <= 10^6

Число k: 0 <= k <= N

Индекс элемента: 0 <= index < N

Примеры:

[1, 3, 4, 7, 9, 12] k = 5
Ответ: 2 (число 4)
[1, 3, 4, 12, 15, 15, 18] k = 14
Ответ: 4 (первое число 15)

Решение не должно превышать по временно́й асимптотике O(log(N)), где N — длина массива. Если задача кажется легкой, попробуйте выполнить её без bisect.

Ждём ваших ответов в комментариях к посту.

Теги:
Всего голосов 5: ↑3 и ↓2+3
Комментарии9

Автоматический майнер Not Pixel

Написал простенького бота для майнинга Not Pixel, пока еще не поздно. Это очередное web3 крипто-приложение в telegram, но хотя бы от создателей Notcoin. И если кто не знает, автоматизация подобных проектов- моё хобби.

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

💾 GitHub: https://github.com/Bednyakov/NotPixelMiner

Теги:
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

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

Официально вышел Python 3.13.0

Если при инсталляции в Windows поставить соответствующую галочку в инсталляторе, установится и experimental free-threading build python3.13t.exe, который, кстати, станет запускаемым по умолчанию при использовании py.exe.

User-директории для двух интерпретаторов теперь раздельныe:

  • AppData/Roaming/Python/Python313 и

  • AppData/Roaming/Python/Python313t.

Учитывая, что AppData/Roaming/Python/PythonXYZ/Scripts желательно иметь в пути, переключение между разными интерпретаторами несколько геморройно.

Про пакеты: numpy для experimental free-threading build успешно собирается из исходников, а вот scipy уже не хочет :(

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Проблемы обучения программизьму — Тогда и Сейчас. В том числе про Python.

Наткнулся на огромную статью о том как полезно учить детей программированию на Python. А у меня есть парочка наблюдений — во многом по работе новичков с Питоном на CodeAbbey (мой бесплатный и опенсорсный сайт — задачи там идут с оооочень плавным нарастанием сложности — аж скучно порой).

Обращение и Вращение Строки

Развернуть строку или сдвинуть её на K символов. Сложность эти задачи представляют только в языке вроде Pascal / C — т.к. операцию нужно осуществить «на месте» — в «мутабельной» строке. А на Питоне строки иммутабельны и «решение» сводится к конструированию новой строки. В жизни такие операции редко нужны — но детям‑то важно логику в голове развивать!

Округление

А здесь наоборот. Питон — язык профессиональный и операция round ведёт себя статистически корректно, но не так как учат в школе: round(1.5) = 2, round(2.5) = 2, round(3.5) = 4 — это настраивается — но новички не читают доки — и могут биться над задачей часами.

Бесконечные целые

Цель задачки «Modular Calculator» — показать принцип модульной арифметики. В обычных языках пока этот принцип не уяснишь — задача не решается из‑за переполнения целых. На Питоне же её пишут «втупую» даже не поняв в чем задача‑то. Пришлось добавить «продвинутую» версию — там «втупую» не дождёшься окончания расчета.

Какие же выводы?

  1. Идеального языка для обучения пока нет. Быть может стоит изучать парочку разных!

  2. Курсы стремятся показать результат а не развивать мышление.

Теги:
Всего голосов 4: ↑3 и ↓1+5
Комментарии7

В иконках сайта обновление!

Теперь можно генерировать изображения иконок для сайта самостоятельно (все-таки он теперь генератор).

Работает на GigaChat API - генерирует так себе, так что это скорее для галочки.

Но если будет пользоваться популярностью может куплю токенов по-лучше

Теги:
Всего голосов 3: ↑2 и ↓1+5
Комментарии0
Сгенерированно при помощи DALL-E

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

ruMorpheme вдохновлён и является портом с TensorFlow (0.12) на PyTorch (2.4) проекта NeuralMorphemeSegmentation, реализованного в рамках публикации "Deep Convolutional Networks for Supervised Morpheme Segmentation of Russian Language" авторства Алексея Сорокина и Анастасии Кравцовой.

Обученная модель способна сегментировать слова, выделяя в них следующие морфемы:

  • Приставки (PREF)

  • Корни (ROOT)

  • Соединительные гласные (LINK)

  • Дефисы (HYPH)

  • Суффиксы (SUFF)

  • Постфиксы (POSTFIX)

  • Окончания (END)

Попробовать модель можно через Telegram-бот: @ruMorphemeBot, его можно добавить в группу и отправлять текст через упоминание @ruMorphemeBot.

Ссылки:

Как пользоваться:

git clone https://github.com/EvilFreelancer/ruMorpheme.git
cd ruMorpheme
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Для выполнения инференса:

python predict.py input_text.txt --model-path=evilfreelancer/ruMorpheme-v0.1

Скрипт автоматически скачает веса модели и выполнит анализ.

Пример вывода:

{"word": "родословие", "morphemes": [{"text": "род", "type": "ROOT"}, {"text": "о", "type": "LINK"}, {"text": "слов", "type": "ROOT"}, {"text": "и", "type": "SUFF"}, {"text": "е", "type": "END"}]}

Спасибо за внимание!

Теги:
Всего голосов 9: ↑8 и ↓1+10
Комментарии3

Пример того, почему стоит обратить внимание на Julia. Если, конечно, занятные люди делающие (полу)безумные вещи - это для Вас в плюс.

Работает, но для продакшена не рекомендуется. С друой стороны, то, с тем, что делается just for fun, бывало всякое.

Теги:
Всего голосов 2: ↑2 и ↓0+6
Комментарии0


Вот почему так?

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

Но попробуем.
Мы с коллегой написали тестовый бот в телеге (на Python, бесплатный и без рекламы).
Это новостной бот (тех новости) с возможностью персонализированной настройки по темам. Новости берутся на английском и пересказываются на русский, дается ссылка на первоисточник, ставятся теги, новости классифицируются: https://t.me/summix_test1_bot

Просьба.
Если у вас есть время и желание, будем очень признательны за ваш отзыв по боту здесь или в нашем чате разработчиков: https://t.me/techmixdev

Как мы пришли к идеи бота?
Сначала сделали канал https://t.me/techmixru и даже написали об этом статью на Хабре. Но на канале слишком много новостей, там нет тегов. Хотя есть один плюс - все новости имеют еще аудио трансляцию. Удобно для машины.

Но мы поняли, "большая несортированная свалка" не нужна. И сделали тестовый канал с сортированной/тегированной "свалкой". Канал пока закрытый, но если кому-то интересно, то вот ссылка приглашение: https://t.me/+r4RQ7mDo7PtkZDZi

Для тестирования применения бота я использую некоторые новости от него в своем блоге: https://t.me/lanchev_pro_ai

Это все хорошо. Но очень хочется откликов коллег с конструктивной критикой и предложениями по нашему тестовому техно новостному боту с персонализацией.
Заранее большое спасибо!

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии9

Последний день регистрации на хакатон по интерфейсам «мозг-компьютер»

Хотите круто воплотить технологии будущего в реальность? Научить компьютер взаимодействовать с мозгом напрямую? Зажигать силой мысли лампочки и управлять компьютерными играми? Регистрируйтесь на BCI Hack Moscow.

Мы — компания Neiry. Наше  BCI-устройство Headband Pro и ПО Capsule считывают и записывают мозговую активность, и другие физиологические сигналы пользователя. А Capsule API позволяет использовать эти данные в других приложениях. На Хабре мы уже рассказывали про крутые кейсы, в которых задействованы наши разработки, про особенности Capsule и API

На хакатоне мы дадим участникам возможность создать прототипы продуктов на базе нейроинтерфейсов для Neiry Headband Pro и открытого API Neiry. Приглашаем разработчиков всех грейдов, студентов, нейроэнтузиастов. Язык нашего API — С, пригодятся знания в Python, SQL, аналитические навыки, опыт обращения с BCI. Если вам интересно поработать с нейроинтерфейсом, присоединяйтесь — оборудование выдадим бесплатно! Участвуйте самостоятельно или командой до 4 человек.

Регистрируйтесь сегодня: опишите в заявке свою крутую идею для нейроинтерфейсов. 20 сентября бесплатно выдадим участникам Neiry Headband Pro, для этого кто-то из команды должен быть в Москве. И всё, больше никаких блоков. Регистрируйтесь на BCI Hack Moscow и помогите сделать будущее — настоящим.

Теги:
Всего голосов 2: ↑2 и ↓0+6
Комментарии0

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

Работа

Data Scientist
45 вакансий