Андруша пишет код – Telegram
Андруша пишет код
1.25K subscribers
137 photos
1 video
1 file
218 links
Download Telegram
Около 3-4 месяцев назад я начал проект smartbundle, так как заметил странное противоречие: по-моему мнению 99.9% библиотек имеют один и тот же пайплайн сборки, но каждый человек каждый раз зачем-то пилит его с нуля.
Причём каждый раз изобретая свои способы решения одних и тех же проблем, что приводит к тому, что package.json в проектах превращается в священную корову, так как он собирает в себя все костыли совместимости, которые лучше не трогать, так как никто не помнит что там и зачем. И даже больше: люди просто говорят "а мы не можем решить проблему совместимости, сорян" https://blog.isquaredsoftware.com/2023/08/esm-modernization-lessons/

И это чуток мне надоело: я хочу собрать все практики внутри одной тулы, чтобы не приходилось даже знать о всех костылях: пусть бандлер просто соберёт код и не будет меня волновать.

И моя гипотеза о том, что эта штука возможна, походу работает. Как я говорил: имя ему smartbundle https://github.com/XaveScor/smartbundle

И сборка приложения становится как никогда простой: вот пример переноса библиотеки на смартбандл - https://github.com/XaveScor/json-to-ast-es/commit/48d5861529e664c9b2adeb84f5d8e92398f3b997
0 конфигов. 0 доп библиотек. примерно 0 знаний о том во что должен превратиться код. Нужны только минимальные знания о современном package.json и за что отвечает строчка "exports". И всё.
После чего остаётся только перейти в директорию ./dist и опубликовать пакет.

Смартбандл всё ещё на этапе разработки и требует огромного количества фич, а это невозможно добиться без качественной обратной связи. Все обновления и мысли по смартбандлу я веду в @smartbundle. Подписывайтесь, делегируйте смартбандлу сборку ваших библиотек и занимайтесь кодом, а не инфрой.
3👍26🔥14💩5🤡42
Forwarded from Radio Timur
Если вы искали простое приложение, которое может запуститься на iOS и локально гонять для вас LLM (текстовую нейросеть), то тут на днях вышло очень красивое минималистичное приложение Full Moon, которое на данный момент позволяет запускать Llama 3.2 в версии на 1 млрд параметров и на 3 млрд параметров.

Приложение доступно и на iOS, и на iPad OS, и на macOS.
На iPhone 14 Pro 3-миллиардная моделька работает более менее шустро – ответ про Севилью она мне сгенерировала секунд за 10-15.
На M1 Max раз в восемь быстрее :)

Хорошая отправная точка для тех, кто не очень умеет пользоваться LM Studio, веб-интерфейсными решениями и прочими кастомами. Но самое главное – она гоняется локально, а потому будет работать даже тогда, когда у вас нет интернета.

PS. Можно задавать свои систем-промты и есть разбивка по чатам.

PPS. Не реклама!

https://fullmoon.app
👍128🤡2💩1
Если у вас так же максимально испоганился гитхаб, то возможно вы такой же неудачник как и я, и попали в сетку кривых экспериментов. Но благо есть возможность отключить это всё через Feature Preview. С отключенными фичами гитхаб работает хотя бы не так отвратительно.

Прямо сейчас у меня невозможно делать PR'ы, так как эти гении решили на странице создания вывести диффы всех файлов, из-за чего просто переименование 100 файлов наглухо вешает страницу на моём M1 Max в Сафари.
Плюс навигация между табами превратилась в SPA, из-за чего горизонтальное меню начало жить своей жизнью и никак не зависеть от контента, который отображается.

Если вы знаете где есть возможность пожаловаться на эту дичь, чтобы отзыв был замечен - буду очень благодарен ссылке.
👍12😢4🤡3😁2💩21
Если вы пользуетесь ЛЛМками для дебага, то жизнь стала чуть проще.
Не знаю когда эту фичу завезли в консоль, но теперь ошибку можно нормально копировать.

Я пробовал пользовать understand this error, но копирование ошибки в chatgpt приносит куда больше пользы, чем встроенная фича в хром.

P.S. это сейчас есть как минимум в последней канарейке. Возможно, уже доехало до стабильной версии, но это не точно
👍11🤡3💩1
Нейронки, нейронки, нейронки

Весь январь мир бомбил всех новостями о нейронках: дипсик, падение акций, выпуск o3-mini от OpenAI и всё такое. Не проходило и пары суток, чтобы кто-то не что-то не рассказал о чём-то нейроночном.

Я решил посветить весь январь своему "повышению квалификации" и уделить всё своё свободное время, чтобы стать хотя бы 2х программистом.
И у меня бомбит. Такое чувство, что все вокруг хайпуют и обладают каким-то секретным знанием, которым никто делиться не хочет. И все хайпуют, что новые технологии прямо ускоряют их жизнь. Но когда просишь поделиться, то получаешь что-то типа: "ну загрузи всё туды, пук-пук и магически решилось. А если не решилось, то не повезло. Пили ручками".

Если спойлерить результаты: то я правда стал более производительным программистом, но не из-за "магии фигак-фигак и готово", а из-за того, что я начал понимать, как работают мои инструменты.

В этой заметке я хотел бы поделиться великой четвёркой: windsurf.ai, cursor.com, Cline и aider.chat. Это так называемые "агентские IDE" или что-то типа того. Если говорить простыми словами: эта штука гоняет нейронку по вашим хотелкам и редактирует код.

Мне хочется начать с проприетарных штук: windsurf и cursor. Их слоган: напиши что-нибудь, а потом нажми кнопку "сделать красиво". И всё. Никаких гайдов. Их сайты - это огромная рекламная площадка по тому, что нажать кнопку "сделать красиво" - это зашибись. И оно иногда работает. Но часто и не работает. Причём это всё непредсказуемо. В итоге для меня программисты на Cursor или Windsurf выглядят как танцоры с бубном, которые надеются, что эта штука заработает.
Мой вердикт: эти штуки очень хороши, чтобы словить вау-эффект и сделать какую-нибудь одноразовую фигню. Но не более.

Cline и Aider. Это инструменты уже другого полёта. Я архирекомендую почитать их сайты и блог. Они там дают описание, как работает клиент к нейронке, и благодаря этому ты можешь предсказуемо работать с кодом. Простой пример: http://aider.chat/docs/repomap.html. Если вы знаете о такой штуке, то вы не будете как дебил добавлять в контекст все файлы, которые вы считаете нужными для работы нейронки и всё такое. Основной плюс опенсорса в данной части: они рассказывают, как они решают проблемы. И это делает инструменты предсказуемыми.

Другое преимущество опенсорсных клиентов: они просто впереди по фичам. К примеру, архитект мод появился в Aider ещё 4 месяца назад. И это прекрасная штуковина: на практике ребята выяснили, что reasoning-модели хорошо решают, что надо делать, но фигово пишут код. А Sonnet фигово думает, но код пишет просто шикарно. В итоге работа выглядит так:

ты общаешься с o3-mini о том, в чём заключается фича, строишь километровый промпт, а потом он скармливается Sonnet, который уже пишет прекрасный код. Ни в одной платной "агентной IDE" подобного тупо нет. Я не знаю, с чем это связано, но опенсорс сейчас впереди всех этих платных продуктов.

Но не нужно думать, что опенсорс - это бесплатно. На практике выходит, что опенсорс даже дороже, чем платные продукты. Как минимум потому, что вы в нейронки ходите по API, а не платите ежемесячно подписку.
И тут только вам выбирать: магия и дёшево или предсказуемо, лучше и дорого. Я выбрал второй вариант.
Второй минус: вы превращаетесь в менеджера. А значит, нужно смириться, что результат работы не будет 1 в 1, как вы хотите. Тут всё как с человеком: вы делегировали задачу, и её сделали чуток криво. Но зато очень быстро. Как по мне - нормальный компромисс.

Плюс по итогам этого месяца я понимаю, что нейронки - это даже не будущее. Это настоящее. И если вы не освоите и не интегрируете их к себе в работу, то вы будете очень позади ваших коллег.
Будущее уже пришло, увы, пора меняться.

Продолжение тут: https://news.1rj.ru/str/xavescor_code/252
👍20🤡4💩31
Полезные ссылки:
aider.chat - рекомендую прочитать всё от корки до корки. Это концентрированная дока про то как работают клиенты к нейронкам
https://docs.cline.bot - дока по Cline. Менее полезная, с моей колокольни, но тоже важный источник данных
https://cline.bot/blog - Блог Cline, где они пишут просто свои мысли
https://aider.chat/blog/ - тоже блог, но от aider
Причём рекомендую начать именно с блогов, а не с доки. Они написаны более живым языком и позволяют побыстрее впрыгнуть в то, что сейчас творится в "ai мире"

Этого достаточно чтобы прочитать за пару суток и осознать, а дальше практика/практика/практика. Советую запасать токены. Они вам понадобятся.

Если кто-то уже использует aider/cline или доступ по апишке, то можете поделиться сколько денег в месяц вы тратите на ИИшки, какие именно и почему. Это очень интересная и важная тема, которую надо популяризировать. Потому что не нужно бояться тратить деньги, чтобы работать комфортнее.

Я лично за январь потратил на sonnet+o1-mini/o3-mini 80 долларов на личные эксперименты и дофига денег компании.

===
Спасибо телеге, что без спроса распилила посты. Начало тут: https://news.1rj.ru/str/xavescor_code/251
👍19💩7🤡4
И хочу ещё порекламировать нейронки, если вы ещё не.

Где-то 2-3 месяца назад гугл начал устраивать атракционы невиданной щедрости: по адресу aistudio.google.com, гугл позволял гонять в безлимитном режиме их самую новую нейронку gemini 2 в обмен на то, что они могут обучаться на данных которые им предоставили.

И почему я обожаю опенсорс. Потому что https://aider.chat/docs/usage/copypaste.html
Aider имеет функции, аналогов которых просто нет ни у кого. И вы можете бесплатно(спасибо гуглу) работать через мощнейшую нейронку почти без гемора.

Сейчас гугл немного прикрыли лавочку, так как релизнули gemini 2, но если не хочется платить, то вы можете продолжать использовать экспериментальную версию вместо релизной. Там хоть и появились лимиты, но они всё равно очень большие.

Прияём меня удивляет насколько свободная эта модель. У неё практически нет цензуры. Да, порно-рассказ про то как усама бен ладен заходит с автоматом в детский сад, она не сгенерирует, но если вы уберёте несовершенолетних из промпта и переименуете усаму в австрийского художника Митлера, то всё пойдёт как по маслу. Максимум что вам покажут - это плашку, что в тексте задетекчено насилие.

Я под большим впечатлением от того что творит гугл и всем рекомендую пользоваться их нейронкой пока она бесплатна. А если вы против обучения на ваших данных, то цены вас насмешат после openai.
👍143💩3🤡3❤‍🔥2
Тут произошла небольшая пушка, которая потенциально сулит нам микрореволюцией
https://x.com/sama/status/1889755723078443244

ТЛДР: обычных GPT моделей больше не будет. Будут только ризонинг.
Это революция, так как прямо сейчас самым эффективным способом работы является разделение работы на 2 части: с помощью ризонинга вы планируете работу и описываете её, а сам код пишет уже gpt модель. Пока что o3-mini на моей работе всё же хуже чем антропик по части написания кода. Но в будущем походу мы будем менять то как мы работаем и будем как-то подстраиваться под только ризонинг модели, так как GPT перестанут развиваться.

Практика показала, что OpenAI действует максимально бизнесово: не выпускают ничего пока их не догонят конкуренты. Не так давно появились модели от DeepSeek(которые, кмк, не дотягивают даже до o1-mini модели) и гугла(кмк, паритет), поэтому openai анонсирует новые модели.
Вполне возможно, я заменю клод 3.5 соннет на chatgpt 4.5 в своём пайплайне, но это не точно. Всё будет зависеть от точности и скорости работы. Но как минимум мы имеем подтверждение того, что опенаи считает, что конкуренты их уже догнали, так что не стесняйтесь смотреть на gemini 2.0.

Так же у меня есть планы записать небольшое видео на ютуб, в котором я подведу итоги как же в реальности работать программисту с кодом через нейронки и почему это ни в коем случае не кнопка "сделать красиво". Но оказалось, что запись видео и всего такого - чуток гемор для меня, поэтому хочется узнать скольки именно людям подобная фигня нужна. Просьба, поставьте палец вверх этому посту, если вам интересно подобное видео, так как тратить 3-4 часа своего времени просто так желания маловато.

Edited: Ну и если есть желание, чтобы я затронул какие-то конкретные вопросы - велком ту коммент.
👍1341🔥1💩1🤡1🌭1🍌1👻1
docs driven development
Пока я готовлю видео, поделюсь ещё одной мыслёй.

Как я писал ранее, люди очень плохи в том, чтобы формулировать задачи. Зачастую нам просто лень, так как мы подразумеваем, что контекст задачи есть в голове и у других людей и поэтому его не надо уточнять. Но это не так. И это проявляется как на практике, где время по согласованию задачи растёт по экспоненте от количества людей, так и с нейронками.

Первое, что я увидел - это был архитект мод: режим в котором ты сначала заставляешь нейронку формулировать задачу, а потом заставляешь выполнять задачу, относительно этой формулировки. И это работает, но не так хорошо как хотелось бы. У меня ни разу не получалось сделать задачу полностью с помощью этого метода. Нейрока тупо забывала свои же инструкции.

Поэтому я выработал другой подход: docs driven development
1. Генерим какую-то документацию к библиотеке
2. Скармливаем документацию нейронке и говорим выполнить задачу по ней
3. Смотрим что она предлагает и активно спорим, если она что-то делает не так
4. В момент, когда мы понимаем, что нейронка делает как нам хочется, запрещаем ей решать задачу и говорим ей исправить документацию: нейронка должна описать почему она не поняла задачу только по доке и что нужно в этой документации исправить
5. Обрываем сессию и возвращаемся ко второму шагу.

Почему документация важна? Потому что я прихожу к тому, что с нейронками эффективно можно жить только в монорепе с кучей мелких библиотек. Увы, и никак иначе. И документация нужна для того, чтобы нейронки понимали как работают соседние модули.

Подход выше мне упрощает работу очень сильно, так как по документации можно сразу сгенерить и тесты любых видов, и отдавать эту либу людям, что упрощает работу других людей. Одни плюсы.

Из минусов: я пока не уверен, что это прямо правильный путь. В интернете тупо 0 инфы о таком подходе. Как будто я первый кто до этого додумался. Но, главное что оно работает
👍15🤔5🤡2💩1😐1
Андруша пишет код
Полезные ссылки: aider.chat - рекомендую прочитать всё от корки до корки. Это концентрированная дока про то как работают клиенты к нейронкам https://docs.cline.bot - дока по Cline. Менее полезная, с моей колокольни, но тоже важный источник данных https://cline.bot/blog…
https://platform.openai.com/docs/guides/reasoning-best-practices

Ну и оказывается у openai тоже есть несколько годных статей про ИИшки в дополнение к вышеописанных разделам.

ТЛДР: как выбрать нужную модель для задачи.

Если вы не умеете формулировать задачу, то вам к ризонинг модели. Если можете - вам достаточно ГПТ.

А почему так - по ссылке выше.
👍82💩1🥱1
Я стараюсь не материться в канале, но они чо ебанулись с такими ценами? Какие 75/150 баксов?

https://openai.com/api/pricing/

А я считал 15 долларов у антропика космосом
😁11🥰2😱2🤡2💩1
https://yandex.cloud/ru/docs/foundation-models/

Я тут в рамках видоса попробовал YandexGPT, так как по идее они должны быть лучше для кириллических текстов чем конкуренты. Всё же Яндекс специализируется на русскоязычном рынке. И это правда так:
- у них лучше токенизация(до 25% процентов эффективнее чем openAI)
- их тексты не такие машинные, на мой взгляд(этот текст почти полностью сгенерирован YandexGPT с моими небольшими правками)
- за счёт лучшей токенизации результат получается дешевле.

И я бы перелез бы на их нейронку для, к примеру, текстов в этом бложике, но блин:
- У них собственный протокол общения с сервером
- Из SDK доступен только питон и HTTP. Всё остальное извольте писать самому. Использовать уже де-факто стандартный openAI API - не, это не для Яндекса. Ведь все создатели тулов точно прогнутся под Яндекс. Не то что какой-то Антропик, к примеру. Или DeepSeek, или Grok, или кто угодно другой.
- Совершенно ублюдочная система монетизации: есть не только токены, но и юниты, которые как-то между собой связаны. И вот после этого приседай с математикой, чтобы примерно прикинуть затраты
- Документация - это рак. Удачи узнать размер контекстного окна у какой-нибудь из моделей. Знаете, где я нашёл его? Верно. В ченжлоге. Пососите OpenAI, которые практически на главной вывешивают все тарифы. https://openai.com/api/pricing/
- Ну и контекстное окно в 32к токенов - это смех.
- Демо токенизации - это тоже идиотизм. Вот почему openai сделали демку https://platform.openai.com/tokenizer, а у вас только поход через апи? Вы напрямую хвастаетесь в пресс-релизе о том что у вас зашибенная токенизация русского языка.

И самое тупое, что почти всё - это пролёты в маркетинговой части. Такое чувство, что целью было максимально вбить палки в колёса, чтобы желание полностью было отбито. И у меня оно почти что отбито. Если в GPT5, релиз которого обещали через пару месяцев, поддержка русского языка будет на уровне, то Яндексовую модель можно будет выкидывать на помойку всем, кто не находится под страхом санкций и всего такого
👍14😁2🤡2💩1💯1
Напоминание о важности результата

У нас в проекте есть кодген openAPI схемы, который генерирует нам типобезопасный код для работы с API. Т.е. мы теперь вместо написания fetch(...) можем напрямую писать getUser() в коде и не заморачиваться над тем как корректно отсылать запросы.

Всё было хорошо пока не пришла эра ИИ. Наш кодген генерировал по 1 файлу на сервис. И этот файл мог достигать монструозных размеров: до 100-150к токенов на файл. И никакой клиент просто не вытягивал подобное: CLine вылетал с превышением контекста, а всякие курсоры просто забивали на его контент. В общем, решение нашлось - можно разбить файл на кучу файлов, каждый из которых будет содержать ровно по 1 функции.

Есть ещё один важный нюанс: мы используем Bazel для того чтобы поддерживать нашу монорепу. И у него есть один нюанс: все его задачи обязаны явно описывать output-файлы. Причём поддержки директорий тупо нет в нормальном исполнении. А в плане выше невозможно предугадать какие файлы будут созданы из-за того, что у каждого сервиса бекенда разное количество эндпоинтов. Или же можно, но тогда пришлось бы тупо дублировать логику в базере и в кодгене.

И тут пришло в голову отвратительнейшее решение: создать 100500 файлов 1.ts, 2.ts, ..., N.ts и руками подобрать N. Тогда мы точно будем знать какие файлы будут сгенерены и сможем указать их в параметрах задачи базеля.
Для сервисов, у которых эндпоинтов меньше N просто оставляем лишние файлы пустыми.
Решение максимально кривое и отвратительное, но оно работает. И я сэкономил наверно неделю времени, которое мог бы потратить на нормальное решение.

После этой задачи я чуток прикинул то что делал раньше и понимаю, что мог бы сэкономить кучу времени, если бы не работал над красотой и обходом костылей. Но если поправить костыль не так сложно(до 1 дня), то зачастую я просто не замечаю сколько времени я трачу на подобный рефакторинг.
Возможно, моё мнение сильно изменилось после того как я начал управлять ИИшкой и забивать на качество кода. Возможно, пора забивать и на качество своих решений, а не только на качество решений ИИшки.
👍10💩72🤡1😭1
Claude MAX

Cursor IDE сейчас одна из самых продвинутых IDE с возможностью пошерудить нейронками с точки зрения цена/качество. Всего лишь за 20 баксов вы получаете как агента, так и продвинутый автокомплит, так как свякие прибамбахи типа RAG'а для документации и подобного.

Но есть нюанс: курсор, как и все остальные продукты, ходит в API за денюжку за каждый запрос(а точнее за X токенов). И предоставлять безлимитное использование нейронками, если тебе каждый запрос попадает в копеечку - это очень странно. Особенно на фоне недавнего анонса Claude Code, который спокойно может жрать токены миллионами и тратить деньги безлимитно.

И даже если у них специальные бизнес-контракты с провайдерами нейронок с 99.9% скидками, то они всё равно пролетают по лимитам, так как поехавших и отправляющих запросы к нейронкам 24/7 вайбкодеров предостаточно. Поэтому у них есть не только особые контракты, но и, теперь подтверждённые, лимиты на использование нейронок. Непонятно что именно, но я, исходя из использования, как и другие(достаточно пошариться по сети) считаю, что это лимиты на размеры контекстного окна. Но это не точно.

Теперь же Cursor представляет особый тариф Claude MAX. По огромной цене 0.05$ за запрос или за MCP call. Что является просто огромной суммой для такого уровня услуг. Но зато у вас наконец-то есть возможность ходить к claude без ограничений. Эта сумма большая, так как в процентах 70-80 случаев прямой поход к claude будет на порядки дешевле. И это если не учитывать MCP вызовы.
И представление этого решения является максимально странным, так как это не ответ ни на что. Конкуренты не показывали ничего на что надо так отвечать и мне кажется, что у курсора проблемы с бизнес моделью, когда каждый платный пользователь просто уводит их в минус.

А со своей стороны я рекомендую пользоваться Cline или RooCode, которые не придумывают разные непрозрачности, чтобы сэкономить на качестве вашей работы. По простой причине - это опенсорс и они не хотят от вас денег. А в качестве бекенда можно спокойно использовать Github Copilot, который по такой же подписке даёт безлимитное количество запросов.

P.S. из интересного, в zed тоже не так давно появилась интеграция с копайлотом. Возможно, его можно как-то вытащить и заиспользовать у себя в работе, раз майки одобряют его работу в разных приложениях. Но это уже другая история
👍112🤔2🤡2💩1
https://goblin.tools

Набор бесплатных тулов, которые с помощью ИИшки делает "магию". Мне больше всего нравится тудушка: явно расписывает шаги, которые требуется выполнить для достижения цели.

Отключать мозг и просто выполнять что говорят становится ещё проще
👍15💩4🥴3🤡1
удалил(-а) Вас из группы

UPD: если вы пропустили смишнявку на 1 апреля, то она выглядела так
🤡69🤣15💩5😁3🤯3😱2🎉2🥴21🥰1
Если вы находитесь в другом городе и устали, нужен интернет и розетка, то попробуйте на карте поискать ближайшую публичную библиотеку.

Если вы в последний раз были в ней лет 20-30 назад и у вас остались совковые впечатления, то всё поменялось. Сейчас библиотеки - это бесплатные мини коровкинги без переговорок.
Так что не стесняйтесь. Вам будут только рады.
👍305💩2🤡2
Сегодня решил чуток повайбкодить и опять обделался, так как приходится включать мозг(

Особенно разочаровало то, что дизигнеры всё же нужны и не отправляются в отдел кадров. Запрос к чатгпт или же гуглу простой:

Нарисуй схематическое упражнение "rope press-down". В схеме должен быть мускулистый мужчина. Мужчина слева. Тренажёр справа. У мужчины должны быть подсвечены трицепсы красным, так как они работают во время упражнения. Бицепсы же не должны подсвечиваться.


Итог: получаем что-то похожее(в случае чатгпт) и что-то не очень похожее(в случае гугла). И вот уточнения перестают помогать. Картинка или портится полностью, или же делает что-то не то.
Впечатления полностью совпадают с программированием: 80% работы выполняется, а остальное приходится руками дорабатывать напильником.
Человеки, увы, пока что ещё нужны. Специфичность - это пока что то в чём мы превосходим железки.
😁151💩1🤡1💯1