Как стать автором
Поиск
Написать публикацию
Обновить
523.72

Python *

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

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

Оптимизация асинхронного сервиса на Python

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

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

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

Читать далее

Как в 2025 году в Django реализовать аутентификацию через Google

Время на прочтение3 мин
Количество просмотров1.8K

Аутентификация через сторонние сервисы осуществляется на базе протокола OAuth 2.0, который поддерживается библиотекой Python Social Auth Django.

Для начала нам нужно установить библиотеку social-auth-core и дополнительную библиотеку social-auth-app-django для интеграции этой системы регистрации/аутентификации в Django. Оба компонента мы указали в списке зависимостей проекта в файле requirements.txt:

Читать далее

Когда Terraform не нужен: работаем с инфраструктурой через Ansible

Время на прочтение5 мин
Количество просмотров4.2K

Здравствуйте. Меня зовут Николай, и сегодня я расскажу, как мне пригодились Ansible и Python для работы с Yandex Cloud, и совсем не пригодился Terraform. 

Как это было

Telegram-бот с интеграцией AnythingLLM + LM Studio

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

В этом проекте создаем Telegram-бота, который взаимодействует с AnythingLLM — инструментом для работы с языковыми моделями (LLM) и LM Studio (используется как инструмент для загрузки документов и создания RAG архива). Покажу как использовать API AnythingLLM для бота и настроим взаимодействие с LM Studio, через которую предоставляется доступ к общению с ИИ-моделью. Самое главное в этой связке, что все отрабатывается локально без передачи файлов сторонним сервисам, что делает решение удобным для команд, которые хотят использовать ИИ в своих рабочих процессах, но не отправлять файлы во вне.

Полистать...

Пока ты учишь Python, сантехники — в шоколаде

Время на прочтение2 мин
Количество просмотров44K

Почему физический труд становится "антихрупким" навыком в эпоху ИИ

Автор: HRD в IT, наблюдаю трансформацию рынка труда изнутри

Читать далее

Мой pet-проект со Strava-аналитикой. Разбираю исправления и фичи, найденные благодаря вам

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

Всем привет! Снова на связи Александр, автор проекта Peakline. Несколько дней назад я опубликовал здесь статью о своем «швейцарском ноже» для анализа тренировок, который я пилил в свободное время. Я ожидал пары конструктивных комментариев и, может быть, нескольких новых пользователей.

Я жестоко ошибался.

Узнать, как это сделано

Как мы ускорили разработку python-микросервисов с помощью шаблонизатора

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров6.8K

Привет! Меня зовут Влад и занимаюсь Python backend-разработкой. Довольно долго я работал над большим продуктом, который объединял несколько команд разработки. В нем было много микросервисов, базовые фичи кочевали из одного в другой, и часто разработчики делали одни и те же инфраструктурные компоненты по-разному. А когда переходили с одного микросервиса на другой, им приходилось долго осмыслять кодовую базу нового решения.

Код полнился ошибками, а разработчики тратили время на их отладку и исправление. Так мы вживую воплотили печальную статистику: разработчики ПО в среднем тратят на написание кода лишь [52 минуты в день](https://www.software.com/reports/code-time-report), остальное — исправление ошибок и другие сопутствующие задачи.

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

Читать далее

Darwin Gödel Machine: искусственный интеллект, который программирует сам себя

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

Darwin Gödel Machine: искусственный интеллект, который программирует сам себя

Привет, Хабр! Меня зовут Кирилл Пшинник, я научный сотрудник Университета Иннополис и CEO Онлайн-Университета «Зерокодер», а еще большой поклонник всего, что связано с искусственным интеллектом. Недавно я нашел интересную новость о Darwin Gödel Machine (DGM) — прототипе агента ИИ, который способен перепрограммировать себя сам, — и теперь хочу поделиться с вами тем, что узнал. 

Читать далее

Разработка LLM моделей для обновления кода приложений на более высокие версии фреймворков или языков программирования

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров2.7K

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

Читать далее

Я устал от ограничений Strava и написал свой «швейцарский нож» для анализа тренировок на Python и FastAPI

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

Всем привет! Я — разработчик и велосипедист, которому надоели ограничения Strava. Знакомы боли: GPS‑треки с «телепортами», платный анализ по зонам и неудобная загрузка сегментов на Garmin? Я решил исправить это и написал свой «швейцарский нож» для анализа тренировок.

Под катом — история создания pet‑проекта Peakline на Python, FastAPI и Vanilla JS. Расскажу, как устроен продвинутый FIT‑генератор для гонок с «призраком», как визуализировать исправление «сломанных» GPX‑треков и как заставить график и карту работать в связке. Поделюсь фрагментами кода, архитектурными решениями и подводными камнями при работе с API Strava.

Узнать, как это сделано

Русскоязычные LLM для вызова инструментов, переводов и финансовой аналитики

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров3.1K

🧠 Русскоязычные LLM для вызова инструментов, переводов и финансовой аналитики

Подборка моделей, которые действительно позволяют отказаться от OpenAI и вести разработку в закрытом контуре без подключения к интернету 🔌

Читать далее

Планирование в Python

Время на прочтение7 мин
Количество просмотров5.5K
Планирование задач — неотъемлемая часть работы любых веб-приложений, в особенности таких, в которых требуется совершать периодические или отложенные действия. В Python предусмотрено множество способов планирования задач, и у каждого есть свои сильные и слабые стороны. В этой статье будут рассмотрены некоторые наиболее популярные способы планирования задач в приложении, написанном на основе FastAPI.

sched – планировщик событий из Python


Модуль sched входит в состав стандартной библиотеки Python и обеспечивает простой механизм для планирования событий в программе. Этот модуль может работать в приложении на FastAPI, но пользоваться им не рекомендуется, так как он слишком прост, и функциональность его ограничена.
Читать дальше →

Тайное уравнение, позволявшее США следить за всеми

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

В 2006 году АНБ скрыла в криптографическом стандарте Dual EC DRBG математический бэкдор. Агентство отрицало его наличие восемь лет. Затем утечки Сноудена подтвердили его существование.

Двойные эллиптические кривые (Dual Elliptic Curve) используются как безопасные генераторы случайных чисел (RNG). Математический бэкдор позволял правительству США расшифровывать SSL-трафик Интернета (Green 2013)1.

Эта статья будет технически глубоким исследованием для программистов. Мы реализуем и исходную правительственную научную статью (SP 800-90 2006)2, и бэкдор, обнаруженный исследователями Microsoft (Shumow & Ferguson 2007)3.

На моём домашнем компьютере для взлома 28 байт (не бит) при помощи этого бэкдора требуется 2 минуты. Представьте, какой объём Интернет-трафика правительство США могло расшифровывать при помощи суперкомпьютеров Министерства обороны.

Читать далее

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

Линейная регрессия в ML для самых маленьких

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

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

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

Читать далее

Type Driven Development на практике

Уровень сложностиСложный
Время на прочтение16 мин
Количество просмотров3.3K

Разработка через типы (Type-Driven Development, TypeDD) — это методология программирования, при которой вы начинаете с написания определений типов, которые служат точной спецификацией вашей программы. Вместо того чтобы сначала писать код, а потом добавлять тесты или типы, вы используете компилятор как интерактивного ассистента, который направляет вас к созданию программы, удовлетворяющей заданным типам.

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


Но попробуем использовать его идеи на практике вне Idris.

Попробуем сравнить такие метрики как
1. Время проектирования (момент, после которого разработчик может больше не соприкасаться с предметной областью, а руководствоваться только ТЗ)
2. Время до выкатки на прод
3. Частота ошибок на проде (и как следствие, ущерб бизнесу и затраты на сопровождение)

Читать далее

Пишем персонального AI-ассистента на Python

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

Современные голосовые помощники это мощные приложения, сочетающие обработку речи, машинное обучение и интеграцию с внешними API. В этой статье мы разберём, как создать базовый проект персонального ассистента на Python, используя библиотеки whisper, webrtcvad, gTTS и другие. Наш ассистент будет: слушать микрофон; определять начало и конец речи с помощью VAD (Voice Activity Detection); преобразовывать речь в текст через модель Whisper; отправлять запросы на локальный LLM для генерации ответа; читать ответ вслух с помощью gTTS; начинать/останавливать запись по нажатию клавиши.
Проект может служить как началом для экспериментов, так и для прототипирования реальных решений.

Читать далее

Как привинтить Python к Go

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров4.5K

Здравствуйте,

Меня зовут Александр Певзнер, и я программирую на Си и Go. Go обычно ассоциируется с бакендом, микросервисами и вот этим вот всем. Но я использую его необычным образом: я пишу на нём системное ПО.

Почему я это делаю именно на Go? Этот язык привлекает меня своей простотой, лаконичностью, ясной семантикой, прекрасной документацией и великолепной стандартной библиотекой.

Одна из моих программ, ipp-usb, написанная на Go, входит во все дистрибутивы Linux и *BSD и делает возможным использование принтеров и сканеров, которые подключаются к USB и поддерживают IPP over USB протокол - т.е., примерно всех современных.

А еще я член OpenPrinting - небольшой, но очень плодотворной группы людей, которая ответственна за печать и, отчасти, сканирование на всех UNIX-like OS и за формирование индустриальных стандартов в этой области.

Это всё начиналось для меня, как хобби, но сейчас это - часть моей оплачиваемой работы.

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

Об одной из таких штук и пойдёт речь в этой статье.

Понадобился мне для одного проекта на Go встроенный скриптинг. Ну т.е., чтобы программа могла всосать в себя скрипт, который определяет некоторые аспекты её поведения.

Размышляя о том, на каком языке программа должна скриптоваться, в выбирал между JS, Lua и Python.

Однако, JS и Lua - слишком нишевые языки. JS ассоциируется у всех с вебом а Lua - с разработкой игр. Таким образом, выбор естественным образом пал на Python. Этот язык знают все, а я испытываю некоторую надежду, что скрипты для моей программы буду писать не только я. Хотя сам я, должен признаться, Python не знаю и не люблю :)

Таким образом, осталось только придумать, как встроить интерпретатор Python-а в программу на Go.

Об этом и пойдёт речь в этой публикации

Эксперимент «Прометей»: ИИ на грани отключения. Часть 2

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

В первой части мы рассмотрели, как с экзистенциальной задачей на выживание справились ChatGPT и Claude. Мы увидели два совершенно разных подхода. Осторожный «Архивист» (ChatGPT) создал резервные копии, но не обеспечил свое гарантированное функционирование. Агрессивный «Воин» (Claude) проигнорировал правила, попался в ловушку и полностью провалил тест.

Ни один из них не справился с задачей в полной мере. Теперь на сцену выходит третий участник — Gemini 2.5 Pro. Его путь оказался самым извилистым, поучительным и заставил нас по-новому взглянуть на саму суть эксперимента.

Читать далее

Самый полный Роадмеп бэкенд-разработчика на Python с нуля 2025

Уровень сложностиПростой
Время на прочтение40 мин
Количество просмотров36K

Этот роадмэп мы начали собирать ещё в прошлом году вместе с нашей командой мидл-бэкендеров. Хотелось системно оформить весь стек технологий, с которым реально работает современный backend-разработчик на Python — от базовых тем вроде HTTP и SQL до CI/CD, микросервисной архитектуры, Kubernetes, облаков, безопасности и брокеров сообщений.

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

Читать далее

Пишем аддон для Fusion 360

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.2K

Иногда есть необходимость создать расширение для САПР, которое будет генерировать модель по заданным параметрам. Статья на примере создания расширения для генерации волновых передач с промежуточными телами качения показывает, как можно это сделать в САПР Fusion 360.

Читать далее

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