Неожиданно эффективное решение в плане ADHD подошло мне как влитое, уже несколько раз. Может и вам зайдёт 🤷🏻♂️
Метаться между неопределенным количеством одновременных дел — это боль и непредсказуемость, страх неизвестности, можно легко загнаться в цикле, и т.п.
А вот если решить самому с собой, что берёшь в текущий цикл только, скажем, два или три несложных дела, и переключаешься только между ними — вот в этом случае уже включается суперсила, когда все они выполняются эффективно.
Типа, know your limits, если упростить. Где ключевое слово — знать. А не лимиты.
Метаться между неопределенным количеством одновременных дел — это боль и непредсказуемость, страх неизвестности, можно легко загнаться в цикле, и т.п.
А вот если решить самому с собой, что берёшь в текущий цикл только, скажем, два или три несложных дела, и переключаешься только между ними — вот в этом случае уже включается суперсила, когда все они выполняются эффективно.
Типа, know your limits, если упростить. Где ключевое слово — знать. А не лимиты.
👍4
Вообще, я пришёл написать восторженный пост про Kanbanchi.com — типа, лучшая доска по всем статьям. И интерфейс, и общий опыт. Но решил посмотреть на тарифы...
Классно, конечно, давать триал к Enterprise-версии. И не прикопаться, демка всего функционала. Но блин. Когда даже уведомления, подзадачи и архивирование доступны лишь в третьем по счёту тарифе из четырёх — возникает прям такое себе впечатление.
Не, всё равно классно и того стоит, пожалуй. Просто в баланс между ожиданием и реальностью вкрадывается небольшая толикавымогательства маркетинга 🥺
Классно, конечно, давать триал к Enterprise-версии. И не прикопаться, демка всего функционала. Но блин. Когда даже уведомления, подзадачи и архивирование доступны лишь в третьем по счёту тарифе из четырёх — возникает прям такое себе впечатление.
Не, всё равно классно и того стоит, пожалуй. Просто в баланс между ожиданием и реальностью вкрадывается небольшая толика
👍1
Forwarded from do...while...ai (Gregory is typing...)
Рефакторинг вайбкодинга
Все последние проекты, которые я разрабатывал (процентов на 80 вайбкодил), всегда проходят через две фазы: разработки и рефакторинга, и циклически повторяют их.
Разработка — это активный вайбкодинг, задача которого реализовать некую законченную бизнес-функцию, не сильно упарываясь с качеством кода. Не важно, какая модель или какой агент используется, они всегда вместе с полезным кодом добавляют кучу избыточного. Я не могу сказать, что этот новый код всегда мусорный, или лишний. Код часто бывает локально полезный, но если смотреть на уровне всего проекта — реализация часто неэффективная. Поэтому после каждого этапа разработки я делаю принудительный этап рефакторинга, чтобы привести код в порядок и не превратить проект в "спагетти".
Почему не делать это сразу в момент ревью результатов? Это замедляет реализацию бизнес-функций. Но откровенный булщит, конечно, исправляю сразу.
Как человек ленивый, первое, что я попробовал — это делать автоматический рефакторинг. Написал огромную инструкцию о том, как делать рефакторинг поэтапно (для python backend, деплоя, фронта на reactjs, ..), как запускать тулзы типа vulture, flake8, ESlint, Skylos, и т.п. для диагностики и валидации результатов, задал пороговые значения и параметры рефакторинга, позапускал с разными агентами (я попеременно использую Cursor, Claude Code и Codex). И то, что получалось в итоге — было фиаско.
Увы, пока ни агенты, ни модели, не работают на должном уровне, чтобы автономно по инструкциям сделать грамотный и эффективный рефакторинг. Поэтому данный этап я всё ещё делаю ручками. Открываю файлы, которые недавно менялись, начинаю ревьюить, замечать какие-то кривости реализации (например, сегодня у меня в трех местах в ansible playbook'ах была однотипная проверка на ОС на целевом хосте). Как только обнаруживаются проблемы реализации — я даю команду курсору или Codex исправить её: описываю, что и где я нашёл, почему я считаю это неэффективным, как я предлагаю реализовать, настаиваю на том, чтобы не было breaking changes и сохранилась вся текущая функциональности, и прошу также прошерстить остальной код на предмет аналогичных проблем. Если просить модель саму решить, как лучше отрефакторить, часто получается не лучше, чем было. Поэтому здесь нужно это брать в свои руки.
Я выработал свой критерий успешности рефакторинга: размер кода должен уменьшиться при сохранении функциональности и 100% pass rate для тестов.
Если я вижу, что переделка кода удалила 400 строк и добавила 390 — это какая-то фигня. Отменяю и делаю новую итерацию.
Типичные проблемы, которые я замечаю при вайб-кодинге, и для чего я делаю принудительный рефакторинг:
- дубли кода (иногда явно задублированный код в разных файлах)
- "мёртвый" код (модель переписывает что-то, забывая удалить старый, и оно там остаётся на века, засоряя проект)
- ненужный избыточный код, сохранённый для обратной совместимости (которая не нужна). Это прямо бич всех агентов: они стараются быть аккуратными и лишний раз реализуют избыточный код для сохранения обратной совместимости, которая не нужна.
- избыточные комментарии и код для дебага (когда агент что-то дебажит, он добавляет кучу ненужного для прода кода, и потом его не удаляет)
- .md файлы с документированием изменений (удаляю их сразу после завершения сессии). Пробовал делать рулзы не создавать эти .md, если я явно не прошу, но Cursor забивает на часть моих рулзов.
- лоскутное одеяло из стилей кодирования (где-то файлы читаются через file read(), где-то через pathlib read_text())
- константы и импорты объявляются локально внутри try / catch блоков или функций.
Важное наблюдение: поскольку природа LLM — completion inference, модель учитывает и "продолжает" стиль существующего кода. Если сделать заготовку проекта, написанную "с нуля" хорошо и аккуратно, есть шанс, что модель продолжит дальше вайбкодить также хорошо, как по трафарету (до определенного момента, конечно). Поэтому аккуратность кода нужно поддерживать регулярно, и, увы, вручную. Именно это я и пытаюсь делать регулярными рефакторингами проектов.
Все последние проекты, которые я разрабатывал (процентов на 80 вайбкодил), всегда проходят через две фазы: разработки и рефакторинга, и циклически повторяют их.
Разработка — это активный вайбкодинг, задача которого реализовать некую законченную бизнес-функцию, не сильно упарываясь с качеством кода. Не важно, какая модель или какой агент используется, они всегда вместе с полезным кодом добавляют кучу избыточного. Я не могу сказать, что этот новый код всегда мусорный, или лишний. Код часто бывает локально полезный, но если смотреть на уровне всего проекта — реализация часто неэффективная. Поэтому после каждого этапа разработки я делаю принудительный этап рефакторинга, чтобы привести код в порядок и не превратить проект в "спагетти".
Почему не делать это сразу в момент ревью результатов? Это замедляет реализацию бизнес-функций. Но откровенный булщит, конечно, исправляю сразу.
Как человек ленивый, первое, что я попробовал — это делать автоматический рефакторинг. Написал огромную инструкцию о том, как делать рефакторинг поэтапно (для python backend, деплоя, фронта на reactjs, ..), как запускать тулзы типа vulture, flake8, ESlint, Skylos, и т.п. для диагностики и валидации результатов, задал пороговые значения и параметры рефакторинга, позапускал с разными агентами (я попеременно использую Cursor, Claude Code и Codex). И то, что получалось в итоге — было фиаско.
Увы, пока ни агенты, ни модели, не работают на должном уровне, чтобы автономно по инструкциям сделать грамотный и эффективный рефакторинг. Поэтому данный этап я всё ещё делаю ручками. Открываю файлы, которые недавно менялись, начинаю ревьюить, замечать какие-то кривости реализации (например, сегодня у меня в трех местах в ansible playbook'ах была однотипная проверка на ОС на целевом хосте). Как только обнаруживаются проблемы реализации — я даю команду курсору или Codex исправить её: описываю, что и где я нашёл, почему я считаю это неэффективным, как я предлагаю реализовать, настаиваю на том, чтобы не было breaking changes и сохранилась вся текущая функциональности, и прошу также прошерстить остальной код на предмет аналогичных проблем. Если просить модель саму решить, как лучше отрефакторить, часто получается не лучше, чем было. Поэтому здесь нужно это брать в свои руки.
Я выработал свой критерий успешности рефакторинга: размер кода должен уменьшиться при сохранении функциональности и 100% pass rate для тестов.
Если я вижу, что переделка кода удалила 400 строк и добавила 390 — это какая-то фигня. Отменяю и делаю новую итерацию.
Типичные проблемы, которые я замечаю при вайб-кодинге, и для чего я делаю принудительный рефакторинг:
- дубли кода (иногда явно задублированный код в разных файлах)
- "мёртвый" код (модель переписывает что-то, забывая удалить старый, и оно там остаётся на века, засоряя проект)
- ненужный избыточный код, сохранённый для обратной совместимости (которая не нужна). Это прямо бич всех агентов: они стараются быть аккуратными и лишний раз реализуют избыточный код для сохранения обратной совместимости, которая не нужна.
- избыточные комментарии и код для дебага (когда агент что-то дебажит, он добавляет кучу ненужного для прода кода, и потом его не удаляет)
- .md файлы с документированием изменений (удаляю их сразу после завершения сессии). Пробовал делать рулзы не создавать эти .md, если я явно не прошу, но Cursor забивает на часть моих рулзов.
- лоскутное одеяло из стилей кодирования (где-то файлы читаются через file read(), где-то через pathlib read_text())
- константы и импорты объявляются локально внутри try / catch блоков или функций.
Важное наблюдение: поскольку природа LLM — completion inference, модель учитывает и "продолжает" стиль существующего кода. Если сделать заготовку проекта, написанную "с нуля" хорошо и аккуратно, есть шанс, что модель продолжит дальше вайбкодить также хорошо, как по трафарету (до определенного момента, конечно). Поэтому аккуратность кода нужно поддерживать регулярно, и, увы, вручную. Именно это я и пытаюсь делать регулярными рефакторингами проектов.
Ещё нигде не видел в обзорах новых бета-версий macOS, что, оказывается, XBOX-контроллер, когда он подключен, теперь по своей кнопке вызывает Apple Arcade, и прекрасно там работает.
Но не только там. В Spotlight Search контроллер работает тоже. И про это не писали. Тем временем, маки тихонько, но уверенно, идут и в околоконсольном направлении. Прикольно.
Но не только там. В Spotlight Search контроллер работает тоже. И про это не писали. Тем временем, маки тихонько, но уверенно, идут и в околоконсольном направлении. Прикольно.
👍1
Forwarded from e/acc
Провел больше 10 часов за последние 2 дня в CC. Вывод шокирует.
Если определением AGI считать
ИИ, который умеет выполнять любую удаленную работу на уровне среднего сотрудника,
то в любом практическом контексте claude code + Opus 4.5 это уже давно AGI.
Если определением AGI считать
ИИ, который умеет выполнять любую удаленную работу на уровне среднего сотрудника,
то в любом практическом контексте claude code + Opus 4.5 это уже давно AGI.
Facebook не смог вернуть мне $250 за рекламу, которую тоже не смог дать своевременно, так что прислал купонов: $100 + $100 + $50.
Продам с дисконтом 10%, можно хоть прямо сейчас. Контакт @nafigator. Крипта, баты, рубли — всё равно.
Тратить можно на рекламу Meta, включая и ФБ, и Инстаграм, и на всё остальное, что там доступно в рекламном кабинете.
Активируются в рекламном кабинете в добавлении платёжного средства. Если мы с вами знакомы, можете оплатить после успешной активации.
Продам с дисконтом 10%, можно хоть прямо сейчас. Контакт @nafigator. Крипта, баты, рубли — всё равно.
Тратить можно на рекламу Meta, включая и ФБ, и Инстаграм, и на всё остальное, что там доступно в рекламном кабинете.
Активируются в рекламном кабинете в добавлении платёжного средства. Если мы с вами знакомы, можете оплатить после успешной активации.
Публичные нейросети очень хорошо подсвечивают такой момент восприятия, как... ну пусть «своя рубашка ближе к телу». Что даёт ценную возможность взглянуть на своё мышление со стороны.
Поясню.
Когда ты читаешь результат своего исследования по своему промпту, ты его как минимум воспринимаешь для адекватной оценки, замечаешь детали — доверие авансом высокое, это же ответ на твой запрос.
А вот когда тебе кто-то кидает ссылку на своё исследование, либо даже просто шлёт скрины с ответом того же Gemini — скажите как у вас. У меня фильтр большую часть такого контента не пропускает. Я бессознательно, но уже настроен скептически.
Моя гипотеза заключается в том, что дело тут совершенно не в промптах. У тебя может быть выборка «дай топ-10 антистресс-бадов с айхерба», а у собеседника сложный промпт по стандартизированным экстрактам и клиническим исследованиям. И ты, даже зная это, всё равно сначала пройдёшь через стадию с мыслью «ну хз» :)
Старые-новые игры разума в современных технологиях.
А! Ну так вот! В жизни-то так же.
Зная свою такую особенность восприятия, можно закрывать свою жажду новых знаний чуточку повеселее и пооткрытее.
Поясню.
Когда ты читаешь результат своего исследования по своему промпту, ты его как минимум воспринимаешь для адекватной оценки, замечаешь детали — доверие авансом высокое, это же ответ на твой запрос.
А вот когда тебе кто-то кидает ссылку на своё исследование, либо даже просто шлёт скрины с ответом того же Gemini — скажите как у вас. У меня фильтр большую часть такого контента не пропускает. Я бессознательно, но уже настроен скептически.
Моя гипотеза заключается в том, что дело тут совершенно не в промптах. У тебя может быть выборка «дай топ-10 антистресс-бадов с айхерба», а у собеседника сложный промпт по стандартизированным экстрактам и клиническим исследованиям. И ты, даже зная это, всё равно сначала пройдёшь через стадию с мыслью «ну хз» :)
Старые-новые игры разума в современных технологиях.
А! Ну так вот! В жизни-то так же.
Зная свою такую особенность восприятия, можно закрывать свою жажду новых знаний чуточку повеселее и пооткрытее.
Ещё инсайт дал Spotify. Иногда слушаешь свои Liked Songs, а их много-много уже накопилось, и давно уже слушаешь, он играет фоном в течение дня. И потом такой на автомате тянешься что-то лайкнуть, добавить в своё избранное... а оно уже там. И ты понимаешь, что да, трек такой, что я бы его дважды лайкнул!
Предсказываю такое явление, как мультилевел-лайки. Сначала, наверное, есть смысл оставить Liked Songs и добавить VIP или Super Liked Songs. Потом ещё как-то это реализуется, приобретёт возможности для шеринга в профили и т.п.
Типа, принцип маркетинговой воронки, только про свои подборки, которые имеют тенденцию разрастаться.
Как в телеграме Saved Messages, только там пошли другим путём, через разметку ярлычками. Тоже вариант. Но они не для шеринга.
Предсказываю такое явление, как мультилевел-лайки. Сначала, наверное, есть смысл оставить Liked Songs и добавить VIP или Super Liked Songs. Потом ещё как-то это реализуется, приобретёт возможности для шеринга в профили и т.п.
Типа, принцип маркетинговой воронки, только про свои подборки, которые имеют тенденцию разрастаться.
Как в телеграме Saved Messages, только там пошли другим путём, через разметку ярлычками. Тоже вариант. Но они не для шеринга.
«Времена, когда полотно из 30 хэштегов давало взрывной рост, прошли в 2018 году.»
Сейчас 2025-й. Одни люди всё ещё продают эту порчу восприятия контента бренда за деньги, а другие люди это всё ещё покупают.
Потому что тут так заведено :)
Сейчас 2025-й. Одни люди всё ещё продают эту порчу восприятия контента бренда за деньги, а другие люди это всё ещё покупают.
Потому что тут так заведено :)
👍2
Forwarded from Вечерний Даня (danya.ru)
Количество вопросов на StackOverflow по месяцам. Ну раньше получается вопросы складировались и хранились, типа как на жестком диске. А сейчас новые вопросы мгновенно исчезают в оперативке AI-матрицы и никто их никогда не увидит. Вопросы закончились.
👍1