Случай еще раз говорит о том, что сам по себе холодный кошелек не спасет, если не проверять на его экране адрес получателя, что рекомендую делать всегда
❤2
Давеча копнул ERC4337 account abstraction (на этот раз с серьезной задачей для проекта). Вообще, отправка userOp – довольно тривиальная задача (туториалы и реализации есть у Zerodev, Alchemy, etc), но я хотел немного странного. А именно, отправить несколько userOp от разных smart contract wallets, но в одной onchain транзакции. И вот тут, после многодневных плясок с бубном, пришлось реализовать сборку массива userOp прямо самостоятельно, и потом отправлять на EntryPoint как обычную транзу.
Времени заняло много, но в целом понравилось – неплохо разобрался как оно вообще работает. Кому интересно – сниппет.
Не исключаю, что изобрел велосипед, если что - тыкните.
А в целом, AA понравился хотя бы за то, что можно делать аппрув+трансфер в одной транзакции (тот самый Web3 UX LFG!).
Времени заняло много, но в целом понравилось – неплохо разобрался как оно вообще работает. Кому интересно – сниппет.
Не исключаю, что изобрел велосипед, если что - тыкните.
А в целом, AA понравился хотя бы за то, что можно делать аппрув+трансфер в одной транзакции (тот самый Web3 UX LFG!).
👍6🔥1
Продолжаю ботанить Account Abstraction. Сложнее, чем разобраться с самим AA, было разобраться с биллингом zerodev.
Картинка 1 – дэш по одному из проектов. Если с кол-во транз понятно, то остальное? Оказалось, Gas Spent – это сколько ты потратил с использованием зеродевовского Paymaster (то что биллится на карту), а Gas Credits Spent – что, что с использованием своего, self-funded, пеймастера.
Картинка 2 – общая стата по всем проектам.
Тут Gas Sponsored - это то же, что на предыдущем Gas Credits Spent за текущий месяц, а общее кол-во операций – сумма по всем проектам.
А есть еще инвойс, который выставляется не по полным месяцам, а за биллинг месяц.
Все это пришлось понимать натурально сидя и сличая данные, тк названия не совпадают.
Где я плачУ 10% с self-funded пеймастера, тоже не понял – как будто нигде. Скорее всего, из-за странного сетапа, тк. я зеродевовский RPC использую только чтобы получить данные пеймастера, а отправляю ее как обычную транзу через другой RPC.
А вы какую инфру для AA используете/можете порекомендовать?
Картинка 1 – дэш по одному из проектов. Если с кол-во транз понятно, то остальное? Оказалось, Gas Spent – это сколько ты потратил с использованием зеродевовского Paymaster (то что биллится на карту), а Gas Credits Spent – что, что с использованием своего, self-funded, пеймастера.
Картинка 2 – общая стата по всем проектам.
Тут Gas Sponsored - это то же, что на предыдущем Gas Credits Spent за текущий месяц, а общее кол-во операций – сумма по всем проектам.
А есть еще инвойс, который выставляется не по полным месяцам, а за биллинг месяц.
Все это пришлось понимать натурально сидя и сличая данные, тк названия не совпадают.
Где я плачУ 10% с self-funded пеймастера, тоже не понял – как будто нигде. Скорее всего, из-за странного сетапа, тк. я зеродевовский RPC использую только чтобы получить данные пеймастера, а отправляю ее как обычную транзу через другой RPC.
А вы какую инфру для AA используете/можете порекомендовать?
👍3
Вообще, спустя месяц использования AA на проде уже можно сделать какие-то выводы. Что понравилось:
– 2D nonces – nonce не один, а в двух измерениях – есть nonceKey. Можно от одного акка отправлять несколько операций параллельно, причем из разных сервисов. В качестве второго измерения (оно 16ти битное) брал время текущей операции по модулю – коллизий не было.
– Права. Идеально для трейдинг аккаунта (как мы и используем). Для этого пришлось создать кастомный плагин/контракт для проверки прав. В моем случае нужно было давать права только на одну операцию, и стандартные не подходили.
– Аппрув + трансфер в одной транзакции
Что не понравилось:
– порог вхождения выше, чем EOA.
– дешбоард Zerodev
– 2D nonces – nonce не один, а в двух измерениях – есть nonceKey. Можно от одного акка отправлять несколько операций параллельно, причем из разных сервисов. В качестве второго измерения (оно 16ти битное) брал время текущей операции по модулю – коллизий не было.
– Права. Идеально для трейдинг аккаунта (как мы и используем). Для этого пришлось создать кастомный плагин/контракт для проверки прав. В моем случае нужно было давать права только на одну операцию, и стандартные не подходили.
– Аппрув + трансфер в одной транзакции
Что не понравилось:
– порог вхождения выше, чем EOA.
– дешбоард Zerodev
👍3
Всем привет! Заканчивается 2025 год.
Была одна тема, которая мучила меня почти полгода.
В июле я обещал написать статью про свой опыт в Clickhouse – 18 огоньков показали, что людям интересно. Все это время было неудобно, что не выполнил обещание.
И вот последние два дня таки добил ее – встречайте!
Жду вопросов и замечаний.
С наступающим! 🎄 Всем мира, добра и развития.
Была одна тема, которая мучила меня почти полгода.
В июле я обещал написать статью про свой опыт в Clickhouse – 18 огоньков показали, что людям интересно. Все это время было неудобно, что не выполнил обещание.
И вот последние два дня таки добил ее – встречайте!
Жду вопросов и замечаний.
С наступающим! 🎄 Всем мира, добра и развития.
1🔥12👍4
MCP
Уже три года, как использую LLM в работе, но до MCP руки дошли только сейчас.
Протокол MCP – этото, что позволяет LLMке обращаться к внешнему миру (например, прочитать файл или вызвать API). Выглядит просто как сервис, работающий локально (или удаленно – streaming), который регистрируется в IDE (у меня Cursor), и который вызывает LLMка, когда ей задаешь вопросы или просишь что-нибудь сделать .
Итак, понял, что много времени занимают действия типа:
– Открыть DBeaver c базой, дернуть какую-нибудь инфу
– Посмотреть на etherscan код контракта/транзакции/логи
– Дернуть адреса деплойментов из гитхаба, сопоставить код из гитхаба с кодом ончейн и тд.
– И, в идеале, вместо ручного надоевшего поиска "че там не так с транзой", было бы здорово попросить кого-нибудь найти ошибку 🙂
В общем, настроил 4 MCP:
1. Официальный Github.
2. Официальный Clickhouse для доступа к БД (что важно, с readonly доступом).
3. Официальный Etherscan streaming (то есть локально ничего не ставится, просто указывается URL).
4. EVM от mcpdotdirect (их несколько, выбрал этот). Сделал PR попутно, если хотите Alchemy API key указать.
Пока то что тестил – работает как магия 🙂 типа "дерни цену по пулу такому то из кликхауса и глянь чего там в логах транзы по нему, все это напечатай".
Посмотрим в реальной работе как себя проявит, отпишусь по результатам.
Делитесь вашими лайфхаками!
@web3dev_notes
Уже три года, как использую LLM в работе, но до MCP руки дошли только сейчас.
Протокол MCP – это
Итак, понял, что много времени занимают действия типа:
– Открыть DBeaver c базой, дернуть какую-нибудь инфу
– Посмотреть на etherscan код контракта/транзакции/логи
– Дернуть адреса деплойментов из гитхаба, сопоставить код из гитхаба с кодом ончейн и тд.
– И, в идеале, вместо ручного надоевшего поиска "че там не так с транзой", было бы здорово попросить кого-нибудь найти ошибку 🙂
В общем, настроил 4 MCP:
1. Официальный Github.
2. Официальный Clickhouse для доступа к БД (что важно, с readonly доступом).
3. Официальный Etherscan streaming (то есть локально ничего не ставится, просто указывается URL).
4. EVM от mcpdotdirect (их несколько, выбрал этот). Сделал PR попутно, если хотите Alchemy API key указать.
Пока то что тестил – работает как магия 🙂 типа "дерни цену по пулу такому то из кликхауса и глянь чего там в логах транзы по нему, все это напечатай".
Посмотрим в реальной работе как себя проявит, отпишусь по результатам.
Делитесь вашими лайфхаками!
@web3dev_notes
👍7🔥2
Вдогонку к посту про MCP лайфхак по продуктивности для пользователей Mac.
Если вы, так же как и я, "любите" командную строку для управления файлами.
то открыть Finder на текущей папке в терминале можно командой
Либо, чтобы привязать хоткей Ctrl-O, нужно добавить строчку
Топ улучшение за последний год 😁
@web3dev_notes
Если вы, так же как и я, "любите" командную строку для управления файлами.
то открыть Finder на текущей папке в терминале можно командой
open .Либо, чтобы привязать хоткей Ctrl-O, нужно добавить строчку
bindkey -s '^o' 'open .\n' в файл (если используете zsh) ~/.zshrc и перезагрузить терминал.Топ улучшение за последний год 😁
@web3dev_notes
👍6
Арбитраж на дексах
Кто-нибудь пробовал делать ботов для арбитража?
Я в течение месяца по вечерам делал такой пет-проект для Base, интересно было разобраться. Появились некоторые наработки по данным и execution. Ничего не заработал, хотя некоторые трейды выполнялись в копеечный плюс. Интересно, это сейчас уже не работает или я что-то делаю неправильно?
Есть много идей на попробовать. Пишите, если кто что делал, можно объединить усилия.
Кто-нибудь пробовал делать ботов для арбитража?
Я в течение месяца по вечерам делал такой пет-проект для Base, интересно было разобраться. Появились некоторые наработки по данным и execution. Ничего не заработал, хотя некоторые трейды выполнялись в копеечный плюс. Интересно, это сейчас уже не работает или я что-то делаю неправильно?
Есть много идей на попробовать. Пишите, если кто что делал, можно объединить усилия.
Гоша строит | ex. Web3 разработчик
MCP Уже три года, как использую LLM в работе, но до MCP руки дошли только сейчас. Протокол MCP – это то, что позволяет LLMке обращаться к внешнему миру (например, прочитать файл или вызвать API). Выглядит просто как сервис, работающий локально (или удаленно…
MCP
Как обещал, отписываю по результатам.
Больше всего мне зашел MCP Clickhouse. Иногда про SQL можно забыть. Прикольно, что можно даже не говорить имена таблиц и тем более колонок – например, "дай количество пулов по каждому протоколу с ликвидностью более 1000 долл" – и он идет в мою БД и печатает что надо.
Etherscan оказался сильно глючным, и я просто забросил просить его.
EVM не пользовался – не было нужно особо.
Github – обычные пуши быстрее делать самому, пока остальным управлять не нужно было.
Хотел настроить два MCP для Clickhouse – локальный и удаленный – не получилось, Cursor упорно видел только один из них.
Нашел mcp для Dbeaver - идея пушка – делать запросы из всех своих БД – но он сразу не завелся и разбираться времени не было.
Не совсем MCP, но просил Cursor в Agent Mode смотреть логи, которые у нас в Google Cloud, он делает это командой
Курсор после обновления не видел некоторые MCP.
В общем, индустрия пока очень молодая, инструменты нестабильны, но скоро должно быть все сильно лучше из коробки.
Поэтому если хотите сделать свой MCP/присоединиться – то сейчас как будто идеальное время.
Как обещал, отписываю по результатам.
Больше всего мне зашел MCP Clickhouse. Иногда про SQL можно забыть. Прикольно, что можно даже не говорить имена таблиц и тем более колонок – например, "дай количество пулов по каждому протоколу с ликвидностью более 1000 долл" – и он идет в мою БД и печатает что надо.
Etherscan оказался сильно глючным, и я просто забросил просить его.
EVM не пользовался – не было нужно особо.
Github – обычные пуши быстрее делать самому, пока остальным управлять не нужно было.
Хотел настроить два MCP для Clickhouse – локальный и удаленный – не получилось, Cursor упорно видел только один из них.
Нашел mcp для Dbeaver - идея пушка – делать запросы из всех своих БД – но он сразу не завелся и разбираться времени не было.
Не совсем MCP, но просил Cursor в Agent Mode смотреть логи, которые у нас в Google Cloud, он делает это командой
gcloud logging read …. и сопоставлять это с кодом.Курсор после обновления не видел некоторые MCP.
В общем, индустрия пока очень молодая, инструменты нестабильны, но скоро должно быть все сильно лучше из коробки.
Поэтому если хотите сделать свой MCP/присоединиться – то сейчас как будто идеальное время.
👍3
Как вы, еще программируете вручную?
Небольшой апдейт за последние 2 месяца.
1. Запилил пет проект – телеграм бота-помощника, который имеет доступ к ТГ и может делать любые действия по запросу с с периодическими задачами, OpenClaw на минималках. Обнаружил две проблемы – галлюцинации LLM (просишь одно а ЛЛМка делает другое), и privacy – люди в целом не готовы давать облачному сервису доступ к своему ТГ (я бы сам не стал). Но опыт интересный.
2. Перешел на программирование нейронками – лично и на работе. Пет проект выше писал за меня курсор с моделью Auto. Я контролирую архитектуру, слежу за отсутствием дублирования, иногда правлю там где проще самому или модель долго тупит. В целом, оч прикольно, чувствуешь себя архитектором в связке с личным исполнительным миддлом. Немного пугает деградация базовых навыков, но стало гораздо меньше рутины. В целом – оч круто!
3. Отключил все MCP, перешел на cli, проще и не надо поддерживать MCP сервера. Для примера, анализую логи командой "gcloud logging …" – можно текстом попросить найти в логах что угодно и построить любые корреляции. Дебаггинг по логам стал очень нравиться.
4. Перенес личный сайт на railway. Триггером стал годовой инвойс на $70 за вордпресс, который ужасно выглядел. Я подумал, я разработчик или как? "Окей, Курсор, скрейпни сайт, создай проект на astro.build, перенеси статьи, сохраняя пути, задеплой на Railway". Несколько правок и 45 минут спустя сайт уже в сети, а у меня в гите все статьи в MD формате. Если интересно, то вот он (статьи, правда, старые).
5. Сейчас в поиске нового проекта/движа, если есть что-то интересное – на связи @georgiisavchenko.
Всем отличной крипто-весны 🫡
Небольшой апдейт за последние 2 месяца.
1. Запилил пет проект – телеграм бота-помощника, который имеет доступ к ТГ и может делать любые действия по запросу с с периодическими задачами, OpenClaw на минималках. Обнаружил две проблемы – галлюцинации LLM (просишь одно а ЛЛМка делает другое), и privacy – люди в целом не готовы давать облачному сервису доступ к своему ТГ (я бы сам не стал). Но опыт интересный.
2. Перешел на программирование нейронками – лично и на работе. Пет проект выше писал за меня курсор с моделью Auto. Я контролирую архитектуру, слежу за отсутствием дублирования, иногда правлю там где проще самому или модель долго тупит. В целом, оч прикольно, чувствуешь себя архитектором в связке с личным исполнительным миддлом. Немного пугает деградация базовых навыков, но стало гораздо меньше рутины. В целом – оч круто!
3. Отключил все MCP, перешел на cli, проще и не надо поддерживать MCP сервера. Для примера, анализую логи командой "gcloud logging …" – можно текстом попросить найти в логах что угодно и построить любые корреляции. Дебаггинг по логам стал очень нравиться.
4. Перенес личный сайт на railway. Триггером стал годовой инвойс на $70 за вордпресс, который ужасно выглядел. Я подумал, я разработчик или как? "Окей, Курсор, скрейпни сайт, создай проект на astro.build, перенеси статьи, сохраняя пути, задеплой на Railway". Несколько правок и 45 минут спустя сайт уже в сети, а у меня в гите все статьи в MD формате. Если интересно, то вот он (статьи, правда, старые).
5. Сейчас в поиске нового проекта/движа, если есть что-то интересное – на связи @georgiisavchenko.
Всем отличной крипто-весны 🫡
👍12
Forwarded from ohMyAI
This media is not supported in your browser
VIEW IN TELEGRAM
Запилил первый kanban для Claude Cowork 🚀
Anthropic недавно выкатил Claude Cowork - это по сути Claude Code для неразработчиков, то есть в основном для всех. AI реально делает любую работу как твой ассистент: обрабатывает кучи данных, строит отчеты, презентации, отправляет письма. Кто ещё не пробовал - очень советую, это пушка!
И я под это собрал первый kanban таск-менеджер, который работает прямо в Cowork и сам выхватывает и обновляет задачи из твоей почты, Slack, митингов, Jira и любых других каналов коммуникации. Всё что происходит вокруг превращается в задачи и обновления к задачам, чтобы помочь тебе организовать свою деятельность и ничего не забыть после целого дня митингов.
Работает на базе выпущенных всего неделю назад live artifacts - это когда внутри Cowork живёт полноценное нативное приложение, которое умеет обновлять данные через ваши коннекторы на лету - по сути это новый концепт AI-приложений, новый app store внутри Cowork.
Живое демо: https://cowork-tasks.vercel.app
Репа с инструкциями по установке в Cowork: https://github.com/sabbah13/cowork-tasks
Если зайдёт - буду очень признателен за обратную связь и за звезду на GitHub ))
Anthropic недавно выкатил Claude Cowork - это по сути Claude Code для неразработчиков, то есть в основном для всех. AI реально делает любую работу как твой ассистент: обрабатывает кучи данных, строит отчеты, презентации, отправляет письма. Кто ещё не пробовал - очень советую, это пушка!
И я под это собрал первый kanban таск-менеджер, который работает прямо в Cowork и сам выхватывает и обновляет задачи из твоей почты, Slack, митингов, Jira и любых других каналов коммуникации. Всё что происходит вокруг превращается в задачи и обновления к задачам, чтобы помочь тебе организовать свою деятельность и ничего не забыть после целого дня митингов.
Работает на базе выпущенных всего неделю назад live artifacts - это когда внутри Cowork живёт полноценное нативное приложение, которое умеет обновлять данные через ваши коннекторы на лету - по сути это новый концепт AI-приложений, новый app store внутри Cowork.
Живое демо: https://cowork-tasks.vercel.app
Репа с инструкциями по установке в Cowork: https://github.com/sabbah13/cowork-tasks
Если зайдёт - буду очень признателен за обратную связь и за звезду на GitHub ))
🔥4
Гоша строит
Три с половиной года назад, когда я вкатывался в новый для себя мир крипты, был создан этот канал. Но пришло время поменять концепцию, тому есть несколько причин.
– разработка в классическом понимании умерла. То, что раньше было сакральным умением программиста – теперь доступно каждому. Поэтому "разработчик" сейчас звучит как кучер.
– я никогда не был "до мозга костей" разработчиком, хоть и программировал довольно долго и повезло (учитывая гео) работать в паре топовых в узких нишах компаний. Наоборот, также всегда интересовали продуктовый дизайн, стартапы, бизнес (а в агентском бизнесе вообще был некоторый успех).
– активно развивается ИИ и грустно упускать возможности.
Поэтому "Web3 разработчик" –> "Гоша строит" 📈 (пока не дома́, но кто знает)
Канал будет не про крипту, а скорее про личный путь (возможно, в нем будет и крипта). Последний месяц работаю над запуском своего micro SaaS по ИИ дизайну интерьеров (не спрашивайте, почему такой продукт 😎).
Готов маркетинг, лендос, есть понимание стоимости привлечения, примерных параметров воронки. В мае будет запуск – по-взрослому, с работающим приложением, заливкой трафика, пейволлом и всем тем, чтобы пользователи купили 🙂 Цель – 100 показов пейволла и 10 оплат, после чего будет понятно, насколько воронка будет окупаться. В процессе активно использую агентов, позже поделюсь сетапом.
Не переключайтесь, будет интересно
Три с половиной года назад, когда я вкатывался в новый для себя мир крипты, был создан этот канал. Но пришло время поменять концепцию, тому есть несколько причин.
– разработка в классическом понимании умерла. То, что раньше было сакральным умением программиста – теперь доступно каждому. Поэтому "разработчик" сейчас звучит как кучер.
– я никогда не был "до мозга костей" разработчиком, хоть и программировал довольно долго и повезло (учитывая гео) работать в паре топовых в узких нишах компаний. Наоборот, также всегда интересовали продуктовый дизайн, стартапы, бизнес (а в агентском бизнесе вообще был некоторый успех).
– активно развивается ИИ и грустно упускать возможности.
Поэтому "Web3 разработчик" –> "Гоша строит" 📈 (пока не дома́, но кто знает)
Канал будет не про крипту, а скорее про личный путь (возможно, в нем будет и крипта). Последний месяц работаю над запуском своего micro SaaS по ИИ дизайну интерьеров (не спрашивайте, почему такой продукт 😎).
Готов маркетинг, лендос, есть понимание стоимости привлечения, примерных параметров воронки. В мае будет запуск – по-взрослому, с работающим приложением, заливкой трафика, пейволлом и всем тем, чтобы пользователи купили 🙂 Цель – 100 показов пейволла и 10 оплат, после чего будет понятно, насколько воронка будет окупаться. В процессе активно использую агентов, позже поделюсь сетапом.
Не переключайтесь, будет интересно
👍13🔥4❤3👎1
Мой AI сетап для сайд проекта
• VPS с Claude, где крутится агент
• tmux для терминальных сессий
• iTerm – реально рекомендую после маковского Teminal
• Комбинация из команд
• Модифицированный форк Claude auto-retry tool, чтобы отсылал уведомления в ТГ, когда агент остановился из-за лимитов и когда продолжил работу.
• В проекте:
Не вижу смысла акцентироваться на конкретных инструментах/командах, например, только вчера Claude выкатили обновление, чтобы все новые сессии по умолчанию коннектились к приложению, пока не успел разобрать. Думаю, в ближайшие месяцы базовые сценарии будут работать из коробки, так что пока не переживаю.
Мой воркфлоу на сейчас такой: две подписки – Cursor и Claude. С курсором программирую локально, в Claude на VPS запускаю задачу когда ухожу с работы, ну либо вечером / на выходных с телефона. Либо если нужно запустить параллельно с Курсором. Прошу всегда проверить в Playwright то что делается удаленно, локально как правило сам.
Пока вручную разбираю все PR – приложение в процессе выстраивания архитектуры, поэтому пока не готов на 100% отдать выполнение агентам (может и зря).
Планируемый следующий шаг, чтобы разгрузить свое время – пайплайн агентов "написатель кода" – "упрощение кода и проверка best practices" – "тестирование в браузере", которые будут на каждый коммит/PR запускаться автоматически на чистой машине. Сейчас основное время – это правка кривой архитектуры и упрощение кода после агентов.
А на вас сколько агентов работает?
• VPS с Claude, где крутится агент
• tmux для терминальных сессий
• iTerm – реально рекомендую после маковского Teminal
• Комбинация из команд
/remote-control, Claude Telegram Plugin и моей Телеграмм группы.• Модифицированный форк Claude auto-retry tool, чтобы отсылал уведомления в ТГ, когда агент остановился из-за лимитов и когда продолжил работу.
• В проекте:
usecases.md - расширяемый список юзкейсов текстом. На их основе генерятся Playwright тесты (это headless браузер), правила / гайдлайны Карпатого и тд.Не вижу смысла акцентироваться на конкретных инструментах/командах, например, только вчера Claude выкатили обновление, чтобы все новые сессии по умолчанию коннектились к приложению, пока не успел разобрать. Думаю, в ближайшие месяцы базовые сценарии будут работать из коробки, так что пока не переживаю.
Мой воркфлоу на сейчас такой: две подписки – Cursor и Claude. С курсором программирую локально, в Claude на VPS запускаю задачу когда ухожу с работы, ну либо вечером / на выходных с телефона. Либо если нужно запустить параллельно с Курсором. Прошу всегда проверить в Playwright то что делается удаленно, локально как правило сам.
Пока вручную разбираю все PR – приложение в процессе выстраивания архитектуры, поэтому пока не готов на 100% отдать выполнение агентам (может и зря).
Планируемый следующий шаг, чтобы разгрузить свое время – пайплайн агентов "написатель кода" – "упрощение кода и проверка best practices" – "тестирование в браузере", которые будут на каждый коммит/PR запускаться автоматически на чистой машине. Сейчас основное время – это правка кривой архитектуры и упрощение кода после агентов.
А на вас сколько агентов работает?
👍5👎3
Логгинг
Больше месяца отдыхаю от крипты, пилю фултайм ИИ дизайн интерьеров, сдвинул сроки справо, но уже виден релиз и запуск трафика. Давайте пока расскажу про логгинг. Как логгинг, спросите вы, это ж очевидно, берешьпростой советский console.log и что-то туда иногда пишешь, но нет.
Логгинг для меня – это способ быстро найти проблему. Для этого он должен быть структурирован – все сервисы должны писать в одном формате – и быть контекстным – то есть контекст должен пробрасываться через все сервисы. Например, юзер Вася на фронте нажал кнопку в чате Х, вызвался один микросервис, потом он вызвал второй, который вызвал вебхук, который через некоторое время пришел обратно к первому сервису. Каждая из этих функций на пути нажатия этой кнопки должна писать в логи сообщения типа { userId: "Vasya", chatId: "X", message: "…." }, чтобы фильтровать по userId и увидеть сквозной путь Васи по всем сервисам. Это удобно скормить ЛЛМке, снабдив ее тулом для поиска по логам, и она может быстро найти, что у этого конкретного юзера отвалилось.
Без правильно прокинутого контекста (а еще он может, например, прокидываться через Кафку), отлаживание даже простого инцидента превращается в мучение (пробовал, замучался). Поэтому, даже для относительного простенького проекта буду делать логгинг по красоте, чтобы потом не терять часы при багах у первых (и далее) пользователей.
В том, как контекст прокидывать, рокет сайнс нету. Я прокидывал в HTTP/Kafka headers, в аппке хранил в AsyncLocalStorage + обертки + хендлеры эксепшенов в NestJs.
Прошлый стек был завязан на Google Cloud, теперь пишу в Clickhouse через FluentBit лог форвардер. Для Coolify есть встроенный. Для микросервиса на Railway Курсор написал мне FluentBit транспорт для Pino, чтобы логи в FB уходили. В CH несколько основных полей колонками, остальное в JSON.
Логи пока смотрю в Dbeaver, но потом планирую искать проблемы агентами через CLI clickhouse-client.
Пока так – простенько, но уже радует при отладке 🙂
Больше месяца отдыхаю от крипты, пилю фултайм ИИ дизайн интерьеров, сдвинул сроки справо, но уже виден релиз и запуск трафика. Давайте пока расскажу про логгинг. Как логгинг, спросите вы, это ж очевидно, берешь
Логгинг для меня – это способ быстро найти проблему. Для этого он должен быть структурирован – все сервисы должны писать в одном формате – и быть контекстным – то есть контекст должен пробрасываться через все сервисы. Например, юзер Вася на фронте нажал кнопку в чате Х, вызвался один микросервис, потом он вызвал второй, который вызвал вебхук, который через некоторое время пришел обратно к первому сервису. Каждая из этих функций на пути нажатия этой кнопки должна писать в логи сообщения типа { userId: "Vasya", chatId: "X", message: "…." }, чтобы фильтровать по userId и увидеть сквозной путь Васи по всем сервисам. Это удобно скормить ЛЛМке, снабдив ее тулом для поиска по логам, и она может быстро найти, что у этого конкретного юзера отвалилось.
Без правильно прокинутого контекста (а еще он может, например, прокидываться через Кафку), отлаживание даже простого инцидента превращается в мучение (пробовал, замучался). Поэтому, даже для относительного простенького проекта буду делать логгинг по красоте, чтобы потом не терять часы при багах у первых (и далее) пользователей.
В том, как контекст прокидывать, рокет сайнс нету. Я прокидывал в HTTP/Kafka headers, в аппке хранил в AsyncLocalStorage + обертки + хендлеры эксепшенов в NestJs.
Прошлый стек был завязан на Google Cloud, теперь пишу в Clickhouse через FluentBit лог форвардер. Для Coolify есть встроенный. Для микросервиса на Railway Курсор написал мне FluentBit транспорт для Pino, чтобы логи в FB уходили. В CH несколько основных полей колонками, остальное в JSON.
Логи пока смотрю в Dbeaver, но потом планирую искать проблемы агентами через CLI clickhouse-client.
Пока так – простенько, но уже радует при отладке 🙂
🔥5👍3
Все еще не могу привыкнуть, что завайбкодить какой-нибудь инструмент зачастую проще, чем искать готовое решение.
Нужно было делать скриншоты с экрана с заданными пропорциями – начал искать, нашел тулзу для скриншотинга, $10/мес, кажется $39 лайфтайм. Стало жалко денег – курсор мне написал свою.
Нужен был инструмент, чтобы нарисовать на изображении маску и сохранить ее либо в alpha channel, либо экспортнуть как белые области на черном фоне – написал тоже. Сначала минут 10 потратил на гугление, где проще такое сделать.
Да, сделать свое занимает время (обычно минут 15 на инструмент), но оно сопоставимо со временем на "найти – скачать – разобраться". А во внешнем приложении еще функция эта может и не работать как надо.
Небезызвестный levelsio писал, что отказался почти от всех внешних инструментов для своих проектов, сделав свои.
В интересное время живем.
Нужно было делать скриншоты с экрана с заданными пропорциями – начал искать, нашел тулзу для скриншотинга, $10/мес, кажется $39 лайфтайм. Стало жалко денег – курсор мне написал свою.
Нужен был инструмент, чтобы нарисовать на изображении маску и сохранить ее либо в alpha channel, либо экспортнуть как белые области на черном фоне – написал тоже. Сначала минут 10 потратил на гугление, где проще такое сделать.
Да, сделать свое занимает время (обычно минут 15 на инструмент), но оно сопоставимо со временем на "найти – скачать – разобраться". А во внешнем приложении еще функция эта может и не работать как надо.
Небезызвестный levelsio писал, что отказался почти от всех внешних инструментов для своих проектов, сделав свои.
В интересное время живем.
❤5👍2👎1🔥1
Запустился
Интересные ощущения. На сайт приходят реальные люди, которым нужно то, что ты предлагаешь. Без булшита, без космических кораблей. Есть запрос – ищут решение.
После того, как написал про логгинг, еще примерно дня полтора-два исправлял его ошибки и делал связь с системой веб-аналитики. Теперь могу дергать любые аналитические данные из Clickhouse в один текстовый запрос.
Кампания проработала неделю. 80+ тестовых генераций, 18 показов пейвола, ноль продаж (тут 🥲). По статистике их должно быть минимум 2.
Есть идеи, что нужно улучшать качество генерации – юзеры не получают хороший результат и не платят. Уже накопилась статистика, буду анализировать и улучшать конверсию.
Работаем дальше 🫡
Интересные ощущения. На сайт приходят реальные люди, которым нужно то, что ты предлагаешь. Без булшита, без космических кораблей. Есть запрос – ищут решение.
После того, как написал про логгинг, еще примерно дня полтора-два исправлял его ошибки и делал связь с системой веб-аналитики. Теперь могу дергать любые аналитические данные из Clickhouse в один текстовый запрос.
Кампания проработала неделю. 80+ тестовых генераций, 18 показов пейвола, ноль продаж (тут 🥲). По статистике их должно быть минимум 2.
Есть идеи, что нужно улучшать качество генерации – юзеры не получают хороший результат и не платят. Уже накопилась статистика, буду анализировать и улучшать конверсию.
Работаем дальше 🫡
👍5🔥3