gram news
Аватар канала 🇺🇦 Math.random(): community of engineers

🇺🇦 Math.random(): community of engineers

@mathrandomcommunity

Інженерний канал Андрія Кучеренка, автора jscpd і Gangsta Agents. AI-розробка на JS/TS: агенти, spec-driven development, якість коду, ціна стека в токенах. Розбори, методики та добірки курсів. @and

1,258подписчиков

Открыть канал

Последние посты

  • 🇺🇦 Math.random(): community of engineers

    21 сент., 14:01

    Ваш агент платить за генерацію тексту там, де йому потрібна відповідь «так» або «ні». Таке рішення можна віддати моделі, яка тексту не генерує взагалі.15 вересня TypeSafe AI відкрила ранній доступ до Jev. Засновник - Diogo Almeida, який в OpenAI працював над методами, що лягли в основу ChatGPT. Jev - перша модель класу, який вони називають System One: неструктурований стан на вході, типізовані рішення з імовірностями на виході.У Jev немає генерації рядків. Натомість:⏺відповідь завжди відповідає схемі, заданій наперед - помилок типів немає за побудовою; ⏺кожна відповідь іде з каліброваною імовірністю: вища впевненість - вища точність; ⏺усі відповіді рахуються паралельно одним запитом, а не токен за токеном.{ "model": "jev-latest", "state": "Третій день не можу підключити Stripe,
    Иллюстрация к посту канала 🇺🇦 Math.random(): community of engineersИллюстрация к посту канала 🇺🇦 Math.random(): community of engineers
    231543Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    17 сент., 08:44

    jscpd 5.2.1: куди рухається дублюванняОдин запуск jscpd показує, скільки дублювання в коді сьогодні. Куди воно рухається, з одного запуску не видно.У 5.2.1 зʼявився прапорець --history. jscpd бере кожен коміт у git-діапазоні, чекаутить його в тимчасовий detached worktree (той самий механізм, що й у --baseline-from-ref), сканує з конфігурацією поточного запуску і друкує серію прямо в терміналі: графік і таблицю зі зміною між точками. Остання точка — working, тобто поточний стан разом із незакоміченими змінами.jscpd src --history v5.0.0..HEAD jscpd src --history-since 2026-01-01 jscpd src --history main --history-since 2026-06-01 --history-every 5 --history-limit 12Що дає --history:— вісь Y графіка йде від мінімуму до максимуму серії, тому дрейф з 2.0% до 2.4% видно, а не губиться в пласкій лінії на шкалі від нуля— з --threshold, коли поточне значення нижче порогу, jscpd
    423видео663Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    14 сент., 05:23

    Ти написав скіл для агента. Але як дізнатись, що він працює?11 вересня Claude Code отримав claude plugin eval: команда проганяє eval-набір плагіна проти самого Claude Code і повертає скорований результат, який можна відтворити. На виході - JSON і HTML-звіт.⏺ Чому це важливоСкіл - не код. Це інструкція природною мовою, яку модель виконає трохи інакше сьогодні і зовсім інакше після оновлення. Компілятор її не перевірить. Лінтер теж.Досі єдиним способом зрозуміти, що скіл працює, було запустити його руками кілька разів. Це не перевірка. Це враження.⏺ Що класти в eval-набірМоя думка, не документація. Без цих трьох кейсів набір мало що доводить:Скіл спрацював - найочевидніший і найменш цінний, майже завжди зелений.Скіл не спрацював там, де не мав. Скіл, який вмикається не там, гірший за відсутній: з'їдає
    525видео7541Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    13 сент., 15:03изменён

    Агент пише швидше, ніж ти встигаєш читати? Ось 10 перевірок, які зменшують обсяг коду для ручного рев'ю.Evil Martians зібрали десять перевірок для фронтенду на TypeScript і React. Все конкретно, з інструментами і причинами.⏺ Не дати написати зайвеГенеруйте типи з OpenAPI-специфікації. Найтиповіший дефект AI-коду - поле, якого не існує. Модель бачить поруч user і пише user.fullName, хоча бекенд віддає firstName і lastName. Якщо типи живуть окремо від специфікації, TypeScript це пропустить. Один опис API на два боки прибирає цілий клас багів ще на старті.Опишіть межі шарів у лінтері. Модель не тримає в голові вашу архітектуру між сесіями і тягне код до середнього по GitHub. eslint-plugin-boundaries задає напрямок залежностей: сервіс не може імпортувати компонент.⏺ Знайти те, що вже написаноЗапустіть mutation
    evilmartians.com10 anti-AI slop moves for frontend projects going faster than humans can review—Martian Chronicles, Evil Martians’ team blogTen checks that catch what AI-written frontend code hides: contract codegen, boundary linting, mutation testing, and dead-code detectors.
    4816553Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    9 сент., 06:36

    97% вашого коду - «унікальні». Так каже інструмент, який не бачить дубль, якщо змінну просто назвали інакше.👀jscpd 5.2.0 бачить.Три класи копій, які раніше не потрапляли у звіт: перейменовані, зі вставленим рядком і переписані по всій функції.Половину цього коду написав агент, а він не робить Ctrl+C: генерує заново і рідко тими самими іменами. Тому дірка у звіті - не крайній випадок, а норма.1. Перейменовані копії --ignore-identifiers, --ignore-literals, --ignore-annotationsНормалізують класи токенів перед хешуванням: усі ідентифікатори стають одним класом, ключові слова зберігають своє значення, рядки і числа лишаються різними класами, анотації @Name(...) відкидаються. Java, Kotlin, Scala, Groovy, Python, Dart, Swift, JS, TS. Копія з іншими іменами тепер має kind: renamed.2. Копії з розривом --max-gap-lines NКопія, куди вставили рядок
    516видео9532Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    6 сент., 19:12

    Нас роками вчили дробити компоненти. AI-агенти зробили цю пораду платною.Кожен окремий файл коштує вашому агенту 11 токенів — не за код усередині, а за те, що це окремий файл. Ставка однакова, хоч би що там: два рядки чи двісті. У кодовій базі зі 200 компонентів це близько 2200 токенів самої лише церемонії, ще до того, як модель побачила перший елемент. І платите ви не один раз: кожен цикл рев'ю надсилає файли наново, кожна повторна спроба — знову.Знаю заперечення, бо сам його мав: це ж, напевно, className, camelCase, htmlFor.Ні.class="card-img" — 5 токенів. className="card-img" — теж 5.Для всіх дванадцяти атрибутів класу в моїх семплах вийшло 53 і 53.Тоді я зняв обгортку з кожного JSX-файлу й порахував саму розмітку — проти того самого коду на чистому HTML.list: 36 проти 36 form: 76 проти 76 card: 88 проти 88Токен у токен. На цих трьох семплах розмітка не додала жодного
    547видео1042Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    3 сент., 05:30

    JS/TS опинилися на 😉місці за часткою коду, який пише агент. Разом з GoJetBrains опитав понад 15 000 інженерів у травні-липні. Питання було просте: скільки коду за минулий місяць написав агент, скільки ви з підказками AI, а скільки руками.🗂 Розклад по стекахУ тих, чия основна мова JavaScript, TypeScript або Go, частка повністю згенерованого агентом коду найвища - 54-55% у середньому.Java і Python посередині, 48-51%.C і C++ найконсервативніші: 38% коду там досі пишуть руками.👩‍💻 Що це означає на практиціПонад половина інженерів пишуть руками менше 20% коду. Кожен п'ятий не пише без AI взагалі нічого.Але тих, хто віддав агенту понад 80% коду, лише 22%. Більшість сидить посередині.Ще одна деталь: першими віддали кодування агентам сеньйори, не джуни. Приблизно чверть
    Иллюстрация к посту канала 🇺🇦 Math.random(): community of engineersИллюстрация к посту канала 🇺🇦 Math.random(): community of engineers
    6531465Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    1 сент., 05:25

    Щоб побудувати продакшн-агента, не треба переходити на Python.LangGraph знають як Python-інструмент. Але є LangGraph.js - TypeScript/JavaScript-версія LangGraph: StateGraph, checkpointers, human-in-the-loop, стрімінг, субграфи.⏺3.4M завантажень npm на тиждень.👀 Чому граф, а не ланцюжокprompt → LLM → output працює рівно доти, доки агенту не треба ретраїти, чекати підтвердження чи координувати кількох агентів.⏺У графі вузли - це дії (виклик LLM, тул, трансформація), ребра - маршрутизація між станами. ⏺Агент крутить цикли, гілкується, паузиться на людину, а після збою відновлюється зі збереженого стану. Потік явний, нічого не сховано за абстракцією.💬 Що дає TypeScriptСтан описується через StateSchema, який
    GitHubGitHub - langchain-ai/langgraphjs: Framework to build resilient language agents as graphs.Framework to build resilient language agents as graphs. - langchain-ai/langgraphjs
    556744Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    28 авг., 07:04

    jscpd виріс з 2,37M до 3,21M завантажень на тиждень. За три тижні.Я не запускав ніякого просування. Не потрапляв у розсилки. П'ята версія вийшла давно.Моя здогадка: це агенти. Щось, що читає код за гроші, тепер запускає детектор дублів, перш ніж почати писати.І в цьому є сенс. Агент, який збирається додати функцію, має привід перевірити, чи немає такої вже десь у репозиторії. Людина зазвичай вважає, що згадала б. Агент не має пам'яті про кодову базу, яку вперше побачив тридцять секунд тому.Але npm не відрізняє людину від агента. І те, й інше виглядає як завантаження. Тож це лишається здогадкою, і мені простіше сказати це вголос, ніж видавати її за висновок.👍 — у мене статичний аналіз уже стоїть в агентному пайплайні 👀 — читаю і думаю, що варто поставитиnpmjs.com/package/jscpd
    Иллюстрация к посту канала 🇺🇦 Math.random(): community of engineersИллюстрация к посту канала 🇺🇦 Math.random(): community of engineers
    6531074Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    26 авг., 07:45

    Вайб-кодинг. Питань більше немає.😄 - смішно, бо правда 😱 - страшно, бо правдаПід #SpecDrivenDevelopment є що почитати))
    626видео18921Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    24 авг., 06:01

    Бачити, що агент робить всередині - нарешті реальноVoltAgent - open-source TypeScript-фреймворк для агентів.Головна ставка тут не на те, як їх будувати, а на те, як їх дебажити.🔴 Проблема, яку знають усі: агент мовчки обрав не той тул чи пішов не туди - і ти сидиш у логах, вгадуючи, що сталося.Засновники прямо кажуть, що надихались n8n: виконання агента показане як канвас із кроками. Видно, які тули викликались, що вирішив, де впав.⏺ Що дає фреймворкMemory, RAG, tools, MCP, voice, workflow, guardrails, evals. Мультиагентність: supervisor координує спеціалізованих sub-агентів. Провайдер міняється в конфігу, а не в логіці агента - OpenAI, Anthropic, Google та інші.⏺ VoltOps - обсервабіліті окремим продуктомРеалтайм-трейси, логи, метрики, інспекція памʼяті й контексту, білдер
    658видео644Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    21 авг., 06:02

    TanStack Start - одинадцятий місяць у Release Candidate. І це чесніше за частину «стабільних» релізів, які ви ставили цього року.RC оголосили 23.09.2025. У документації досі той самий статус - і формулювання, варте окремої поваги: API вважається feature-complete і стабільним, але це не означає, що продукт без багів. У селекторі версій доків, до речі, все ще стоїть v0.Порівняйте з фреймворками, які викочують мажор і через тиждень патчать breaking change(Що це взагалі таке:Full-stack React-фреймворк на TanStack Router, збірка на Vite або Rsbuild.Поверх роутера дає full-document SSR, стрімінг, server functions (типізовані RPC між клієнтом і сервером), server routes, middleware і наскрізну типізацію через увесь стек.Чому це важливо саме зараз:⏺Агент працює циклом: згенерував зміну - тайпчек - прочитав помилку - виправив.
    590видео1362Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    20 авг., 06:05изменён

    🗣Був гостем подкасту Architecture Board від EPAM54 хвилини з Олегом Цаль-Цальком, Technology Director, про те, як залишатися експертом, коли галузь змінюється швидше за твій стек.Про що поговорили:🇺🇦 Волонтерські проекти. Система інтеграції з митницею для гуманітарної допомоги - як це виглядало зсередини.🧠 Чому володіння конкретною мовою важить менше, ніж фундамент, вміння розв'язувати задачі та проектувати системи.💼 Сучасні співбесіди. Роботодавця більше цікавить хід думки кандидата, ніж знання синтаксису.🤝 Технічні спільноти. Здорова спільнота росте органічно, спроба запровадити її згори не працює.🤖 AI в роботі інженера. Використовувати LLM для швидкості - так. Вимикати критичне мислення на рев'ю згенерованого коду - ні.🔍 Open source зсередини: jscpd і навіщо взагалі вкладатися у спільноту.▶️ Yo
    Иллюстрация к посту канала 🇺🇦 Math.random(): community of engineersИллюстрация к посту канала 🇺🇦 Math.random(): community of engineers
    594952Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    19 авг., 06:04

    MCP і Skills — не конкуренти. Вони працюють і ламаються по-різному, і саме це визначає, що вам потрібно.Мій досвід - зробив обидва. У jscpd є MCP-сервер і два скіли. Результат:⏺ MCP дає можливості. ⏺Скіл дає судження, як ними користуватися. ⏺Обмеження живуть у tool layer.Три різні ролі — і плутанина між ними коштує дорого.⚫️Чому jscpd не обійшовся без сервераІнструкцією не запустиш бінарник на 900 МБ коду. Агент має викликати детектор і отримати структурований результат. Це можливість, а можливості потрібен викликуваний інструмент.🔵Чому сервера виявилось малоВін повертає клони, але не може сказати, що клон означає. Дублікат між двома тестовими файлами — це зазвичай відсутній тест-хелпер. Та сама логіка в .js і
    Иллюстрация к посту канала 🇺🇦 Math.random(): community of engineersИллюстрация к посту канала 🇺🇦 Math.random(): community of engineers
    5676533Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    18 авг., 10:28изменён

    Друзі, у мене сьогодні реліз 🎉jscpd v5.0.16 — три нові фічі, але головна зірка тут --summary.Роками jscpd відповідав на одне питання: «де в мене дублікати?». Тепер він відповідає й на наступне, важливіше: «з чого почати рефакторинг?»Що робить --summaryФлаг додає до результатів прогону карту гарячих точок: топ файлів і папок, відсортованих за токенами, рядками, розміром або оцінкою цикломатичної складності — і для кожного показує його частку дублювання.В одному звіті ви бачите, як перетинаються два сигнали: «цей файл великий і складний» плюс «у ньому 30% скопійованого коду». Це і є ідеальний кандидат на рефакторинг — великий, заплутаний і продубльований файл болить найсильніше.Керування• --summary-top <n> — скільки рядків показати • --summary-by tokens|lines|size|complexity — за якою метрикою ранжувати • усе те саме доступне через конфігБез затримки сканування
    GitHubRelease Release v5.0.16 · kucherenko/jscpdNew Features MCP server over stdio (--mcp) — cpd --mcp /path/to/project serves the Model Context Protocol on stdin/stdout, the transport MCP clients spawn and manage themselves (no port, no networ...
    52112533Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    17 авг., 06:02

    А ви знали, що MCP-сервер тепер може віддавати не текст, а цілий інтерфейс?Доповнюю свіжими оновленнями один із трендів свого Roadmap 2026⬇️Generative UI досі був справою фреймворку: тул повертає дані, ви малюєте React-компонент у своєму застосунку. З 28 липня це частина протоколу.Фінальна спека MCP від 28.07.2026 закріпила MCP Apps як офіційне розширення - поруч із Tasks і Enterprise Managed Authorization. Того ж дня вийшов TypeScript SDK v2, який цю спеку реалізує.Як це влаштовано: ⏺Сервер оголошує UI-ресурс зі схемою ui:// і прив’язує його до тулу через метадані. ⏺Клієнт рендерить HTML у пісочниці. ⏺Спілкування — звичайний JSON-RPC поверх postMessage, тим самим SDK, яким ви пишете сам сервер modelcontextprotocol/server.Ключове: сервер описує
    Иллюстрация к посту канала 🇺🇦 Math.random(): community of engineersИллюстрация к посту канала 🇺🇦 Math.random(): community of engineers
    5635433Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    14 авг., 05:55

    Vercel AI SDK. Найпоширеніший AI-тулкіт для TypeScript.🔴20+ мільйонів завантажень на тиждень за даними npm.Vercel AI SDK — це не фреймворк для агентів у чистому вигляді, а базовий шар, на якому будують усе інше.⏺ОсноваЄдиний API до будь-якого провайдера (OpenAI, Anthropic, Google та інші) - міняєш модель, не переписуючи логіку. Стрімінг, structured output через Zod, tool calling, повна типобезпека. UI-хуки для React, Svelte, Vue.⏺Агенти з коробкиУ версії 6 зʼявилась повноцінна агентна абстракція: ToolLoopAgent, tool-calling loop зі stopWhen (сам крутиться, доки не дійде рішення), human-in-the-loop на підтвердження тулів, повна підтримка MCP.⏺DevToolsДодали вбудований дебагер для агентів - видно кроки, виклики тулів, стан. Те, чого раніше
    AI SDKThe AI Toolkit for TypeScript, from the creators of Next.js.
    691975Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    13 авг., 05:40изменён

    Що вчити, щоб зайти в AI-розробку на JS/TS у 2026?Мене часто про це питають. Проблема будь-якої відповіді в тому, що список технологій нічого не пояснює: незрозуміло, що з чим пов'язане і в якому порядку за це братися.Тому я зібрав карту з 12 треків у порядку, в якому запит реально проходить крізь агента: промпт → цикл → тули → контекст і пам'ять → планування → вимірювання → прод.Читається зверху вниз як шлях одного запиту, а не як програма курсу.Три рішення, через які ця карта виглядає не зовсім стандартно:1) Агентний цикл - перед фреймворком, а не післяАгент — це цикл: ви складаєте масив повідомлень, віддаєте моделі разом зі схемами тулів, вона просить викликати тул, ви виконуєте, дописуєте результат і відправляєте знову — доки не спрацює стоп-умова, яку задали ви самі. Сорок рядків проти сирого API.Кожен фреймворк — обгортка навколо цих сорока рядків. Напишіть їх руками
    794файл974Открыть в Telegram
  • 🇺🇦 Math.random(): community of engineers

    11 авг., 14:35

    Підтримую ініціативу @devshive: вони розігрують серед читачів свої книги📙Зараз — Cloud Native Go від O’Reilly, про розподілені системи й cloud native патерни.Без ботів, без «підпишись на 10 каналів». Просто написати «go» і нік під дописом. Розіграш вже завтра 12 серпня, ~15:00 CET.Якщо у вас на полиці лежить прочитана технічна книга — можливо, варто зробити так само☺️👉 https://t.me/devshive/179
    TelegramDevs HiveПродовжуємо розігрувати книжечки🔥🔥🔥 Цього разу лот на порядок цікавіший - Cloud Native Go Гарна книга, про різні Cloud Native патерни, які бустануть ваше розуміння розподілених систем. Всі приклади на бездуховному Golang, але якщо ви добре знає JS/TS,…
  • 🇺🇦 Math.random(): community of engineers pinned «![🟡](tg-emoji:5819199598203244104)4 мільйони токенів на одну задачу ![🟡](tg-emoji:5819089612680732651)Стільки в середньому витрачає AI-агент, коли вирішує інженерний таск у реальному репозиторії (за даними вимірювань на SWE-bench Verified). ![📖](tg-emoji:5389006929282476921) Найбільше токенів AI витрачає не тоді, коли пише код, а тоді, коли його читає.…»

    10 авг., 22:14