Обновить
797.81

Python *

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

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

MCP (Model Context Protocol). «Мне только попробовать!»

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

Если вам довелось уже почитав статьи про mcp технологию озадачиться вопросом «а что же происходит под капотом» и при этом какое то представление о том, что же такое mcp, у вас все таки есть, то, возможно, эта заметка поможет вам сделать еще один шаг к пониманию что за всем этим скрывается.

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

Поговорим о DevSecOps и культурной трансформации в мире разработки

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

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

Почему «последняя миля» в тестировании безопасности — это провал: статистика OWASP и NIST о том, как 97% приложений содержат уязвимости, а исправление ошибок после релиза обходится в 6 раз дороже.

Как DevSecOps убирает барьеры между командами: интеграция безопасности в CI/CD, автоматизация проверок и сдвиг «влево» (Shift Left) — от теории к реальным кейсам Microsoft, Netflix и Capital One.

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

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

Статья подойдёт для разработчиков, руководителей IT-команд, специалистов по кибербезопасности и всем, кто хочет превратить уязвимости в прошлое.

Читать далее

Создаем свой RAG: от загрузки данных до генерации ответов с LangGraph. Часть 2

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

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

Технология RAG (Retrieval-Augmented Generation) сочетает поиск информации с генерацией ответов, делая AI-системы более точными и осмысленными. В этой статье разберём практическую реализацию RAG с помощью LangGraph — гибкого инструмента для построения агентов и графов.

Читать далее

Обыгрываем казино, с блэкджеком и стратегиями

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

В данной статье рассмотрим работу с библиотекой gymnasium для изучения машинного обучения с подкреплением. Реализуем агента, который использует метод машинного обучения q-learning для максимизации выигрыша в карточной игре blackjack. Сравним средний выигрыш за 100000 игр при различных реализациях игры blackjack.

Читать далее

Быстрый деплой бота (и не только) на Docker-хостинге с Portainer

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

18 июня будет два года как я создал сообщество "Код на салфетке". Сразу оговорюсь, что это некоммерческая история и возникло оно как решение важной для меня проблемы: "недостаток информации для начинающего разработчика". В процессе моего обучения и развития я сталкивался с различными нюансами, которые решались достаточно просто, но найти "комплексный ответ" зачастую было очень трудной задачей.

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

За эти два года мне в личку и в чат Telegram-канала довольно часто пишут новички и их вопросы можно разделить на две категории:

Читать далее

Оптимизация запросов в Django. Подробное руководство

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

Привет, хабр! В данной статье хочу рассказать больше чем обычно про оптимизацию запросов к базе данных в Django. Расскажу о том, как не только запрашивать, но и создавать или обновлять записи в базе. В статье будет много примеров, генерируемый SQL, типы данных, индексы и выводы планировщика запросов.

Данная статья подходит как для начинающих, так и для достаточно опытных разработчиков на django, а также для всех, кто еще не интересовался, что происходит под капотом ORM.

Читать далее

От кнопки до продакшена: как мы делаем Telegram Mini Apps

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

Привет! Мы Дима и Илья, работаем в команде ТМА-разработки Doubletapp и расскажем, как создать Telegram Mini App на стеке React + Python.

Telegram Mini Apps — это мощный инструмент, который позволяет создавать интерактивные веб-приложения, работающие прямо внутри мессенджера. Они идеально подходят для игр, маркетплейсов, сервисов бронирования и многого другого.

В этом туториале мы разберем процесс создания Mini App:

настроим проект
создадим фронтенд на React с поддержкой Telegram SDK
реализуем бэкенд на Python (Django)
свяжем все компоненты и развернем приложение.

Читать далее

Вычисление функции потерь и градиентов в AI переводчике

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

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

Меня зовут Алексей Рудак, я основатель компании Lingvanex, которая разрабатывает решения в области машинного перевода и транскрипции речи. Продолжаю цикл статей о том, как устроен переводчик на нейронных сетях изнутри. И сейчас хочу рассказать про работу функции потерь. Для тренировки модели используется opensource фреймворк OpenNMT-tf.

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

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

Читать далее

DRF captcha своими руками

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

Пришла мне тут по работе задача сделать возможность добавления товара в корзину пользователем без авторизации. Корзина, причем должна храниться на бэке для того, чтобы можно было проводить аналитику по неоформленным заказам, а также, если пользователь авторизуется, то добавлять эту корзину к его профилю для доступности ее с любых других устройств, на которых он (пользователь авторизован).
Ясное дело, что для корзины одного пользователя в сеансе оформления заказа нужен уникальный идентификатор, по которому можно определить в какую “корзину” поместить товар.

Так как на проекте мы использует REST подход к проектированию API, я подумал, что можно генерировать uuid ключ на клиенте и передавать его при каждом запросе добавления товара в корзину.

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

Читать далее

Я сделал поисковик хуже Elasticsearch

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

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

BEIR — это бенчмарки поиска информации, ориентированные на сценарии использования в формате «вопрос-ответ».

Мой хобби-проект SearchArray добавляет в Pandas полнотекстовый поиск. Поэтому естественно, чтобы ощутить трепет от моих потрясающих навыков разработчика, я решил использовать BEIR для сравнения SearchArray с Elasticsearch (с тем же запросом + токенизацией). Поэтому я потратил субботу на интеграцию SearchArray в BEIR и измерение релевантности и производительности с корпусом MSMarco Passage Retrieval (8 миллионов документов).

Барабанная дробь...

Читать далее

Не гугли — собери ИИ-агента, который сам ищет, пишет и помогает с кодом

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

Заметил, что трачу часы на поиск, баги и рутину — собрал ИИ-агента, который делает это за меня. Протестировал 3 подхода — от no-code до кастомного LangChain. В статье — инструкция и инсайты.

Читать далее

Школы программирования против репетиторов и самообучения

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

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

Читать далее

Pet-проект: игра Дебаггер на Python с графическим интерфейсом на Tkinter

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

Всем привет! В статье расскажу, как я написал игру Дебаггер на Python и добавил к ней графический интерфейс на Tkinter. Мне хотелось сделать простую игру на IT тематику, поэтому я скопировал игровую механику из игры Сапер и теперь нам нужно отметить все баги на игровом поле или наш код сломается.

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

Нажми, если не боишься багов!

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

Финансовое моделирование в Python и Excel: мой путь перехода на код

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

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

Ниже я расскажу:

- Почему я, как гуманитарий, начала осваивать Python.
- Как связка Excel + Python работает на практике.
- Как один и тот же проект ведёт себя в этих двух мирах.

Окунуться в мир финансов и расчета прибыли

Создание 2D игры на Python

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

Этот подробный гайд проведет вас шаг за шагом через процесс создания увлекательной игры, используя Python и библиотеку Pygame. Независимо от вашего уровня опыта, мы разберем каждую деталь, чтобы вы могли легко повторить этот проект.

Читать далее

Как собрать Docker-образ, который можно запускать в проде (а не только у себя на ноуте)

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

Если ты пишешь Dockerfile, скорее всего, он работает. Но вопрос не в том, работает ли. Вопрос в другом: будет ли он работать через неделю, на другом сервере, в CI/CD, на чужом железе — и будет ли это безопасно?

Читать далее

Огромный гайд по настройке рабочего окружения: Linux, VScode, Python

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

Привет всем!

Как обычно это и бывает, я накопил критическую массу мыслей, и пора их как-то систематизировать, чтобы вы, мои замечательные читатели Хабра, могли что-то извлечь из моего опыта или поделиться своим :)

Я люблю и одновременно ненавижу статьи-обзоры в стиле «10 программ для {whatever}». Ненавижу — потому что их очень легко делать, вбил в гугл «программа для X», взял первые 10 ссылок, статья готова. Я называю такие статьи «лёгкий рейтинг». А люблю я их за то, что даже если 9 пунктов — чушь полная, то десятый, как правило, годный, я узнаю что-то новое, это что-то облегчает мне жизнь и позволяет мне быть более продуктивным.

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

Статья получилась ОГРОМНАЯ, и у меня был большой соблазн разбить её на сотню статей поменьше, чтобы в каждой ставить ссылки на свой телеграм-канал и получать гонорар за каждую по отдельности. Но я не буду. Пусть знания будут сгруппированы вместе. Welcome!

Читать далее

Кастомизация Django Admin с django-unfold

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

Привет, Хабр. Изучая безграничные просторы интернета интернета, заметил явное отсутствие обучающих статей на тему кастомизации админ-панели в /Django/, а уж поверьте. Её довольно старое для современных рамокстилизация — не приговор. И делается это буквально в пару кликов, без лишнего .css кода. На который как раз таки гайдов полно. Зачем засорять папку со статическими файлами лишним кодом, если можно сделать это в пару кликов.

Главное преимущества /Python/, заключается в том, то что пишется на других язык программирования в десять строк, можно написать на нашем любимом языке в две строчки. Поэтому варианты с самостоятельной кастомизацией, затрагивать не будем. Хотя данная библиотека, не ограничивает вас в написание своего кода для кастомизации. Всё написанное, лишь подключенная библиотека на /Python/ для /Django/.

Читать далее

Оптимизация нейронных сетей для AI — переводчика

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

Всем привет! Меня зовут Алексей Рудак, и я – основатель компании Lingvanex, которая уже 8 лет занимается решениями в области машинного перевода и транскрипции речи. 

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

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

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

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

Читать далее

О сколько нам открытий чудных готовит Python

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

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

Читать далее

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