🐍 Вайб-кодинг на Питоне
Начал вайбкодить на питоне, ощущения пока так себе. Весьма неожиданно, учитывая, что в трейне LLMов питона намного больше, чем Go.
Все, что я говорю, надо умножать на 0.7, потому что опыта с питоном у меня не то, чтобы много, и в какой-то степени, мой дискомфорт обоснован тем, что меня выдернули из привычного болота. Однако, как минимум доля правды в моих словах должна быть.
Итак, я думаю, причины следующие:
— Питон намного сильнее зависит от сторонних библиотек, которые часто обратно-несовместимо обновляются, в то время как в Go богатая стандартная библиотека, API который стабилен уже много лет
— У питона нет из коробки статической типизации (а LLM + статические типы = ❤️), из-за чего, если не приложить много усилий, у тебя в IDE (по крайней мере в VSCode и потомках, в том числе Cursor) могут не подхватываться ошибки, и, соответственно, агент в чате их не увидит. То есть в проекте на Go итерация выглядит так: агент наговнокодил, компилятор ударил по рукам, агент это увидел и пошел думать над своим поведением
— Питон это тоже плохой язык как и JS, но получше. Есть ощущение, что тебя подталкивают к практикам, которые в индустрии уже объективно считаются плохими: глобальные переменные, сайд-эффекты при импорте, наследование вместо композиции, и так далее. Я еще не дошел до знаменитой "магии", когда можно перегрузить операторы, так, чтоб сложение чисел заказывало бургер в Макдональдсе через HTTP вызов, но, думаю, все еще впереди. А, ну и, конечно, асинхронщина. Если не знаете, почему
В целом есть ощущение, что все на изоленте держится. Если вы пишете на Python/TypeScript, я советую вам попробовать Go. Вам придется освоить чуть более низкоуровневые концепции, и привыкнуть к немного уродливому на первый взгляд, и более многословному, безусловно, синтаксису, но, боже, это того стоит, вы никогда не посмотрите назад. Вы познаете, что такое действительно хороший developer experience когда код, который вы пишете, просто, сука, работает, и вам не надо разбираться с пакетными менеджерами, тест-раннерами, линтерами-хуинтерами. Разработчики языка обо всем позаботились. Садись, и пиши код.
P.S. — Пишу для истории, посмотрим, как будет дальше.
Начал вайбкодить на питоне, ощущения пока так себе. Весьма неожиданно, учитывая, что в трейне LLMов питона намного больше, чем Go.
Все, что я говорю, надо умножать на 0.7, потому что опыта с питоном у меня не то, чтобы много, и в какой-то степени, мой дискомфорт обоснован тем, что меня выдернули из привычного болота. Однако, как минимум доля правды в моих словах должна быть.
Итак, я думаю, причины следующие:
— Питон намного сильнее зависит от сторонних библиотек, которые часто обратно-несовместимо обновляются, в то время как в Go богатая стандартная библиотека, API который стабилен уже много лет
— У питона нет из коробки статической типизации (а LLM + статические типы = ❤️), из-за чего, если не приложить много усилий, у тебя в IDE (по крайней мере в VSCode и потомках, в том числе Cursor) могут не подхватываться ошибки, и, соответственно, агент в чате их не увидит. То есть в проекте на Go итерация выглядит так: агент наговнокодил, компилятор ударил по рукам, агент это увидел и пошел думать над своим поведением
— Питон это тоже плохой язык как и JS, но получше. Есть ощущение, что тебя подталкивают к практикам, которые в индустрии уже объективно считаются плохими: глобальные переменные, сайд-эффекты при импорте, наследование вместо композиции, и так далее. Я еще не дошел до знаменитой "магии", когда можно перегрузить операторы, так, чтоб сложение чисел заказывало бургер в Макдональдсе через HTTP вызов, но, думаю, все еще впереди. А, ну и, конечно, асинхронщина. Если не знаете, почему
async/await это антипаттерн в programming language design то бегом читать what color is your functionВ целом есть ощущение, что все на изоленте держится. Если вы пишете на Python/TypeScript, я советую вам попробовать Go. Вам придется освоить чуть более низкоуровневые концепции, и привыкнуть к немного уродливому на первый взгляд, и более многословному, безусловно, синтаксису, но, боже, это того стоит, вы никогда не посмотрите назад. Вы познаете, что такое действительно хороший developer experience когда код, который вы пишете, просто, сука, работает, и вам не надо разбираться с пакетными менеджерами, тест-раннерами, линтерами-хуинтерами. Разработчики языка обо всем позаботились. Садись, и пиши код.
P.S. — Пишу для истории, посмотрим, как будет дальше.
Telegram
AI Coder 🦾
Почему JS это плохой язык?
Написал коротенькую статью на Хабр (кстати, у кого есть инвайт, плюсаните плиз).
Спойлер: статья скорее для разработчиков, но никакого хардкора в ней нет. В ней даже кода нет.
Написал коротенькую статью на Хабр (кстати, у кого есть инвайт, плюсаните плиз).
Спойлер: статья скорее для разработчиков, но никакого хардкора в ней нет. В ней даже кода нет.
"I'm not worried about an AI that will pass the Turing test, I am worried about one that will fail it on purpose."
Context7 MCP в Cursor
Недавно писал, чтобомблю негодую от вайб-кодинга под Python и среди причин была такая:
> Питон намного сильнее зависит от сторонних библиотек, которые часто обратно-несовместимо обновляются
Для меня как для вайб-кодера это вылилось в следующую проблему: ИИ сгенерил что-то, оно не ловится линтером, но и не работает, падает в рантайме. Часто причина была, как оказалось, в том, что в трейне ЛЛМа была устаревшая инфа по API той или иной библиотеке.
В Go ты с этим сталкиваешься не так часто, там обратная совместимость возведена в культ, да и сломать ее сложнее из-за настоящей компиляции. А главное, тебе тупо не так уж часто нужны сторонние библиотеки. В Питоне же ситуация плюс-минус как в JS. Ну, может, немного лучше.
Коллега подсказал решение. Надо просто добавитьстарый советский MCP под названием Context7. Я уже писал однажды про MCP, у меня так и не дошли руки запилить свой, а, как сказал Фейнман, what I cannot create I do not understand, так что не я все еще в позиции "не понимаю на 100%", но с точки зрения юзера Cursor мне понятно, что у LLM агента появляется +1 доступный tool call. Теперь перед тем как что-то сгенерировать, у него есть возможность дернуть этот Context7 и через него получить настоящую актуальную документацию. RAG во всей красе.
https://github.com/upstash/context7
Смотрите раздел Installation, например, Install in Cursor.
Недавно писал, что
> Питон намного сильнее зависит от сторонних библиотек, которые часто обратно-несовместимо обновляются
Для меня как для вайб-кодера это вылилось в следующую проблему: ИИ сгенерил что-то, оно не ловится линтером, но и не работает, падает в рантайме. Часто причина была, как оказалось, в том, что в трейне ЛЛМа была устаревшая инфа по API той или иной библиотеке.
В Go ты с этим сталкиваешься не так часто, там обратная совместимость возведена в культ, да и сломать ее сложнее из-за настоящей компиляции. А главное, тебе тупо не так уж часто нужны сторонние библиотеки. В Питоне же ситуация плюс-минус как в JS. Ну, может, немного лучше.
Коллега подсказал решение. Надо просто добавить
https://github.com/upstash/context7
Смотрите раздел Installation, например, Install in Cursor.
Telegram
AI Coder 🦾
🐍 Вайб-кодинг на Питоне
Начал вайбкодить на питоне, ощущения пока так себе. Весьма неожиданно, учитывая, что в трейне LLMов питона намного больше, чем Go.
Все, что я говорю, надо умножать на 0.7, потому что опыта с питоном у меня не то, чтобы много, и в…
Начал вайбкодить на питоне, ощущения пока так себе. Весьма неожиданно, учитывая, что в трейне LLMов питона намного больше, чем Go.
Все, что я говорю, надо умножать на 0.7, потому что опыта с питоном у меня не то, чтобы много, и в…
Писал про новую книгу Юдковски, она таки вышла. Я читать не буду, скорее всего. Не потому что не хочу, а потому что не вывожу. Слишком много всего надо поглощать итак. Тем не менее, уверен, там есть годные тейки. Заказать можно на Амазоне. Вдруг, кто-то хочет поддержать автора ГПиМРМ копейкой
https://en.wikipedia.org/wiki/If_Anyone_Builds_It,_Everyone_Dies
https://en.wikipedia.org/wiki/If_Anyone_Builds_It,_Everyone_Dies
Telegram
AI Coder 🦾
У Элиезера Юдковски (автор Гарри Поттера и Методов Рационального Мышления, а также специалиста-самоучки по ИИ) выходит новая книга, на этот раз на тему ИИ-алармизма.
Пока только на английском, но в террии вы можете переводить ее для себя сами через LLM.…
Пока только на английском, но в террии вы можете переводить ее для себя сами через LLM.…
Please open Telegram to view this post
VIEW IN TELEGRAM
AI Coder 🦾
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезные обновления в Cursor
Пол Грэм, известный программист на Lisp, однажды сказал:
> When I see patterns in my programs, I consider it a sign of trouble.
Он имел в виду, что необходимость повторять одно и то же действие, пусь даже с разными деталями, есть признак недостатка абстракций.
В прошлом я писал про паттерны работы с Cursor (раз, два, три) и, вы знаете, всякий раз, повторяя их думал — "жалко, что он не умеет этого из коробки". На самом деле, оно и не удивительно. Вся эта AI-based IDE история, считай, вчера родилась.
Хорошо, однако, что прогресс не стоит на месте, и курсор продолжает показывать себя, для меня лично, хорошим продуктом. В их последних обновлениях они добавили много всего, но я напишу лишь о двух вещах: "Plan Mode" и "Slash Commands".
1️⃣ Plan Mode
Это удобная реализация из коробки того паттерна, о котором я писал прежде, когда вместо того чтобы сразу требовать от агента изменений, вы сперва итеративно работаете с ним над планом, и только когда план вас устраивает, вы отправляете агента делать вещи. Причем, открываете для этого новый чат, потому что в старом контекстное окно как правило успевает подойти к своим пределам. Теперь это просто режим чата, на ряду с agent/ask.
Причем, как ChatGPT в DeepResearch-режиме, курсор сперва задаст какие-то наводящие вопросы. Это тоже, кажется, крутой паттерн, запромптить модельку так, чтобы она сперва сфокусировалась на том, чего не хватает, а уже потом генерировала план действий.
Когда план будет готов, он откроется перед вами в Notion-подобном markdown-редакторе, прямо внутри Cursor (VSCode так из коробки и не сделали подобного) и вы сможете внести в план любые изменения руками. Ну и, конечно, изменения можно вносить через чат с агентом.
Plan Mode это реализация здорового человека, без плясок с бубном. А еще это золотая середина между зумерскимvulnerability as a service вайб-кодингом, когда ты не понимаешь, что происхолит, и бумерским погромированием, где ты по памяти можешь назвать строчку и отступ у любой переменной.
2️⃣ Slash Commands
UI как в Notion, но внутри чат-бота. Slash command это по факту markdown файл который лежит в
Из коробки команда есть команда
Я написал свой summarize, промпт будет в комментах, а также у меня есть
Пол Грэм, известный программист на Lisp, однажды сказал:
> When I see patterns in my programs, I consider it a sign of trouble.
Он имел в виду, что необходимость повторять одно и то же действие, пусь даже с разными деталями, есть признак недостатка абстракций.
В прошлом я писал про паттерны работы с Cursor (раз, два, три) и, вы знаете, всякий раз, повторяя их думал — "жалко, что он не умеет этого из коробки". На самом деле, оно и не удивительно. Вся эта AI-based IDE история, считай, вчера родилась.
Хорошо, однако, что прогресс не стоит на месте, и курсор продолжает показывать себя, для меня лично, хорошим продуктом. В их последних обновлениях они добавили много всего, но я напишу лишь о двух вещах: "Plan Mode" и "Slash Commands".
1️⃣ Plan Mode
Это удобная реализация из коробки того паттерна, о котором я писал прежде, когда вместо того чтобы сразу требовать от агента изменений, вы сперва итеративно работаете с ним над планом, и только когда план вас устраивает, вы отправляете агента делать вещи. Причем, открываете для этого новый чат, потому что в старом контекстное окно как правило успевает подойти к своим пределам. Теперь это просто режим чата, на ряду с agent/ask.
Причем, как ChatGPT в DeepResearch-режиме, курсор сперва задаст какие-то наводящие вопросы. Это тоже, кажется, крутой паттерн, запромптить модельку так, чтобы она сперва сфокусировалась на том, чего не хватает, а уже потом генерировала план действий.
Когда план будет готов, он откроется перед вами в Notion-подобном markdown-редакторе, прямо внутри Cursor (VSCode так из коробки и не сделали подобного) и вы сможете внести в план любые изменения руками. Ну и, конечно, изменения можно вносить через чат с агентом.
Plan Mode это реализация здорового человека, без плясок с бубном. А еще это золотая середина между зумерским
2️⃣ Slash Commands
UI как в Notion, но внутри чат-бота. Slash command это по факту markdown файл который лежит в
.cursor, который содержит произвольный текст, и этот файл можно заменшнить из чата, по сути как просто маркдаун файл, но чуть-чуть быстрее, как special case.Из коробки команда есть команда
/summarize, которая должна сжимать контекстное окно. По идее это должна быть реализация паттерна, про который я тоже писал прежде, когда ты руками "просишь ИИ сгенерировать новый промпт, который ты потом вставишь в новый чат", но у меня почему-то не завелось. Точнее, он не просто делал саммари, а попутно еще и какие-то правки в код вносил.Я написал свой summarize, промпт будет в комментах, а также у меня есть
/review для проверки изменений, сделанных чат-ботом. Работает хуже, чем когда делал руками, потому что на вход также шел оригинальный промпт-инструкция, на основе которой агент генерировал свои изменения, но зато из коробки. Может, в будущем удастся докрутить.Telegram
AI Coder 🦾
7 раз Отмерь, 1 раз Отрежь
Дано: Claude 4 + Cursor + проект на Go.
Задача: реализовать фичу, которая затрагивает вообще всё — схему базы данных, SQL запросы, локализацию, конфигурацию, бизнес-логику и так далее. Сможем сделать через автономного агента?…
Дано: Claude 4 + Cursor + проект на Go.
Задача: реализовать фичу, которая затрагивает вообще всё — схему базы данных, SQL запросы, локализацию, конфигурацию, бизнес-логику и так далее. Сможем сделать через автономного агента?…
Бенчмарк LLM-трейдеров
Уже была арена пророков, теперь пусть будет "арена трейдеров". Бенчмарк как ИИ-агенты с разными модельками под капотом торгуют криптой в реальном времени. Прям щас в топе DeepSeek🇨🇳
https://nof1.ai/
Уже была арена пророков, теперь пусть будет "арена трейдеров". Бенчмарк как ИИ-агенты с разными модельками под капотом торгуют криптой в реальном времени. Прям щас в топе DeepSeek
https://nof1.ai/
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
AI Coder 🦾
Арена Пророков
Возможно, вы слышали про https://www.prophetarena.co/ — это некий аналог polymarket. Модели предсказывают будущее по каким-то вопросам, от погоды до политики. Мне стало интересно, как это работает. А именно, как строится его величество контекст.…
Возможно, вы слышали про https://www.prophetarena.co/ — это некий аналог polymarket. Модели предсказывают будущее по каким-то вопросам, от погоды до политики. Мне стало интересно, как это работает. А именно, как строится его величество контекст.…
ChatGPT Schedules
Придумал кейс для ChatGPT's "Scheduled tasks" фичи — каждое утро писать, сколько дней осталось до выходных и до ЗП.
Эта фича существует уже относительно давно, но как-то осталась неоправданно без внимания с моей стороны. Я все думал, какое же ей найти применение, и наконец-то придумал.
Решил без каких-то сложных интеграцией с календарями и прочим. Просто письмо, утром каждый день.
Как сделать свой schedule:
1. Открываем ChatGPT web client
2. Settings -> Schedules -> Manage
3. Настраиваем Schedule — промпт, как часто и в какое время (см. скрин для примера)
P.S. — Вообще эта штука может и более сложные вещи. У нее как минимум есть доступ в интернет. Может ли она в deep research или agent capabilities к сожалению мне неизвестно.
Пишите в комменты, если, вдруг, юзаете это или что-то похожее.
Придумал кейс для ChatGPT's "Scheduled tasks" фичи — каждое утро писать, сколько дней осталось до выходных и до ЗП.
Эта фича существует уже относительно давно, но как-то осталась неоправданно без внимания с моей стороны. Я все думал, какое же ей найти применение, и наконец-то придумал.
Решил без каких-то сложных интеграцией с календарями и прочим. Просто письмо, утром каждый день.
Как сделать свой schedule:
1. Открываем ChatGPT web client
2. Settings -> Schedules -> Manage
3. Настраиваем Schedule — промпт, как часто и в какое время (см. скрин для примера)
P.S. — Вообще эта штука может и более сложные вещи. У нее как минимум есть доступ в интернет. Может ли она в deep research или agent capabilities к сожалению мне неизвестно.
Пишите в комменты, если, вдруг, юзаете это или что-то похожее.