Обновить
613.21

Python *

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

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

Как создавать веб-приложение на Django с нуля?

Внутри — четыре инструкции по веб-разработке на Django. Начинаем с создания и настройки простых проектов: блога и канбан-доски. Затем переходим к подключению автоматических бэкапов. Изучение займет не более часа.

После прохождения вы научитесь:

  • работать с бэкендом и API,

  • создавать веб-приложение по шаблону от Django,

  • настраивать Nginx для обработки запросов,  

  • развертывать Django-приложение с помощью Gunicorn.

Переходите в Академию Selectel и изучайте курс.

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

Сбор семнтики из Гугла (Гугл Вордстат существует)!

В общем такая ситуация - я писал не так давно пост, про парсинг семантики для Гугла, вот он - https://habr.com/ru/articles/867876/

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

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

Но оно того реально стоит, за 5 дней я обработал 50000 входящих ключевых слов и вытащил около 70к ключей для дальнейшей обработки.

Да, абсолютно бесплатно! Вот в эти моменты становится хорошо!!!

Не превышайте лимиты!!!

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

По просьбам трудящихся запилил новую версию скрипта для автоматического получения наград в telegram mini app BLUM

Функционал пока такой:

  • играет на билеты

  • получает ежедневную награду

Тестил мало, поэтому приглашаю присоединиться. Но вроде бы всё работает, по крайней мере до следующей обновы приложения.

GitHub: https://github.com/Bednyakov/BLUM-autoplay

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

Праздничный unixporn: python vim ide в контейнере

В разработке на python, особенно в DS/ML проектах, мы все сталкиваемся со сложной схемой зависимостей на специфичной аппаратной платформе. Зачастую, вести разработку удобно в том окружении, в котором в последствии запускается приложение.

Если вы вдруг vim user, то можно просто доставить редактор в контейнер с окружением и разрабатывать прямо там. Такая схема достаточно лекговесна, позволяет относительно просто держать актуальными завистимости при разработке, переиспользовать существующие сборочные конвейеры с небольшим наборов слоёв для самого редактора. Так же это может быть удобно, если вам нужно работать где то на удалённом кластере по ssh.

У меня был некоторый шаблон Dockerfile с добавкой vim с плагинами который кочует из проекта в проект и я решил поделиться с вами этой наработкой.

С Новым годом!

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

Обновления января 2025 года в Amvera Cloud

Многие ждали, писали, но нет, мы цены повышать не будем!)

Зато сразу после 1 января праздников, ориентировочно 13—17 января

  1. Выкатим новый фронт. Надеемся, все станет понятнее.

  2. Появятся преднастроенные RabbitMQ и Memcached.

  3. Расширенные алерты и пробы. Можно будет настроить алерты на падение проекта, превышение заданного потребления ОЗУ и CPU и появления определенных ошибок в логах. Дополнительно появятся liveness и readiness пробы.

  4. Мы вводим SLA. Осенью 2024 были инциденты с падением сервисов. Мы готовы нести ответственность за безотказность работы сервиса. Начиная с января 2025, если наша надежность окажется ниже 99,5% в месяц, можно будет претендовать на компенсации с нашей стороны.

SLA действует с 1 января 2025

Amvera Cloud  это облако для простого деплоя приложений через git push. Встроенный CI/CD, бэкапы и мониторинг позволяют развернуть проект тремя командами в IDE и не думать о настойке инфраструктуры. Amvera проще, чем использование VPS или Kubernetes-кластера.

Теги:
Рейтинг0
Комментарии0

Пет-проект на 2025: модель кровообращение человека для спортивной физиологии

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

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

  • OpenModelica — это открытая платформа для моделирования и симуляции, поддерживающая язык Modelica. OpenModelica Connection Editor (OMEdit) позволяет создавать и симулировать модели гидравлических систем.

  • PyFMI — это библиотека Python для работы с моделями, созданными в Modelica. Она позволяет загружать и симулировать модели, созданные в OpenModelica, непосредственно из Python.

  • PySMO — (Python Simulation Modeling): Это библиотека Python для моделирования и симуляции различных физических систем, включая гидравлические.

  • PyDSTool — (Python Dynamical Systems Toolkit): Это инструмент для моделирования и анализа динамических систем.

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

Теги:
Рейтинг0
Комментарии0

Новогодняя задача: помогите Тирексу поставить и нарядить елочку

Условие

Сисадмин Тирекс засиделся допоздна и не успел не то что нарядить елку, но даже купить ее! У него нет главного символа праздника, но есть лапки, компьютер, IDE, технический склад ума и знание Python.

Задача

Помоги Тирексу вывести в консоли наряженную елку на любимом языке программирования. Педантичный Тирекс предъявляет следующие требования:

  • на вход программа получает два числа: rows отвечает за высоту елки в строчках (не менее трех), freq — за частоту появления украшений.

  • ветки елки — символ *.

  • игрушки — символы о, О, @ и 0.

  • елка имеет ствол из трех символов | и стоит на полу из символов _.

  • ветви елки расположены «ступенями»: первая состоит из трех строк, каждая следующая ниже — на одну больше.

  • первая строка следующей ниже «ступени» должна иметь на два символа меньше, чем последняя строка предыдущей.

  • елка должна иметь границы в виде символов /  и  \.

  • между двумя украшениями по горизонтали должна быть минимум одна ветка.

  • украшения не должны висеть на границе елки (они же упадут!).

Бонусная задача

  • вывести снег символом . (точка).

  • раскрасить елку зеленым, фон — синим, игрушки — разными цветами (кроме зеленого и синего), снег — белым.

Попробуйте решить задачу самостоятельно и делитесь своими идеями в комментариях. А вариант ответа Тирекса ищите в Академии Selectel.

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

WebTransport: будущее потокового вещания и коммуникаций.

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

Всем кому любопытно, то рекомендую к просмотру: https://youtu.be/WqYExpMWIUU?si=p4gSGHXkhHAS4LK_

Для питонистов и тем кому интересно хочу перекомендовать к прочтению статью о webtransport и библиотеке на python aioquic [habr].

Что такое веб-транспорт?

Web Transport — это новый веб-протокол, разработанный для улучшения существующих решений, таких как WebSockets и события, отправляемые сервером (SSE). Хотя Web Transport часто называют «WebSocket 2.0» из-за его расширенных возможностей, он предлагает более тонкие функции, такие как однонаправленная и двунаправленная потоковая передача, дейтаграммы и улучшенная обработка частичной надёжности. В настоящее время этот протокол поддерживается в виде черновика основными браузерами, такими как Firefox и Chrome, а вскоре его поддержка появится и в Safari.

Ключевые особенности

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

  • Дейтаграммы: в отличие от более ресурсоёмких веб-сокетов, дейтаграммы требуют меньше ресурсов и допускают потерю пакетов, что может быть преимуществом в сценариях, где надёжность не является критически важной.

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

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

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

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