uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

Будни разработчика

Будни разработчика

Kanalga Telegram’da o‘tish

Блог Lead JS-разработчика Автор: @bekharsky По рекламе: https://telepost.pro/ch/id2415 или https://t.me/it_adv Чат: https://t.me/htmlshitchat №5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978

Ko'proq ko'rsatish

📈 Telegram kanali Будни разработчика analitikasi

Будни разработчика (@htmlshit) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 14 309 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 905-o'rinni va Rossiya mintaqasida 45 446-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 14 309 obunachiga ega bo‘ldi.

26 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -118 ga, so‘nggi 24 soatda esa -8 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 9.73% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.35% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 392 marta ko‘riladi; birinchi sutkada odatda 765 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 10 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent css, api, scroll, --fade, bottom kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“Блог Lead JS-разработчика Автор: @bekharsky По рекламе: https://telepost.pro/ch/id2415 или https://t.me/it_adv Чат: https://t.me/htmlshitchat №5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978”

Yuqori yangilanish chastotasi (oxirgi ma’lumot 27 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

14 309
Obunachilar
-824 soatlar
-477 kun
-11830 kun
Postlar arxiv
#ссылка дня NVIDIA выложила 472 ГБ 3D-моделей На Hugging Face появился огромный набор из 2575 моделей: мебель, бытовая техника, инструменты, еда, коробки, промышленное оборудование и куча других предметов. Всё это можно использовать не только для симуляций роботов, ради которых NVIDIA и готовила библиотеку, но и в обычных проектах: создавать сцены в Blender, делать игры, анимации, визуализации интерьеров и просто экспериментировать с 3D. Причём модели не совсем обычные. Помимо геометрии и текстур, они могут содержать информацию о физических свойствах объектов — например, как они сталкиваются, двигаются и взаимодействуют друг с другом. И даже анимации! Формат — OpenUSD, открытый стандарт, который поддерживают разные 3D-редакторы, включая Blender. С лицензией тоже всё неплохо: проверенные модели распространяются по CC BY 4.0. Их можно использовать даже в коммерческих проектах, изменять и распространять. Главное — указать авторство, ссылку на лицензию и отметить изменения. Лицензия прописана отдельно для каждого объекта. Скачивать можно как отдельные модели, так и всю коллекцию. 👀 Смотреть коллекцию 📄 Документация #3d

Проект от подписчика! Напоминаю, что я выкачу любую статью или проект от вас, не стесняйтесь писать. Презентация? Выступили н
+5
Проект от подписчика! Напоминаю, что я выкачу любую статью или проект от вас, не стесняйтесь писать. Презентация? Выступили на митапе? Хотите поделиться интересной статьёй — добро пожаловать! votby.ru Привет! Меня зовут Виктор. На днях мы с командой запустили наш проект и я бы хотел поделиться его историей. Когда я был студентом, то постоянно пытался придумывать идеи для новых приложений и сервисов. Их были сотни, но каждый раз возникал один и тот же вопрос: нужна ли эта идея кому-то ещё? Проверить это до начала разработки было практически негде. Так появилась мысль о платформе, на которой можно рассказать о своей идее, показать её другим людям и заранее оценить интерес аудитории. Много лет эта мысль осталась просто записью на бумаге. Но наступил 2026 год, отрасль IT начала резко сжиматься и на горизонте начало маячить моё сокращение. И тут я решил, что было бы неплохо обеспечить себе хотя бы какой-то запасной вариант. Я рассказал об идее подписчикам своего канала и предложил вместе создать такую площадку. За один день собралась команда приблизительно из десяти человек. Почти никого из них я не знал лично — большинство просто читали канал. Кто-то пришёл за опытом, кого-то заинтересовала возможность получить часть в будущем бизнесе, но всех объединило желание создать настоящий продукт с нуля. Мы поставили себе довольно смелую цель — запустить MVP за месяц. Несмотря на сложности с организацией процессов большой команды, мы уложились в срок. После запуска мнения разделились. Нас много поддерживали, но хватало и критики: кому-то не понравился дизайн, кто-то ожидал от команды из десяти человек гораздо большего. Для нас это тоже стало частью проверки идеи — только теперь проверяли уже не концепцию, а реальный продукт. Сегодня "Вот бы!" продолжает развиваться. К нам регулярно приходят новые люди, а вокруг платформы постепенно формируется сообщество преданных пользователей. Они делятся своими идеями, предлагают улучшения и помогают определять, куда двигаться дальше. Наверное, самым ценным результатом для меня стал даже не сам запуск, а поддержка всех тех людей, которые поверили в его идею и помогли превратить его в действительно крутой продукт!

Друзья из Tbilisi JS проводят уже девятый митап! 🤟 24 октября, уже завтра, в Тбилиси соберутся разработчики, дизайнеры и люб
Друзья из Tbilisi JS проводят уже девятый митап! 🤟 24 октября, уже завтра, в Тбилиси соберутся разработчики, дизайнеры и любители веб-технологий. А для тех, кто не в Грузии, будет трансляция на YouTube. В программе пять докладов: 🟡 Алексей Красиков (Paper, «Веб-стандарты») — «Веб-сайт — это вам не продукт». 🟡 Александр Островский (TradingView) — «Код подешевел, решения — нет. Как мы строим дизайн-систему с помощью AI-агентов». 🟡 Денис Митрофанов (Lightspeed) — «Как привычки людей отражаются в поведении AI-ассистента». 🟡 Макар Главанарь (Solvery, Pulsar Digital) — «Фреймворки для ИИ-агентов: что они делают за свои токены». ⭐️ Специальный гость — Андрей Ситник из Злых Марсиан, автор PostCSS, Nano ID и других опенсорс-проектов. Расскажет об архитектуре приложений, которые не следят за пользователями. 📅 24 октября, суббота 📺 Трансляция на YouTube — с 14:00 мск 📍 Terminal, Абашидзе 34, Тбилиси 🌍 Доклады на русском языке Вход бесплатный, но нужна регистрация.

#молния дня Срочно в номер! На странице 404 Apple Music находится функционирующий iPod первого поколения! У меня всё.
#молния дня Срочно в номер! На странице 404 Apple Music находится функционирующий iPod первого поколения! У меня всё.

#ссылка дня Мой любимый UI-компонент, пожалуй, вообще за всё время — bottom sheet. Та самая панель, которая выезжает снизу экрана, тянется пальцем и фиксируется на разной высоте. Особенно активно используется в картографических приложениях вроде Google Maps и Apple Maps. И вот pure-web-bottom-sheet — любопытная реализация для веба, почти полностью построенная на CSS. Вместо обработки перетаскивания через JavaScript используется обычный браузерный скролл. Контейнер получает overflow-y: scroll и scroll-snap-type: y mandatory. Внутри создаётся невидимая область прокрутки, а точки остановки задаются элементами с scroll-snap-align и CSS-переменной --snap. В результате панель перемещается вместе с прокруткой, а браузер самостоятельно обрабатывает жесты, инерцию и фиксацию в ближайшей точке. Никаких вычислений координат пальца на каждом pointermove и анимаций через requestAnimationFrame. Для вложенного скролла применяется CSS Scroll-driven Animations. Через scroll-timeline и animation-timeline высота панели привязывается к положению внешнего скролла, а содержимое может прокручиваться независимо. Правда, анимация height вызывает перерасчёт layout, поэтому предусмотрена экспериментальная оптимизация с transform, при которой JavaScript вычисляет необходимые смещения в начале прокрутки. Всё упаковано в Web Component, есть обёртки для React и Vue, поддерживаются нативные <dialog>, Popover API и SSR. Ну и, конечно, не обошлось без Safari. Из-за бага WebKit пришлось добавлять невидимый горизонтальный overflow шириной в один пиксель, чтобы жесты прокрутки вообще нормально обрабатывались. Куда же без этого. GitHub · Демо · Подробный технический разбор автора #scroll #widget

#событие дня Тимлидство — это не только раздавать задачи, проводить 1:1 и следить за дедлайнами. Чем больше команда, тем чаще
#событие дня Тимлидство — это не только раздавать задачи, проводить 1:1 и следить за дедлайнами. Чем больше команда, тем чаще приходится разбираться в людях, бизнесе и собственных управленческих решениях. VK проводит два бесплатных TeamLead Meetup — 24 октября в Москве и 28 октября в Петербурге. В Москве обсудят переход от управления отдельными задачами к управлению системой, а в Петербурге — насколько глубоко тимлиду вообще стоит погружаться в бизнес и стратегию компании. Кроме докладов и дискуссий будет практика на выбор: — Личная встреча с тимлидом VK, на которой можно разобрать собственные управленческие проблемы. — Мастер-класс по теории ограничений Голдратта: как отделять факты от интерпретаций и проверять причинно-следственные связи, прежде чем принимать решения. — «Своя игра» с разбором управленческих ситуаций и обсуждением решений. В общем, разговор скорее о том, как управлять командой, а не о том, как заставить Jira работать за тебя. Участие бесплатное, нужна регистрация.

#такое дня Вчера, 21 октября, был какой-то особенно весёлый день для тех, кто отвечает за продакшен. Да и вся неделя удалась. — PHP2Shell — две критические уязвимости в самом PHP, позволяющие при определённых условиях получить RCE без авторизации. Патчи вышли вчера, сейчас бэкпортят на старые версии. А о возможности такой проблемы знали с 2024 года как минимум. — Node.js — сразу пачка исправлений: RCE в декодере Brotli, обходы проверки TLS-сертификатов, проблемы с DNS. — LiteLLM — взломали аккаунты разработчиков и опубликовали заражённую версию 1.107.0 в PyPI и Docker Hub. Внутри — кража ключей и возможность удалённого выполнения кода. — Plex2Shell — цепочка из четырёх уязвимостей Plex Media Server уже используется для установки майнеров и прокси. — eMudhra — у восьми промежуточных центров сертификации оказались настолько слабые приватные ключи, что их можно восстановить из публичных. Mozilla пришлось срочно отзывать доверие к сертификатам. Это было вообще слишком смешно, чтобы быть правдой, но как есть. — Next.js — две критические RCE с оценкой 9.5, связанные с оптимизацией изображений и use cache. Исправления вышли ещё 14 октября. — TiDB Cloud — подтвердили утечку клиентских и служебных данных после кражи учётных данных. Заявленные злоумышленниками 10,6 ТБ пока не подтверждены. В общем, иногда npm audit fix — это наименьшая из ваших проблем.

#заметка дня Всего три месяца назад Microsoft выпустила TypeScript 7 на Go, который должен был решить проблемы с производител
#заметка дня Всего три месяца назад Microsoft выпустила TypeScript 7 на Go, который должен был решить проблемы с производительностью. А за последние недели появилось сразу несколько альтернативных реализаций компилятора. Только ленивый не переписал компилятор TypeScript на Rust или на что-то ещё. Отчасти виноват сам переход на Go: новый компилятор стал нативным бинарником, а инструменты, использовавшие JavaScript API, теперь вынуждены общаться с ним через отдельный протокол. И ещё когда стало известно об этом — кругом сразу поднялся визг: «Почему не на Rust?!». А теперь следите за руками: • ts-rust — экспериментальный Rust-порт от команды Theo Browne. Проверяет типы в VS Code за 4,8 секунды против 9,6 у Go-версии. • bun check — реализация от Bun, по их тестам в 3–6,4 раза быстрее Go-компилятора. • tsc-ts — Vercel решила вернуть компилятор на TypeScript, но собирать его в нативный бинарник. • tsrs — Rust-порт от Cloudflare и VoidZero, обещающий до 8 раз больше скорости и на 70% меньше потребления памяти. Причём Cloudflare собирается объединить tsrs с проектом Theo Browne и развивать их как единую реализацию. Сам Тео — персонаж офигеть какой неоднозначный. Его категоричность, бесконечные споры и провокации это нечто. А теперь его эксперимент с AI-портированием компилятора становится частью проекта Cloudflare. У Cloudflare, впрочем, есть практический интерес: запуск TypeScript через WebAssembly внутри браузеров и Workers, в том числе для облачных IDE и AI-агентов. Ещё недавно переписывание компилятора было многолетней инженерной задачей. Теперь портов столько, что разработчикам приходится договариваться, какие из них объединять. Позиция Microsoft при этом, скорее, благодарная: какие-то оптимизации прекрасно бэкпортятся, и TypeScript Go 7.1 уже стал в два раза быстрее. #typescript #rust #cloudflare

#статья дня В Base UI написали целую статью о том, как добавить поиск в выпадающее меню. Не о том, как фильтровать массив по строке — с этим как раз никаких проблем. Допустим, есть меню с командами Rename, Duplicate и Delete. Добавляем поле поиска, начинаем печатать, стрелками выбираем нужный пункт, Enter выполняет действие. А теперь вопрос: что это за компонент с точки зрения доступности? Первым напрашивается combobox. Но комбобокс предполагает выбор значения для поля ввода, а здесь мы выполняем команду. aria-autocomplete тоже не подходит: он предполагает определённое поведение списка подсказок, которого наше меню не обеспечивает. В Base UI в итоге выбрали dialog, внутри которого находятся поле поиска и настоящее menu. Но с семантикой разобрались — осталась клавиатура. Например, Home и End в текстовом поле перемещают курсор, а в меню — выделение. Стрелками нужно перемещаться между пунктами, сохраняя возможность продолжать печатать. Причём DOM-фокус остаётся в поле ввода, а активный пункт определяется через aria-activedescendant. Отдельная история с подменю: если оно открылось при наведении мыши, нельзя сразу переводить фокус на его поле поиска. Пользователь мог просто провести указателем мимо. И всё это ещё нужно проверить с VoiceOver, NVDA и TalkBack. Кстати, по ходу работы команда обнаружила несколько багов доступности даже в обычном компоненте Menu. Ну что же, давайте снова поговорим о том, что AI избавит нас от необходимости писать код. Допустим, агент за минуту напишет весь JSX, фильтрацию и обработчики клавиатуры. Но кто-то всё равно должен определить, какое поведение мы вообще хотим получить, почему именно такое и соответствует ли оно ожиданиям пользователей. Особенно тех, кто взаимодействует с интерфейсом не так, как его разработчик. Отдельный вопрос, конечно, нельзя ли просто заменить все меню на одно обращение в чат. В общем, очень рекомендую почитать разбор Base UI. Там много интересных деталей, о которых легко не задуматься, даже если весь код пишешь собственноручно. А ещё обратите внимание, у них видеоиллюстрации отдельные для тёмной и светлой темы 🫠 #ui #a11y #aria

Пора лететь в отпуск, а денег на билеты и отель нет?✈️ Можно дальше смотреть красивые видео с Бали и мечтать об отпуске, а мо
Пора лететь в отпуск, а денег на билеты и отель нет?✈️ Можно дальше смотреть красивые видео с Бали и мечтать об отпуске, а можно найти новые возможности для заработка. Если ты работаешь в IT или только ищешь первую работу, попробуй наш сервис на базе ИИ. Он помогает искать вакансии и находить новые карьерные возможности. Пусть следующим летом ты не просто смотришь на чужой отпуск, а сам собираешь чемодан 🌴

#статья дня, даже две Помните, я недавно рассказывал, почему появился Git и чем он отличается от SVN? Кажется, пора снова всп
#статья дня, даже две Помните, я недавно рассказывал, почему появился Git и чем он отличается от SVN? Кажется, пора снова вспомнить о централизованных системах контроля версий. Anthropic отказалась от Git и написала собственную VCS — Scion. Причём архитектурно она ближе к старому доброму SVN. В мае компания вливала в свой монорепозиторий около 2500 изменений в день, а к сентябрю — уже больше 30 тысяч. История главной ветки приблизилась к 100 ГБ, CI выполнял 25 миллионов checkout в сутки. Git перестал справляться, несмотря на сотни зеркал и прочие оптимизации. В Scion коммиты, слияния и ребейзы выполняются на сервере, а клиенты загружают файлы по необходимости. По данным Anthropic, это сократило потребление CPU и памяти инфраструктурой в 200 раз. На разработку ушло пять месяцев и работа семи инженеров. Разумеется, при участии Claude, из-за которого вся эта проблема и возникла. Но объёмы генерируемого агентами кода создают проблемы не только для Git, но и для платформ вокруг него. Разработчик Йови де Крок представил экспериментальный проект gittifacts, в котором предлагает пересмотреть привычный процесс Pull Request. Вместо чтения каждого диффа человек согласовывает план и критерии приёмки, агент пишет код, а система собирает результаты тестов, покрытие, изменения API и зависимостей. На их основании изменение отправляется на ревью или автоматически сливается, если это разрешено настройками. В отличие от Scion, gittifacts не заменяет Git, а пытается решить проблему человеческого ревью, которое тоже плохо масштабируется вместе с количеством сгенерированного кода. В общем, за каких-то двадцать лет мы прошли путь от централизованного SVN к распределённому Git, а теперь снова выясняем, что централизованная архитектура может быть удобнее. И заодно думаем, зачем заставлять людей читать весь код, который генерируют машины. Scion — статья Anthropic gittifacts — статья автора #git #svn #ai

#заметка дня Когда Гарри Каспаров проиграл DeepBlue в шахматы всем, в целом, стало понятно, что шахматисты не победят ботов.
#заметка дня Когда Гарри Каспаров проиграл DeepBlue в шахматы всем, в целом, стало понятно, что шахматисты не победят ботов. Помешало ли это шахматам с переменным успехом быть самой популярной игрой? Нет. Помешало ли это шахматистам снова достигать уровня практически рок звёзд? Тоже нет. Признание, процесс, обучение, скандалы — всё на месте. Это я к чему. Ну, собственно, что меня зацепило — оно на иллюстрации. Ссылка на X. Вызов принят! Задача предельно ясна: закрыть картинку и видео-файл "скелетоном", все только через css, видео-элементу нельзя добавлять никакие атрибуты и доп. css-классы, разметку менять нельзя, можно только менять css root элемента, работать должно везде. И, собственно, GPT 6.1 Sol Max прекрасно справился, по пути выдав весьма интересное решение: через filter. Вот оно: https://codepen.io/editor/alinaki/pen/01a13fa3-609c-71ea-b6ae-8fc97433cae8 Лучше ли оно предложенного? Хороший вопрос! Я пока предложенное не видел, но оно, как минимум, использует сильно более новые возможности, которые гораздо менее доступны в браузерах. Одну проблему своего решения я уже знаю — маска анимации заставляет фон просвечиваться. Но я уверен, что это можно решить, и проблемой стать не должно. Но целая ночь против 10 минут. Никогда не говори никогда, короче. #css #skeleton

Атмосфера HolyJS: ради чего стоит приехать на площадку 23–24 октября в Санкт Петербурге и онлайне пройдет HolyJS 2026 Autumn
+4
Атмосфера HolyJS: ради чего стоит приехать на площадку 23–24 октября в Санкт Петербурге и онлайне пройдет HolyJS 2026 Autumn — масштабная JS-конференция, которая объединит фронтенд, бэкенд, графику и веб-платформу. Интересные доклады — это база. Но Холи — это еще и то, что происходит между ними: живые разговоры, крутой нетворкинг, возможность самому выйти к микрофону и форматы, в которых можно посмотреть на привычные вещи под другим углом. Для удобства собрали в карточках активности, ради которых точно стоит посетить конференцию. Выбирайте, в чем хотите поучаствовать, и забирайте персональный билет со скидкой по промокоду htmlshit → Программа HolyJS → Купить билет Реклама. ООО «Джуг Ру Груп». ИНН 7801341446

#такое дня Сидим, разрабатываем дизайн систему, следуем WCAG, вычитываем эксплейнеры с https://open-ui.org/, следуем всем законам о доступности... Но мы все лишь грязь под ногтями дизайнеров Apple, потому что спроектировать убегающий из под курсора компонент в их понимании абсолютно нормально. Что дозволено Юпитеру, не дозволено быку, да? #apple #ui

🏁Тестовый собес на Frontend с разработчиком из R-Vision, ex-Сбер 15 октября в 19:00 (МСК) приходи посмотреть открытое онлайн
🏁Тестовый собес на Frontend с разработчиком из R-Vision, ex-Сбер 15 октября в 19:00 (МСК) приходи посмотреть открытое онлайн-собеседование на Frontend-разработчика! Интервьюер: Даниил Дмитриев – Frontend-разработчик в R-Vision, ex-Сбер. Пишет на React и TypeScript, совмещает роль тимлида, менторит разработчиков и проводит код-ревью. На эфире нет сценария ↓ Кандидат – случайный разработчик, который не знает вопросов заранее. На обычном собесе ты не знаешь, что думает интервьюер, пока не придёт фидбек. На этом эфире Даниил проговорит всё вслух:
— какие вопросы и задачи даёт кандидатам на Frontend-собесах; — что в каждом ответе засчитал бы, а что нет — и почему.
А в конце ответит на твои вопросы. Эфир проходит в рамках менторской программы от ШОРТКАТ для разработчиков, которые хотят повысить грейд, ЗП и прокачать скиллы! Участие бесплатное 🔥 Зарегаться на эфир можно в боте → @shortcut_front_bot Реклама. О рекламодателе.

#инструмент дня Когда надоело, что ссылки из рабочего Slack открываются в личном профиле Chrome, а мемчики из Telegram — в ра
#инструмент дня Когда надоело, что ссылки из рабочего Slack открываются в личном профиле Chrome, а мемчики из Telegram — в рабочем. Встречайте — ContextRoute! Создано мной с любовью для вас, котаны. Пока только для macOS. Работает просто: выбираете, в каком браузере или профиле открывать ссылки из конкретных приложений. Например, всё из Slack отправляется в рабочий профиль Chrome, из Telegram — в личный, а из остальных приложений — как принятно в macOS aka в последнее окно. Чуть меньше раздражения. Альтернативы, конечно, существуют. Но мне они как-то не зашли. Такие утилиты, во-первых, очень opinionated, а во-вторых, любят обрастать настройками. А я люблю минимум. Вот, например, Yojam. У него только тёмная тема. И не просто тёмная, а чёрная! В сочетании с обилием, несомненно, прекрасных настроек пользоваться этим мне показалось невозможным. Skill issue. Finicky — прекрасный инструмент, но зачем мне писать конфиг на TypeScript, чтобы открывать ссылки в браузере? Я вот не понял. Поэтому и сделал свою утилиту. Пока она умеет только маршрутизировать ссылки по приложениям, из которых их открывают. Никаких правил по доменам, сложных условий и прочих радостей автоматизации. Всё это появится позже, но сейчас мне хотелось решить одну конкретную проблему. Надеюсь, что смогу вовремя остановиться. Хотя, наверное, разработчик Yojam тоже так считал. #swift #macos

#статья дня У vlt.io есть собственный коммерческий реестр npm-пакетов. Казалось бы, зачем кому-то альтернатива бесплатному np
#статья дня У vlt.io есть собственный коммерческий реестр npm-пакетов. Казалось бы, зачем кому-то альтернатива бесплатному npmjs.org? Но разработчики vlt решили покопаться в том, как npm передаёт метаданные пакетов, и нашли довольно много лишнего. Например, полный документ с метаданными 759 версий Vite занимает 4,41 МБ даже после gzip. У npm есть сокращённый формат, но в нём не хватает некоторых полей, поэтому пакетным менеджерам иногда приходится запрашивать полную версию со всей накопившейся за годы историей. В vlt переработали формат, убрали ненужные данные и сократили тот же документ Vite до 104 КБ. В среднем объём передаваемых метаданных уменьшился на 70%, а холодная установка зависимостей в их тестах ускорилась на 20–70%. Причём менять пакетный менеджер не требуется: обычные npm, pnpm и Bun могут работать с альтернативным реестром. То есть значительную часть оптимизаций удалось сделать исключительно на стороне сервера. Конечно, тесты проводились без lockfile, а в проектах с кешированием выигрыш будет скромнее. Но сама история показательна: спустя столько лет развития npm в его протоколе всё ещё остаются неэффективности, которые можно устранить, даже не меняя клиентский код. https://www.vlt.io/blog/registry-metadata-70-percent-smaller #npm #pnpm

#дичь дня Лукас Бономи сделал GSS (GPU Style Sheets) — язык, на котором можно создавать полноценную 3D-графику, используя практически обычный CSS. И чем дальше читаешь документацию, тем больше вопросов к автору. Объекты объявляются через @scene. Хотите куб? Пишите cube. Сферу? sphere. Трёхмерный бублик? torus. Можно назначить им классы и идентификаторы, расположить в пространстве и стилизовать привычными селекторами.

@scene {
  sphere#ball;
}

#ball {
  translate: 0 1 0;
  color: #ff5a36;
  material: glass(1.5, frosted 0.3);
  animation: float 2s ease-in-out alternate;
}

@keyframes float {
  from {
    translate: 0 1 0;
  }
  to {
    translate: 0 1.5 0;
  }
}
А дальше начинается прекрасное. Тут есть каскад, специфичность, `!important`, `:nth-child()`, `:hover` и даже `:has()`. Последний позволяет, например, менять внешний вид куба при наведении на соседнюю сферу. Да, теперь можно три часа выяснять, почему CSS не красит бублик. Материалы тоже описываются стилями: metal(), glass(), jelly(), iridescent(). Есть градиенты, текстуры, освещение, тени, туман и фильтры. Анимации задаются через @keyframes, работают переходы и управление сценой через прокрутку страницы. Причём это не какая-то хитрая обёртка над Three.js. GSS компилирует сцену в GPU-шейдеры GLSL или WGSL, а геометрия строится через SDF (функции расстояния) и raymarching. Никаких привычных полигональных мешей — видеокарта сама вычисляет поверхности объектов при отрисовке. У проекта есть интерактивная песочница, npm-пакет, интеграция с Vite и даже расширение для VS Code. Всё это пока экспериментальное, но вполне работающее. Не знаю, кому пришло в голову, что трёхмерной графике не хватает CSS-каскада и проблем со специфичностью, но теперь я хочу увидеть, как кто-нибудь будет отлаживать сцену с сотней объектов и !important. https://www.gss-lang.dev/ #3d #webgpu

#инструмент дня TanStack Charts 1.0 — Таннер Линсли довёл до стабильного релиза свою библиотеку графиков. Вот это, конечно, э
#инструмент дня TanStack Charts 1.0 — Таннер Линсли довёл до стабильного релиза свою библиотеку графиков. Вот это, конечно, эффективность у человека. Анонс: https://tanstack.com/blog/tanstack-charts-1-0 Каталог: https://tanstack.com/charts/catalog Charts устроен не как коллекция <LineChart>, <BarChart> и <PieChart>. График собирается из меток (marks), шкал (scales), осей (axes) и взаимодействий (interactions): можно начать с линии, добавить поверх точки, снизу столбцы, свои аннотации или вообще собственную метку (mark) — без поиска нового компонента под каждую комбинацию. По умолчанию используется SVG, но тяжёлый слой можно отдельно перевести на Canvas, оставив оси, подписи и интерактивность в SVG. Canvas, анимации и более тяжёлые части не попадают в bundle, пока они действительно не понадобились. Линсли пришёл к этой архитектуре после D3, работы над Chart.js 2.0 и собственного react-charts. Последний тоже со временем упёрся в ограничения заранее заданных видов графиков. Поэтому Charts построен ближе к Grammar of Graphics: визуализация складывается из отдельных частей, а не выбирается целиком из списка готовых типов. Линсли пишет, что идеи для API копил около десяти лет, архитектуру и поведение проектировал сам, а почти всю реализацию отдал coding agents. Для Charts уже есть отдельный гайд по AI authoring — как агенту выбирать примитивы, проверять результат и не выдумывать несуществующие API. Собственный Skill через TanStack Intent тоже запланирован, но пока не выпущен. В результате Charts рассчитан даже не столько на графики, это весьма решённая проблема, сколько на все придури вашего дизайнера :) #charts #tanstack