За последние пару месяцев видел пару публикаций у знакомых про отказ от соц сетей или их осознанное ограничение. Я любитель поскролить ленту и насытиться лёгким дофамином, так что для меня тема более чем актуальная, поэтому я начал пользоваться One Sec.
❓ Что такое One Sec?
Это приложение, которое помогает ограничить необдуманные открытия других приложений.
Ну, знаете, как это бывает: билд запустил, или что-то загружается дольше пары секунд — и ты уже ушёл скролить ленту на несколько минут
Но One Sec не даст вам мгновенно открыть запретграм, телегу или куда там у вас тянутся руки в моменты скуки.
Вместо этого One Sec покажет экран с предложением «Сделайте глубокий вдох…» секунд так на 10 и заодно отобразит, сколько раз за последние 24 часа вы пытались открыть приложение.
Примерно два месяца назад я поставил такое ограничение на запретграм — и теперь счётчик в будние дни редко показывает больше 2 раз за 24 часа, хотя до этого он легко доходил до 50.
Когда знаешь, что приложение не откроется мгновенно, желание зайти туда как-то само пропадает 🤷♂️.
⚙️ Настраивается всё довольно быстро, через автоматизации айфона:
- Когда открывается определённое приложение
- 🅰 Активировать one sec
На прошлой неделе поставил ограничения ещё и на телегу и ВК. Тут есть нюанс: в них я часто переписываюсь, особенно сейчас, когда идёт ремонт, а не только листаю ленту или читаю каналы.
Поэтому пришлось настроить «Быстрое переключение» — чтобы экран с ожиданием не показывался, если я вернулся в приложение в течение 5 минут.
📊 Результаты
После того как я стал реже открывать запретграм, быстрый дофамин начал искаться в других местах — и в итоге я стал чаще заходить в ВК, телегу и сетку. Так что one sec пришлось поставить и на них тоже.
В целом штука рабочая 👍.
Она реально сбивает импульсивное желание открыть соцсети, и за счёт этого концентрация на важных вещах становится заметно лучше.
Ставьте:
- 👍 Если пользуетесь приложениями типа one sec
- ❤️ Если у вас нет проблем с думскроллингом
- 🤪 Если любите залипнуть в соц сетях
#burnout #productivity
❓ Что такое One Sec?
Это приложение, которое помогает ограничить необдуманные открытия других приложений.
Ну, знаете, как это бывает: билд запустил, или что-то загружается дольше пары секунд — и ты уже ушёл скролить ленту на несколько минут
Но One Sec не даст вам мгновенно открыть запретграм, телегу или куда там у вас тянутся руки в моменты скуки.
Вместо этого One Sec покажет экран с предложением «Сделайте глубокий вдох…» секунд так на 10 и заодно отобразит, сколько раз за последние 24 часа вы пытались открыть приложение.
Примерно два месяца назад я поставил такое ограничение на запретграм — и теперь счётчик в будние дни редко показывает больше 2 раз за 24 часа, хотя до этого он легко доходил до 50.
Когда знаешь, что приложение не откроется мгновенно, желание зайти туда как-то само пропадает 🤷♂️.
⚙️ Настраивается всё довольно быстро, через автоматизации айфона:
- Когда открывается определённое приложение
- 🅰 Активировать one sec
На прошлой неделе поставил ограничения ещё и на телегу и ВК. Тут есть нюанс: в них я часто переписываюсь, особенно сейчас, когда идёт ремонт, а не только листаю ленту или читаю каналы.
Поэтому пришлось настроить «Быстрое переключение» — чтобы экран с ожиданием не показывался, если я вернулся в приложение в течение 5 минут.
📊 Результаты
После того как я стал реже открывать запретграм, быстрый дофамин начал искаться в других местах — и в итоге я стал чаще заходить в ВК, телегу и сетку. Так что one sec пришлось поставить и на них тоже.
В целом штука рабочая 👍.
Она реально сбивает импульсивное желание открыть соцсети, и за счёт этого концентрация на важных вещах становится заметно лучше.
Ставьте:
- 👍 Если пользуетесь приложениями типа one sec
- ❤️ Если у вас нет проблем с думскроллингом
- 🤪 Если любите залипнуть в соц сетях
#burnout #productivity
👍9❤4🤪4😁1
Как научить машину понимать смысл слов
Я думаю все вы слышали про векторные базы данных. В прошлом посте обещал поделиться статьёй про то, как же слова и целые тексты превращаются в вектора.
«Привет! Я [0.44, -0.91, 0.66...]» или как научить машину понимать смысл слов
В машинном обучении есть базовое правило: модель умеет работать только с числами.
Поэтому любой объект — текст, картинку, звук — сначала нужно превратить в числовое представление. Только тогда модель сможет понять, что «груша» связана с «яблоком» куда больше, чем с «теплоходом»
Самый простой вариант для текста — 🔢 one hot encoding.
Мы берём словарь и каждому слову ставим в соответствие вектор, где одна позиция равна 1, а все остальные — 0.
Возьмём предложения:
Кодировка на первой картинке.
Формально задача решена, но есть проблема: такие векторы ничего не говорят о смысле слов.
Для модели слова «кот» и «собака» так же не похожи друг на друга, как «кот» и «кирпич».
Плюс векторы получаются «разреженными» — огромными и почти полностью заполненными нулями. Ну и, конечно, это потребует большого количества ресурсов для обработки.
👉 Следующий шаг — мешок слов и N-граммы.
Мы начинаем учитывать не отдельные слова, а их последовательности.
Кодировка на второй картинке.
Но N-граммы смотрят только на ограниченное число слов и строго по порядку. Поэтому они не улавливают более глубокие смысловые связи.
В реальности таких возможных N-грамм — тысячи, и большая часть значений всегда равна 0. То есть, проблема разреженных векторов полностью не уходит.
Чтобы модель работала лучше, ей нужно понимать семантику и контекст.
Здесь и появляются 🔡 word embeddings.
Эмбеддинг — это плотный числовой вектор фиксированной размерности, почти без нулей. Идея в том, что похожие по смыслу слова имеют похожие векторы, а направление в векторном пространстве несёт смысл.
В статье это объясняется на наглядном примере с животными.
- Сначала берётся одно измерение — размер. Животные с похожими габаритами находятся рядом.
- Затем добавляется второе измерение — хищность. В таком пространстве 🦁 «лев» и 🐯 «тигр» оказываются близко (крупные и опасные), 🐄 «корова» — отдельно (крупная, но безопасная), а 🐹 «хомяк» — совсем в другой области.
Когда слова представлены такими векторами, с ними можно выполнять математические операции:
если мы возьмём слово «Мадрид», добавим «Германия» и вычтем «Испания», ближайшим полученным словом будет «Берлин». Это работает, потому что Мадрид — столица Испании. Когда мы убираем атрибуты, связанные с Испанией, и добавляем атрибуты, связанные с Германией, результирующий вектор тесно совпадает с Берлином, столицей Германии.
Сами эмбеддинги генерируются с помощью специально обученных моделей.
Ну а про сам подход генерации лучше почитать непосредственно в стать. А на гифке можете посмотреть, как с помощью метода главных компонент визуализировать эмбеддинги.
👍 — если работал с эмбеддингами
❤️ — если интересно, но пока не довелось
👀 — если не твоя тема
#ai #fridayreading
Я думаю все вы слышали про векторные базы данных. В прошлом посте обещал поделиться статьёй про то, как же слова и целые тексты превращаются в вектора.
«Привет! Я [0.44, -0.91, 0.66...]» или как научить машину понимать смысл слов
В машинном обучении есть базовое правило: модель умеет работать только с числами.
Поэтому любой объект — текст, картинку, звук — сначала нужно превратить в числовое представление. Только тогда модель сможет понять, что «груша» связана с «яблоком» куда больше, чем с «теплоходом»
Самый простой вариант для текста — 🔢 one hot encoding.
Мы берём словарь и каждому слову ставим в соответствие вектор, где одна позиция равна 1, а все остальные — 0.
Возьмём предложения:
1. The movie was good.
2. The movie was bad.
3. The movide was awesome.
Кодировка на первой картинке.
Формально задача решена, но есть проблема: такие векторы ничего не говорят о смысле слов.
Для модели слова «кот» и «собака» так же не похожи друг на друга, как «кот» и «кирпич».
Плюс векторы получаются «разреженными» — огромными и почти полностью заполненными нулями. Ну и, конечно, это потребует большого количества ресурсов для обработки.
👉 Следующий шаг — мешок слов и N-граммы.
Мы начинаем учитывать не отдельные слова, а их последовательности.
Кодировка на второй картинке.
Но N-граммы смотрят только на ограниченное число слов и строго по порядку. Поэтому они не улавливают более глубокие смысловые связи.
В реальности таких возможных N-грамм — тысячи, и большая часть значений всегда равна 0. То есть, проблема разреженных векторов полностью не уходит.
Чтобы модель работала лучше, ей нужно понимать семантику и контекст.
Здесь и появляются 🔡 word embeddings.
Эмбеддинг — это плотный числовой вектор фиксированной размерности, почти без нулей. Идея в том, что похожие по смыслу слова имеют похожие векторы, а направление в векторном пространстве несёт смысл.
В статье это объясняется на наглядном примере с животными.
- Сначала берётся одно измерение — размер. Животные с похожими габаритами находятся рядом.
- Затем добавляется второе измерение — хищность. В таком пространстве 🦁 «лев» и 🐯 «тигр» оказываются близко (крупные и опасные), 🐄 «корова» — отдельно (крупная, но безопасная), а 🐹 «хомяк» — совсем в другой области.
Когда слова представлены такими векторами, с ними можно выполнять математические операции:
V(Madrid) + V(Germany) − V(Spain) ≈ V(Berlin)
если мы возьмём слово «Мадрид», добавим «Германия» и вычтем «Испания», ближайшим полученным словом будет «Берлин». Это работает, потому что Мадрид — столица Испании. Когда мы убираем атрибуты, связанные с Испанией, и добавляем атрибуты, связанные с Германией, результирующий вектор тесно совпадает с Берлином, столицей Германии.
Сами эмбеддинги генерируются с помощью специально обученных моделей.
Ну а про сам подход генерации лучше почитать непосредственно в стать. А на гифке можете посмотреть, как с помощью метода главных компонент визуализировать эмбеддинги.
👍 — если работал с эмбеддингами
❤️ — если интересно, но пока не довелось
👀 — если не твоя тема
#ai #fridayreading
❤19👍7👀4
Выходные закончились, а отдохнуть, как всегда, не получилось. Работать не хочется… но надо 😅.
Принёс вам альбом с музыкой под стать понедельнику — с говорящим названием Заебудни. Тут даже объяснять ничего не нужно. Каждая песня — бриллиант 💎.
Мои любимые:
• Зачем тебе отпуск?
• Можешь хуже
В общем, хорошей рабочей недели 👍 Пусть она пройдёт легче, чем началась.
А вы работаете под музыку? Если да — под какую? 🎧
- 🔥 — часто работаю под музыку
- 👍 — включаю музыку, когда делаю задачи, где всё понятно
- ❤️ — не работаю под музыку
Принёс вам альбом с музыкой под стать понедельнику — с говорящим названием Заебудни. Тут даже объяснять ничего не нужно. Каждая песня — бриллиант 💎.
Мои любимые:
• Зачем тебе отпуск?
• Можешь хуже
В общем, хорошей рабочей недели 👍 Пусть она пройдёт легче, чем началась.
А вы работаете под музыку? Если да — под какую? 🎧
- 🔥 — часто работаю под музыку
- 👍 — включаю музыку, когда делаю задачи, где всё понятно
- ❤️ — не работаю под музыку
1👍9🔥8❤6
Самой большой проблемой при миграции с 🇯🇵 Notion на 💎 Obsidian были базы данных
В Obsidian попросту не было их полной альтернативы, поэтому пришлось пере-придумать свой подход к ведению проектов с помощью плагинов dataview и tasks.
Суть обоих плагинов проста — они позволяют писать запросы с помощью специального синтаксиса к заметкам и задачам и выводить результаты на странице.
Я как-то это упустил, но в прошлом году появился новый встроенный плагин Bases, который как раз и представляет собой альтернативу тем самым базам в Notion.
Однако по своей сути он скорее похож на dataview — это просто ещё один язык запросов к заметкам, который использует YAML синтаксис.
Вот, например, так выглядит конфигурация представления с постами для блога, которые сейчас в работе 👇
Именно это и содержится в файлах с расширением .base.
🧩 В Notion и Obsidian, есть одно принципиальное различие, при настройке баз данных.
В Notion мы создаём отдельную базу данных, которая хранит записи определённого типа, а затем с помощью фильтров можем показывать только часть этих записей.
Например, если мы строим трекер задач в Notion, у нас будет две базы:
- Задачи
- Проекты
- А на странице проекта мы можем добавить представление, где отображаются только задачи этого проекта.
В Obsidian всё иначе.
У нас есть одна «главная база данных» — все наши заметки. Каждая запись — это обычная текстовая заметка. У заметок нет как такового типа.
Поэтому, чтобы отличить задачи от проектов, мы будем фильтровать их либо по пути заметки, либо по тегу.
Я бы сказал, что это всё же преимущество Notion — там можно гибко совмещать содержимое разных баз в одном представлении. Например, легко создать представление «Заметки, созданные на прошлой неделе».
⚙️ Что умеет?
- Поддерживается 4 типа представлений:
- таблица
- список
- карточки
- карта (если установить дополнительный плагин)
- Поддерживает inline-базы данных — почти как в Notion
- Работают формулы и фильтры
❌ Недостатки
- Нет представления канбан-доски. Это, пожалуй, самое печальное. Надеюсь, со временем добавят.
- Не получится нормально использовать создание новой заметки прямо из базы через кнопку “+ New”, потому что:
- все заметки создаются в дефолтной папке — из-за этого не срабатывает шаблон
- в созданной заметке появляются только те поля, которые сконфигурированы в базе; поля из шаблона не подтягиваются
Подробнее, можно посмотреть тут:
• Умные таблицы в Obsidian. Плагины Bases и DataView. Пошаговая инструкция.
• Умные таблицы в Obsidian. Дополнения к первой части. Вставка в тело страницы. Настройка и синтаксис.
#obsidian
В Obsidian попросту не было их полной альтернативы, поэтому пришлось пере-придумать свой подход к ведению проектов с помощью плагинов dataview и tasks.
Суть обоих плагинов проста — они позволяют писать запросы с помощью специального синтаксиса к заметкам и задачам и выводить результаты на странице.
Я как-то это упустил, но в прошлом году появился новый встроенный плагин Bases, который как раз и представляет собой альтернативу тем самым базам в Notion.
Однако по своей сути он скорее похож на dataview — это просто ещё один язык запросов к заметкам, который использует YAML синтаксис.
Вот, например, так выглядит конфигурация представления с постами для блога, которые сейчас в работе 👇
filters:
and:
- file.ext == "md"
- file.path.startsWith("2.Areas/A.Блог/Посты")
views:
- type: table
name: In Progress
filters:
or:
- file.path.startsWith("2.Areas/A.Блог/Посты/2.InProgress")
- status.contains("➡️ In Progress")
order:
- file.name
- status
- tags
Именно это и содержится в файлах с расширением .base.
🧩 В Notion и Obsidian, есть одно принципиальное различие, при настройке баз данных.
В Notion мы создаём отдельную базу данных, которая хранит записи определённого типа, а затем с помощью фильтров можем показывать только часть этих записей.
Например, если мы строим трекер задач в Notion, у нас будет две базы:
- Задачи
- Проекты
- А на странице проекта мы можем добавить представление, где отображаются только задачи этого проекта.
В Obsidian всё иначе.
У нас есть одна «главная база данных» — все наши заметки. Каждая запись — это обычная текстовая заметка. У заметок нет как такового типа.
Поэтому, чтобы отличить задачи от проектов, мы будем фильтровать их либо по пути заметки, либо по тегу.
Я бы сказал, что это всё же преимущество Notion — там можно гибко совмещать содержимое разных баз в одном представлении. Например, легко создать представление «Заметки, созданные на прошлой неделе».
⚙️ Что умеет?
- Поддерживается 4 типа представлений:
- таблица
- список
- карточки
- карта (если установить дополнительный плагин)
- Поддерживает inline-базы данных — почти как в Notion
- Работают формулы и фильтры
❌ Недостатки
- Нет представления канбан-доски. Это, пожалуй, самое печальное. Надеюсь, со временем добавят.
- Не получится нормально использовать создание новой заметки прямо из базы через кнопку “+ New”, потому что:
- все заметки создаются в дефолтной папке — из-за этого не срабатывает шаблон
- в созданной заметке появляются только те поля, которые сконфигурированы в базе; поля из шаблона не подтягиваются
Подробнее, можно посмотреть тут:
• Умные таблицы в Obsidian. Плагины Bases и DataView. Пошаговая инструкция.
• Умные таблицы в Obsidian. Дополнения к первой части. Вставка в тело страницы. Настройка и синтаксис.
#obsidian
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍5🔥1
Мы тут недавно в компании разбирались, как мы используем ИИ и где ещё можно его интегрировать. В процессе разговор зашёл о код-ревью.
Мы используем self-hosted Gitea, а это значит, что никакого встроенного ИИ-код-ревью у нас, увы, нет.
Поэтому вчера утром я открыл Cline, вооружился Claude и, потративвсе деньги $4 и примерно час времени, навайбкодил пример сетапа с docker-compose файлом, Gitea и PR Agent.
Claude сам провёл анализ и выбрал PR Agent, а затем написал подробную пошаговую инструкцию по интеграции с Gitea через вебхуки. В итоге уже через час всё было готово, и мне оставалось только попросить ChatGPT написать плохой код — чтобы проверить, как вообще будет выглядеть код-ревью от ИИ.
Вроде выглядит сносно, но нужно проверять, как он будет работать на реальной кодовой базе.
Репозиторий здесь.
Расскажите, а вы используете ИИ для код-ревью?
Ставьте:
👍 — если да и вам зашло
😢 — если пробовали, но не прижилось
😱 — если у вас код-ревью это "заапрувь по братски"
#ai
Мы используем self-hosted Gitea, а это значит, что никакого встроенного ИИ-код-ревью у нас, увы, нет.
Поэтому вчера утром я открыл Cline, вооружился Claude и, потратив
Claude сам провёл анализ и выбрал PR Agent, а затем написал подробную пошаговую инструкцию по интеграции с Gitea через вебхуки. В итоге уже через час всё было готово, и мне оставалось только попросить ChatGPT написать плохой код — чтобы проверить, как вообще будет выглядеть код-ревью от ИИ.
Вроде выглядит сносно, но нужно проверять, как он будет работать на реальной кодовой базе.
Репозиторий здесь.
Расскажите, а вы используете ИИ для код-ревью?
Ставьте:
👍 — если да и вам зашло
😢 — если пробовали, но не прижилось
😱 — если у вас код-ревью это "заапрувь по братски"
#ai
👍5😢5😱4🔥1💊1
Как-то я немного забегался: «Я 💛 Фронтенд» прошёл уже две недели назад, а я только сейчас нашёл время сесть и подвести итоги 🙂
Это уже третий раз, когда я был на конференции в офлайне, и — что символично — третья новая локация. В Москве я обычно езжу только на метро, но в этот раз пришлось пересесть на автобус, чтобы добраться до Мосфильма, где и проходила конференция 🎬
В отличие от предыдущих разов, это была первая конференция, на которой я всё-таки поборол интроверта внутри себя и походил по активностям.
Ещё до начала докладов я успел:
🧙♂️ побороться с колдуном на платформе Source Craft — это такой аналог GitHub от Яндекса;
👔 побыть CEO в симуляторе и решить, что важнее: устранить технический долг или запилить новую фичу;
🎲 а позже поиграть в Alias для фронтендеров.
Короче, без фирменных носков и шоппера я, конечно, не уехал 😄
На 14 февраля всё-таки удалось попасть в кино — правда, вместо фильма там были доклады. Вот мой топ-3:
1. По-настоящему адаптивный интерфейс. Рома рассказал, что адаптивность — это уже давно не только брейкпоинты. Сейчас мы мыслим компонентами, а современные браузеры поддерживают кучу новых возможностей, чтобы делать их адаптивными. Посмотрите хотя бы на clamp() и style queries.
2. Локальные модели: как запустить ИИ в браузере. Очень интересный доклад о том, как голосовой ввод и LLM в браузере могут сделать UX ещё лучше.
3. Что на самом деле важно в разработке?. Каждый раз убеждаюсь, что самые интересные доклады — не технические. Спасибо Владимиру за напоминание о том, что действительно важно ❤️
Но, как я уже говорил, конференции — это не только про доклады. Это про живое общение с живыми людьми, а не где-то в чатах или онлайне, где мы и так проводим слишком много времени.
Я приехал со списком вопросов, на которые хотел получить ответы. И, проходя в очередной раз мимо столиков, неожиданно увидел Женю Черкасова. Мы разговорились: у кого как выстроены процессы, сколько длится релизный цикл, сколько времени занимает регресс… В какой-то момент я понял, что мы уже пропустили следующий доклад 😅
А ещё на конференции есть секция «Кофе с Talk’ом» ☕️ — там за чашкой кофе можно задать любые вопросы. Мне кажется, ребята меня уже запомнили: я каждый год пристаю к ним с расспросами. Так как я стал тимлидом, в этот раз больше всего интересовался коммуникацией с продактом и релизным циклом.
В общем, конференция, как всегда, была на высоте 🔥. Я уехал с ответами на часть волнующих меня вопросов и с кучей новых идей.
И отдельное спасибо моей любимой жене за то, что отпустила меня, несмотря на то, что это было 14 февраля 💛.
#conference
Это уже третий раз, когда я был на конференции в офлайне, и — что символично — третья новая локация. В Москве я обычно езжу только на метро, но в этот раз пришлось пересесть на автобус, чтобы добраться до Мосфильма, где и проходила конференция 🎬
В отличие от предыдущих разов, это была первая конференция, на которой я всё-таки поборол интроверта внутри себя и походил по активностям.
Ещё до начала докладов я успел:
🧙♂️ побороться с колдуном на платформе Source Craft — это такой аналог GitHub от Яндекса;
👔 побыть CEO в симуляторе и решить, что важнее: устранить технический долг или запилить новую фичу;
🎲 а позже поиграть в Alias для фронтендеров.
Короче, без фирменных носков и шоппера я, конечно, не уехал 😄
На 14 февраля всё-таки удалось попасть в кино — правда, вместо фильма там были доклады. Вот мой топ-3:
1. По-настоящему адаптивный интерфейс. Рома рассказал, что адаптивность — это уже давно не только брейкпоинты. Сейчас мы мыслим компонентами, а современные браузеры поддерживают кучу новых возможностей, чтобы делать их адаптивными. Посмотрите хотя бы на clamp() и style queries.
2. Локальные модели: как запустить ИИ в браузере. Очень интересный доклад о том, как голосовой ввод и LLM в браузере могут сделать UX ещё лучше.
3. Что на самом деле важно в разработке?. Каждый раз убеждаюсь, что самые интересные доклады — не технические. Спасибо Владимиру за напоминание о том, что действительно важно ❤️
Но, как я уже говорил, конференции — это не только про доклады. Это про живое общение с живыми людьми, а не где-то в чатах или онлайне, где мы и так проводим слишком много времени.
Я приехал со списком вопросов, на которые хотел получить ответы. И, проходя в очередной раз мимо столиков, неожиданно увидел Женю Черкасова. Мы разговорились: у кого как выстроены процессы, сколько длится релизный цикл, сколько времени занимает регресс… В какой-то момент я понял, что мы уже пропустили следующий доклад 😅
А ещё на конференции есть секция «Кофе с Talk’ом» ☕️ — там за чашкой кофе можно задать любые вопросы. Мне кажется, ребята меня уже запомнили: я каждый год пристаю к ним с расспросами. Так как я стал тимлидом, в этот раз больше всего интересовался коммуникацией с продактом и релизным циклом.
В общем, конференция, как всегда, была на высоте 🔥. Я уехал с ответами на часть волнующих меня вопросов и с кучей новых идей.
И отдельное спасибо моей любимой жене за то, что отпустила меня, несмотря на то, что это было 14 февраля 💛.
#conference
1👍5❤2🔥2👏1
Пока ремонт особо не напрягает, появилось время вернуться к рутине. Начал смотреть стримы про вайбкодинг в Guide DAO, где сейчас прохожу обучение. Стримы проходят раз в неделю, где ребята продолжают развивать один и тот же проект — шаг за шагом углубляются в архитектуру и работу с агентами.
В этот раз для себя наконец нормально понял тему скиллов.
Skills — это по сути «ленивые» инструкции: они загружаются в промпт только тогда, когда действительно нужны.
Рано или поздно агент начинает делать что-то «не по-нашему». Например, пишет e2e-тесты без структуры, игнорирует page object или общие хелперы.
Первая реакция — добавить правила в CLAUDE.md:
— использовать Playwright
— придерживаться page object
— выносить повторяющуюся логику
— аккуратно работать с асинхронностью
Это работает. Но файл быстро разрастается, если напрямую в нём описывать все правила для тестов, API, миграций, логирования и т.д.. В итоге системный промпт перегружен, хотя для конкретной задачи нужна лишь часть правил. Зачем тянуть всё сразу?
Вот здесь и нужны skills.
Скилл — это заголовок (когда применять) и тело (инструкции). Агент всегда видит только заголовки, а детали подтягивает по необходимости.
Задача на e2e — активировался нужный скилл. Пишем что-то другое — скилл не подгружаем, чтобы не засорять контекст ненужными деталями.
К слову, на следующей неделе в Guide DAO стартует живой поток по вайбкодингу: формат стримов, небольшие группы, практика с домашками и обратной связью, длительность около полутора–двух месяцев. После покупки участники получают доступ ко всей платформе Guide DAO — стримам, курсам и комьюнити. Сейчас по промокоду 🏷
Из других полезных вещей, которые разбирали на стримах:
• MCP-серверы — позволяют агенту выходить во внешний мир: сходить в Jira, базу данных или API и собрать данные.
• Команды — кастомные slash-команды с заранее заданным сценарием или промптом для повторяющихся действий.
• Хуки — точки расширения, которые позволяют выполнить код в определённые моменты работы агента (например, после генерации плана).
• spec-kit — spec-kit помогает быстро получить черновик спецификации проекта, который потом можно отревьюить и доработать.
И в конце стрима зацепила одна мысль 💡. Парни обсуждали, что нам, по сути, повезло войти в ИТ ещё до появления ИИ и агентов. Мы успели набить базовые знания и привыкли разбираться в проблемах самостоятельно. Сейчас это объективно сложнее: когда ИИ может написать решение в разы быстрее, нужна большая сила воли, чтобы не просто «попросить агента», а действительно вникнуть, разобраться и чему-то научиться. Заставить себя изучать новое в такой реальности — отдельный навык.
Кстати, ребята выложили в открытый доступ 👉 один из стримов по вайбкодингу, где на практике разбирается как использовать spec-kit.
Ставьте:
- 🔥 — если чувствуете себя уверенно в вайбкодинге
- 👍 — если пока наблюдаете со стороны
- 😱 — если всё сильнее переживаете, что ИИ вас заменит
#ai
В этот раз для себя наконец нормально понял тему скиллов.
Skills — это по сути «ленивые» инструкции: они загружаются в промпт только тогда, когда действительно нужны.
Рано или поздно агент начинает делать что-то «не по-нашему». Например, пишет e2e-тесты без структуры, игнорирует page object или общие хелперы.
Первая реакция — добавить правила в CLAUDE.md:
— использовать Playwright
— придерживаться page object
— выносить повторяющуюся логику
— аккуратно работать с асинхронностью
Это работает. Но файл быстро разрастается, если напрямую в нём описывать все правила для тестов, API, миграций, логирования и т.д.. В итоге системный промпт перегружен, хотя для конкретной задачи нужна лишь часть правил. Зачем тянуть всё сразу?
Вот здесь и нужны skills.
Скилл — это заголовок (когда применять) и тело (инструкции). Агент всегда видит только заголовки, а детали подтягивает по необходимости.
Задача на e2e — активировался нужный скилл. Пишем что-то другое — скилл не подгружаем, чтобы не засорять контекст ненужными деталями.
К слову, на следующей неделе в Guide DAO стартует живой поток по вайбкодингу: формат стримов, небольшие группы, практика с домашками и обратной связью, длительность около полутора–двух месяцев. После покупки участники получают доступ ко всей платформе Guide DAO — стримам, курсам и комьюнити. Сейчас по промокоду 🏷
CHERKASHIN действует скидка 30% (плюс около 10% на сайте).Из других полезных вещей, которые разбирали на стримах:
• MCP-серверы — позволяют агенту выходить во внешний мир: сходить в Jira, базу данных или API и собрать данные.
• Команды — кастомные slash-команды с заранее заданным сценарием или промптом для повторяющихся действий.
• Хуки — точки расширения, которые позволяют выполнить код в определённые моменты работы агента (например, после генерации плана).
• spec-kit — spec-kit помогает быстро получить черновик спецификации проекта, который потом можно отревьюить и доработать.
И в конце стрима зацепила одна мысль 💡. Парни обсуждали, что нам, по сути, повезло войти в ИТ ещё до появления ИИ и агентов. Мы успели набить базовые знания и привыкли разбираться в проблемах самостоятельно. Сейчас это объективно сложнее: когда ИИ может написать решение в разы быстрее, нужна большая сила воли, чтобы не просто «попросить агента», а действительно вникнуть, разобраться и чему-то научиться. Заставить себя изучать новое в такой реальности — отдельный навык.
Кстати, ребята выложили в открытый доступ 👉 один из стримов по вайбкодингу, где на практике разбирается как использовать spec-kit.
Ставьте:
- 🔥 — если чувствуете себя уверенно в вайбкодинге
- 👍 — если пока наблюдаете со стороны
- 😱 — если всё сильнее переживаете, что ИИ вас заменит
#ai
1👍7🔥4😱3❤2😴1