Рубрика «fastapi» - 2

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

На схеме всё выглядело просто. На практике сервер быстро превратился в самое ненадёжное место системы.

Страницы, которые нормально открывались в обычном браузере, с VPS возвращали 403Читать полностью »

Как меня достало руками создавать одни и те же файлы в Python-проектах — и я написал crt - 1

Каждый раз, когда я начинаю новый проект, происходит один и тот же ритуал: создать папку app, в ней api, services, utils, накидать Читать полностью »

UPD от 21.07. В комментариях ткнули носом, и поделом: три из четырёх граблей всё-таки в доке есть, я читал невнимательно. Токен в Authorization и user_id/chat_id для лички — прямо на страницах GET /me и POST /messages. «Исчезновение подписки» — в POST /subscriptions: бот отписывается сам после 8 часов без успешного ответа от endpoint (у меня backend в тот момент падал в unhealthy — вот и сошлось). Не в доке осталась ровно одна вещь: мультиарендность (грабля третья). Разбор оставляю, но по тексту отметил, где сам виноват.

Синяя галочка есть. Ответа нет.

Я сижу и смотрю в экран телефона, где мой собственный бот игнорирует моё собственное сообщение. Сервер отвечает 200 OKЧитать полностью »

Это статья о том, почему написать SaaS оказалось проще, чем превратить его в продукт.

После университета я начала искать первую работу разработчиком. Вакансии для начинающих почему‑то не выглядели вакансиями для начинающих. Я читала требования, понимала, что многого не умею, нервничала всё сильнее, а потом решила сделать собственный проект — конструктор магазинов.

Уже звучит как начало чего‑то плохого.

Читать полностью »

Код и конфигурация актуальны на 10–11 июля 2026 года. Метрики ниже получены в последнем цикле обучения модели.

Когда я начал развивать Discord-сообщество, обычной команды /ban хватило совсем ненадолго. Роли настраивались в одном месте, приветствия — в другом, логи — в третьем, а за уведомления о стримах отвечал отдельный бот. В какой-то момент я поймал себя на том, что управляю уже не сообществом, а зоопарком чужих интеграций — с разными правами, разными панелями и разными представлениями о том, что делать при сбое.

Читать полностью »

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

Long Polling — это первый способ. Бот в бесконечном цикле долбит getUpdates на серверы Telegram: «есть что‑нибудь? а сейчас? а сейчас?». Telegram, надо отдать ему должное, держит соединение открытым и отвечает не мгновенно, а когда появляются апдейты — поэтому polling и называется long. Но суть не меняется: инициатор — вы, соединение висит постоянно, и весь этот механизм живёт внутри одного вашего процесса.

Читать полностью »

Что происходит между запросом пользователя и ответом языковой модели?

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

Однако подавляющее большинство современных AI‑приложений имеют практически одинаковую архитектуру:

Запрос → Prompt → LLM → Ответ

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

Читать полностью »

Зачем я это пишу

Запустил недавно прод-агента на Claude — небольшой, для бытовой задачи у знакомой. По дороге понял несколько вещей, которые сначала казались мне очевидными «после интернета», а потом, когда сел и проверил на реальной задаче, начали играть иначе. Хочется поделиться разбором — может, кому-то сэкономит неделю-другую на тех же развилках.

Сразу честно: я не «академический» разработчик. До последнего года писал на Python в основном чтобы прочитать чужой скрипт и подправить отступ. То, что вы увидите в коде ниже — собирал руками, лезя в документацию по каждому слою. Поэтому это не «гайд от эксперта», а скорее Читать полностью »

Технический пост-мортем: что было, что сломалось, и что в итоге собралось.

Контекст: умер xml-river, keykollector появился API Wordstat

Я работаю в контекстной рекламе и аналитике 6 лет. Самым массовым инструментом для сбора семантики в моём окружении был KeyCollector. Сам KeyCollector давно не парсил Wordstat напрямую — он работал через стороннее расширение xml-river, которое проксировало запросы к Wordstat в обход капчи. Когда xml-river в какой-то момент перестал работать, эта связка обвалилась, и у тысяч специалистов одновременно возникла одна и та же проблема: как теперь снимать частотность?

Читать полностью »

Рубрика: «Очумелые ручки»

Привет! Сегодня я хочу поделиться своим опытом разработки ASOC платформы.

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

Дисклеймер

Прошу внимания. Спасибо за внимание!

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js