7 Jun 2026, 10:02 UTC63 views1 reactionsread 9 August 2026 Photo
#you_dont_need #ai
📚 Рубрика: Оно нам не надо.
Я замечаю, что люди используют ИИ для задач, где результат заранее известен и воспроизводим. Попросить Claude переименовать пропс в 200 компонентах — это сжечь токены ради детерминированной операции, которую инструмент выполнит быстрее, точнее и дешевле. ИИ генерирует трансформацию один раз — дальше вы запускаете её столько раз, сколько нужно, на любой кодовой базе и с…
👍1
3 Jun 2026, 10:05 UTC59 views1 reactionsread 9 August 2026 Photo
#frontend #performance
📚 Рубрика: Я скорость
User Timing: своя разметка на performance timeline
В прошлый раз разобрали PerformanceNavigationTiming — метрики документа от навигации до load. Браузер отдаёт всё это сам: DNS, TCP, DOM, события. Но что происходит внутри твоего приложения — он не знает. Когда кликнул пользователь, когда отрисовался список, сколько занял парсинг ответа — это уже зона User Timing API.
К…
❤🔥1
31 May 2026, 10:05 UTC47 views1 reactionsread 9 August 2026 Photo
#ai #mcp
📚 Рубрика: I need this MCP
Давненько не писал про полезные MCP, поэтому сегодня — GitLab MCP server. Официальный MCP-сервер от GitLab, который даёт AI-агенту доступ к вашему GitLab-инстансу через стандартный протокол.
Не «скопируй issue и вставь в чат», а полноценная работа с проектами, MR, пайплайнами и кодовой базой прямо из агента.
Что умеет?
⏺️Создавать и читать issues и merge requests;
⏺️Получать д…
❤🔥1
29 May 2026, 10:05 UTC41 views1 reactionsread 9 August 2026 Photo
#browser_api
📚 Рубрика: Браузерные API.
Если нужно передать сообщение между вкладками одного origin — не нужно ни сервера, ни localStorage-хаков, ни SharedWorker. Для этого есть BroadcastChannel.
// вкладка A — отправляет
const bc = new BroadcastChannel('auth');
bc.postMessage({ type: 'logout' });
// вкладка B — получает
const bc = new BroadcastChannel('auth');
bc.onmessage = (event) => {
console.log(event.data…
❤🔥1
27 May 2026, 09:59 UTC41 views1 reactionsread 9 August 2026 Photo
#frontend #performance
📚 Рубрика: Я скорость
Navigation Timing: что происходит от первого байта до load
В прошлый раз разобрали PerformanceResourceTiming — как измерять загрузку отдельных ресурсов. Сегодня уровнем выше: PerformanceNavigationTiming — метрики самого документа, от навигации до финального load.
Как работает?
⏺️ В performance timeline всегда ровно одна запись с entryType: "navigation" — текущий докум…
❤🔥1
24 May 2026, 09:59 UTC36 views1 reactionsread 9 August 2026 Photo
#frontend #performance
📚 Рубрика: Я скорость
Resource Timing: сколько реально весит каждый ресурс и куда уходит время
Страница загружается — браузер тянет десятки ресурсов: скрипты, стили, шрифты, картинки, fetch-запросы. DevTools показывает водопад, но что если нужно собрать это программно и отправить в свой мониторинг?
Для этого есть PerformanceResourceTiming.
Как работает?
⏺️ Каждый загруженный ресурс — отде…
❤🔥1
22 May 2026, 09:59 UTC37 views1 reactionsread 9 August 2026 Photo
#you_dont_need
📚 Рубрика: Оно нам не надо.
Кстати, о недавнем посте с прогресс-баром — там я упомянул, что на его основе можно сделать онбординг. Сегодня как раз об этом. JS минимален: одна функция, один addEventListener. Всё остальное — CSS и data-атрибуты.
Механика простая: JS только инкрементирует шаг и обновляет значения полосок. CSS делает остальное:
⏩️ активный шаг показывается через атрибутный селектор — н…
❤🔥1
20 May 2026, 09:59 UTC44 views1 reactionsread 9 August 2026 Photo
#you_dont_need
📚 Рубрика: Оно нам не надо.
JS для прогресс-бара вам может быть не нужен.
Прогресс, бесконечная анимация загрузки, кастомные цвета и градиенты — всё это закрывает нативный <progress> в связке с CSS. Без requestAnimationFrame, без Canvas, без библиотек, без нескольких div-элементов.
Как работает?
Механика держится на семантике элемента и вендорных псевдоэлементах:
➡️ <progress value="50" max="100"…
❤🔥1
17 May 2026, 09:59 UTC48 views1 reactionsread 9 August 2026 Photo
#frontend #performance
📚 Рубрика: Я скорость
Long Animation Frames: longtask с деталями
В прошлом посте разобрали longtask — он фиксирует факт блокировки главного потока, но не говорит, что именно её вызвало. long-animation-frame (далее LoAF) — более детальная версия того же понятия.
LoAF — это rendering update, задержанный более чем на 50 мс. Разница с longtask: LoAF охватывает весь animation frame целиком — скр…
❤🔥1
15 May 2026, 09:59 UTC45 viewsread 9 August 2026 Photo
#frontend #performance
📚 Рубрика: Я скорость
Long Tasks: что блокирует главный поток и как это поймать?
Главный поток браузера однопоточный. Пока он занят — он не обрабатывает клики, не рисует кадры, не реагирует на скролл. Любая непрерывная работа дольше 50 мс считается long task.
Формально: long task — это любой период, когда UI thread занят без прерывания 50 мс и более.
Типичные виновники: тяжёлые event handl…
13 May 2026, 09:59 UTC44 views1 reactionsread 9 August 2026 Photo
#frontend #how_to
Почему typeof, instanceof и другие не справляются?
Перед тем как использовать Object.prototype.toString.call() — стоит понять, почему стандартные подходы ломаются.
✏️ typeof — быстро, но с сюрпризами:
typeof null; // "object"
typeof []; // "object"
typeof new Date(); // "object"
Для примитивов работает нормально ("string", "number", "boolean", "undefined", "symbol", "bigint", "…
❤🔥1
10 May 2026, 09:59 UTC45 views1 reactionsread 9 August 2026 Photo
#frontend #how_to
Как точно определить тип переменной в рантайме?
Object.prototype.toString.call(value) возвращает внутренний тег объекта по спецификации:
Object.prototype.toString.call(null); // "[object Null]"
Object.prototype.toString.call([1, 2, 3]); // "[object Array]"
Object.prototype.toString.call(new Date()); // "[object Date]"
Object.prototype.toString.call(/regex/); // "[object RegExp]"
Obj…
❤🔥1
Showing the 12 most recent of 20 posts we hold for @punkmachinedev. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.