🇺🇦 Math.random(): community of engineers
1.3K subscribers
427 photos
30 videos
1 file
611 links
Інженерний AI-канал Андрія Кучеренка, автора https://jscpd.dev. Вимірюю, що зробив AI-агент. Рахую ціну коду в токенах. Розбираю MCP, Skills, SDD.

@andrey_pk
x.com/a_kucherenko
linkedin.com/in/andrey-kucherenko
youtube.com/@mathrandomjavascriptcommunity
Download Telegram
Дроп: jscpd v4.1.0 🎩

🚨Що нового:

→ AI Reporter (--reporters ai) - компактний вивід для feeding у LLM
→ MCP Server та Agent Skill для AI-агентів - підключайте через те, що любите
→ Підтримка Apex, CFML, GDScript

🫢Якщо ваш агент задихається на copy-paste у згенерованому коді - спробуйте AI reporter.

🏁Швидкий старт зі скілом: npx skills add kucherenko/jscpd

✔️Скіл працює з Claude, Cursor, Copilot, Gemini та іншими.

До речі, якщо ще не знали - skills.sh це реєстр з купою корисних скілів, не тільки наш.

npm: npmjs.com/package/jscpd

https://github.com/kucherenko/jscpd

#CopyPasteDetector #jscpd #TokenEconomics #LLM
❤3👍2🔥2😁1
🎩 Дроп: jscpd v4.2.0

🧩Cross-format detection - головна фіча. Тепер блок коду в одному форматі матчиться з блоком в іншому

🚀 Скрипт у .vue файлі - з
.ts файлом. Code block у Markdown - з .py файлом. Цього не вміє жоден з конкурентів

🔎223 підтримуваних формати - додали 71
новий в одному релізі. Apex, CFML, GDScript,
Svelte, Astro та ще 70+. Найбільший приріст
мов за всю історію проєкту📈

⚡️+11.5% швидше - замінив prismjs на
власний reprism-based engine.

Виміряно на реальному проєкті: 1126ms → 997ms на скані 548 файлів

🔍 Shebang detection - скрипти без розширень (з #!/usr/bin/env python3) тепер автоматично визначаються

🏎️Швидкий старт для AI agents:
npx skills add kucherenko/jscpd


Працює з Claude, Cursor, Copilot, Gemini 🤖

🏁Швидкий старт для людей:
npx jscpd ./path


У npm: npmjs.com/package/jscpd

changelog: github.com/kucherenko/jscpd/blob/master/CHANGELOG.md

P.S. Якщо jscpd колись зекономив вам час, прошу
підтримати на opencollective.com/jscpd

#CopyPasteDetector #jscpd #TokenEconomics #LLM
❤5🔥3👏3
Поки тиша на каналі - я писав статтю на HackerNoon.

Запустив jscpd на 49 проектах з GitHub, які створені AI-агентами. Хотів виміряти скільки коду вони копіпастять.

Знайшов інше🤯

Перший проект у рейтингу за дуплікацією виявився не AI-додатком, а бібліотекою скілів для AI-агентів.

Другий - теж
бібліотека скілів.

Третій - фреймворк
для агентів.


‼️Тобто інфраструктура, яка вчить AI писати чистий код, сама на 30-40% складається з повторів.

Стаття пройде editorial review - кину посилання. А поки що почитайте сирі дані:

🔗 kucherenko.github.io/cpd-vibe-coding-report

Цікаво подивитись на свій проект jscpd-ом?

#CopyPasteDetector #jscpd #TokenEconomics #LLM #SDD #VibeCoding #SpecDrivenDevelopment
❤8🔥4👏3
jscpd v5: 83 секунди → 3.4 секунди

Copy-paste detector для коду тепер у 24–37 разів швидший - повне переписування engine на Rust.

Реальні цифри (10 прогонів, Apple Silicon, v4 Node.js проти v5):

→ 548 файлів: 1.03с → 0.03с (34x)
→ 9K файлів, 164 MB: 15.8с → 0.43с (37x)
→ 17K файлів, 902 MB: 83с → 3.4с (24x)

Чому різниця така велика:

Зник startup overhead - на малому репозиторії майже весь 1.03с був запуском Node.js, ще до
сканування. Нативний бінарник стартує миттєво.
Тепер усі ядра - старий engine був однопотоковий, новий спалює 7.3с CPU за 3.4с реального часу.

І головне: drop-in заміна. Ті самі прапорці, конфіг, 223 формати.

Встановлення те саме - npm install -g jscpd.

Запустіть на своєму найбільшому репозиторії і напишіть результат у коментарях)

github.com/kucherenko/jscpd

#CopyPasteDetector #jscpd #TokenEconomics #LLM
🔥9👍8❤2👏2
А ви знали, що більше знайдених дублікатів не означає кращий пошук? Іноді це лише більше… помилок.

Я постійно вдосконалюю свій jscpd, тож вирішив перевірити, як справляються інші. Зібрав сім інструментів і прогнав на одній базі: 547 файлів, 150+ форматів, для всіх однакові умови.

І ось що показали цифри.

Багато клонів, мало сенсу:

⚠️ Duplo - 162 мс, 518 клонів, найбільше з усіх. Зіставляє сирий текст без токенізації, реагує на відмінності у форматуванні - тому більшість збігів false positives.

Майже нічого не бачить:

⚠️ Fallow dupes - 164 мс, 10 клонів. Аналізує лише JS/TS, решту 513 файлів із 547 не опрацьовує - непридатний для багатомовних баз.

Повільні й обмежені в покритті:

⚠️ Simian - 964 мс, 424 клони. Звітує агрегованими блоками, без поділу на мови - не зрозуміти, у якій секції коду дублікат.
⚠️ PMD CPD - 36 с, 56 клонів. Ретельний у межах однієї мови, але повільний: опрацював лише 71 файл із 547.

Один клон різниці - і 32 рази у швидкості. Переписування на Rust дало приріст, зберігши якість виявлення:

✅ jscpd v5 (Rust) - 84 мс, 212 клонів.
✅ jscpd v4 (JavaScript) - 2.7 с, 211 клонів.

Суть у тому, що велике число знайдених клонів нічого не гарантує. Текстові інструменти швидкі, але завищують кількість збігами, яких насправді немає. Точні працюють повільно або бачать лише кілька форматів. Токенізація дозволяє не вибирати: тримає і швидкість, і точність водночас.

Це перший із трьох розборів цього бенчмарку. Далі - як інструменти розпізнають дублікати між різними форматами файлів, і скільки токенів з'їдає звіт кожного з них під час роботи з LLM (частина 2)

🔗 Повний бенчмарк: jscpd.dev/benchmarks/detection-speed
💻 GitHub: github.com/kucherenko/jscpd
☕ Підтримати: opencollective.com/jscpd

#CopyPasteDetector #jscpd #TokenEconomics #LLM
👍6🔥4❤1👏1
👀Як взагалі можна спалити 158 000 токенів там, де вистачає 2 800?

Дуже легко. Показую.

Той самий код, ті самі 212 дублікатів. Один інструмент пошуку копіпасту віддає AI звіт на 2 800 токенів, інший — на 158 000.

Різниця — це ваші гроші, спалені на токенах.

Проблема:
Більшість інструментів видають «важкі» звіти, не оптимізовані для LLM — величезні JSON або неструктуровані дані. Вони забивають контекстне вікно, сповільнюють відповідь і роздувають вартість кожного запиту.

А тепер наочно. Ефективність на 212 клонах:

🔴 Гроші на вітер — не для LLM:

• Duplo — 158 000 токенів, величезний JSON із купою false positives
• PMD CPD — 21 000 токенів, розкидані по 34 файлах

🟡 Частково придатні:

• Simian — 15 000 токенів, без структурованих метаданих
• Fallow — 400 токенів, та це не економія: він просто бачить мізерну частину коду

🟢 Готові до роботи з AI — економно:
• jscpd@5 — 2 800 токенів
• jscpd@4 — 2 700 токенів
• jscpd-rs — 3 000 токенів

У jscpd є окремий флаг --reporters ai — компактний звіт без зайвого шуму, створений саме для AI-пайплайнів.

⚠️ Важлива ремарка:
Токени на клон не можна порівнювати між інструментами напряму — кожен визначає «клон» по-своєму. Порівнюйте лише всередині однієї групи.

Висновок:
Коли звіт іде в LLM, його розмір — це прямі витрати вашого часу й бюджету. Той самий результат можна віддати економно або спалити на ньому гроші. Обирайте інструменти, які поважають ваш токен-ліміт.

Це друга з трьох частин про порівняння Copy-Paste Detector (CPD) інструментів. Частина 1 — про швидкість. Далі — як інструменти бачать дублікати між різними форматами файлів.

🔗 Бенчмарк токенів: jscpd.dev/benchmarks/ai-token-efficiency
💻 GitHub: github.com/kucherenko/jscpd
☕ Підтримати: opencollective.com/jscpd

#TokenEconomics #LLM #CopyPasteDetector #jscpd
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👏2❤1🔥1
🔴38% зайвих токенів і втрачених грошей на кожному запиті до AI — через ваш фреймворк. Саме стільки коштує вибір «не того».

Я перевірив ті самі компоненти — від hello до таблиці з фільтром — і написав їх на кожному фреймворку. Однакова функціональність, один токенізатор:

🟢 Svelte — 598 токенів
🟡 React — +25%
🔴 Angular — +38%

+38% — це не про стиль коду. Це рядок у вашому рахунку за API. Бо код тепер читають не люди, а агенти — тисячі разів на місяць. На кожному рев'ю, кожному «полагодь оце», кожному прогоні ви платите за зайве знову і знову.

А тепер парадокс, який ламає інтуїцію. У Svelte НАЙГІРШЕ стиснення у всій групі — його синтаксис погано лягає в токенізатор. І він однаково виграє. Чому? Бо коду треба менше: ти пишеш count++ — решту добудовує компілятор. У React ти пишеш ту саму сантехніку руками. І платиш за кожен символ.

Висновок простий: усе, що ви пишете явно — має ціну. Усе, що виводить компілятор — безкоштовне.

#TokenEconomics #LLM #Svelte #React #Angular

Повне дослідження — таблиці в доларах по 10 моделях 👀у статті на Hacker Noon

Це частина 1 з 5. Далі — мови, де анотації типів у TypeScript додають +63% до ціни за ту саму логіку 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤3🔥3👀3
🟠 Svelte — головний герой цієї історії про токени. І найдивніший.

Бо за всіма законами токенізації мав би програти. А він виграє.

Розберемо детально.

Сторона перша: стиснення (tokenizer affinity). Текст однакової довжини перетворюється на різну кількість токенів — це і є стиснення. У токенізатора є чесний показник — «токенів на символ» (tokens-per-char): чим нижче, тим щільніше код лягає в модель. Svelte тут має 0.320 — НАЙГІРШЕ значення в усій групі. Його синтаксис шаблонів напханий пунктуацією, яка просто не стискається. SolidJS для порівняння — 0.269, найкраще в тесті.

За цією логікою Svelte у хвості. Логічно?

Сторона друга: обсяг (verbosity). А тепер питання, яке ми забуваємо поставити — скільки взагалі коду довелося написати? І ось тут Svelte розвертається. Ті самі 5 компонентів він описує найкоротше з усіх. Бо за нього думає компілятор: ти ставиш count++ — він сам розгортає це в реактивність. React змушує виписати setCount і useEffect руками. Angular зверху ще накидає декоратори — @Component, standalone, imports.

Сторона третя: підсумок. Краща токенізація програє меншому обсягу коду. SolidJS стискається найкраще в цьому тесті — і все одно програє, бо коду в нього більше. Svelte бере не щільністю символів. Він бере тим, що символів узагалі менше.

Саме тому головний висновок не про Svelte. Він про те, від чого насправді залежить вартість коду для LLM. Її визначають два незалежні фактори:

1️⃣ наскільки ефективно код токенізується;
2️⃣ скільки цього коду взагалі довелося написати.

Більшість порівнянь зосереджується саме на першому факторі. Svelte показує, що другий фактор може виявитися важливішим.

Під мікроскопом важлива токенізація. У рахунку — обсяг коду.

#TokenEconomics #LLM #Svelte
❤9👍5🔥5😱1
🔵TypeScript «з'їдає» на 63% більше LLM-токенів, ніж найощадливіша мова з тих, що я тестував — і на 31% більше, ніж звичайний JavaScript.

За ту саму логіку.

Зі статті ви дізнаєтесь:

→ чому найощадливішою виявилась мова, про яку ніхто не чув
→ чому JavaScript і TypeScript стискаються найкраще — і все одно програють
→ як за 4 рядки коду виміряти цей податок на власному репозиторії

Друга частина «Tokenomics of Web Development» вже на HackerNoon

Прогнав ідентичний код через tiktoken на п'яти мовах — JavaScript, TypeScript, CoffeeScript, Civet і ZeroLang. Ті самі задачі, ті самі алгоритми, ідіоматичний код, без трюків на скорочення.

І одразу: це не заклик кидати типи, вони ловлять реальні баги. Це про дещо інше — про те, хто тепер читає твій код.

Читайте та рахуйте свій токен-податок на власному коді👀

#TokenEconomics #LLM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3👍2
🟡4 мільйони токенів на одну задачу

🟡Стільки в середньому витрачає AI-агент, коли вирішує інженерний таск у реальному репозиторії (за даними вимірювань на SWE-bench Verified).

📖 Найбільше токенів AI витрачає не тоді, коли пише код, а тоді, коли його читає.

🗣 Ваші файли. Імпорти. Конфіги. Тести. Вивід лінтерів.

У вашого коду з'явився новий читач — AI-агент.

І кожне прочитання має ціну.

Саме про це й написав у новій статті на DOU. Усередині:

🗣як токен пройшов шлях від жетона до сировини інтелекту
🗣чому токени дешевшають, а витрати на AI ростуть
🗣чому найдорожча фаза розробки — не написання коду
🗣чому більше агентів не завжди означає кращий результат
🗣що таке token debt і чому компілятор його не бачить
🗣де ховається найдорожчий рядок у вашому рахунку

Читайте на DOU:
https://dou.ua/forums/topic/61047/

#TokenEconomics #TokenDebt #LLM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17❤8👏4👍1