PurpleSchool
Иконка канала PurpleSchool

PurpleSchool

565 подписчиков

75просмотров

Большой JSON-ответ может задержать не только один запрос, но и остальные запросы к Node.js. JSON.stringify выполняется синхронно. Пока большой объект превращается в строку, event loop занят, а async/await не даёт возможности переключиться на другую задачу. Разбираемся, почему размер JSON влияет на latency и что делать с тяжёлой сериализацией. #NodeJS #JavaScript #js #JSON #JSONstringify #Backend #EventLoop #Performance #WebDev #Программирование

88просмотров

Как GPT-6 Astra справляется с сотнями тысяч токенов контекста? В задачах на поиск информации Astra в отличие от Sol почти не теряет качество с ростом контекста: на 256–512 тысячах токенов деградации практически нет, а при увеличении контекста от 512 тысяч до миллиона снижение составляет около 4%. У Sol эта деградация значительно больше. Но когда GPT Astra нужно не просто найти информацию, а связать несколько фактов и сделать вывод, деградация контекста становится заметнее, при этом независимо от reasoning effort. Но в любом случае Astra позволяет эффективнее работать с большим контекстом, чем более старые модели. А полный обзор GPT-6 Astra смотри по ссылке под шортсом! #gpt #chatgpt #gptastra #gpt6 #gptsol #aimodels #llm #openai #aiagents #ContextWindow #aicontext

100просмотров

useMemo не делает компонент быстрее автоматически. React всё равно проверяет зависимости, а при их изменении пересчитывает значение. Если само вычисление дешёвое, мемоизация может добавить больше работы, чем сэкономить. Разбираемся, когда useMemo действительно полезен, а когда от него только лишний код. #React #useMemo #JavaScript #js #Frontend #WebDev #reactjs

86просмотров

GPT-6 Astra заметно лучше справляется с дизайном и визуальными задачами, чем GPT Sol, хотя до Claude Fable ей пока немного не хватает. В наших тестах Astra иногда отходила от исходного визуального стиля проекта, тогда как Fable точнее его сохраняла. Зато у Astra есть отдельное преимущество — возможность генерировать изображения через GPT Image и сразу использовать их в работе над интерфейсом. В целом модели постепенно становятся лучше в визуальных задачах, а характерного «нейрослопа» в интерфейсах становится всё меньше. Полный обзор GPT-6 Astra — по ссылке под шортсом! #gpt #chatgpt #gptastra #gpt6 #claudefable #claude #aimodels #llm #openai #aiagents #aidesign

92просмотра

Как одна зависшая транзакция может в итоге затормозить весь сервис? Если транзакция удерживает блокировку, другие запросы к тем же данным начинают ждать. При этом каждый из них продолжает занимать соединение из пула. Когда свободных подключений не остаётся, ждать приходится даже запросам, которые вообще не связаны с исходной блокировкой. Разбираемся, как блокировки приводят к исчерпанию connection pool и почему важно контролировать длительность транзакций и время ожидания. #Database #PostgreSQL #postgres #ConnectionPool #SQL #Backend #Performance #SystemDesign #database

79просмотров

Подход к скиллам для продвинутых моделей вроде GPT-6 Astra и Claude Fable меняется: чем сильнее модель, тем меньше деталей ей нужно прописывать заранее. Необязательно объяснять структуру проекта, правила реэкспорта через index.ts и другие вещи, которые модель может сама определить по существующему коду и стилю проекта. То же касается жёстких циклов и инструкций вроде обязательного запуска тестов после каждого шага. Astra умеет сама возвращаться к необходимым действиям, а лишние указания могут только ограничивать её работу и приводить к дополнительному расходу токенов. Полный обзор GPT-6 Astra — по ссылке под шортсом! #gpt #chatgpt #gptastra #gpt6 #claudefable #claude #aimodels #llm #openai #aiagents #aiskills

46просмотров

Почему после git rebase у коммитов меняются хэши, даже если сами изменения остались прежними? Разбираемся, как Git заново применяет изменения поверх новой базы, почему при этом создаются новые коммиты и откуда появляются конфликты. А также — почему rebase удобно использовать в локальной ветке, но опасно без необходимости переписывать уже опубликованную историю. #Git #GitRebase #Rebase #VersionControl #Programming #Development #gitcommit #commit

47просмотров

В GPT-6 Astra работу можно делегировать субагентам — достаточно прямо попросить модель использовать их для задачи. Параллельная работа может заметно ускорить выполнение сложных задач, но её важно правильно организовать: разделять зоны ответственности, не отдавать двум агентам один и тот же файл и в конце сводить результаты их работы вместе. Важно учитывать и стоимость: параллельные задачи будет выполнять та же GPT-6 Astra, только в роли субагентов. Поэтому токены здесь не экономятся — наоборот, использование нескольких субагентов увеличивает расход и может сделать задачу заметно дороже. Полный обзор GPT-6 Astra — по ссылке под шортсом! #gpt #chatgpt #gptastra #gpt6 #subagents #aimodels #llm #openai #aiagents

91просмотр

Remix 3 заметно отличается от предыдущих версий фреймворка. Теперь он строится вокруг стандартных Web APIs, поставляется одной зависимостью remix и получил собственный UI runtime вместо React. Но зачем нужен ещё один full-stack JavaScript-фреймворк, когда уже есть Next.js? И что Remix 3 предлагает такого, ради чего разработчику вообще стоит обратить на него внимание? Разбираемся в подходе Remix 3 и сравниваем его с привычной экосистемой Next.js. Больше релизов — в полном выпуске по ссылке под шортсом! #Remix #Remix #NextJS #JavaScript #TypeScript #FullStack #react #reactrouter #js #ts

9просмотров

Какой reasoning effort стоит выбирать в GPT-6 Astra? Тесты Artificial Analysis показывают, что увеличение reasoning effort повышает не только возможности модели, но и стоимость задачи — причём прирост Intelligence Index на максимальных уровнях уже не такой заметный. Разбираемся, чем отличаются уровни от low до max и почему максимальное усилие не всегда оказывается оптимальным выбором. Полный обзор GPT-6 Astra — по ссылке под шортсом! #gpt #chatgpt #gptastra #gpt6 #effort #ReasoningEffort #ArtificialAnalysis #aimodels #llm #openai

89просмотров

Solid 2.0 добрался до стадии Release Candidate — и это большое обновление реактивной модели фреймворка. В новой версии переработали работу с асинхронными данными: async теперь становится частью самого реактивного графа. В core появились actions и optimistic state, изменился подход к stores и работе со списками, а реактивное ядро было существенно переработано. Также Solid 2.0 получил новый компилятор на Rust/OXC, а SolidStart постепенно уступает место новому подходу start mode. Больше релизов — в полном выпуске по ссылке под шортсом! #SolidJS #Solid #JavaScript #TypeScript #Reactivity #Frontend #oxc #vite #rust #js #ts #framework

88просмотров

async def в FastAPI не делает код автоматически быстрее и не отправляет его в отдельный поток. Разбираемся, когда await действительно освобождает event loop, почему обычный requests внутри async-эндпоинта может заблокировать другие задачи и когда в FastAPI лучше использовать обычный def. А заодно — почему async def не решает проблему CPU-bound вычислений. #FastAPI #Python #AsyncIO #AsyncAwait #asyncdef #Backend #PythonDevelopment #WebDev

100просмотров

Formisch 1.0 вышел в стабильный релиз и теперь официально готов к использованию в продакшене. Formisch — schema-first библиотека для работы с формами. Схема Valibot используется одновременно для типизации и валидации, а общая логика не привязана к конкретному UI-фреймворку. Библиотека поддерживает сразу восемь фреймворков: React, Vue, Angular, Svelte, Solid, Qwik, Preact и React Native. В первой стабильной версии также появились инструменты, которые упрощают работу с документацией Formisch через AI-агентов. Больше релизов — в полном выпуске по ссылке под шортсом! #devnews #Formisch #Valibot #React #Vue #Angular #Svelte #frontend #webforms

100просмотров

Почему Docker-контейнер может получить Out of memory, хотя на хосте ещё достаточно свободной RAM? Разбираемся, как memory limit контейнера работает через cgroup и почему доступная память хоста не спасает процесс после достижения этого ограничения. А в Docker Desktop и WSL появляется ещё один уровень — лимит памяти виртуальной машины. Показываем, где искать ограничение и что проверить через docker inspect и docker stats. #Docker #oom #oomkilled #OutOfMemory #Linux #WSL #DockerDesktop #DevOps #Backend #ram

97просмотров

GPUIX позволяет создавать нативные приложения на React и TypeScript без Electron и WebView. Проект связывает React с GPUI — GPU-фреймворком, который используется в редакторе Zed. Можно продолжать работать с привычными JSX, useState и React-компонентами, а интерфейс при этом рендерится через GPUI с использованием Metal, DirectX или Vulkan. GPUIX поддерживает macOS, Windows и Linux, а готовое приложение можно собрать в самостоятельный бинарник, которому не нужны установленные Bun или Node.js. Больше релизов — в полном выпуске по ссылке под шортсом! #react #reactjs #gpu #gpui #gpuix #ts #typescript #nodejs #zed #desktop #desktopdev #nativeapps

109просмотров

Почему в React новая задача может открыть ту же форму со старым локальным state? Разбираемся, как React связывает state с позицией компонента в дереве и почему смена пропсов сама по себе не создаёт новый компонент. Показываем, как key меняет идентичность компонента, когда это удобно для сброса формы или черновика и почему случайный key может привести к постоянным пересозданиям. #React #JavaScript #js #Frontend #reactState #ReactKey #WebDev #reactjs

156просмотров

Вышел Go 1.27 с обновлениями языка, runtime, инструментов и стандартной библиотеки. Одно из главных изменений — поддержка generic methods: теперь методы могут объявлять собственные параметры типов. В стандартной библиотеке появился новый encoding/json/v2 с более строгими настройками и ускоренным декодированием JSON, а также пакет uuid. В runtime добавили профиль goroutineleak для поиска заблокированных goroutine, которые уже не смогут продолжить выполнение. Поработали и над производительностью: небольшие аллокации памяти могут выполняться до 30% быстрее. Больше релизов — в полном выпуске по ссылке под шортсом! #devnews #go #golang #backend #generics #goroutines #json #backenddev

97просмотров

Почему запрос на двадцать строк может становиться всё медленнее с каждой следующей страницей? При OFFSET 100000 PostgreSQL не перепрыгивает сразу к нужным записям. Предыдущие строки всё равно приходится пройти и отбросить, поэтому стоимость запроса растёт вместе с глубиной пагинации. Разбираемся, как работает OFFSET и почему для длинных списков и лент keyset pagination часто подходит лучше. #PostgreSQL #SQL #postgres #Database #Pagination #KeysetPagination #Backend #Performance

339просмотров

Вышла Sugar High 2.0 — новая версия легковесной библиотеки для подсветки синтаксиса кода. Sugar High позволяет добавлять syntax highlighting без тяжёлых решений и теперь поддерживает 25 встроенных языков. В версии 2.0 библиотека превратилась в более гибкий набор инструментов: появился composable core API, отдельные компоненты для React, интеграция с Remark и больше возможностей для настройки отображения токенов и строк. При этом библиотека остаётся компактной: полный пакет занимает около 8,6 КБ в gzip, а core — около 1,7 КБ. Больше релизов — в полном выпуске по ссылке под шортсом! #sugarhigh #frontend #SyntaxHighlighting #codeeditor #js #javascript #jsx #react #vue #webdev

107просмотров

Promise.all запускает несколько задач параллельно, но сам по себе не ограничивает их количество. Если передать ему большой список запросов к базе, можно мгновенно создать сотни или тысячи промисов. Часть запросов встанет в очередь пула, а база получит лишнюю конкуренцию за соединения и ресурсы. Разбираемся, почему Promise.all не является лимитером параллелизма и как контролировать нагрузку с помощью чанков или p-limit. #PromiseAll #JavaScript #NodeJS #Database #Concurrency #Backend #Performance #Async