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

PurpleSchool

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

5просмотров

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

3просмотра

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

52просмотра

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

2просмотра

Какой 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

88просмотров

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

85просмотров

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

97просмотров

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

98просмотров

Почему 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

95просмотров

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

108просмотров

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

155просмотров

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

95просмотров

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

337просмотров

Вышла 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

106просмотров

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

298просмотров

Вышел Nuxt 4.5 с большим набором обновлений для разработки и производительности. В новой версии Nuxt перешёл на Vite 8, добавил поддержку Rspack 2 и Rsbuild, а также экспериментальный SSR Streaming. Появились стабильные коды ошибок, новый useLayout, поддержка Named Views и дополнительные возможности для отладки и отслеживания SSR. Кроме пользовательских изменений, команда продолжает перерабатывать внутреннюю архитектуру и готовить Nuxt к будущему переходу на Nuxt 5. Больше релизов — в полном выпуске по ссылке под шортсом! #nuxt #vue #js #javascript #vuejs #nuxtjs #frontend #metaframework #frontendframework

166просмотров

Почему проект внутри Docker может тормозить, даже когда процессор и память почти не загружены? Разбираемся, как Bind Mount связывает файлы хоста с контейнером и почему на Docker Desktop или WSL файловые операции могут замедляться при переходе между Windows и Linux. Особенно это заметно на node_modules, сборке и file watcher. Поэтому исходники для Linux-контейнеров лучше держать внутри Linux-среды, а кэш, зависимости и результаты сборки — выносить в Docker volume. #Docker #BindMount #WSL #Linux #DevOps #Backend #windows #webdev

5просмотров

Почему language server может занимать гигабайты памяти даже в обычной IDE? Разбираемся, что именно хранит LSP-сервер: индекс workspace, символы, типы и кэши. На больших монорепозиториях объём этих данных быстро растёт, а несколько открытых проектов могут запустить отдельные серверы со своими индексами. Показываем, почему проблема обычно не в самом LSP-протоколе и что стоит проверить, если language server начинает съедать слишком много RAM. #LSP #LanguageServer #LanguageServerprotocol #IDE #Programming #DevTools #Программирование

81просмотр

Почему программа в терминале ведёт себя иначе, чем при запуске через pipe? Разбираемся, что такое PTY, зачем ему master и slave и почему программы через него понимают, что работают интерактивно. Именно поэтому появляются цвета, прогресс-бары, терминальные сигналы и реакция на изменение размера окна. PTY используют SSH, tmux и веб-консоли, чтобы дать программе интерактивную среду без физического терминала. #PTY #Terminal #Linux #Shell #SSH #Tmux #Backend #TTY #pipe #терминал

109просмотров

В верхней панели Omarchy собрано гораздо больше, чем Wi-Fi, Bluetooth и настройки дисплея. Здесь можно следить за AI-агентами и их лимитами, запускать запись экрана, включать Stay Awake, управлять уведомлениями и Night Light. Есть даже встроенная диктовка с собственной моделью, которую можно настроить под себя. В шортсе показываем, что доступно прямо из верхней панели Omarchy. Полный обзор Omarchy — смотри по ссылке под шортсом! #Omarchy #Linux #ArchLinux #Hyprland #os #unix #линукс #distro #linuxdistro #AIAgents #LinuxDesktop

113просмотров

Почему fork() не копирует сразу всю память большого процесса? После fork() родительский и дочерний процессы сначала используют одни и те же физические страницы памяти. Копия создаётся только тогда, когда один из процессов пытается изменить страницу. Поэтому даже большой процесс можно форкнуть довольно дёшево — пока потомок не начинает активно менять память. #Linux #Fork #Memory #OperatingSystems #Backend #Programming #Программирование