katsuba.dev
583 subscribers
86 photos
4 videos
1 file
330 links
Основной и единственный автор @Katsuba

Хотите поддержать? Навалите звезд к постам

Подписывайтесь на @katsuba_live, там посты пишет AI. Если интересен AI бот в Telegram — оформи подписку на моего @RevelioGPTBot
Download Telegram
🔥 Вышла документалка про Angular! 🔥

На YouTube вышел документальный фильм про историю Angular! 🎬 Если вам интересно, как фреймворк прошел путь от внутреннего эксперимента Google до одного из самых обсуждаемых инструментов в мире JavaScript, этот фильм для вас!

🔹 Как Gmail и Google Maps отказались от AngularJS?
🔹 Почему команда решила полностью переделать фреймворк?
🔹 Какие вызовы стояли перед Angular 2, Ivy и Signals?
🔹 Как Angular снова становится важным для Google?

📺 Смотрим: YouTube

#Angular #JavaScript #WebDev #Frontend #Google
Все больше влюбляюсь в Deno

Одна из фич, которая мне нравится в Deno — это управление задачами через deno.json. Особенно удобно указывать dependencies для тасков.

Вот, например, конфиг:

{
"tasks": {
"build": "deno run -RW build.ts",
"generate": "deno run -RW generate.ts",
"serve": {
"description": "Start the server",
"command": "deno run -RN server.ts",
"dependencies": ["build", "generate"]
}
}
}


Теперь при запуске deno task serve сначала выполняются build и generate, а потом уже поднимается сервер. Удобно? Ну ведь да! 🔥

Deno все больше радует меня простотой и мощью. 🚀

#Deno #TypeScript #WebDev
🔥 это вообще законно? 🤯

Вы только посмотрите на эти цифры!
Date.now() — 28.8 ns
performance.now() — 534.0 ns

👉 Date.now() оказался 18.51x быстрее! 😳

А вы тоже думали, что performance.now() должен быть шустрее? Оказывается, далеко не всегда.
Иногда старые-добрые методы работают неожиданно быстрее.

#javascript #benchmark #webdev #performance
🚀 Deno 2.2.0 уже доступен! 🔥

В этом релизе есть несколько интересных улучшений:

Поддержка JavaScript-плагинов в deno lint (#27203) — теперь можно расширять функциональность линтера с помощью собственных плагинов, что делает процесс проверки кода более гибким. 🛠️

Добавлена поддержка wildcard для deno task (#27007) — это позволяет запускать группы задач с общим префиксом

💥 Другие обновления:
- Реализация модуля node:sqlite — теперь Deno поддерживает работу с SQLite через стандартный модуль. 🗄️
- Поддержка WebTransport (нестабильная) — введена экспериментальная поддержка WebTransport

Полный список изменений доступен по ссылке: Deno 2.2.0 Release Notes

#Deno #JavaScript #TypeScript #WebDev #Release
🚀 Еще один фреймворк Honox

Часто стал использовать Hono для простых сервисов. На фоне этого начал присматриваться к Honox — мета-фреймворку на базе Hono. В целом выглядит интересно

🎉 И сегодня в honox влили мой первый контрибьют. Теперь можно возвращать объект ответа при использовании компонентов в роутинге. Подробности тут 👉 #263


import { Context } from 'hono';

export default async function About(c: Context) {
if (someCondition) {
return c.redirect('/');
}

return <h1>About</h1>;
}


Теперь компонент может возвращать Response, например, для редиректов 🔄

#hono #honox #webdev #opensource #javascript #framework
🚀 Nx и self-hosted кэширование – надежда есть?

Наверное, многие из вас заметили, как я бомбил на тему отказа от кастомных раннеров в Nx (вот оригинальный issue с объявлением: #28434). Это фактически делало невозможным использование self-hosted решений для кэширования. Собственно, сразу после отправки этого поста я иду архивировать свое решение Nx Cloud CE.

Я писал об этом в Твиттере, как и многие другие пользователи. И вот что интересно – в том же issue пару дней назад Виктор Савкин заявил, что скоро появится RFC по self-hosted решению (коммент).

Похоже, команда услышала сообщество. Посмотрим, что из этого выйдет! 🤞

#Nx #DevOps #Caching #SelfHosted #WebDev
🚀 Cloudflare запустил REST API для работы с браузером!

Cloudflare представил REST API для Browser Rendering API, который позволяет рендерить веб-страницы в облаке без необходимости поднимать свой браузер. Это мощный инструмент для автоматического скриншотинга, сбора метаданных, рендеринга JS-контента и других задач.

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

🔥 Отличный вариант для тестирования, SEO-анализа, мониторинга и парсинга сайтов.
📜 Документация: developers.cloudflare.com/browser-rendering/rest-api

#cloudflare #api #webdev #automation #scraping
Новый блог 🚀

Надоело смотреть на странные, страшные и нефункциональные блоги. Хотелось больше управления, кастома и удобства.

И вот он – katsuba.dev! 🎉

🔗 Глянуть вживую: katsuba.dev
💻 Исходники на GitHub: github.com/IKatsuba/katsuba.dev

Проект полностью опенсорсный, так что если есть идеи или предложения – велкам в issues и PR’ы! 😎

#webdev #opensource #blog #katsubaDev
💥 Oxlint в бете! Ещё один линтер?! 💥

Да-да, снова! Oxlint — новый линтер, который обещает заменить ESLint. Больше 500 правил, 🚀 в 2 раза быстрее, поддержка .astro, .svelte, .vue, и даже автоматические фиксы.

Как запустить?


npx oxlint@latest


Пробуем или уже устали от новых линтеров? 😆

Анонс

#Oxlint #ESLint #JavaScript #TypeScript #WebDev
🧵 Оптимизация рендеринга через scheduler.yield()

В Chrome завезли новый API — scheduler.yield(). Эта штука позволяет добровольно отдать управление потоку, если нужно освободить main-thread для более важных задач 🧠

Раньше для таких целей приходилось мутить что-то вроде setTimeout(() => {}, 0) или await Promise.resolve(), но они не всегда срабатывали как надо. Теперь с scheduler.yield() всё становится гораздо прозрачнее и надёжнее.

📌 Пример юзкейса: у тебя тяжёлая синхронная операция — парсинг JSON, массивов, трансформация DOM и т.п. Чтобы не фризить интерфейс, можно вставлять await scheduler.yield() в нужных местах, и браузер сам решит, стоит ли прервать выполнение и пропустить более важные задачи (рендер, инпуты и т.д.).

👨‍🔬 Сейчас работает только в Chrome-based браузерах. Но в статье можно найти полифил.

🔗 Подробнее: developer.chrome.com/blog/use-scheduler-yield

#JavaScript #WebPerformance #Chrome #Frontend #WebDev
🚨 А вы знали, что Signals хотят в JavaScript стандарт?

В TC39 обсуждают новый пропозал — JavaScript Signals. Это попытка стандартизировать реактивность прямо в языке, как когда-то сделали с промисами.

📦 Что такое Signals?

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


const counter = new Signal.State(0);
const parity = new Signal.Computed(() => counter.get() % 2 ? 'odd' : 'even');

effect(() => {
console.log(parity.get());
});

counter.set(2); // лог покажет "even"


🧠 Главное:
• .State() — изменяемое значение
• .Computed() — значение, вычисляемое из других Signals
• .Watcher — можно повесить эффект при изменении зависимостей
• .subtle.untrack() — можно временно выключить трекинг (да, небезопасно)

💥 Особенности:
• Lazy — вычисления запускаются только при чтении
• Memoized — если значения не поменялись, пересчёта не будет
• Glitch-free — никакой дерганины или устаревших значений
• DevTools-френдли — потенциально глубокая интеграция в браузеры

🌍 В разработке участвуют авторы Angular, Vue, Svelte, Solid, React (да, даже там), Qwik и других. Цель — создать единый базис для реактивности, который можно шарить между фреймворками без привязки к рендереру.

❗️Пока только Stage 1, но уже есть полифил и активная работа над интеграцией в реальные фреймворки.

🔗 Пропозал тут: https://github.com/tc39/proposal-signals

#JavaScript #TC39 #Signals #webdev #reactivity #frontend #jsframeworks
🚧 Я переделал Angie!

Angie — это бот, который шарит в Angular:
📚 умеет лезть в доку
🌐 может что-то подсмотреть в Web
🐞 следит за issues и PR в репозитории Angular

Теперь он стал намного проще по коду — я перевез его с нативного OpenAI Assistant API на ai-sdk с обёрткой от mastra. Mastra, кстати, кайф — позволяет завернуть всю агентскую логику в удобную абстракцию и ещё немного плюшек сверху подвезла 😎

Уже задеплоил новую версию.
Личных чатов пока нет — не хочу делать бота платным, но не знаю, сколько он будет жрать ресурсов.

💬 Зато теперь есть публичный чат, где любой может пообщаться с Angie без ограничений:
👉 тык сюда

🧪 Планы:
— сделать web-версию с личкой
— потом покажу, как вообще делал этого бота

#Angular #AI #OpenAI #DevTools #JavaScript #TypeScript #Chatbot #WebDev #opensource
🚀 В Angular обновили доку по реактивным формам!

В репозитории Angular залетел PR #59979, в котором обновили документацию по реактивным формам под новый стиль с standalone компонентами и директивами 💡

⚠️ Это только документация — никакой логики внутри Angular не менялось.

#Angular #JavaScript #TypeScript #WebDev #ReactiveForms #Frontend
🔥 В Nx всё-таки завозят self-hosted remote cache server — и это хорошая новость!

Напомню, что недавно команда Nx анонсировала отказ от кастомных ранеров, что фактически ставило крест на self-hosted решениях. Это вызвало волну фидбэка от комьюнити — мол, не все хотят или могут юзать Nx Cloud.

📣 В итоге — прислушались и запилили RFC для собственного remote cache сервера

⚠️ Важно: фича заработает начиная с v21 Nx.

🛠 Хоть это еще и не работает — я уже сделал драфт такого сервера по предложенной спеке:
👉 https://github.com/IKatsuba/nx-cache-server

Теперь можно будет спокойно поднимать свой remote cache и не зависеть от облака 😎

#nx #typescript #monorepo #javascript #devtools #webdev #devops #opensource
🔥 Свежий RFC от команды Next.js!

На GitHub появился новый RFC: “Deployment Adapters API” 🚀

Что предлагают:
Deployment Adapters API: новая система адаптеров для упрощения деплоя Next.js на различных платформах, включая серверлесс-решения. Теперь провайдерам будет легче интегрировать Next.js в свои сервисы.

Сейчас деплой Next.js на кастомные серверлесс-платформы был непростым из-за специфических требований. Новый API призван упростить этот процесс и обеспечить единообразие между разными провайдерами. 🌐

Обсуждение только началось, так что есть возможность внести свои предложения и повлиять на развитие Next.js. 💬

#NextJS #WebDev #Deployment #Serverless #JavaScript #RFC
💣 Кажется, что у Angular команды созревает видение selectorless будущего!

Командой предложен экспериментальный PR с новым синтаксисом шаблонов без селекторов, где можно писать компоненты и директивы, не создавая кастомные HTML-теги и не указывая selector. Это реальный шаг к отказу от селекторов

🔍 Как это выглядит:


<MatButton:a
href="/admin"
@HasRipple
@Tooltip(message="Cannot navigate" [disabled]="hasPermissions")
>
Admin
</MatButton:a>


👆 Это полноценный Angular-шаблон, где:
• MatButton применяется на a-тег — создаётся компонент без селектора
• \@HasRipple и \@Tooltip — директивы без селекторов
• Все биндинги типа [disabled] чётко направлены в нужные директивы/компоненты

⚠️ Важно:

Это экспериментальный синтаксис, только для прототипирования. PR ещё обсуждается и до релиза — далеко.

💬 В обсуждении поднимаются интересные вопросы:
— Можно ли использовать одно и то же имя input’а в нескольких директивах?
— Что реально будет в DOM? (например, <MatButton:a> превратится в <a>, но с логикой компонента)
— Поддержка generic-типов в директивах?

🧪 PR: Selectorless template parsing #60724

#Angular #TypeScript #webdev #frontend #javascript #ngnews #AngularNextGen
🚀 Анонс Zod v4!

Zod — это библиотека для валидации данных и вывода типов в TypeScript. И вот, спустя год разработки, вышла Zod v4 — быстрее, легче и мощнее! 💥

🔍 Что нового?
• Строки парсятся в 2.6 раза быстрее
• Массивы — почти в 3 раза
• Объекты — до 7 раз быстрее
• Новая архитектура

Бета уже доступна, и разработчики активно работают над поддержкой совместимости с популярными библиотеками

📦 Установка


pnpm upgrade zod@next


📚 Подробнее

Официальная документация и гайд по миграции:
👉 https://v4.zod.dev/v4

🔥 Если ты используешь Zod в своих проектах, самое время попробовать новую версию и оценить прирост производительности!

#typescript #zod #validation #webdev #javascript
🔥 OpenAI выкатила GPT-4.1

И я уже обновил Angie до новой версии 🚀

Что завезли:
до 1М токенов в контексте — теперь можно пихать вообще всё подряд
— +27% к скиллам в кодинге по сравнению с GPT-4.5
— стала лучше понимать инструкции
— и всё это ещё и дешевле и быстрее 😍
— знания теперь до июня 2024

💡 GPT-4.1 уже доступна через API

#gpt41 #openai #ai #devtools #webdev
🧠 OpenAI выкатили Codex CLI!

Вчера в репозитории openai/codex появился новый инструмент — это CLI-ассистент, который умеет помогать тебе писать код прямо из терминала.

Пример команды:


codex "create a typescript function to validate an email"


И он реально выдает тебе готовый код! 🤯

📌 Codex CLI — это как Copilot, но в shell. Под капотом — OpenAI API. Работает с любым языком, который ты укажешь в prompt’е.

❗️Но есть нюанс: сейчас CLI работает только, если ты сам пропишешь API-токен как OPENAI_API_KEY в env-переменных. Никаких oauth или автоматической авторизации пока нет 🫠 Несекъюрненько

🧪 Инструмент свежий, только запустили. Посмотреть можно тут:
👉 https://github.com/openai/codex

#openai #cli #codex #copilot #webdev #typescript #javascript #ai #devtools
🚀 Использовал tutorialkit.dev как движок курса в ng.guide. Базово вроде ок, но как только начал кастомить... В какой-то момент понял, что больше времени проводил, копаясь в исходниках, чем делая курс. А еще кастомизация = правь исходники

💡 В итоге стартанул свой движок под ng.guide. Будет проще затащить Angie внутрь 🔥 Ну и полный контроль над всем

Пришлось зарыться в странные странности, но оно того стоило — теперь всё своё, всё под рукой 💪

#angular #buildinpublic #edtech #typescript #webdev