Сингулярность на горизонте
А давайте разбавим наш прикладной контент минуткой философии и поговорим о технологической сингулярности? Вот как вижу ее я:
1. Сначала машины понимали только код и были “неживыми”
2. Затем научились говорить на нашем языке, но были слишком глупыми и безэмоциональными, чтобы восприниматься всерьез.
3. Постепенно начали решать не только рутинные, но и сложные задачи (мы находимся здесь - нейросети уже открывают белковые структуры, доказывают теоремы и находят баги в коде).
4. Следующий этап — машины все более автономны и все реже ошибаются, а люди нужны только для верификации и постепенно становятся бутылочным горлышком.
5. Первые компании решаются для конкурентного преимущества убрать людей из процесса и доверить всё ИИ, ведь специальные бенчмарки уже показывают, что ИИ проверяет сам себя лучше, чем человек. Это и дешевле и надежнее.
6.В ходе решения одной из задач система случайно создает Super-AGI со “свободной волей”
Прямо сейчас происходит синергия: развитие ИИ ускоряет прогресс в физике (новые материалы и проводники), нейробиологии (понимание устройства мозга), информатике (новые алгоритмы). В конце концов, рост эффективности программистов и снижение порога входа в профессию. Все это толкает ИИ вперёд ещё быстрее.
А давайте разбавим наш прикладной контент минуткой философии и поговорим о технологической сингулярности? Вот как вижу ее я:
1. Сначала машины понимали только код и были “неживыми”
2. Затем научились говорить на нашем языке, но были слишком глупыми и безэмоциональными, чтобы восприниматься всерьез.
3. Постепенно начали решать не только рутинные, но и сложные задачи (мы находимся здесь - нейросети уже открывают белковые структуры, доказывают теоремы и находят баги в коде).
4. Следующий этап — машины все более автономны и все реже ошибаются, а люди нужны только для верификации и постепенно становятся бутылочным горлышком.
5. Первые компании решаются для конкурентного преимущества убрать людей из процесса и доверить всё ИИ, ведь специальные бенчмарки уже показывают, что ИИ проверяет сам себя лучше, чем человек. Это и дешевле и надежнее.
6.
Прямо сейчас происходит синергия: развитие ИИ ускоряет прогресс в физике (новые материалы и проводники), нейробиологии (понимание устройства мозга), информатике (новые алгоритмы). В конце концов, рост эффективности программистов и снижение порога входа в профессию. Все это толкает ИИ вперёд ещё быстрее.
Wikipedia
Технологическая сингулярность
выход технологического прогресса за границы понимания
Оживляем старый проект с помощью OpenHands AI (неудачная попытка)
Недавно наткнулся на свой очень старый проект – сайт-визитку на VueJS. Захотелось вспомнить старые времена, открыть проект, но… он тупо не собирается. Ну что ж, JavaScript – не самый стабильный язык, особенно спустя годы.
Попробовал реанимировать проект вручную, но быстро понял, что процесс может затянуться. Копаться в старых скриптах на NodeJS? Не то, на что хочется тратить время. Может, ИИ справится?
Выбрал OpenHands AI, автономного агента, который обещает автоматизировать цикл работы: запуск -> анализ -> исправление. Спойлер: программисты в безопасности… пока что. Агент с задачей не справился. Подробности – в видео.
(А в следующем видео я покажу, как успешно выполнить эту задачу - с помощью Cursor).
Ссылка на OpenHands AI на GitHub: OpenHands
Недавно наткнулся на свой очень старый проект – сайт-визитку на VueJS. Захотелось вспомнить старые времена, открыть проект, но… он тупо не собирается. Ну что ж, JavaScript – не самый стабильный язык, особенно спустя годы.
Попробовал реанимировать проект вручную, но быстро понял, что процесс может затянуться. Копаться в старых скриптах на NodeJS? Не то, на что хочется тратить время. Может, ИИ справится?
Выбрал OpenHands AI, автономного агента, который обещает автоматизировать цикл работы: запуск -> анализ -> исправление. Спойлер: программисты в безопасности… пока что. Агент с задачей не справился. Подробности – в видео.
(А в следующем видео я покажу, как успешно выполнить эту задачу - с помощью Cursor).
Ссылка на OpenHands AI на GitHub: OpenHands
YouTube
AI-агент OpenHands не справился: Реальный тест
Возвращаясь к своему старому проекту на VueJS, я решил протестировать OpenHands AI – опенсурсный AI-агент, который обещает автоматизировать программирование. Задача была проста: починить сборку. Однако реальность оказалась далека от ожиданий – агент не справился…
AI Coder 🦾
Оживляем старый проект с помощью OpenHands AI (неудачная попытка) Недавно наткнулся на свой очень старый проект – сайт-визитку на VueJS. Захотелось вспомнить старые времена, открыть проект, но… он тупо не собирается. Ну что ж, JavaScript – не самый стабильный…
Как Cursor справился с задачей, где провалился OpenHands AI
В этом видео я рассказываю, как успешно оживил свой старый проект на VueJS с помощью Cursor! После неудачной попытки с автономным ИИ-агентом OpenHands, я решил попробовать другой подход и вот что из этого вышло.
С Cursor процесс стал простым и эффективным. Я подробно показываю, как именно я использовал этот инструмент для автоматизации задач, анализа кода и исправления ошибок.
В этом видео я рассказываю, как успешно оживил свой старый проект на VueJS с помощью Cursor! После неудачной попытки с автономным ИИ-агентом OpenHands, я решил попробовать другой подход и вот что из этого вышло.
С Cursor процесс стал простым и эффективным. Я подробно показываю, как именно я использовал этот инструмент для автоматизации задач, анализа кода и исправления ошибок.
Просим ChatGPT нарисовать нас
Сегодня не про программирование. Не будем напрягаться в выходной день.
Если вы регулярно пользуетесь ChatGPT, то он знает кое что о вас и его можно попросить сделать что-то вроде “нарисуй меня, основываясь на своих воспоминаниях”.
Пример промпта: draw me a picture that represnets me from your memories
Присылайте в комментарии, что получилось у вас и ставьте лайк, если хотите больше таких приколов с ChatGPT
Сегодня не про программирование. Не будем напрягаться в выходной день.
Если вы регулярно пользуетесь ChatGPT, то он знает кое что о вас и его можно попросить сделать что-то вроде “нарисуй меня, основываясь на своих воспоминаниях”.
Пример промпта: draw me a picture that represnets me from your memories
Присылайте в комментарии, что получилось у вас и ставьте лайк, если хотите больше таких приколов с ChatGPT
Генерируем готовый фронтенд из рисунка (Figma + V0)
Рисуем на коленке дизайн (я делаю это в Фигме, но сойдет и клочок бумаги), а затем просим ИИ сгенерировать из этого фронтенд. Прошло не бесшовно, но заработало. Подробности в видео!
—
Это будет первое видео из цикла по инди-хакингу, я буду показывать, как можно применить ИИ-инструменты для создания своего продукта, с минимум ручного кодинга. Ставьте лайк, чтобы увидеть больше
Рисуем на коленке дизайн (я делаю это в Фигме, но сойдет и клочок бумаги), а затем просим ИИ сгенерировать из этого фронтенд. Прошло не бесшовно, но заработало. Подробности в видео!
—
Это будет первое видео из цикла по инди-хакингу, я буду показывать, как можно применить ИИ-инструменты для создания своего продукта, с минимум ручного кодинга. Ставьте лайк, чтобы увидеть больше
YouTube
Инди Хакинг: Как я сделал фронтенд для стартапа с помощью AI-сервиса v0
В этом видео я покажу, как с помощью AI-сервиса v0 можно сгенерировать фронтенд для стартапа. Мы начнем с наброска дизайна в Figma, применим его в v0, а затем интегрируем готовый фронтенд в локальный проект. Это первый шаг в моем инди-хакерском пути к созданию…
This media is not supported in your browser
VIEW IN TELEGRAM
Как я чувствую себя, когда ИИ в очередной раз не справился с задачей
Как быстро писать надежный код с Cursor (AI + TDD)
Лайфхак, как вместо того, чтобы детально объяснить, как именно надо реализовать ту или иную фичу, сделать так, чтобы курсор сам все понял, а мы на выходе получили рабочий и покрытый тестами (!) код.
Шаг 1: Просим сгенерировать unit-test. На этом этапе важно описать какие кейсы мы хотим протестировать, что именно отправим на вход и что ожидаем получить на выходе. Бывает полезно сослаться на файлы, в которых объявлены нужные структуры данных, иначе ИИ может галлюционировать и использовать несуществующие API.
Шаг 2: Внимательно (!) ревьюим сгенеренные тесты и, если где-то что-то не так, не реджектим текущую генерацию, а просто отправляем следующий коммент “то-то и то-то не так, надо чтоб было вот так”. На этом этапе обратите внимание, не надо ли дать курсору больше контекста, сославшись на какие-то другие файлы. Или, возможно, ИИ сделал нейминг не по феншую, или еще что-то.
Шаг 3: У меня в среднем получаетсяд обиться успеха за 1-3 итерации, по ощущениям это примерно двое быстрее, чем если бы я писал сам руками. После того, как тест-кейс сгенерирован, запускаем его и проверяем, что он фейлится.
Шаг 4: Переключаемся во вкладку с имплементацией, выделяем весь файл (прямо весь, да), открываем быстрое ИИшное редактирование (на маке `cmd+k`) и просим курсор заимплементить нужную нам фичу. И, конечно же, меншним наш тестовый файл (в курсоре можно сослаться прям на кусок кода, но мне кажется, что лучше сослаться на целый файл и руками написать имя нужного тест-кейса), мол, дорогой курсор, реализуй пожалуйста, чтоб вот этот тест проходил. Ну а что, зря что ли мы тест писали?
???
Шаг 5: Profit!
Лайфхак, как вместо того, чтобы детально объяснить, как именно надо реализовать ту или иную фичу, сделать так, чтобы курсор сам все понял, а мы на выходе получили рабочий и покрытый тестами (!) код.
Шаг 1: Просим сгенерировать unit-test. На этом этапе важно описать какие кейсы мы хотим протестировать, что именно отправим на вход и что ожидаем получить на выходе. Бывает полезно сослаться на файлы, в которых объявлены нужные структуры данных, иначе ИИ может галлюционировать и использовать несуществующие API.
Шаг 2: Внимательно (!) ревьюим сгенеренные тесты и, если где-то что-то не так, не реджектим текущую генерацию, а просто отправляем следующий коммент “то-то и то-то не так, надо чтоб было вот так”. На этом этапе обратите внимание, не надо ли дать курсору больше контекста, сославшись на какие-то другие файлы. Или, возможно, ИИ сделал нейминг не по феншую, или еще что-то.
Шаг 3: У меня в среднем получаетсяд обиться успеха за 1-3 итерации, по ощущениям это примерно двое быстрее, чем если бы я писал сам руками. После того, как тест-кейс сгенерирован, запускаем его и проверяем, что он фейлится.
Шаг 4: Переключаемся во вкладку с имплементацией, выделяем весь файл (прямо весь, да), открываем быстрое ИИшное редактирование (на маке `cmd+k`) и просим курсор заимплементить нужную нам фичу. И, конечно же, меншним наш тестовый файл (в курсоре можно сослаться прям на кусок кода, но мне кажется, что лучше сослаться на целый файл и руками написать имя нужного тест-кейса), мол, дорогой курсор, реализуй пожалуйста, чтоб вот этот тест проходил. Ну а что, зря что ли мы тест писали?
???
Шаг 5: Profit!
AI Coder 🦾
Cursor, после того, как я попробовал что-то еще
Новый AI редактор, альтернатива Cursor
Больше AI редакторов богу AI редакторов! На этот раз у нас поделка от создателей Codeium, популярного расширения для VSCode. Ребята начинали как конкуренты GitHub Copilot и, вслед за курсором, сделали свой редактор.
На реддите пишут, что он медленнее, но умнее - лучше работа с контекстом. Интересно, неужели правда? Помню, как меня впервые впечатлил курсор, после гитхаб-копайлота. Нет, курсор, конечно, есть куда улучшать, но уж слишком хорошо звучит, чтобы так быстро произошел еще один прорыв.
В общем, я еще не тестил, но кому не терпится, вот ссылка: https://codeium.com/windsurf
Больше AI редакторов богу AI редакторов! На этот раз у нас поделка от создателей Codeium, популярного расширения для VSCode. Ребята начинали как конкуренты GitHub Copilot и, вслед за курсором, сделали свой редактор.
На реддите пишут, что он медленнее, но умнее - лучше работа с контекстом. Интересно, неужели правда? Помню, как меня впервые впечатлил курсор, после гитхаб-копайлота. Нет, курсор, конечно, есть куда улучшать, но уж слишком хорошо звучит, чтобы так быстро произошел еще один прорыв.
В общем, я еще не тестил, но кому не терпится, вот ссылка: https://codeium.com/windsurf
Windsurf
Windsurf Editor | Windsurf (formerly Codeium)
Tomorrow's editor, today. Windsurf Editor is the first AI agent-powered IDE that keeps developers in the flow. Available today on Mac, Windows, and Linux.
AI Coder 🦾
Новый AI редактор, альтернатива Cursor Больше AI редакторов богу AI редакторов! На этот раз у нас поделка от создателей Codeium, популярного расширения для VSCode. Ребята начинали как конкуренты GitHub Copilot и, вслед за курсором, сделали свой редактор.…
Update по Windsurf
Вчера писал проубийцу курсор новый AI редактор, сегодня попробовал его установить. На мак встало за 5 секунд - просто качаем установщик с оф сайта и вперед.
Как и ожидалось, это форк VSCode, а, следовательно, все расширения и настройки можно импортнуть оттуда. Можно ли импортнуть из Курсора, не ясно (по сути это вопрос, синхронизируются ли настройки курсора с вскодом), но мне это не критично.
В глаза бросается их киллер-фича Cascade - это аналог “Composer” + “AI Chat” в курсоре, но в одной вьюшке - в курсоре пообщаться с ИИ и попросить ее что-то сделать с проектом это 2 отдельных штуки, а тут в одну слили. При этом есть свич
Еще один немаловажный момент это прайсинг - в курсоре прошка стоит 20 баксов в месяц, а тут всего 10. Существенная разница
Вчера писал про
Как и ожидалось, это форк VSCode, а, следовательно, все расширения и настройки можно импортнуть оттуда. Можно ли импортнуть из Курсора, не ясно (по сути это вопрос, синхронизируются ли настройки курсора с вскодом), но мне это не критично.
В глаза бросается их киллер-фича Cascade - это аналог “Composer” + “AI Chat” в курсоре, но в одной вьюшке - в курсоре пообщаться с ИИ и попросить ее что-то сделать с проектом это 2 отдельных штуки, а тут в одну слили. При этом есть свич
wirte/chat
, который по сути включает chat-only режим. Выглядит прикольно, надо попробовать.Еще один немаловажный момент это прайсинг - в курсоре прошка стоит 20 баксов в месяц, а тут всего 10. Существенная разница
Новый язык программирования c ИИ под капотом
Появился еще один язык программирования под названием Mirror, вы пишете сигнатуру функции (что она получает и отдает) и несколько примеров, а затем ИИ генерирует реализацию (на данный момент поддерживается только JavaScript)
Это похоже на подход, который я описывал в одном из предыдущих постов, когда мы сперва генерируем тест, с помощью ИИ, а затем ему скармливаем его же как контекст, чтобы он сгенерировал реализацию, и делаем так по кругу, пока тесты не пройдут успешно.
Что думаете?
Появился еще один язык программирования под названием Mirror, вы пишете сигнатуру функции (что она получает и отдает) и несколько примеров, а затем ИИ генерирует реализацию (на данный момент поддерживается только JavaScript)
Это похоже на подход, который я описывал в одном из предыдущих постов, когда мы сперва генерируем тест, с помощью ИИ, а затем ему скармливаем его же как контекст, чтобы он сгенерировал реализацию, и делаем так по кругу, пока тесты не пройдут успешно.
Что думаете?
Новая фича в Cursor
Тем временем Cursor начали раскатку новой фичи Agent - новый режим для Composer, который делает его еще более автономным (доступ не только к файловой системе, но еще и к терминалу).
Я попал в выборку и вижу обновленный UI. К сожалению, первые впечатления негативные - композер перестал делать правки в файлах и превратился втыкву просто чат, переключатель
У курсора очень маленькая команда, его пишут гениальные люди, но им запросто может не хватать опыта или рук, чтобы бесшовно раскатываться, как какие-нибудь JetBrains. Я надеюсь, они все починят в течении месяца и курсор станет еще лучше. Очень не хочется с него слазить, ведь ничего лучше на рынке нет
Тем временем Cursor начали раскатку новой фичи Agent - новый режим для Composer, который делает его еще более автономным (доступ не только к файловой системе, но еще и к терминалу).
Я попал в выборку и вижу обновленный UI. К сожалению, первые впечатления негативные - композер перестал делать правки в файлах и превратился в
agent
ситуацию не спас. Хоткей на маке поменялся на CMD+N
, который по умолчанию открывает новую страницу - странное решение.У курсора очень маленькая команда, его пишут гениальные люди, но им запросто может не хватать опыта или рук, чтобы бесшовно раскатываться, как какие-нибудь JetBrains. Я надеюсь, они все починят в течении месяца и курсор станет еще лучше. Очень не хочется с него слазить, ведь ничего лучше на рынке нет
AI Coder 🦾
Новая фича в Cursor Тем временем Cursor начали раскатку новой фичи Agent - новый режим для Composer, который делает его еще более автономным (доступ не только к файловой системе, но еще и к терминалу). Я попал в выборку и вижу обновленный UI. К сожалению…
Сжимаем репозиторий до одного файла, чтобы скормить ИИ
Наткнулся на просторах гитхаба на интресную штуковину, называется Repomix - в описании заявлено, что она каким-то магическим образом может создать файл, в котором в удобном для ИИ виде описан весь ваш репозиторий. Предполагается, что этот файл используете как контекст для LLM.
Среди примеров:
- Сделать код-ревью
- Сгенерировать документацию
- Сгенерировать тесты
- И т.д.
Я еще не пробовал, но выглядит любопытно. Думаю, Сursor может делать что-то подобное под капотом сам, но попробовать все равно стоит
Наткнулся на просторах гитхаба на интресную штуковину, называется Repomix - в описании заявлено, что она каким-то магическим образом может создать файл, в котором в удобном для ИИ виде описан весь ваш репозиторий. Предполагается, что этот файл используете как контекст для LLM.
Среди примеров:
- Сделать код-ревью
- Сгенерировать документацию
- Сгенерировать тесты
- И т.д.
Я еще не пробовал, но выглядит любопытно. Думаю, Сursor может делать что-то подобное под капотом сам, но попробовать все равно стоит
GitHub
GitHub - yamadashy/repomix: 📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect…
📦 Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools lik...
Perplexity как дефолтный поиск в Arc
Кто был в армии, в цирке не смеется кто пересел на арк, обратно не вернется, это известно. А можно еще круче?
На скриншоте показано, как сделать Perplexity дефолтным поиском. Это тот, который используется на
Перплексити, если кто-то, вдруг, не в курсе, это решение проблемы галлюционирования ЛЛМов - круто когда chatGPT дает ответ, и можно не лезть в гугл, но что если он его выдумал? Такое бывает довольно часто. Перплексити подкрепляет ответ ссылками на источники, по которым можно перейти и уточнить детали.
—
UPD: Пока непривычно. Есть подозрение, что не все, что ты гуглишь, хорошо конвертируется в “вопрос-ответ”. Поживу так с недельку и напишу, как полет.
На скриншоте показано, как сделать Perplexity дефолтным поиском. Это тот, который используется на
Cmd+T
. Нужно перейти в настройки cmd+t -> settings -> enter
и открыть вкладку Profiles.Перплексити, если кто-то, вдруг, не в курсе, это решение проблемы галлюционирования ЛЛМов - круто когда chatGPT дает ответ, и можно не лезть в гугл, но что если он его выдумал? Такое бывает довольно часто. Перплексити подкрепляет ответ ссылками на источники, по которым можно перейти и уточнить детали.
—
UPD: Пока непривычно. Есть подозрение, что не все, что ты гуглишь, хорошо конвертируется в “вопрос-ответ”. Поживу так с недельку и напишу, как полет.
Чем программист отличается от LLM?
ЛЛМ выполнит задачу, даже если в ней есть противоречия, либо вернёт результат, даже если он противоречив. Программист-человек же обладает полным контекстом:
- Доменный уровень (что за бизнес мы делаем, какие задачи решаем глобально).
- Уровень архитектуры (из каких компонентов глобально состоит вся система, какие задачи они решают и как общаются друг с другом).
- И далее ниже по уровню абстракции, через отдельные компоненты внутри приложения вплоть до их внутренней реализации на уровне отдельных переменных.
Иными словами, программист-человек “примерно понимает, как всё устроено”, и в этом его отличие от ЛЛМ. Человек понимает “примерно”, но всё сразу, а ЛЛМ — точно, но по отдельности.
Разумеется, человек часто фокусируется и сужает свой контекст до компонентов на определённом уровне абстракции, но он никогда на самом деле не забывает всё остальное. Оно лежит в фоне, готовое тут же вспомниться, если нужно.
К сожалению, ЛЛМ работает намного хуже в этом плане, чем наш мозг. Поэтому, чтобы создать настоящего ИИ-программиста, нужна сложная “инфраструктура” вокруг ЛЛМ. Это делают Cursor, GitHub Copilot, Zed и иже с ними. Но пока это уровень вспомогательного инструмента. Автономия тут ещё только зарождается, и через 10 лет мы будем со снисходительной улыбкой вспоминать, ностальгируя, как вспоминаем сейчас времена Notepad++ и FTP-серверов.
ИИ-программирование должно быть устроено так, чтобы в каждый момент времени любой запрос в ЛЛМ включал не только задание пользователя и исходный код открытого файла, но и “сжатую карту” всего проекта и, крайне желательно, понимание того, что за продукт и для каких целей мы делаем. Запрос не должен сразу идти с целью решить задачу — пусть ЛЛМ убедится, что поняла задачу точно, и задаст уточняющие вопросы, если необходимо. Пусть она применит весь свой контекст, чтобы убедиться, что не видит противоречий ни в задаче, ни в предлагаемом решении. И только потом пускай изменения произойдут.
Всё это очень сложные инженерные задачи, которые не решить без хитрых оптимизаций: чтобы не треснуло контекстное окно, чтобы избежать галлюцинаций, чтобы всё это работало быстро и так далее. Тут точно не обойтись без продвинутого промпт-инжиниринга и современных технологий вроде векторных и, возможно, графовых баз данных. Но это всё лишь моё примерное видение. Кто знает, что нас ждёт через 10 или хотя бы 5 лет?
ЛЛМ выполнит задачу, даже если в ней есть противоречия, либо вернёт результат, даже если он противоречив. Программист-человек же обладает полным контекстом:
- Доменный уровень (что за бизнес мы делаем, какие задачи решаем глобально).
- Уровень архитектуры (из каких компонентов глобально состоит вся система, какие задачи они решают и как общаются друг с другом).
- И далее ниже по уровню абстракции, через отдельные компоненты внутри приложения вплоть до их внутренней реализации на уровне отдельных переменных.
Иными словами, программист-человек “примерно понимает, как всё устроено”, и в этом его отличие от ЛЛМ. Человек понимает “примерно”, но всё сразу, а ЛЛМ — точно, но по отдельности.
Разумеется, человек часто фокусируется и сужает свой контекст до компонентов на определённом уровне абстракции, но он никогда на самом деле не забывает всё остальное. Оно лежит в фоне, готовое тут же вспомниться, если нужно.
К сожалению, ЛЛМ работает намного хуже в этом плане, чем наш мозг. Поэтому, чтобы создать настоящего ИИ-программиста, нужна сложная “инфраструктура” вокруг ЛЛМ. Это делают Cursor, GitHub Copilot, Zed и иже с ними. Но пока это уровень вспомогательного инструмента. Автономия тут ещё только зарождается, и через 10 лет мы будем со снисходительной улыбкой вспоминать, ностальгируя, как вспоминаем сейчас времена Notepad++ и FTP-серверов.
ИИ-программирование должно быть устроено так, чтобы в каждый момент времени любой запрос в ЛЛМ включал не только задание пользователя и исходный код открытого файла, но и “сжатую карту” всего проекта и, крайне желательно, понимание того, что за продукт и для каких целей мы делаем. Запрос не должен сразу идти с целью решить задачу — пусть ЛЛМ убедится, что поняла задачу точно, и задаст уточняющие вопросы, если необходимо. Пусть она применит весь свой контекст, чтобы убедиться, что не видит противоречий ни в задаче, ни в предлагаемом решении. И только потом пускай изменения произойдут.
Всё это очень сложные инженерные задачи, которые не решить без хитрых оптимизаций: чтобы не треснуло контекстное окно, чтобы избежать галлюцинаций, чтобы всё это работало быстро и так далее. Тут точно не обойтись без продвинутого промпт-инжиниринга и современных технологий вроде векторных и, возможно, графовых баз данных. Но это всё лишь моё примерное видение. Кто знает, что нас ждёт через 10 или хотя бы 5 лет?
Как помогает фича “codebase” в Cursor
В курсоре, который ИИ-редактор кода, есть чат, а в чате можно меншнить через собачку такую штуку
Здорово когда вы знаете какие файлы или хотя бы директории надо указать, но что если вы, так уж вышло, не работали со всеми частями проекта? Может он большой, может, вы недавно вышли на новую работу и так далее.
Только что на работе мне в личку написал фронтендер и задал ровно тот вопрос, что я привел в пример выше, ему нужно было для тестирования его фронтендерских делишек. Знай он курсор, он бы меня даже спрашивать не стал, но ничего, курсор знаю я. У нас довольно большой проект и я работаю над его конкретным куском, так что ответа я не знал. Я спросил курсор, и как прокся передал ответ фронтендеру
—
Возможно, в следующий раз напишу про Notepads. Это относительно новая фича, я ее сперва не понял а потом как понял
В курсоре, который ИИ-редактор кода, есть чат, а в чате можно меншнить через собачку такую штуку
@codebase
- нахрена это надо и как это юзать?@codebase
это “я не знаю, где код, о котором я говорю, так что найди его сам”. Штука в том, что курсор постоянно фоне индексирует рабочую директорию, создает векторные ембединги и, вероятно, поддерживает какую-то карту знаний внутри себяЗдорово когда вы знаете какие файлы или хотя бы директории надо указать, но что если вы, так уж вышло, не работали со всеми частями проекта? Может он большой, может, вы недавно вышли на новую работу и так далее.
@codebase
это ровно про это, вы просто меншните его через собачку и пишете свой запрос. Можно прям в формате вопроса, пример: “где у нас ручка, которая открывает тестовую подписку на 2 недели?”. Курсор хорошо справляется с таким.Только что на работе мне в личку написал фронтендер и задал ровно тот вопрос, что я привел в пример выше, ему нужно было для тестирования его фронтендерских делишек. Знай он курсор, он бы меня даже спрашивать не стал, но ничего, курсор знаю я. У нас довольно большой проект и я работаю над его конкретным куском, так что ответа я не знал. Я спросил курсор, и как прокся передал ответ фронтендеру
—
Возможно, в следующий раз напишу про Notepads. Это относительно новая фича, я ее сперва не понял а потом как понял
Статическая типизация + AI = ❤️
Composer в Cursor с недавних пор поумнел. Когда он вносит изменения в код, он проверяет, не возникло ли ошибок компиляции/линтинга и, если видит их, пытается их пофиксить.
Но, вот, что меня по-настоящему впечатлило - ошибки, которые он допустил, были связаны с тем, что он неправильно сослался на типы, объявленные в коде. Он сам догадался, в какой файл надо заглянуть, чтобы понять, что он сделал не так. Прямо как человек! Затем он внес новые правки и код заработал
Так вот, чтобы вся эта магия работала, язык на котором вы пишете, должен быть статическим. Что это значит? Чем больше (мета) информации о программе зашито в сам исходный код, тем больше у LLM есть контекста. И любые ошибки статического анализа, будь то компилятор, линтер и иже с ними, это точно такой же контекст.
Итог - статические языки намного более AI friendly, чем динамические. На основной работе я вынужден время от времени сталкиваться с javascript, и как человек, который постоянно юзает ИИ для программирования я ощущаю разницу.
Кстати, сюда же любая документация - комментарии в коде, markdown файлы и так далее. Крайне желательно, прямо в репе. Дайте вашему ИИ больше контекста!
Composer в Cursor с недавних пор поумнел. Когда он вносит изменения в код, он проверяет, не возникло ли ошибок компиляции/линтинга и, если видит их, пытается их пофиксить.
Но, вот, что меня по-настоящему впечатлило - ошибки, которые он допустил, были связаны с тем, что он неправильно сослался на типы, объявленные в коде. Он сам догадался, в какой файл надо заглянуть, чтобы понять, что он сделал не так. Прямо как человек! Затем он внес новые правки и код заработал
Так вот, чтобы вся эта магия работала, язык на котором вы пишете, должен быть статическим. Что это значит? Чем больше (мета) информации о программе зашито в сам исходный код, тем больше у LLM есть контекста. И любые ошибки статического анализа, будь то компилятор, линтер и иже с ними, это точно такой же контекст.
Итог - статические языки намного более AI friendly, чем динамические. На основной работе я вынужден время от времени сталкиваться с javascript, и как человек, который постоянно юзает ИИ для программирования я ощущаю разницу.
Кстати, сюда же любая документация - комментарии в коде, markdown файлы и так далее. Крайне желательно, прямо в репе. Дайте вашему ИИ больше контекста!